|
81026
|
2157
|
12
|
2026-04-25T15:56:21.192278+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-25/1777 /Users/lukas/.screenpipe/data/data/2026-04-25/1777132581192_m2.jpg...
|
Code
|
screenpipe_sync.sh — screenpipe [SSH: nas]
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 2 pending changes
2
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update, 1 requires restart
3
Claude Code
Containers
EXPLORER
EXPLORER
Explorer Section: screenpipe [SSH: nas]
Explorer Section: screenpipe [SSH: nas]
SCREENPIPE [SSH: NAS]
#recycle
app
data
pipes
.gitignore
app_settings.json
archive.db
db.sqlite
screenpipe_sync.sh
screenpipe.db
Outline Section
OUTLINE
OUTLINE
Timeline Section
TIMELINE
TIMELINE
app_settings.json, Editor Group 1
screenpipe_sync.sh, Editor Group 1
db.sqlite-shm, preview, Editor Group 1
#!/bin/bash
# screenpipe_sync.sh
# Syncs Screenpipe SQLite data to a NAS archive database (append-only, no deletions).
# Also copies the day's video/frame data folder to the NAS.
#
# Usage:
# ./screenpipe_sync.sh # syncs yesterday (default)
# ./screenpipe_sync.sh 2026-04-15 # syncs a specific date
# ./screenpipe_sync.sh today # syncs today so far
#
# Cron example (runs at 3am daily):
# 0 3 * * * /Users/lukas/.screenpipe/screenpipe_sync.sh >> /Users/lukas/.screenpipe/sync.log 2>&1
set -euo pipefail
# ─── CONFIG ───────────────────────────────────────────────────────────────────
DB_SRC="${SCREENPIPE_DB:-$HOME/.screenpipe/db.sqlite}"
NAS_MOUNT="${NAS_MOUNT:-/Volumes/Test/screenpipe}"
NAS_DB="$NAS_MOUNT/archive.db"
NAS_DATA="$NAS_MOUNT/data"
LOG_FILE="$HOME/.screenpipe/sync.log"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
SCRIPT_START=$(date +%s)
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# ─── DATE ARGUMENT ────────────────────────────────────────────────────────────
if [ "${1:-}" = "today" ]; then
TARGET_DATE=$(date +%Y-%m-%d)
elif [ -n "${1:-}" ]; then
TARGET_DATE="$1"
if ! [[ "$TARGET_DATE" =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]]; then
echo "ERROR: Invalid date format. Use YYYY-MM-DD, 'today', or no argument for yesterday."
exit 1
fi
else
TARGET_DATE=$(date -v-1d +%Y-%m-%d)
fi
log "========================================"
log "Screenpipe sync starting for: $TARGET_DATE"
log "========================================"
# ─── PREFLIGHT ────────────────────────────────────────────────────────────────
step "Preflight checks"
if [ ! -f "$DB_SRC" ]; then
log "ERROR: Source DB not found at $DB_SRC"; exit 1
fi
printf " %-20s %s (%s)\n" "Source DB:" "OK" "$(du -sh "$DB_SRC" | cut -f1)"
if [ ! -d "$NAS_MOUNT" ]; then
log "ERROR: NAS not mounted at $NAS_MOUNT"; exit 1
fi
printf " %-20s %s\n" "NAS mount:" "OK $NAS_MOUNT"
# Check if DB already synced for this date
DB_ALREADY_SYNCED=false
if [ -f "$NAS_DB" ]; then
EXISTING=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';" 2>/dev/null || echo "0")
if [ "$EXISTING" -gt "0" ]; then
log "Date $TARGET_DATE already has $EXISTING frames in archive — skipping DB sync"
DB_ALREADY_SYNCED=true
else
printf " %-20s %s (%s)\n" "Archive DB:" "exists" "$(du -sh "$NAS_DB" | cut -f1)"
fi
else
printf " %-20s %s\n" "Archive DB:" "will be created"
fi
# Source data dir for this date
DATA_SRC="$HOME/.screenpipe/data/data/$TARGET_DATE"
if [ -d "$DATA_SRC" ]; then
DATA_SIZE=$(du -sh "$DATA_SRC" | cut -f1)
DATA_FILES=$(ls "$DATA_SRC" | wc -l | tr -d ' ')
printf " %-20s %s (%s files, %s)\n" "Data dir:" "OK" "$DATA_FILES" "$DATA_SIZE"
else
printf " %-20s %s\n" "Data dir:" "not found — skipping file copy"
fi
# ─── DB SYNC ──────────────────────────────────────────────────────────────────
if [ "$DB_ALREADY_SYNCED" = false ]; then
# ─── COUNT SOURCE ROWS ────────────────────────────────────────────────────
step "Counting source rows for $TARGET_DATE"
SRC_FRAMES=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';")
SRC_ELEMENTS=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
SRC_UI=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';")
SRC_OCR=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
SRC_MEETINGS=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM meetings WHERE date(meeting_start) = '$TARGET_DATE';")
printf " %-20s %s\n" "frames:" "$SRC_FRAMES"
printf " %-20s %s\n" "elements:" "$SRC_ELEMENTS"
printf " %-20s %s\n" "ui_events:" "$SRC_UI"
printf " %-20s %s\n" "ocr_text:" "$SRC_OCR"
printf " %-20s %s\n" "meetings:" "$SRC_MEETINGS"
if [ "$SRC_FRAMES" -eq "0" ]; then
log "No frames found for $TARGET_DATE — skipping DB sync"
DB_ALREADY_SYNCED=true
fi
fi
if [ "$DB_ALREADY_SYNCED" = false ]; then
# ─── INIT TABLES ──────────────────────────────────────────────────────────
step "Initialising tables, indexes, FTS"
run_sqlite_heredoc "creating tables" "
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
DETACH nas;
"
run_sqlite_heredoc "creating indexes" "
ATTACH '$NAS_DB' AS nas;
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
CREATE INDEX IF NOT EXISTS nas.idx_elements_frame_id ON elements(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_elements_frame_src_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_timestamp ON ui_events(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_app_name ON ui_events(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_frame_id ON ui_events(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_ocr_text_frame_id ON ocr_text(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_meetings_start ON meetings(meeting_start);
CREATE INDEX IF NOT EXISTS nas.idx_video_chunks_device ON video_chunks(device_name);
DETACH nas;
"
run_sqlite_heredoc "creating FTS tables" "
ATTACH '$NAS_DB' AS nas;
CREATE VIRTUAL TABLE IF NOT EXISTS nas.elements_fts USING fts5(
text, role, frame_id UNINDEXED,
content='elements', content_rowid='id', tokenize='unicode61'
);
CREATE VIRTUAL TABLE IF NOT EXISTS nas.frames_fts USING fts5(
full_text, app_name, window_name, browser_url, id UNINDEXED,
tokenize='unicode61'
);
CREATE VIRTUAL TABLE IF NOT EXISTS nas.ui_events_fts USING fts5(
text_content,
app_name,
window_title,
element_name,
content='ui_events',
content_rowid='id',
tokenize='unicode61'
);
DETACH nas;
"
# ─── SYNC DATA ────────────────────────────────────────────────────────────
step "Syncing data for $TARGET_DATE"
run_sqlite_heredoc "video_chunks" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.video_chunks
SELECT * FROM main.video_chunks
WHERE id IN (
SELECT DISTINCT video_chunk_id FROM main.frames
WHERE date(timestamp) = '$TARGET_DATE' AND video_chunk_id IS NOT NULL
);
DETACH nas;
"
run_sqlite_heredoc "frames ($SRC_FRAMES rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "ocr_text ($SRC_OCR rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.ocr_text
SELECT o.* FROM main.ocr_text o
JOIN main.frames f ON o.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "ui_events ($SRC_UI rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.ui_events
SELECT * FROM main.ui_events WHERE date(timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "elements ($SRC_ELEMENTS rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "meetings ($SRC_MEETINGS rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.meetings
SELECT * FROM main.meetings WHERE date(meeting_start) = '$TARGET_DATE';
DETACH nas;
"
# ─── FTS UPDATE ───────────────────────────────────────────────────────────
step "Updating FTS indexes"
run_sqlite_heredoc "elements_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.elements_fts(rowid, text, role)
SELECT e.id, e.text, e.role
FROM nas.elements e
JOIN nas.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE'
AND e.text IS NOT NULL;
DETACH nas;
"
run_sqlite_heredoc "frames_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.frames_fts(rowid, full_text, app_name, window_name, browser_url, id)
SELECT id, full_text, app_name, window_name, browser_url, id
FROM nas.frames
WHERE date(timestamp) = '$TARGET_DATE'
AND full_text IS NOT NULL;
DETACH nas;
"
run_sqlite_heredoc "ui_events_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.ui_events_fts(rowid, text_content, app_name, window_title, element_name)
SELECT id, text_content, app_name, window_title, element_name
FROM nas.ui_events
WHERE date(timestamp) = '$TARGET_DATE'
AND text_content IS NOT NULL;
DETACH nas;
"
# ─── VERIFY DB ────────────────────────────────────────────────────────────
step "Verifying DB"
V_FRAMES=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';")
V_ELEMENTS=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
V_UI=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';")
V_OCR=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
V_MEETINGS=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM meetings WHERE date(meeting_start)= '$TARGET_DATE';")
check "frames" "$V_FRAMES" "$SRC_FRAMES"
check "elements" "$V_ELEMENTS" "$SRC_ELEMENTS"
check "ui_events" "$V_UI" "$SRC_UI"
check "ocr_text" "$V_OCR" "$SRC_OCR"
check "meetings" "$V_MEETINGS" "$SRC_MEETINGS"
fi
# ─── COPY DATA FOLDER ─────────────────────────────────────────────────────────
# Always runs regardless of DB sync status
step "Copying data folder for $TARGET_DATE"
if [ -d "$DATA_SRC" ]; then
mkdir -p "$NAS_DATA/$TARGET_DATE"
RSYNC_START=$(date +%s)
printf " %-36s " "rsync $TARGET_DATE/ → NAS"
rsync -a --ignore-existing \
"$DATA_SRC/" \
"$NAS_DATA/$TARGET_DATE/" \
2>>"$LOG_FILE"
RSYNC_DUR=$(( $(date +%s) - RSYNC_START ))
COPIED_FILES=$(ls "$NAS_DATA/$TARGET_DATE" | wc -l | tr -d ' ')
SRC_FILES=$(ls "$DATA_SRC" | wc -l | tr -d ' ')
COPIED_SIZE=$(du -sh "$NAS_DATA/$TARGET_DATE" | cut -f1)
if [ "$COPIED_FILES" -eq "$SRC_FILES" ]; then
printf "\r %-36s ✓ %dm%02ds (%s files, %s)\n" \
"rsync $TARGET_DATE/ → NAS" \
"$(( RSYNC_DUR / 60 ))" "$(( RSYNC_DUR % 60 ))" \
"$COPIED_FILES" "$COPIED_SIZE" | tee -a "$LOG_FILE"
else
printf "\r %-36s ✗ %s / %s files\n" \
"rsync $TARGET_DATE/ → NAS" "$COPIED_FILES" "$SRC_FILES" | tee -a "$LOG_FILE"
fi
else
printf " %-36s %s\n" "rsync $TARGET_DATE/ → NAS" "skipped (no source dir)"
fi
# ─── SUMMARY ──────────────────────────────────────────────────────────────────
TOTAL_ELAPSED=$(( $(date +%s) - SCRIPT_START ))
DB_SIZE=$(du -sh "$NAS_DB" | cut -f1)
echo ""
log "Archive DB size: $DB_SIZE"
log "Total time: $(( TOTAL_ELAPSED / 60 ))m$(( TOTAL_ELAPSED % 60 ))s"
log "Sync complete for $TARGET_DATE"
log "========================================"
#!/bin/bash
# screenpipe_sync.sh
# Syncs Screenpipe SQLite data to a NAS archive database (append-only, no deletions).
# Also copies the day's video/frame data folder to the NAS.
#
# Usage:
# ./screenpipe_sync.sh # syncs yesterday (default)
# ./screenpipe_sync.sh 2026-04-15 # syncs a specific date
# ./screenpipe_sync.sh today # syncs today so far
#
# Cron example (runs at 3am daily):
# 0 3 * * * /Users/lukas/.screenpipe/screenpipe_sync.sh >> /Users/lukas/.screenpipe/sync.log 2>&1
set -euo pipefail
# ─── CONFIG ───────────────────────────────────────────────────────────────────
DB_SRC="${SCREENPIPE_DB:-$HOME/.screenpipe/db.sqlite}"
NAS_MOUNT="${NAS_MOUNT:-/Volumes/Test/screenpipe}"
NAS_DB="$NAS_MOUNT/archive.db"
NAS_DATA="$NAS_MOUNT/data"
LOG_FILE="$HOME/.screenpipe/sync.log"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
SCRIPT_START=$(date +%s)
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# ─── DATE ARGUMENT ────────────────────────────────────────────────────────────
if [ "${1:-}" = "today" ]; then
TARGET_DATE=$(date +%Y-%m-%d)
elif [ -n "${1:-}" ]; then
TARGET_DATE="$1"
if ! [[ "$TARGET_DATE" =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]]; then
echo "ERROR: Invalid date format. Use YYYY-MM-DD, 'today', or no argument for yesterday."
exit 1
fi
else
TARGET_DATE=$(date -v-1d +%Y-%m-%d)
fi
log "========================================"
log "Screenpipe sync starting for: $TARGET_DATE"
log "========================================"
# ─── PREFLIGHT ────────────────────────────────────────────────────────────────
step "Preflight checks"
if [ ! -f "$DB_SRC" ]; then
log "ERROR: Source DB not found at $DB_SRC"; exit 1
fi
printf " %-20s %s (%s)\n" "Source DB:" "OK" "$(du -sh "$DB_SRC" | cut -f1)"
if [ ! -d "$NAS_MOUNT" ]; then
log "ERROR: NAS not mounted at $NAS_MOUNT"; exit 1
fi
printf " %-20s %s\n" "NAS mount:" "OK $NAS_MOUNT"
# Check if DB already synced for this date
DB_ALREADY_SYNCED=false
if [ -f "$NAS_DB" ]; then
EXISTING=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';" 2>/dev/null || echo "0")
if [ "$EXISTING" -gt "0" ]; then
log "Date $TARGET_DATE already has $EXISTING frames in archive — skipping DB sync"
DB_ALREADY_SYNCED=true
else
printf " %-20s %s (%s)\n" "Archive DB:" "exists" "$(du -sh "$NAS_DB" | cut -f1)"
fi
else
printf " %-20s %s\n" "Archive DB:" "will be created"
fi
# Source data dir for this date
DATA_SRC="$HOME/.screenpipe/data/data/$TARGET_DATE"
if [ -d "$DATA_SRC" ]; then
DATA_SIZE=$(du -sh "$DATA_SRC" | cut -f1)
DATA_FILES=$(ls "$DATA_SRC" | wc -l | tr -d ' ')
printf " %-20s %s (%s files, %s)\n" "Data dir:" "OK" "$DATA_FILES" "$DATA_SIZE"
else
printf " %-20s %s\n" "Data dir:" "not found — skipping file copy"
fi
# ─── DB SYNC ──────────────────────────────────────────────────────────────────
if [ "$DB_ALREADY_SYNCED" = false ]; then
# ─── COUNT SOURCE ROWS ────────────────────────────────────────────────────
step "Counting source rows for $TARGET_DATE"
SRC_FRAMES=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';")
SRC_ELEMENTS=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
SRC_UI=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';")
SRC_OCR=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
SRC_MEETINGS=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM meetings WHERE date(meeting_start) = '$TARGET_DATE';")
printf " %-20s %s\n" "frames:" "$SRC_FRAMES"
printf " %-20s %s\n" "elements:" "$SRC_ELEMENTS"
printf " %-20s %s\n" "ui_events:" "$SRC_UI"
printf " %-20s %s\n" "ocr_text:" "$SRC_OCR"
printf " %-20s %s\n" "meetings:" "$SRC_MEETINGS"
if [ "$SRC_FRAMES" -eq "0" ]; then
log "No frames found for $TARGET_DATE — skipping DB sync"
DB_ALREADY_SYNCED=true
fi
fi
if [ "$DB_ALREADY_SYNCED" = false ]; then
# ─── INIT TABLES ──────────────────────────────────────────────────────────
step "Initialising tables, indexes, FTS"
run_sqlite_heredoc "creating tables" "
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
DETACH nas;
"
run_sqlite_heredoc "creating indexes" "
ATTACH '$NAS_DB' AS nas;
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
CREATE INDEX IF NOT EXISTS nas.idx_elements_frame_id ON elements(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_elements_frame_src_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_timestamp ON ui_events(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_app_name ON ui_events(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_frame_id ON ui_events(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_ocr_text_frame_id ON ocr_text(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_meetings_start ON meetings(meeting_start);
CREATE INDEX IF NOT EXISTS nas.idx_video_chunks_device ON video_chunks(device_name);
DETACH nas;
"
run_sqlite_heredoc "creating FTS tables" "
ATTACH '$NAS_DB' AS nas;
CREATE VIRTUAL TABLE IF NOT EXISTS nas.elements_fts USING fts5(
text, role, frame_id UNINDEXED,
content='elements', content_rowid='id', tokenize='unicode61'
);
CREATE VIRTUAL TABLE IF NOT EXISTS nas.frames_fts USING fts5(
full_text, app_name, window_name, browser_url, id UNINDEXED,
tokenize='unicode61'
);
CREATE VIRTUAL TABLE IF NOT EXISTS nas.ui_events_fts USING fts5(
text_content,
app_name,
window_title,
element_name,
content='ui_events',
content_rowid='id',
tokenize='unicode61'
);
DETACH nas;
"
# ─── SYNC DATA ────────────────────────────────────────────────────────────
step "Syncing data for $TARGET_DATE"
run_sqlite_heredoc "video_chunks" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.video_chunks
SELECT * FROM main.video_chunks
WHERE id IN (
SELECT DISTINCT video_chunk_id FROM main.frames
WHERE date(timestamp) = '$TARGET_DATE' AND video_chunk_id IS NOT NULL
);
DETACH nas;
"
run_sqlite_heredoc "frames ($SRC_FRAMES rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "ocr_text ($SRC_OCR rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.ocr_text
SELECT o.* FROM main.ocr_text o
JOIN main.frames f ON o.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "ui_events ($SRC_UI rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.ui_events
SELECT * FROM main.ui_events WHERE date(timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "elements ($SRC_ELEMENTS rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "meetings ($SRC_MEETINGS rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.meetings
SELECT * FROM main.meetings WHERE date(meeting_start) = '$TARGET_DATE';
DETACH nas;
"
# ─── FTS UPDATE ───────────────────────────────────────────────────────────
step "Updating FTS indexes"
run_sqlite_heredoc "elements_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.elements_fts(rowid, text, role)
SELECT e.id, e.text, e.role
FROM nas.elements e
JOIN nas.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE'
AND e.text IS NOT NULL;
DETACH nas;
"
run_sqlite_heredoc "frames_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.frames_fts(rowid, full_text, app_name, window_name, browser_url, id)
SELECT id, full_text, app_name, window_name, browser_url, id
FROM nas.frames
WHERE date(timestamp) = '$TARGET_DATE'
AND full_text IS NOT NULL;
DETACH nas;
"
run_sqlite_heredoc "ui_events_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.ui_events_fts(rowid, text_content, app_name, window_title, element_name)
SELECT id, text_content, app_name, window_title, element_name
FROM nas.ui_events
WHERE date(timestamp) = '$TARGET_DATE'
AND text_content IS NOT NULL;
DETACH nas;
"
# ─── VERIFY DB ────────────────────────────────────────────────────────────
step "Verifying DB"
V_FRAMES=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';")
V_ELEMENTS=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
V_UI=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';")
V_OCR=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
V_MEETINGS=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM meetings WHERE date(meeting_start)= '$TARGET_DATE';")
check "frames" "$V_FRAMES" "$SRC_FRAMES"
check "elements" "$V_ELEMENTS" "$SRC_ELEMENTS"
check "ui_events" "$V_UI" "$SRC_UI"
check "ocr_text" "$V_OCR" "$SRC_OCR"
check "meetings" "$V_MEETINGS" "$SRC_MEETINGS"
fi
# ─── COPY DATA FOLDER ─────────────────────────────────────────────────────────
# Always runs regardless of DB sync status
step "Copying data folder for $TARGET_DATE"
if [ -d "$DATA_SRC" ]; then
mkdir -p "$NAS_DATA/$TARGET_DATE"
RSYNC_START=$(date +%s)
printf " %-36s " "rsync $TARGET_DATE/ → NAS"
rsync -a --ignore-existing \
"$DATA_SRC/" \
"$NAS_DATA/$TARGET_DATE/" \
2>>"$LOG_FILE"
RSYNC_DUR=$(( $(date +%s) - RSYNC_START ))
COPIED_FILES=$(ls "$NAS_DATA/$TARGET_DATE" | wc -l | tr -d ' ')
SRC_FILES=$(ls "$DATA_SRC" | wc -l | tr -d ' ')
COPIED_SIZE=$(du -sh "$NAS_DATA/$TARGET_DATE" | cut -f1)
if [ "$COPIED_FILES" -eq "$SRC_FILES" ]; then
printf "\r %-36s ✓ %dm%02ds (%s files, %s)\n" \
"rsync $TARGET_DATE/ → NAS" \
"$(( RSYNC_DUR / 60 ))" "$(( RSYNC_DUR % 60 ))" \
"$COPIED_FILES" "$COPIED_SIZE" | tee -a "$LOG_FILE"
else
printf "\r %-36s ✗ %s / %s files\n" \
"rsync $TARGET_DATE/ → NAS" "$COPIED_FILES" "$SRC_FILES" | tee -a "$LOG_FILE"
fi
else
printf " %-36s %s\n" "rsync $TARGET_DATE/ → NAS" "skipped (no source dir)"
fi
# ─── SUMMARY ──────────────────────────────────────────────────────────────────
TOTAL_ELAPSED=$(( $(date +%s) - SCRIPT_START ))
DB_SIZE=$(du -sh "$NAS_DB" | cut -f1)
echo ""
log "Archive DB size: $DB_SIZE"
log "Total time: $(( TOTAL_ELAPSED / 60 ))m$(( TOTAL_ELAPSED % 60 ))s"
log "Sync complete for $TARGET_DATE"
log "========================================"
lets add ability to jump…, Editor Group 2
Problems (⇧⌘M)
PROBLEMS
Output (⇧⌘U)
OUTPUT
Debug Console (⇧⌘Y)
DEBUG CONSOLE
Terminal (⌃`)
TERMINAL
Ports
PORTS
remote SSH: nas
SSH: nas
screenpipe (Git) - master*, Checkout Branch/Tag...
master*
screenpipe (Git) - Synchronize Changes
No Problems
0
0
No Ports Forwarded
0
Notifications
Signed out
Signed out
Shell Script
Editor Language Status: $(copilot) No inline suggestion available, Inline suggestions
LF
UTF-8
Spaces: 2
Ln 320, Col 36
Screen Reader Optimized
git-commit Lukas Kovalik (23 hours ago)
Lukas Kovalik (23 hours ago)
Info: Downloading VS Code Server...
lets add ability to jump fro,m search to timeline so we can see the exact screen (also based on monitor and time
Session history
New session
Message actions
This session is being continued from a previous conversation that ran out of context. The summary below covers the earlier portion of the conversation.
Summary:
1. Primary Request and Intent:
The user has been developing a Screenpipe dashboard on a Synology NAS. Requests in chronological order:
- **Q1**: Are db.sqlite-shm and db.sqlite-wal used? → Explained WAL mode; cleaned up files.
- **Q2**: AND combination search (term1 + term2 must both appear) → Added "AND also" input field.
- **Q3**: Explain UTC time issue, show date in results, make Only/Skip apps use multiselect → Implemented all three.
- **Q4**: Point sqlite-web at archive.db, add second sqlite-web for db.sqlite → Updated docker-compose.yml, added two services on ports 8767/8768.
- **Q5**: "still the same" (container not picking up config) → Explained `up -d` vs `restart`.
- **Q6**: Add git, push to gitea.com/lakylak/screenpipe.git → Initialized repo, committed, pushed.
- **Q7**: Add Timetable tab with video playback and timeline → Full implementation with click-to-seek, auto-advancing chunks, legend.
- **Q8**: Add scroll/zoom on timeline, jump to specific time, better awareness → Implemented zoom (1×–32×), scrollable timeline, overview minimap, viewport indicator, Jump-to-time input, screenshot thumbnail.
- **Q9 (most recent)**: Make playing speed more than 8×, fix speed not working, show position on timeline → CSS fix done (wider playhead + time label style), remainder in progress.
2. Key Technical Concepts:
- **SQLite WAL mode**: db.sqlite-shm and db.sqlite-wal are WAL companion files; cleaned with `PRAGMA wal_checkpoint(TRUNCATE)`.
- **SQLite FTS5**: Space-separated terms = AND; `MATCH 'term1 term2'` requires both; OR requires explicit `OR` keyword.
- **FastAPI**: Python backend with route handlers in main.py, consumers pattern for DB queries.
- **Docker Compose**: App image is built (code baked in), not volume-mounted → requires `build` + `up -d` for code changes. `restart` doesn't re-read compose file — need `up -d`.
- **sqlite-web**: Read-only flag `-r`, pre-built image, no rebuild needed for config changes.
- **Video playback**: screenpipe records at 0.1–0.3 fps (timelapse). `seek = offset_index / fps` gives seconds into video chunk. ~245 chunks/day across 2 monitors. Videos may be encoded at standard fps making them very short at native speed.
- **Timeline rendering**: App-colored segments built by merging consecutive frames with same `app_name`. Percentage positions: `((ts - dayStart) / span * 100)%`.
- **Zoom/scroll**: Inner div width = `zoom × 100%`, outer wrapper has `overflow-x:auto`. Playhead position stays as % of inner div, which is correct at all zoom levels.
- **Timer-based speed**: For speed > 2×, browser `playbackRate` is unreliable on low-FPS video; correct approach is `setInterval` advancing `video.currentTime` by `speed * interval_ms / 1000` seconds per tick.
- **UTC vs local time**: Backend treats `time_from`/`time_to` as UTC. Frontend converts with `localTimeToUtc()` before sending.
- **Git**: `#recycle/` in .gitignore treated as comment — must escape as `\#recycle/`.
3. Files and Code Sections:
- **`/volume1/screenpipe/app/main.py`**
- Added `/api/apps` endpoint (all unique app names from frames table)
- Added `/api/timetable` endpoint (frames + video URLs + screenshot URLs per device per date)
- `/api/timetable` response structure: `{frames: [{ts, app, win, video_url, seek, screenshot_url}], devices: [...], device: "..."}`
- Key snippet:
```python
@app.get("/api/timetable"
)
async def timetable_data(d: str | None = Query(None), device: str | None = Query(None)):
...
rows = conn.execute(f"""
SELECT f.timestamp AS ts, f.app_name AS app, f.window_name AS win,
f.offset_index, f.snapshot_path,
vc.file_path AS video_path, vc.fps AS video_fps
FROM frames f
JOIN video_chunks vc ON f.video_chunk_id = vc.id
WHERE f.timestamp >= ? AND f.timestamp < ?
AND f.video_chunk_id IS NOT NULL {dev_clause}
ORDER BY f.timestamp
""", params).fetchall()
# seek = offset_index / fps, screenshot_url from _snapshot_to_url(snapshot_path)
```
- **`/volume1/screenpipe/app/docker-compose.yml`**
- Changed sqlite-web service name to `sqlite-web-archive` → port 8767 → `/data/archive.db`
- Added `sqlite-web-live` → port 8768 → `/data/db.sqlite`
- screenpipe-app: port 8766, `DB_PATH: /data/db.sqlite`, `TZ: Europe/Sofia`
- **`/volume1/screenpipe/app/static/index.html`** (single large file with all CSS/HTML/JS)
- **Search enhancements**:
- Added `id="sq2"` "AND also" input between search-row1 and search-row2
- Replaced `sOnlyApps`/`sSkipApps` text inputs with custom multiselect components (`id="msOnlyApps"`, `id="msSkipApps"`)
- Updated `buildUrl()` to combine `q + " " + q2` and convert times with `localTimeToUtc()`
- Added `fmtDateTime(ts)` showing "Apr 20 14:08" format
- Added `localTimeToUtc(timeStr)` converting local HH:MM to UTC
- Multiselect state: `const _msState = { msOnlyApps: new Set(), msSkipApps: new Set() }`
- **Timetable tab** (new page):
- Tab button added between Work Report and AI Summary
- `showPage` array updated: `['activity','search','audio','report','timetable','summary']`
- `refresh()` calls `loadTimetable()` when on timetable page
- **Timetable CSS** (key styles):
```css
.tt-scroll-wrap { overflow-x:auto; ... scrollbar-width:thin; }
.tt-inner { position:relative; height:52px; } /* width set dynamically */
.tt-playhead { position:absolute; top:0; width:3px; height:36px; background:white; box-shadow:0 0 8px rgba(255,255,255,.9); z-index:10; pointer-events:none; display:none; }
.tt-playhead-time { position:absolute; top:2px; font-size:9px; font-weight:600; color:white; background:rgba(0,0,0,.75); padding:1px 4px; border-radius:2px; white-space:nowrap; transform:translateX(-50%); z-index:12; pointer-events:none; display:none; }
.tt-overview-wrap { position:relative; height:14px; ... cursor:pointer; }
.tt-overview-vp { position:absolute; background:rgba(255,255,255,0.12); border:1px solid rgba(255,255,255,0.4); }
```
- **Timetable JS state variables**:
```javascript
let _ttFrames = [], _ttChunks = [], _ttCurChunk = -1;
let _ttDayStart = 0, _ttDayEnd = 0, _ttZoom = 1;
const _ttAppColors = {};
const TT_ZOOMS = [1, 2, 4, 8, 16, 32];
const TT_TICK_MIN = {1:30, 2:15, 4:10, 8:5, 16:2, 32:1};
```
- **Key JS functions**:
- `loadTimetable()` — fetches `/api/timetable`, groups chunks, renders
- `ttZoom(dir)` — changes zoom level, updates inner width, re-renders ticks, scrolls to playhead
- `ttTimelineClick(e)` — uses `inner.getBoundingClientRect()` (works correctly when scrolled)
- `ttOverviewClick(e)` — scrolls timeline + seeks video
- `ttUpdateOverviewVp()` — updates white viewport rect using `wrap.scrollLeft / inner.scrollWidth`
- `ttJumpToTime()` — parses time input, converts to ms, calls `ttSeekToMs`
- `ttSeekToMs(tsMs)` — binary-searches nearest frame, loads chunk, seeks video
- `_ttScrollToPlayhead(force)` — scrolls wrap so playhead stays at ~35% from left when Follow is checked
- `_ttMovePlayhead(tsMs)` — sets `ph.style.left` as percentage, calls `_ttScrollToPlayhead`
- `_ttShowNow(f)` — updates screenshot thumbnail + now-text div
- `ttSyncBtn()` — syncs play/pause button text
- Keyboard: Space=play/pause, ←/→=±10s, Ctrl+←/→=±30s, +/-=zoom
- **`/volume1/screenpipe/.gitignore`**
```
*.db, *.sqlite, *.sqlite-shm, *.sqlite-wal
data/, \#recycle/,
@eaDir/
app_settings.json, app/.env
__pycache__/, *.pyc, .DS_Store
```
4. Errors and Fixes:
- **`#recycle/` in .gitignore treated as comment**: `#` starts a comment in .gitignore. Fixed by escaping: `\#recycle/`. Also had to `git rm --cached "#recycle/desktop.ini"` to unstage it.
- **`sudo docker compose restart sqlite-web` didn't apply config change**: `restart` reuses existing container config, doesn't re-read compose file. Fix: `sudo docker compose up -d` recreates containers with new config.
- **Orphan container holding port 8767**: Old `screenpipe-sqlweb` container still running after rename. Fix: `sudo docker compose up -d --remove-orphans`.
- **`sudo docker` not accessible from Claude Code**: Interactive sudo required. User runs commands in NAS terminal.
- **`git config --global --add safe.directory /volume1/screenpipe`**: Required due to dubious ownership of NAS volume directory.
5. Problem Solving:
- **Time zone confusion in search**: Backend uses UTC for time_from/time_to; frontend displays local time. Solved by `localTimeToUtc()` converting before API call, and showing date+time in results.
- **sqlite-web not showing April 17–21 data**: Container was pointing at db.sqlite (old config), not archive.db. Fixed by updating docker-compose.yml + `up -d`.
- **Video playback speed**: Browser `video.playbackRate` is capped (~16× max in Chrome) and performs poorly for very low FPS (0.1–0.3 fps) screenpipe videos. Each chunk may only be 1–2 seconds of wall-clock encoded video, playing through instantly. Solution: implement timer-based frame-jumping for speed > 2× (in progress).
- **Playhead visibility**: White 2px line was hard to see. Fixed CSS to 3px width + stronger box-shadow + added `.tt-playhead-time` overlay label style.
6. All User Messages:
- "do we use db.sqlite-shm and db.sqlite-wal for anything right now? [image of search UI] Lets add ability to search with combination... Explain how does the search work time seems to work in utc maybe display date next to the time in results. Make only apps and skip apps multiselect with all available apps."
- "doi I need to restart?"
- "there is sudo docker compose"
- "no still the same"
- "add git. I have created gitea repo https://gitea.com/lakylak/screenpipe.git"
- "just do it" (re: git push)
- "how to make sure data in :8767 are accurate and point to archive.db"
- "I can't see older than 16th there should 21st of april. In http://[IP_ADDRESS]:8766/ I can see all but not on sqlite viewer http://[IP_ADDRESS]:8767"
- "ok lets add additional port to read db.sqlite, I would like to see the structure of official db that reads db.sqlite db and one for archive"
- [docker compose output showing orphan container error]
- "looks great. I want to have ability to scroll left and right and also to jump to specific time. I want to be more aware to what I see. Still it should be fast"
- "lets make the playing speed more than 8x"
- "still playing speed is not showing properly still just in one second. also I want to see in timeline where I am"
7. Pending Tasks:
- **Playback speed fix** (in progress, partially done):
- Add `<div class="tt-playhead-time" id="ttPlayheadTime"></div>` inside `ttInner` HTML
- Implement `_ttStartSpeedTimer(speed)` / `_ttStopSpeedTimer()` / `ttSetSpeed(speed)` functions
- Update speed select `onchange` to call `ttSetSpeed(+this.value)`
- Add 64× option to speed select
- Update `_ttMovePlayhead` to also update `ttPlayheadTime` label
- Update `ttSyncBtn` to start/stop timer based on play state + speed
- Update `ttNextChunk` and `ttSeekToMs` to stop timer (restarted by onplay → ttSyncBtn)
- Rebuild Docker image after changes
8. Current Work:
Working on fixing two issues with the Timetable tab:
1. **Playback speed**: `video.playbackRate` doesn't work well for low-FPS screenpipe videos. The plan is to implement a `setInterval`-based frame-jumper for speed > 2× that advances `video.currentTime` by `speed * intervalMs / 1000` every 100–200ms, bypassing browser playbackRate limits.
2. **Timeline position indicator**: Playhead not prominent enough.
**CSS already changed** in `/volume1/screenpipe/app/static/index.html`:
```css
.tt-playhead { position:absolute; top:0; width:3px; height:36px; background:white; box-shadow:0 0 8px rgba(255,255,255,.9); z-index:10; pointer-events:none; display:none; }
.tt-playhead-time { position:absolute; top:2px; font-size:9px; font-weight:600; color:white; background:rgba(0,0,0,.75); padding:1px 4px; border-radius:2px; white-space:nowrap; transform:translateX(-50%); z-index:12; pointer-events:none; display:none; }
```
Session was interrupted by summary request after this CSS edit, mid-implementation.
9. Optional Next Step:
Continuing the fix for: "still playing speed is not showing properly still just in one second. also I want to see in timeline where I am"
The next steps in order are:
1. Add `<div class="tt-playhead-time" id="ttPlayheadTime"></div>` to the HTML inside `#ttInner` (after the existing `.tt-playhead` div)
2. Update `_ttMovePlayhead` to set `ttPlayheadTime` position and text content with `fmtTime()`
3. Add timer-based speed system to JS (new functions `_ttStartSpeedTimer`, `_ttStopSpeedTimer`, `ttSetSpeed`)
4. Update speed select's `onchange` to `ttSetSpeed(+this.value)` and add 64× option
5. Update `ttSyncBtn`, `ttNextChunk`, `ttSeekToMs` to integrate with timer
6. Rebuild: `sudo docker compose build screenpipe-app && sudo docker compose up -d screenpipe-app`
If you need specific details from before compaction (like exact code snippets, error messages, or content you generated), read the full transcript at: /home/Adm1n/.claude/projects/-volume1-screenpipe/7777f46e-1e40-4051-b4bb-f43aedd59556.jsonl
Continue the conversation from where it left off without asking the user any further questions. Resume directly — do not acknowledge the summary, do not recap what was happening, do not preface with "I'll continue" or similar. Pick up the last task as if the break never happened.
Thinking
Thinking
Bash
Find timetable speed and playhead related code
IN
grep -n "tt-playhead\|ttPlayhead\|ttInner\|_ttMovePlayhead\|ttSetSpeed\|_ttStartSpeed\|_ttStopSpeed\|ttSyncBtn\|playbackRate\|speed.*select\|spdSel\|ttSpeed" /volume1/screenpipe/app/static/index.html | head -80
Copy code to clipboard
OUT
207:.tt-playhead { position:absolute; top:0; width:3px; height:36px; background:white; box-shadow:0 0 8px rgba(255,255,255,.9); z-index:10; pointer-events:none; display:none; }
208:.tt-playhead-time { position:absolute; top:2px; font-size:9px; font-weight:600; color:white; background:rgba(0,0,0,.75); padding:1px 4px; border-radius:2px; white-space:nowrap; transform:translateX(-50%); z-index:12; pointer-events:none; display:none; }
580: <div class="tt-inner" id="ttInner" onclick="ttTimelineClick(event)">
583: <div class="tt-playhead" id="ttPlayhead"></div>
598: onpause="ttSyncBtn()"
599: onplay="ttSyncBtn()">
607: <select id="ttSpeed" onchange="document.getElementById('ttVideo').playbackRate=+this.value">
1624: document.getElementById('ttInner').style.width = '100%';
1632: document.getElementById('ttPlayhead').style.display = 'none';
1694: document.getElementById('ttInner').style.width = (_ttZoom * 100) + '%';
1700: const inner = document.getElementById('ttInner');
1710: const inner = document.getElementById('ttInner');
1718: const inner = document.getElementById('ttInner');
1750: _ttMovePlayhead(new Date(best.ts).getTime());
1772: _ttMovePlayhead(new Date(best.ts).getTime());
1791:function _ttMovePlayhead(tsMs) {
1792: const ph = document.getElementById('ttPlayhead');
1802: const ph = document.getElementById('ttPlayhead');
1805: const inner = document.getElementById('ttInner');
1819:function ttSyncBtn() {
Read
index.html
index.html
(lines 576-625)
Read
index.html
index.html
(lines 1786-1865)
Thinking
Thinking
Bash
Find chunk loading and playhead update functions
IN
grep -n "ttUpdatePlayhead\|ttNextChunk\|ttLoadChunk\|_ttCurChunk\|_ttChunks\|_ttFrames" /volume1/screenpipe/app/static/index.html | head -50
Copy code to clipboard
OUT
596: onended="ttNextChunk()"
597: ontimeupdate="ttUpdatePlayhead()"
1569:let _ttFrames = [];
1570:let _ttChunks = [];
1571:let _ttCurChunk = -1;
1607: _ttFrames = data.frames;
1609: for (const f of _ttFrames) {
1613: _ttChunks = [...chunkMap.values()];
1614: _ttCurChunk = -1;
1616: _ttDayStart = new Date(_ttFrames[0].ts).getTime();
1617: _ttDayEnd = new Date(_ttFrames[_ttFrames.length - 1].ts).getTime();
1620: for (const f of _ttFrames) _ttColor(f.app);
1640: for (const f of _ttFrames) {
1736: if (!_ttFrames.length) return;
1737: let best = _ttFrames[0], minDiff = Infinity;
1738: for (const f of _ttFrames) {
1742: const ci = _ttChunks.findIndex(ch => ch[0].video_url === best.video_url);
1744: _ttCurChunk = ci;
1753:function ttNextChunk() {
1754: if (_ttCurChunk + 1 >= _ttChunks.length) return;
1755: _ttCurChunk++;
1757: video.src = _ttChunks[_ttCurChunk][0].video_url;
1762:function ttUpdatePlayhead() {
1764: if (_ttCurChunk < 0 || _ttCurChunk >= _ttChunks.length) return;
1765: const chunk = _ttChunks[_ttCurChunk];
Read
index.html
index.html
(lines 1754-1793)
Thinking
Thinking
Read
index.html
index.html
(lines 1701-1760)
Thinking
Thinking
Read
index.html
index.html
(lines 1561-1640)
Thinking
Thinking
Bash
Find time formatting functions
IN
grep -n "function fmtTime\|function fmtDate\|function _fmt\|localTimeToUtc\|fmtDateTime" /volume1/screenpipe/app/static/index.html | head -20
Copy code to clipboard
OUT
1088: if (tf) url += `&time_from=${localTimeToUtc(tf)}`;
1089: if (tt) url += `&time_to=${localTimeToUtc(tt)}`;
1153: let meta = `<span style="color:var(--muted)">${fmtDateTime(r.timestamp)}</span>${srcBadge}`;
1166: meta = `<span style="color:var(--muted)">${fmtDateTime(r.timestamp)}</span>${srcBadge} <span class="badge ${r.is_input_device?'mic':'sys'}">${r.is_input_device?'MIC':'SYS'}</span>`;
1307:function fmtTime(ts) {
1312:function fmtDateTime(ts) {
1320:function localTimeToUtc(timeStr) {
1778:function _fmtSec(s) {
1788: `${fmtDateTime(f.ts)} · ${f.app}${f.win ? ' / ' + f.win : ''}`;
Read
index.html
index.html
(lines 1308-1327)
Thinking
Thinking
Now I have everything I need. I'll implement the frame-by-frame timer system that replaces
video.playbackRate
with wall-clock accurate playback, plus add the playhead time label. Let me make the changes:
Edit
index.html
index.html
Added 1 line...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Explorer (⇧⌘E)","depth":19,"bounds":{"left":0.0,"top":0.047885075,"width":0.015957447,"height":0.03830806},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":true},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.057462092,"width":0.007978723,"height":0.01915403},"role_description":"text"},{"role":"AXRadioButton","text":"Search (⇧⌘F)","depth":19,"bounds":{"left":0.0,"top":0.08619314,"width":0.015957447,"height":0.03830806},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.09577015,"width":0.007978723,"height":0.01915403},"role_description":"text"},{"role":"AXRadioButton","text":"Source Control (⌃⇧G) - 2 pending changes","depth":19,"bounds":{"left":0.0,"top":0.1245012,"width":0.015957447,"height":0.03830806},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.13407822,"width":0.007978723,"height":0.01915403},"role_description":"text"},{"role":"AXStaticText","text":"2","depth":22,"bounds":{"left":0.009640957,"top":0.1452514,"width":0.0019946808,"height":0.008778931},"role_description":"text"},{"role":"AXRadioButton","text":"Run and Debug (⇧⌘D)","depth":19,"bounds":{"left":0.0,"top":0.16280925,"width":0.015957447,"height":0.03830806},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.17238627,"width":0.007978723,"height":0.01915403},"role_description":"text"},{"role":"AXRadioButton","text":"Remote Explorer","depth":19,"bounds":{"left":0.0,"top":0.20111732,"width":0.015957447,"height":0.03830806},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.21069433,"width":0.007978723,"height":0.01915403},"role_description":"text"},{"role":"AXRadioButton","text":"Extensions (⇧⌘X) - 2 require update, 1 requires restart","depth":19,"bounds":{"left":0.0,"top":0.23942538,"width":0.015957447,"height":0.03830806},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.2490024,"width":0.007978723,"height":0.01915403},"role_description":"text"},{"role":"AXStaticText","text":"3","depth":22,"bounds":{"left":0.00930851,"top":0.2601756,"width":0.0023271276,"height":0.008778931},"role_description":"text"},{"role":"AXRadioButton","text":"Claude Code","depth":19,"bounds":{"left":0.0,"top":0.27773345,"width":0.015957447,"height":0.03830806},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Containers","depth":19,"bounds":{"left":0.0,"top":0.3160415,"width":0.015957447,"height":0.03830806},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"EXPLORER","depth":17,"bounds":{"left":0.022606382,"top":0.047885075,"width":0.018949468,"height":0.02793296},"role_description":"heading"},{"role":"AXStaticText","text":"EXPLORER","depth":18,"bounds":{"left":0.022606382,"top":0.056664005,"width":0.018949468,"height":0.0103751},"role_description":"text"},{"role":"AXButton","text":"Explorer Section: screenpipe [SSH: nas]","depth":21,"bounds":{"left":0.015957447,"top":0.07581804,"width":0.09940159,"height":0.017557861},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.01662234,"top":0.07821229,"width":0.005319149,"height":0.012769354},"role_description":"text"},{"role":"AXHeading","text":"Explorer Section: screenpipe [SSH: nas]","depth":22,"bounds":{"left":0.022606382,"top":0.07581804,"width":0.045877658,"height":0.017557861},"role_description":"heading"},{"role":"AXStaticText","text":"SCREENPIPE [SSH: NAS]","depth":23,"bounds":{"left":0.022606382,"top":0.079010375,"width":0.045877658,"height":0.0103751},"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.019614361,"top":0.09577015,"width":0.005319149,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"#recycle","depth":27,"bounds":{"left":0.025930852,"top":0.09577015,"width":0.017287234,"height":0.011971269},"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.019614361,"top":0.11332801,"width":0.005319149,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"app","depth":27,"bounds":{"left":0.025930852,"top":0.11332801,"width":0.0076462766,"height":0.011971269},"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.10605053,"top":0.11412609,"width":0.004654255,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.019614361,"top":0.13088587,"width":0.005319149,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"data","depth":27,"bounds":{"left":0.025930852,"top":0.13088587,"width":0.008976064,"height":0.011971269},"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.019614361,"top":0.14844373,"width":0.005319149,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"pipes","depth":27,"bounds":{"left":0.025930852,"top":0.14844373,"width":0.010970744,"height":0.011971269},"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.01861702,"top":0.16440542,"width":0.0063164895,"height":0.015163607},"role_description":"text"},{"role":"AXStaticText","text":".gitignore","depth":27,"bounds":{"left":0.025930852,"top":0.1660016,"width":0.018949468,"height":0.011971269},"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.01861702,"top":0.1819633,"width":0.0063164895,"height":0.015163607},"role_description":"text"},{"role":"AXStaticText","text":"app_settings.json","depth":27,"bounds":{"left":0.025930852,"top":0.18355946,"width":0.03557181,"height":0.011971269},"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.01861702,"top":0.19952115,"width":0.0076462766,"height":0.015163607},"role_description":"text"},{"role":"AXStaticText","text":"archive.db","depth":27,"bounds":{"left":0.025930852,"top":0.20111732,"width":0.020944148,"height":0.011971269},"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.01861702,"top":0.21707901,"width":0.0076462766,"height":0.015163607},"role_description":"text"},{"role":"AXStaticText","text":"db.sqlite","depth":27,"bounds":{"left":0.025930852,"top":0.21867518,"width":0.017287234,"height":0.011971269},"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.01861702,"top":0.23463687,"width":0.0063164895,"height":0.015163607},"role_description":"text"},{"role":"AXStaticText","text":"screenpipe_sync.sh","depth":27,"bounds":{"left":0.025930852,"top":0.23623304,"width":0.039893616,"height":0.011971269},"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.01861702,"top":0.25219473,"width":0.0076462766,"height":0.015163607},"role_description":"text"},{"role":"AXStaticText","text":"screenpipe.db","depth":27,"bounds":{"left":0.025930852,"top":0.25379092,"width":0.028590426,"height":0.011971269},"role_description":"text"},{"role":"AXButton","text":"Outline Section","depth":21,"bounds":{"left":0.015957447,"top":0.9473264,"width":0.09940159,"height":0.017557861},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.01662234,"top":0.9497207,"width":0.005319149,"height":0.012769354},"role_description":"text"},{"role":"AXHeading","text":"OUTLINE","depth":22,"bounds":{"left":0.022606382,"top":0.9473264,"width":0.01662234,"height":0.017557861},"role_description":"heading"},{"role":"AXStaticText","text":"OUTLINE","depth":23,"bounds":{"left":0.022606382,"top":0.95131683,"width":0.01662234,"height":0.0103751},"role_description":"text"},{"role":"AXButton","text":"Timeline Section","depth":21,"bounds":{"left":0.015957447,"top":0.9648843,"width":0.09940159,"height":0.017557861},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.01662234,"top":0.96727854,"width":0.005319149,"height":0.012769354},"role_description":"text"},{"role":"AXHeading","text":"TIMELINE","depth":22,"bounds":{"left":0.022606382,"top":0.9648843,"width":0.01761968,"height":0.017557861},"role_description":"heading"},{"role":"AXStaticText","text":"TIMELINE","depth":23,"bounds":{"left":0.022606382,"top":0.9688747,"width":0.01761968,"height":0.0103751},"role_description":"text"},{"role":"AXRadioButton","text":"app_settings.json, Editor Group 1","depth":28,"bounds":{"left":0.11569149,"top":0.047885075,"width":0.055851065,"height":0.02793296},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe_sync.sh, Editor Group 1","depth":28,"bounds":{"left":0.17154256,"top":0.047885075,"width":0.06050532,"height":0.02793296},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXRadioButton","text":"db.sqlite-shm, preview, Editor Group 1","depth":28,"bounds":{"left":0.23171543,"top":0.047885075,"width":0.04886968,"height":0.02793296},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"#!/bin/bash\n# screenpipe_sync.sh\n# Syncs Screenpipe SQLite data to a NAS archive database (append-only, no deletions).\n# Also copies the day's video/frame data folder to the NAS.\n#\n# Usage:\n# ./screenpipe_sync.sh # syncs yesterday (default)\n# ./screenpipe_sync.sh 2026-04-15 # syncs a specific date\n# ./screenpipe_sync.sh today # syncs today so far\n#\n# Cron example (runs at 3am daily):\n# 0 3 * * * /Users/lukas/.screenpipe/screenpipe_sync.sh >> /Users/lukas/.screenpipe/sync.log 2>&1\n\nset -euo pipefail\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\nDB_SRC=\"${SCREENPIPE_DB:-$HOME/.screenpipe/db.sqlite}\"\nNAS_MOUNT=\"${NAS_MOUNT:-/Volumes/Test/screenpipe}\"\nNAS_DB=\"$NAS_MOUNT/archive.db\"\nNAS_DATA=\"$NAS_MOUNT/data\"\nLOG_FILE=\"$HOME/.screenpipe/sync.log\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\nSCRIPT_START=$(date +%s)\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── DATE ARGUMENT ────────────────────────────────────────────────────────────\nif [ \"${1:-}\" = \"today\" ]; then\n TARGET_DATE=$(date +%Y-%m-%d)\nelif [ -n \"${1:-}\" ]; then\n TARGET_DATE=\"$1\"\n if ! [[ \"$TARGET_DATE\" =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]]; then\n echo \"ERROR: Invalid date format. Use YYYY-MM-DD, 'today', or no argument for yesterday.\"\n exit 1\n fi\nelse\n TARGET_DATE=$(date -v-1d +%Y-%m-%d)\nfi\n\nlog \"========================================\"\nlog \"Screenpipe sync starting for: $TARGET_DATE\"\nlog \"========================================\"\n\n# ─── PREFLIGHT ────────────────────────────────────────────────────────────────\nstep \"Preflight checks\"\n\nif [ ! -f \"$DB_SRC\" ]; then\n log \"ERROR: Source DB not found at $DB_SRC\"; exit 1\nfi\nprintf \" %-20s %s (%s)\\n\" \"Source DB:\" \"OK\" \"$(du -sh \"$DB_SRC\" | cut -f1)\"\n\nif [ ! -d \"$NAS_MOUNT\" ]; then\n log \"ERROR: NAS not mounted at $NAS_MOUNT\"; exit 1\nfi\nprintf \" %-20s %s\\n\" \"NAS mount:\" \"OK $NAS_MOUNT\"\n\n# Check if DB already synced for this date\nDB_ALREADY_SYNCED=false\nif [ -f \"$NAS_DB\" ]; then\n EXISTING=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';\" 2>/dev/null || echo \"0\")\n if [ \"$EXISTING\" -gt \"0\" ]; then\n log \"Date $TARGET_DATE already has $EXISTING frames in archive — skipping DB sync\"\n DB_ALREADY_SYNCED=true\n else\n printf \" %-20s %s (%s)\\n\" \"Archive DB:\" \"exists\" \"$(du -sh \"$NAS_DB\" | cut -f1)\"\n fi\nelse\n printf \" %-20s %s\\n\" \"Archive DB:\" \"will be created\"\nfi\n\n# Source data dir for this date\nDATA_SRC=\"$HOME/.screenpipe/data/data/$TARGET_DATE\"\nif [ -d \"$DATA_SRC\" ]; then\n DATA_SIZE=$(du -sh \"$DATA_SRC\" | cut -f1)\n DATA_FILES=$(ls \"$DATA_SRC\" | wc -l | tr -d ' ')\n printf \" %-20s %s (%s files, %s)\\n\" \"Data dir:\" \"OK\" \"$DATA_FILES\" \"$DATA_SIZE\"\nelse\n printf \" %-20s %s\\n\" \"Data dir:\" \"not found — skipping file copy\"\nfi\n\n# ─── DB SYNC ──────────────────────────────────────────────────────────────────\nif [ \"$DB_ALREADY_SYNCED\" = false ]; then\n\n # ─── COUNT SOURCE ROWS ────────────────────────────────────────────────────\n step \"Counting source rows for $TARGET_DATE\"\n\n SRC_FRAMES=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';\")\n SRC_ELEMENTS=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');\")\n SRC_UI=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';\")\n SRC_OCR=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');\")\n SRC_MEETINGS=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM meetings WHERE date(meeting_start) = '$TARGET_DATE';\")\n\n printf \" %-20s %s\\n\" \"frames:\" \"$SRC_FRAMES\"\n printf \" %-20s %s\\n\" \"elements:\" \"$SRC_ELEMENTS\"\n printf \" %-20s %s\\n\" \"ui_events:\" \"$SRC_UI\"\n printf \" %-20s %s\\n\" \"ocr_text:\" \"$SRC_OCR\"\n printf \" %-20s %s\\n\" \"meetings:\" \"$SRC_MEETINGS\"\n\n if [ \"$SRC_FRAMES\" -eq \"0\" ]; then\n log \"No frames found for $TARGET_DATE — skipping DB sync\"\n DB_ALREADY_SYNCED=true\n fi\n\nfi\n\nif [ \"$DB_ALREADY_SYNCED\" = false ]; then\n\n # ─── INIT TABLES ──────────────────────────────────────────────────────────\n step \"Initialising tables, indexes, FTS\"\n\n run_sqlite_heredoc \"creating tables\" \"\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"creating indexes\" \"\nATTACH '$NAS_DB' AS nas;\nCREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);\nCREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);\nCREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);\nCREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);\nCREATE INDEX IF NOT EXISTS nas.idx_elements_frame_id ON elements(frame_id);\nCREATE INDEX IF NOT EXISTS nas.idx_elements_frame_src_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;\nCREATE INDEX IF NOT EXISTS nas.idx_ui_events_timestamp ON ui_events(timestamp);\nCREATE INDEX IF NOT EXISTS nas.idx_ui_events_app_name ON ui_events(app_name);\nCREATE INDEX IF NOT EXISTS nas.idx_ui_events_frame_id ON ui_events(frame_id);\nCREATE INDEX IF NOT EXISTS nas.idx_ocr_text_frame_id ON ocr_text(frame_id);\nCREATE INDEX IF NOT EXISTS nas.idx_meetings_start ON meetings(meeting_start);\nCREATE INDEX IF NOT EXISTS nas.idx_video_chunks_device ON video_chunks(device_name);\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"creating FTS tables\" \"\nATTACH '$NAS_DB' AS nas;\nCREATE VIRTUAL TABLE IF NOT EXISTS nas.elements_fts USING fts5(\n text, role, frame_id UNINDEXED,\n content='elements', content_rowid='id', tokenize='unicode61'\n);\nCREATE VIRTUAL TABLE IF NOT EXISTS nas.frames_fts USING fts5(\n full_text, app_name, window_name, browser_url, id UNINDEXED,\n tokenize='unicode61'\n);\nCREATE VIRTUAL TABLE IF NOT EXISTS nas.ui_events_fts USING fts5(\n text_content,\n app_name,\n window_title,\n element_name,\n content='ui_events',\n content_rowid='id',\n tokenize='unicode61'\n);\nDETACH nas;\n\"\n\n # ─── SYNC DATA ────────────────────────────────────────────────────────────\n step \"Syncing data for $TARGET_DATE\"\n\n run_sqlite_heredoc \"video_chunks\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.video_chunks\n SELECT * FROM main.video_chunks\n WHERE id IN (\n SELECT DISTINCT video_chunk_id FROM main.frames\n WHERE date(timestamp) = '$TARGET_DATE' AND video_chunk_id IS NOT NULL\n );\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"frames ($SRC_FRAMES rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.frames\n SELECT * FROM main.frames WHERE date(timestamp) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"ocr_text ($SRC_OCR rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.ocr_text\n SELECT o.* FROM main.ocr_text o\n JOIN main.frames f ON o.frame_id = f.id\n WHERE date(f.timestamp) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"ui_events ($SRC_UI rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.ui_events\n SELECT * FROM main.ui_events WHERE date(timestamp) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"elements ($SRC_ELEMENTS rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.elements\n SELECT e.* FROM main.elements e\n JOIN main.frames f ON e.frame_id = f.id\n WHERE date(f.timestamp) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"meetings ($SRC_MEETINGS rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.meetings\n SELECT * FROM main.meetings WHERE date(meeting_start) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n # ─── FTS UPDATE ───────────────────────────────────────────────────────────\n step \"Updating FTS indexes\"\n\n run_sqlite_heredoc \"elements_fts\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT INTO nas.elements_fts(rowid, text, role)\n SELECT e.id, e.text, e.role\n FROM nas.elements e\n JOIN nas.frames f ON e.frame_id = f.id\n WHERE date(f.timestamp) = '$TARGET_DATE'\n AND e.text IS NOT NULL;\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"frames_fts\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT INTO nas.frames_fts(rowid, full_text, app_name, window_name, browser_url, id)\n SELECT id, full_text, app_name, window_name, browser_url, id\n FROM nas.frames\n WHERE date(timestamp) = '$TARGET_DATE'\n AND full_text IS NOT NULL;\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"ui_events_fts\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT INTO nas.ui_events_fts(rowid, text_content, app_name, window_title, element_name)\n SELECT id, text_content, app_name, window_title, element_name\n FROM nas.ui_events\n WHERE date(timestamp) = '$TARGET_DATE'\n AND text_content IS NOT NULL;\nDETACH nas;\n\"\n\n # ─── VERIFY DB ────────────────────────────────────────────────────────────\n step \"Verifying DB\"\n\n V_FRAMES=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';\")\n V_ELEMENTS=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');\")\n V_UI=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';\")\n V_OCR=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');\")\n V_MEETINGS=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM meetings WHERE date(meeting_start)= '$TARGET_DATE';\")\n\n check \"frames\" \"$V_FRAMES\" \"$SRC_FRAMES\"\n check \"elements\" \"$V_ELEMENTS\" \"$SRC_ELEMENTS\"\n check \"ui_events\" \"$V_UI\" \"$SRC_UI\"\n check \"ocr_text\" \"$V_OCR\" \"$SRC_OCR\"\n check \"meetings\" \"$V_MEETINGS\" \"$SRC_MEETINGS\"\n\nfi\n\n# ─── COPY DATA FOLDER ─────────────────────────────────────────────────────────\n# Always runs regardless of DB sync status\nstep \"Copying data folder for $TARGET_DATE\"\n\nif [ -d \"$DATA_SRC\" ]; then\n mkdir -p \"$NAS_DATA/$TARGET_DATE\"\n RSYNC_START=$(date +%s)\n printf \" %-36s \" \"rsync $TARGET_DATE/ → NAS\"\n rsync -a --ignore-existing \\\n \"$DATA_SRC/\" \\\n \"$NAS_DATA/$TARGET_DATE/\" \\\n 2>>\"$LOG_FILE\"\n RSYNC_DUR=$(( $(date +%s) - RSYNC_START ))\n COPIED_FILES=$(ls \"$NAS_DATA/$TARGET_DATE\" | wc -l | tr -d ' ')\n SRC_FILES=$(ls \"$DATA_SRC\" | wc -l | tr -d ' ')\n COPIED_SIZE=$(du -sh \"$NAS_DATA/$TARGET_DATE\" | cut -f1)\n if [ \"$COPIED_FILES\" -eq \"$SRC_FILES\" ]; then\n printf \"\\r %-36s ✓ %dm%02ds (%s files, %s)\\n\" \\\n \"rsync $TARGET_DATE/ → NAS\" \\\n \"$(( RSYNC_DUR / 60 ))\" \"$(( RSYNC_DUR % 60 ))\" \\\n \"$COPIED_FILES\" \"$COPIED_SIZE\" | tee -a \"$LOG_FILE\"\n else\n printf \"\\r %-36s ✗ %s / %s files\\n\" \\\n \"rsync $TARGET_DATE/ → NAS\" \"$COPIED_FILES\" \"$SRC_FILES\" | tee -a \"$LOG_FILE\"\n fi\nelse\n printf \" %-36s %s\\n\" \"rsync $TARGET_DATE/ → NAS\" \"skipped (no source dir)\"\nfi\n\n# ─── SUMMARY ──────────────────────────────────────────────────────────────────\nTOTAL_ELAPSED=$(( $(date +%s) - SCRIPT_START ))\nDB_SIZE=$(du -sh \"$NAS_DB\" | cut -f1)\n\necho \"\"\nlog \"Archive DB size: $DB_SIZE\"\nlog \"Total time: $(( TOTAL_ELAPSED / 60 ))m$(( TOTAL_ELAPSED % 60 ))s\"\nlog \"Sync complete for $TARGET_DATE\"\nlog \"========================================\"","depth":28,"bounds":{"left":0.13763298,"top":0.26815644,"width":0.38031915,"height":0.014365523},"value":"#!/bin/bash\n# screenpipe_sync.sh\n# Syncs Screenpipe SQLite data to a NAS archive database (append-only, no deletions).\n# Also copies the day's video/frame data folder to the NAS.\n#\n# Usage:\n# ./screenpipe_sync.sh # syncs yesterday (default)\n# ./screenpipe_sync.sh 2026-04-15 # syncs a specific date\n# ./screenpipe_sync.sh today # syncs today so far\n#\n# Cron example (runs at 3am daily):\n# 0 3 * * * /Users/lukas/.screenpipe/screenpipe_sync.sh >> /Users/lukas/.screenpipe/sync.log 2>&1\n\nset -euo pipefail\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\nDB_SRC=\"${SCREENPIPE_DB:-$HOME/.screenpipe/db.sqlite}\"\nNAS_MOUNT=\"${NAS_MOUNT:-/Volumes/Test/screenpipe}\"\nNAS_DB=\"$NAS_MOUNT/archive.db\"\nNAS_DATA=\"$NAS_MOUNT/data\"\nLOG_FILE=\"$HOME/.screenpipe/sync.log\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\nSCRIPT_START=$(date +%s)\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── DATE ARGUMENT ────────────────────────────────────────────────────────────\nif [ \"${1:-}\" = \"today\" ]; then\n TARGET_DATE=$(date +%Y-%m-%d)\nelif [ -n \"${1:-}\" ]; then\n TARGET_DATE=\"$1\"\n if ! [[ \"$TARGET_DATE\" =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]]; then\n echo \"ERROR: Invalid date format. Use YYYY-MM-DD, 'today', or no argument for yesterday.\"\n exit 1\n fi\nelse\n TARGET_DATE=$(date -v-1d +%Y-%m-%d)\nfi\n\nlog \"========================================\"\nlog \"Screenpipe sync starting for: $TARGET_DATE\"\nlog \"========================================\"\n\n# ─── PREFLIGHT ────────────────────────────────────────────────────────────────\nstep \"Preflight checks\"\n\nif [ ! -f \"$DB_SRC\" ]; then\n log \"ERROR: Source DB not found at $DB_SRC\"; exit 1\nfi\nprintf \" %-20s %s (%s)\\n\" \"Source DB:\" \"OK\" \"$(du -sh \"$DB_SRC\" | cut -f1)\"\n\nif [ ! -d \"$NAS_MOUNT\" ]; then\n log \"ERROR: NAS not mounted at $NAS_MOUNT\"; exit 1\nfi\nprintf \" %-20s %s\\n\" \"NAS mount:\" \"OK $NAS_MOUNT\"\n\n# Check if DB already synced for this date\nDB_ALREADY_SYNCED=false\nif [ -f \"$NAS_DB\" ]; then\n EXISTING=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';\" 2>/dev/null || echo \"0\")\n if [ \"$EXISTING\" -gt \"0\" ]; then\n log \"Date $TARGET_DATE already has $EXISTING frames in archive — skipping DB sync\"\n DB_ALREADY_SYNCED=true\n else\n printf \" %-20s %s (%s)\\n\" \"Archive DB:\" \"exists\" \"$(du -sh \"$NAS_DB\" | cut -f1)\"\n fi\nelse\n printf \" %-20s %s\\n\" \"Archive DB:\" \"will be created\"\nfi\n\n# Source data dir for this date\nDATA_SRC=\"$HOME/.screenpipe/data/data/$TARGET_DATE\"\nif [ -d \"$DATA_SRC\" ]; then\n DATA_SIZE=$(du -sh \"$DATA_SRC\" | cut -f1)\n DATA_FILES=$(ls \"$DATA_SRC\" | wc -l | tr -d ' ')\n printf \" %-20s %s (%s files, %s)\\n\" \"Data dir:\" \"OK\" \"$DATA_FILES\" \"$DATA_SIZE\"\nelse\n printf \" %-20s %s\\n\" \"Data dir:\" \"not found — skipping file copy\"\nfi\n\n# ─── DB SYNC ──────────────────────────────────────────────────────────────────\nif [ \"$DB_ALREADY_SYNCED\" = false ]; then\n\n # ─── COUNT SOURCE ROWS ────────────────────────────────────────────────────\n step \"Counting source rows for $TARGET_DATE\"\n\n SRC_FRAMES=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';\")\n SRC_ELEMENTS=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');\")\n SRC_UI=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';\")\n SRC_OCR=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');\")\n SRC_MEETINGS=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM meetings WHERE date(meeting_start) = '$TARGET_DATE';\")\n\n printf \" %-20s %s\\n\" \"frames:\" \"$SRC_FRAMES\"\n printf \" %-20s %s\\n\" \"elements:\" \"$SRC_ELEMENTS\"\n printf \" %-20s %s\\n\" \"ui_events:\" \"$SRC_UI\"\n printf \" %-20s %s\\n\" \"ocr_text:\" \"$SRC_OCR\"\n printf \" %-20s %s\\n\" \"meetings:\" \"$SRC_MEETINGS\"\n\n if [ \"$SRC_FRAMES\" -eq \"0\" ]; then\n log \"No frames found for $TARGET_DATE — skipping DB sync\"\n DB_ALREADY_SYNCED=true\n fi\n\nfi\n\nif [ \"$DB_ALREADY_SYNCED\" = false ]; then\n\n # ─── INIT TABLES ──────────────────────────────────────────────────────────\n step \"Initialising tables, indexes, FTS\"\n\n run_sqlite_heredoc \"creating tables\" \"\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"creating indexes\" \"\nATTACH '$NAS_DB' AS nas;\nCREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);\nCREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);\nCREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);\nCREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);\nCREATE INDEX IF NOT EXISTS nas.idx_elements_frame_id ON elements(frame_id);\nCREATE INDEX IF NOT EXISTS nas.idx_elements_frame_src_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;\nCREATE INDEX IF NOT EXISTS nas.idx_ui_events_timestamp ON ui_events(timestamp);\nCREATE INDEX IF NOT EXISTS nas.idx_ui_events_app_name ON ui_events(app_name);\nCREATE INDEX IF NOT EXISTS nas.idx_ui_events_frame_id ON ui_events(frame_id);\nCREATE INDEX IF NOT EXISTS nas.idx_ocr_text_frame_id ON ocr_text(frame_id);\nCREATE INDEX IF NOT EXISTS nas.idx_meetings_start ON meetings(meeting_start);\nCREATE INDEX IF NOT EXISTS nas.idx_video_chunks_device ON video_chunks(device_name);\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"creating FTS tables\" \"\nATTACH '$NAS_DB' AS nas;\nCREATE VIRTUAL TABLE IF NOT EXISTS nas.elements_fts USING fts5(\n text, role, frame_id UNINDEXED,\n content='elements', content_rowid='id', tokenize='unicode61'\n);\nCREATE VIRTUAL TABLE IF NOT EXISTS nas.frames_fts USING fts5(\n full_text, app_name, window_name, browser_url, id UNINDEXED,\n tokenize='unicode61'\n);\nCREATE VIRTUAL TABLE IF NOT EXISTS nas.ui_events_fts USING fts5(\n text_content,\n app_name,\n window_title,\n element_name,\n content='ui_events',\n content_rowid='id',\n tokenize='unicode61'\n);\nDETACH nas;\n\"\n\n # ─── SYNC DATA ────────────────────────────────────────────────────────────\n step \"Syncing data for $TARGET_DATE\"\n\n run_sqlite_heredoc \"video_chunks\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.video_chunks\n SELECT * FROM main.video_chunks\n WHERE id IN (\n SELECT DISTINCT video_chunk_id FROM main.frames\n WHERE date(timestamp) = '$TARGET_DATE' AND video_chunk_id IS NOT NULL\n );\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"frames ($SRC_FRAMES rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.frames\n SELECT * FROM main.frames WHERE date(timestamp) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"ocr_text ($SRC_OCR rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.ocr_text\n SELECT o.* FROM main.ocr_text o\n JOIN main.frames f ON o.frame_id = f.id\n WHERE date(f.timestamp) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"ui_events ($SRC_UI rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.ui_events\n SELECT * FROM main.ui_events WHERE date(timestamp) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"elements ($SRC_ELEMENTS rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.elements\n SELECT e.* FROM main.elements e\n JOIN main.frames f ON e.frame_id = f.id\n WHERE date(f.timestamp) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"meetings ($SRC_MEETINGS rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.meetings\n SELECT * FROM main.meetings WHERE date(meeting_start) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n # ─── FTS UPDATE ───────────────────────────────────────────────────────────\n step \"Updating FTS indexes\"\n\n run_sqlite_heredoc \"elements_fts\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT INTO nas.elements_fts(rowid, text, role)\n SELECT e.id, e.text, e.role\n FROM nas.elements e\n JOIN nas.frames f ON e.frame_id = f.id\n WHERE date(f.timestamp) = '$TARGET_DATE'\n AND e.text IS NOT NULL;\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"frames_fts\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT INTO nas.frames_fts(rowid, full_text, app_name, window_name, browser_url, id)\n SELECT id, full_text, app_name, window_name, browser_url, id\n FROM nas.frames\n WHERE date(timestamp) = '$TARGET_DATE'\n AND full_text IS NOT NULL;\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"ui_events_fts\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT INTO nas.ui_events_fts(rowid, text_content, app_name, window_title, element_name)\n SELECT id, text_content, app_name, window_title, element_name\n FROM nas.ui_events\n WHERE date(timestamp) = '$TARGET_DATE'\n AND text_content IS NOT NULL;\nDETACH nas;\n\"\n\n # ─── VERIFY DB ────────────────────────────────────────────────────────────\n step \"Verifying DB\"\n\n V_FRAMES=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';\")\n V_ELEMENTS=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');\")\n V_UI=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';\")\n V_OCR=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');\")\n V_MEETINGS=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM meetings WHERE date(meeting_start)= '$TARGET_DATE';\")\n\n check \"frames\" \"$V_FRAMES\" \"$SRC_FRAMES\"\n check \"elements\" \"$V_ELEMENTS\" \"$SRC_ELEMENTS\"\n check \"ui_events\" \"$V_UI\" \"$SRC_UI\"\n check \"ocr_text\" \"$V_OCR\" \"$SRC_OCR\"\n check \"meetings\" \"$V_MEETINGS\" \"$SRC_MEETINGS\"\n\nfi\n\n# ─── COPY DATA FOLDER ─────────────────────────────────────────────────────────\n# Always runs regardless of DB sync status\nstep \"Copying data folder for $TARGET_DATE\"\n\nif [ -d \"$DATA_SRC\" ]; then\n mkdir -p \"$NAS_DATA/$TARGET_DATE\"\n RSYNC_START=$(date +%s)\n printf \" %-36s \" \"rsync $TARGET_DATE/ → NAS\"\n rsync -a --ignore-existing \\\n \"$DATA_SRC/\" \\\n \"$NAS_DATA/$TARGET_DATE/\" \\\n 2>>\"$LOG_FILE\"\n RSYNC_DUR=$(( $(date +%s) - RSYNC_START ))\n COPIED_FILES=$(ls \"$NAS_DATA/$TARGET_DATE\" | wc -l | tr -d ' ')\n SRC_FILES=$(ls \"$DATA_SRC\" | wc -l | tr -d ' ')\n COPIED_SIZE=$(du -sh \"$NAS_DATA/$TARGET_DATE\" | cut -f1)\n if [ \"$COPIED_FILES\" -eq \"$SRC_FILES\" ]; then\n printf \"\\r %-36s ✓ %dm%02ds (%s files, %s)\\n\" \\\n \"rsync $TARGET_DATE/ → NAS\" \\\n \"$(( RSYNC_DUR / 60 ))\" \"$(( RSYNC_DUR % 60 ))\" \\\n \"$COPIED_FILES\" \"$COPIED_SIZE\" | tee -a \"$LOG_FILE\"\n else\n printf \"\\r %-36s ✗ %s / %s files\\n\" \\\n \"rsync $TARGET_DATE/ → NAS\" \"$COPIED_FILES\" \"$SRC_FILES\" | tee -a \"$LOG_FILE\"\n fi\nelse\n printf \" %-36s %s\\n\" \"rsync $TARGET_DATE/ → NAS\" \"skipped (no source dir)\"\nfi\n\n# ─── SUMMARY ──────────────────────────────────────────────────────────────────\nTOTAL_ELAPSED=$(( $(date +%s) - SCRIPT_START ))\nDB_SIZE=$(du -sh \"$NAS_DB\" | cut -f1)\n\necho \"\"\nlog \"Archive DB size: $DB_SIZE\"\nlog \"Total time: $(( TOTAL_ELAPSED / 60 ))m$(( TOTAL_ELAPSED % 60 ))s\"\nlog \"Sync complete for $TARGET_DATE\"\nlog \"========================================\"","role_description":"editor","is_enabled":true,"is_focused":true,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"#!/bin/bash\n# screenpipe_sync.sh\n# Syncs Screenpipe SQLite data to a NAS archive database (append-only, no deletions).\n# Also copies the day's video/frame data folder to the NAS.\n#\n# Usage:\n# ./screenpipe_sync.sh # syncs yesterday (default)\n# ./screenpipe_sync.sh 2026-04-15 # syncs a specific date\n# ./screenpipe_sync.sh today # syncs today so far\n#\n# Cron example (runs at 3am daily):\n# 0 3 * * * /Users/lukas/.screenpipe/screenpipe_sync.sh >> /Users/lukas/.screenpipe/sync.log 2>&1\n\nset -euo pipefail\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\nDB_SRC=\"${SCREENPIPE_DB:-$HOME/.screenpipe/db.sqlite}\"\nNAS_MOUNT=\"${NAS_MOUNT:-/Volumes/Test/screenpipe}\"\nNAS_DB=\"$NAS_MOUNT/archive.db\"\nNAS_DATA=\"$NAS_MOUNT/data\"\nLOG_FILE=\"$HOME/.screenpipe/sync.log\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\nSCRIPT_START=$(date +%s)\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── DATE ARGUMENT ────────────────────────────────────────────────────────────\nif [ \"${1:-}\" = \"today\" ]; then\n TARGET_DATE=$(date +%Y-%m-%d)\nelif [ -n \"${1:-}\" ]; then\n TARGET_DATE=\"$1\"\n if ! [[ \"$TARGET_DATE\" =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]]; then\n echo \"ERROR: Invalid date format. Use YYYY-MM-DD, 'today', or no argument for yesterday.\"\n exit 1\n fi\nelse\n TARGET_DATE=$(date -v-1d +%Y-%m-%d)\nfi\n\nlog \"========================================\"\nlog \"Screenpipe sync starting for: $TARGET_DATE\"\nlog \"========================================\"\n\n# ─── PREFLIGHT ────────────────────────────────────────────────────────────────\nstep \"Preflight checks\"\n\nif [ ! -f \"$DB_SRC\" ]; then\n log \"ERROR: Source DB not found at $DB_SRC\"; exit 1\nfi\nprintf \" %-20s %s (%s)\\n\" \"Source DB:\" \"OK\" \"$(du -sh \"$DB_SRC\" | cut -f1)\"\n\nif [ ! -d \"$NAS_MOUNT\" ]; then\n log \"ERROR: NAS not mounted at $NAS_MOUNT\"; exit 1\nfi\nprintf \" %-20s %s\\n\" \"NAS mount:\" \"OK $NAS_MOUNT\"\n\n# Check if DB already synced for this date\nDB_ALREADY_SYNCED=false\nif [ -f \"$NAS_DB\" ]; then\n EXISTING=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';\" 2>/dev/null || echo \"0\")\n if [ \"$EXISTING\" -gt \"0\" ]; then\n log \"Date $TARGET_DATE already has $EXISTING frames in archive — skipping DB sync\"\n DB_ALREADY_SYNCED=true\n else\n printf \" %-20s %s (%s)\\n\" \"Archive DB:\" \"exists\" \"$(du -sh \"$NAS_DB\" | cut -f1)\"\n fi\nelse\n printf \" %-20s %s\\n\" \"Archive DB:\" \"will be created\"\nfi\n\n# Source data dir for this date\nDATA_SRC=\"$HOME/.screenpipe/data/data/$TARGET_DATE\"\nif [ -d \"$DATA_SRC\" ]; then\n DATA_SIZE=$(du -sh \"$DATA_SRC\" | cut -f1)\n DATA_FILES=$(ls \"$DATA_SRC\" | wc -l | tr -d ' ')\n printf \" %-20s %s (%s files, %s)\\n\" \"Data dir:\" \"OK\" \"$DATA_FILES\" \"$DATA_SIZE\"\nelse\n printf \" %-20s %s\\n\" \"Data dir:\" \"not found — skipping file copy\"\nfi\n\n# ─── DB SYNC ──────────────────────────────────────────────────────────────────\nif [ \"$DB_ALREADY_SYNCED\" = false ]; then\n\n # ─── COUNT SOURCE ROWS ────────────────────────────────────────────────────\n step \"Counting source rows for $TARGET_DATE\"\n\n SRC_FRAMES=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';\")\n SRC_ELEMENTS=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');\")\n SRC_UI=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';\")\n SRC_OCR=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');\")\n SRC_MEETINGS=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM meetings WHERE date(meeting_start) = '$TARGET_DATE';\")\n\n printf \" %-20s %s\\n\" \"frames:\" \"$SRC_FRAMES\"\n printf \" %-20s %s\\n\" \"elements:\" \"$SRC_ELEMENTS\"\n printf \" %-20s %s\\n\" \"ui_events:\" \"$SRC_UI\"\n printf \" %-20s %s\\n\" \"ocr_text:\" \"$SRC_OCR\"\n printf \" %-20s %s\\n\" \"meetings:\" \"$SRC_MEETINGS\"\n\n if [ \"$SRC_FRAMES\" -eq \"0\" ]; then\n log \"No frames found for $TARGET_DATE — skipping DB sync\"\n DB_ALREADY_SYNCED=true\n fi\n\nfi\n\nif [ \"$DB_ALREADY_SYNCED\" = false ]; then\n\n # ─── INIT TABLES ──────────────────────────────────────────────────────────\n step \"Initialising tables, indexes, FTS\"\n\n run_sqlite_heredoc \"creating tables\" \"\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"creating indexes\" \"\nATTACH '$NAS_DB' AS nas;\nCREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);\nCREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);\nCREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);\nCREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);\nCREATE INDEX IF NOT EXISTS nas.idx_elements_frame_id ON elements(frame_id);\nCREATE INDEX IF NOT EXISTS nas.idx_elements_frame_src_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;\nCREATE INDEX IF NOT EXISTS nas.idx_ui_events_timestamp ON ui_events(timestamp);\nCREATE INDEX IF NOT EXISTS nas.idx_ui_events_app_name ON ui_events(app_name);\nCREATE INDEX IF NOT EXISTS nas.idx_ui_events_frame_id ON ui_events(frame_id);\nCREATE INDEX IF NOT EXISTS nas.idx_ocr_text_frame_id ON ocr_text(frame_id);\nCREATE INDEX IF NOT EXISTS nas.idx_meetings_start ON meetings(meeting_start);\nCREATE INDEX IF NOT EXISTS nas.idx_video_chunks_device ON video_chunks(device_name);\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"creating FTS tables\" \"\nATTACH '$NAS_DB' AS nas;\nCREATE VIRTUAL TABLE IF NOT EXISTS nas.elements_fts USING fts5(\n text, role, frame_id UNINDEXED,\n content='elements', content_rowid='id', tokenize='unicode61'\n);\nCREATE VIRTUAL TABLE IF NOT EXISTS nas.frames_fts USING fts5(\n full_text, app_name, window_name, browser_url, id UNINDEXED,\n tokenize='unicode61'\n);\nCREATE VIRTUAL TABLE IF NOT EXISTS nas.ui_events_fts USING fts5(\n text_content,\n app_name,\n window_title,\n element_name,\n content='ui_events',\n content_rowid='id',\n tokenize='unicode61'\n);\nDETACH nas;\n\"\n\n # ─── SYNC DATA ────────────────────────────────────────────────────────────\n step \"Syncing data for $TARGET_DATE\"\n\n run_sqlite_heredoc \"video_chunks\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.video_chunks\n SELECT * FROM main.video_chunks\n WHERE id IN (\n SELECT DISTINCT video_chunk_id FROM main.frames\n WHERE date(timestamp) = '$TARGET_DATE' AND video_chunk_id IS NOT NULL\n );\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"frames ($SRC_FRAMES rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.frames\n SELECT * FROM main.frames WHERE date(timestamp) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"ocr_text ($SRC_OCR rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.ocr_text\n SELECT o.* FROM main.ocr_text o\n JOIN main.frames f ON o.frame_id = f.id\n WHERE date(f.timestamp) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"ui_events ($SRC_UI rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.ui_events\n SELECT * FROM main.ui_events WHERE date(timestamp) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"elements ($SRC_ELEMENTS rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.elements\n SELECT e.* FROM main.elements e\n JOIN main.frames f ON e.frame_id = f.id\n WHERE date(f.timestamp) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"meetings ($SRC_MEETINGS rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.meetings\n SELECT * FROM main.meetings WHERE date(meeting_start) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n # ─── FTS UPDATE ───────────────────────────────────────────────────────────\n step \"Updating FTS indexes\"\n\n run_sqlite_heredoc \"elements_fts\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT INTO nas.elements_fts(rowid, text, role)\n SELECT e.id, e.text, e.role\n FROM nas.elements e\n JOIN nas.frames f ON e.frame_id = f.id\n WHERE date(f.timestamp) = '$TARGET_DATE'\n AND e.text IS NOT NULL;\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"frames_fts\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT INTO nas.frames_fts(rowid, full_text, app_name, window_name, browser_url, id)\n SELECT id, full_text, app_name, window_name, browser_url, id\n FROM nas.frames\n WHERE date(timestamp) = '$TARGET_DATE'\n AND full_text IS NOT NULL;\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"ui_events_fts\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT INTO nas.ui_events_fts(rowid, text_content, app_name, window_title, element_name)\n SELECT id, text_content, app_name, window_title, element_name\n FROM nas.ui_events\n WHERE date(timestamp) = '$TARGET_DATE'\n AND text_content IS NOT NULL;\nDETACH nas;\n\"\n\n # ─── VERIFY DB ────────────────────────────────────────────────────────────\n step \"Verifying DB\"\n\n V_FRAMES=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';\")\n V_ELEMENTS=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');\")\n V_UI=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';\")\n V_OCR=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');\")\n V_MEETINGS=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM meetings WHERE date(meeting_start)= '$TARGET_DATE';\")\n\n check \"frames\" \"$V_FRAMES\" \"$SRC_FRAMES\"\n check \"elements\" \"$V_ELEMENTS\" \"$SRC_ELEMENTS\"\n check \"ui_events\" \"$V_UI\" \"$SRC_UI\"\n check \"ocr_text\" \"$V_OCR\" \"$SRC_OCR\"\n check \"meetings\" \"$V_MEETINGS\" \"$SRC_MEETINGS\"\n\nfi\n\n# ─── COPY DATA FOLDER ─────────────────────────────────────────────────────────\n# Always runs regardless of DB sync status\nstep \"Copying data folder for $TARGET_DATE\"\n\nif [ -d \"$DATA_SRC\" ]; then\n mkdir -p \"$NAS_DATA/$TARGET_DATE\"\n RSYNC_START=$(date +%s)\n printf \" %-36s \" \"rsync $TARGET_DATE/ → NAS\"\n rsync -a --ignore-existing \\\n \"$DATA_SRC/\" \\\n \"$NAS_DATA/$TARGET_DATE/\" \\\n 2>>\"$LOG_FILE\"\n RSYNC_DUR=$(( $(date +%s) - RSYNC_START ))\n COPIED_FILES=$(ls \"$NAS_DATA/$TARGET_DATE\" | wc -l | tr -d ' ')\n SRC_FILES=$(ls \"$DATA_SRC\" | wc -l | tr -d ' ')\n COPIED_SIZE=$(du -sh \"$NAS_DATA/$TARGET_DATE\" | cut -f1)\n if [ \"$COPIED_FILES\" -eq \"$SRC_FILES\" ]; then\n printf \"\\r %-36s ✓ %dm%02ds (%s files, %s)\\n\" \\\n \"rsync $TARGET_DATE/ → NAS\" \\\n \"$(( RSYNC_DUR / 60 ))\" \"$(( RSYNC_DUR % 60 ))\" \\\n \"$COPIED_FILES\" \"$COPIED_SIZE\" | tee -a \"$LOG_FILE\"\n else\n printf \"\\r %-36s ✗ %s / %s files\\n\" \\\n \"rsync $TARGET_DATE/ → NAS\" \"$COPIED_FILES\" \"$SRC_FILES\" | tee -a \"$LOG_FILE\"\n fi\nelse\n printf \" %-36s %s\\n\" \"rsync $TARGET_DATE/ → NAS\" \"skipped (no source dir)\"\nfi\n\n# ─── SUMMARY ──────────────────────────────────────────────────────────────────\nTOTAL_ELAPSED=$(( $(date +%s) - SCRIPT_START ))\nDB_SIZE=$(du -sh \"$NAS_DB\" | cut -f1)\n\necho \"\"\nlog \"Archive DB size: $DB_SIZE\"\nlog \"Total time: $(( TOTAL_ELAPSED / 60 ))m$(( TOTAL_ELAPSED % 60 ))s\"\nlog \"Sync complete for $TARGET_DATE\"\nlog \"========================================\"","depth":29,"bounds":{"left":0.13763298,"top":0.26815644,"width":0.35804522,"height":0.014365523},"role_description":"text"},{"role":"AXRadioButton","text":"lets add ability to jump…, Editor Group 2","depth":28,"bounds":{"left":0.5578458,"top":0.047885075,"width":0.06948138,"height":0.02793296},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXRadioButton","text":"Problems (⇧⌘M)","depth":22,"bounds":{"left":0.118351065,"top":0.59936154,"width":0.027925532,"height":0.02793296},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"PROBLEMS","depth":24,"bounds":{"left":0.122340426,"top":0.60814047,"width":0.019946808,"height":0.0103751},"role_description":"text"},{"role":"AXRadioButton","text":"Output (⇧⌘U)","depth":22,"bounds":{"left":0.14594415,"top":0.59936154,"width":0.023603724,"height":0.02793296},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUTPUT","depth":24,"bounds":{"left":0.14993352,"top":0.60814047,"width":0.015625,"height":0.0103751},"role_description":"text"},{"role":"AXRadioButton","text":"Debug Console (⇧⌘Y)","depth":22,"bounds":{"left":0.16921543,"top":0.59936154,"width":0.039893616,"height":0.02793296},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"DEBUG CONSOLE","depth":24,"bounds":{"left":0.1732048,"top":0.60814047,"width":0.031914894,"height":0.0103751},"role_description":"text"},{"role":"AXRadioButton","text":"Terminal (⌃`)","depth":22,"bounds":{"left":0.2087766,"top":0.59936154,"width":0.026595745,"height":0.02793296},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":true},{"role":"AXStaticText","text":"TERMINAL","depth":24,"bounds":{"left":0.21276596,"top":0.60814047,"width":0.01861702,"height":0.0103751},"role_description":"text"},{"role":"AXRadioButton","text":"Ports","depth":22,"bounds":{"left":0.23537233,"top":0.59936154,"width":0.020279255,"height":0.02793296},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"PORTS","depth":24,"bounds":{"left":0.2393617,"top":0.60814047,"width":0.012300532,"height":0.0103751},"role_description":"text"},{"role":"AXButton","text":"remote SSH: nas","depth":16,"bounds":{"left":0.0006648936,"top":0.98244214,"width":0.028590426,"height":0.01755786},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.0033244682,"top":0.9848364,"width":0.005319149,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"SSH: nas","depth":17,"bounds":{"left":0.008643617,"top":0.9856345,"width":0.017952127,"height":0.011173184},"role_description":"text"},{"role":"AXButton","text":"screenpipe (Git) - master*, Checkout Branch/Tag...","depth":16,"bounds":{"left":0.030917553,"top":0.98244214,"width":0.023271276,"height":0.01755786},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.031914894,"top":0.9848364,"width":0.005319149,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"master*","depth":17,"bounds":{"left":0.03723404,"top":0.9856345,"width":0.015957447,"height":0.011173184},"role_description":"text"},{"role":"AXButton","text":"screenpipe (Git) - Synchronize Changes","depth":16,"bounds":{"left":0.05418883,"top":0.98244214,"width":0.00731383,"height":0.01755786},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"No Problems","depth":16,"bounds":{"left":0.06416223,"top":0.98244214,"width":0.022606382,"height":0.01755786},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.06582447,"top":0.9848364,"width":0.005319149,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"0","depth":17,"bounds":{"left":0.07114362,"top":0.9856345,"width":0.004986702,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.07579787,"top":0.9848364,"width":0.0056515955,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"0","depth":17,"bounds":{"left":0.08111702,"top":0.9856345,"width":0.0039893617,"height":0.011173184},"role_description":"text"},{"role":"AXButton","text":"No Ports Forwarded","depth":16,"bounds":{"left":0.08843085,"top":0.98244214,"width":0.012632979,"height":0.01755786},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.09009308,"top":0.9848364,"width":0.0056515955,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"0","depth":17,"bounds":{"left":0.09541223,"top":0.9856345,"width":0.0039893617,"height":0.011173184},"role_description":"text"},{"role":"AXButton","text":"Notifications","depth":16,"bounds":{"left":0.9886968,"top":0.98244214,"width":0.010638298,"height":0.01755786},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Signed out","depth":16,"bounds":{"left":0.9567819,"top":0.98244214,"width":0.031914894,"height":0.01755786},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.9594415,"top":0.9848364,"width":0.005319149,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Signed out","depth":17,"bounds":{"left":0.96476066,"top":0.9856345,"width":0.021276595,"height":0.011173184},"role_description":"text"},{"role":"AXButton","text":"Shell Script","depth":16,"bounds":{"left":0.93151593,"top":0.98244214,"width":0.023603724,"height":0.01755786},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Editor Language Status: $(copilot) No inline suggestion available, Inline suggestions","depth":16,"bounds":{"left":0.92420214,"top":0.98244214,"width":0.0076462766,"height":0.01755786},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"LF","depth":16,"bounds":{"left":0.91356385,"top":0.98244214,"width":0.00831117,"height":0.01755786},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"UTF-8","depth":16,"bounds":{"left":0.8962766,"top":0.98244214,"width":0.015625,"height":0.01755786},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Spaces: 2","depth":16,"bounds":{"left":0.87234044,"top":0.98244214,"width":0.021941489,"height":0.01755786},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Ln 320, Col 36","depth":16,"bounds":{"left":0.8390958,"top":0.98244214,"width":0.03125,"height":0.01755786},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Screen Reader Optimized","depth":16,"bounds":{"left":0.7849069,"top":0.98244214,"width":0.05319149,"height":0.01755786},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"git-commit Lukas Kovalik (23 hours ago)","depth":16,"bounds":{"left":0.71974736,"top":0.98244214,"width":0.06416223,"height":0.01755786},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.72140956,"top":0.9848364,"width":0.0056515955,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Lukas Kovalik (23 hours ago)","depth":17,"bounds":{"left":0.72672874,"top":0.9856345,"width":0.055518616,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"Info: Downloading VS Code Server...","depth":12,"role_description":"text"},{"role":"AXButton","text":"lets add ability to jump fro,m search to timeline so we can see the exact screen (also based on monitor and time","depth":19,"bounds":{"left":0.56017286,"top":0.08060654,"width":0.099734046,"height":0.022346368},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Session history","depth":19,"bounds":{"left":0.9780585,"top":0.08060654,"width":0.00930851,"height":0.022346368},"help_text":"Session history","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"New session","depth":19,"bounds":{"left":0.9886968,"top":0.08060654,"width":0.00930851,"height":0.022346368},"help_text":"New session","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Message actions","depth":24,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"This session is being continued from a previous conversation that ran out of context. The summary below covers the earlier portion of the conversation.\n\nSummary:\n1. Primary Request and Intent:\n\nThe user has been developing a Screenpipe dashboard on a Synology NAS. Requests in chronological order:\n- **Q1**: Are db.sqlite-shm and db.sqlite-wal used? → Explained WAL mode; cleaned up files.\n- **Q2**: AND combination search (term1 + term2 must both appear) → Added \"AND also\" input field.\n- **Q3**: Explain UTC time issue, show date in results, make Only/Skip apps use multiselect → Implemented all three.\n- **Q4**: Point sqlite-web at archive.db, add second sqlite-web for db.sqlite → Updated docker-compose.yml, added two services on ports 8767/8768.\n- **Q5**: \"still the same\" (container not picking up config) → Explained `up -d` vs `restart`.\n- **Q6**: Add git, push to gitea.com/lakylak/screenpipe.git → Initialized repo, committed, pushed.\n- **Q7**: Add Timetable tab with video playback and timeline → Full implementation with click-to-seek, auto-advancing chunks, legend.\n- **Q8**: Add scroll/zoom on timeline, jump to specific time, better awareness → Implemented zoom (1×–32×), scrollable timeline, overview minimap, viewport indicator, Jump-to-time input, screenshot thumbnail.\n- **Q9 (most recent)**: Make playing speed more than 8×, fix speed not working, show position on timeline → CSS fix done (wider playhead + time label style), remainder in progress.\n\n2. Key Technical Concepts:\n\n- **SQLite WAL mode**: db.sqlite-shm and db.sqlite-wal are WAL companion files; cleaned with `PRAGMA wal_checkpoint(TRUNCATE)`.\n- **SQLite FTS5**: Space-separated terms = AND; `MATCH 'term1 term2'` requires both; OR requires explicit `OR` keyword.\n- **FastAPI**: Python backend with route handlers in main.py, consumers pattern for DB queries.\n- **Docker Compose**: App image is built (code baked in), not volume-mounted → requires `build` + `up -d` for code changes. `restart` doesn't re-read compose file — need `up -d`.\n- **sqlite-web**: Read-only flag `-r`, pre-built image, no rebuild needed for config changes.\n- **Video playback**: screenpipe records at 0.1–0.3 fps (timelapse). `seek = offset_index / fps` gives seconds into video chunk. ~245 chunks/day across 2 monitors. Videos may be encoded at standard fps making them very short at native speed.\n- **Timeline rendering**: App-colored segments built by merging consecutive frames with same `app_name`. Percentage positions: `((ts - dayStart) / span * 100)%`.\n- **Zoom/scroll**: Inner div width = `zoom × 100%`, outer wrapper has `overflow-x:auto`. Playhead position stays as % of inner div, which is correct at all zoom levels.\n- **Timer-based speed**: For speed > 2×, browser `playbackRate` is unreliable on low-FPS video; correct approach is `setInterval` advancing `video.currentTime` by `speed * interval_ms / 1000` seconds per tick.\n- **UTC vs local time**: Backend treats `time_from`/`time_to` as UTC. Frontend converts with `localTimeToUtc()` before sending.\n- **Git**: `#recycle/` in .gitignore treated as comment — must escape as `\\#recycle/`.\n\n3. Files and Code Sections:\n\n- **`/volume1/screenpipe/app/main.py`**\n - Added `/api/apps` endpoint (all unique app names from frames table)\n - Added `/api/timetable` endpoint (frames + video URLs + screenshot URLs per device per date)\n - `/api/timetable` response structure: `{frames: [{ts, app, win, video_url, seek, screenshot_url}], devices: [...], device: \"...\"}`\n - Key snippet:\n ```python","depth":26,"role_description":"text"},{"role":"AXButton","text":"@app.get(\"/api/timetable\"","depth":26,"help_text":"Open app.get(\"/api/timetable\"","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":")\n async def timetable_data(d: str | None = Query(None), device: str | None = Query(None)):\n ...\n rows = conn.execute(f\"\"\"\n SELECT f.timestamp AS ts, f.app_name AS app, f.window_name AS win,\n f.offset_index, f.snapshot_path,\n vc.file_path AS video_path, vc.fps AS video_fps\n FROM frames f\n JOIN video_chunks vc ON f.video_chunk_id = vc.id\n WHERE f.timestamp >= ? AND f.timestamp < ?\n AND f.video_chunk_id IS NOT NULL {dev_clause}\n ORDER BY f.timestamp\n \"\"\", params).fetchall()\n # seek = offset_index / fps, screenshot_url from _snapshot_to_url(snapshot_path)\n ```\n\n- **`/volume1/screenpipe/app/docker-compose.yml`**\n - Changed sqlite-web service name to `sqlite-web-archive` → port 8767 → `/data/archive.db`\n - Added `sqlite-web-live` → port 8768 → `/data/db.sqlite`\n - screenpipe-app: port 8766, `DB_PATH: /data/db.sqlite`, `TZ: Europe/Sofia`\n\n- **`/volume1/screenpipe/app/static/index.html`** (single large file with all CSS/HTML/JS)\n - **Search enhancements**:\n - Added `id=\"sq2\"` \"AND also\" input between search-row1 and search-row2\n - Replaced `sOnlyApps`/`sSkipApps` text inputs with custom multiselect components (`id=\"msOnlyApps\"`, `id=\"msSkipApps\"`)\n - Updated `buildUrl()` to combine `q + \" \" + q2` and convert times with `localTimeToUtc()`\n - Added `fmtDateTime(ts)` showing \"Apr 20 14:08\" format\n - Added `localTimeToUtc(timeStr)` converting local HH:MM to UTC\n - Multiselect state: `const _msState = { msOnlyApps: new Set(), msSkipApps: new Set() }`\n - **Timetable tab** (new page):\n - Tab button added between Work Report and AI Summary\n - `showPage` array updated: `['activity','search','audio','report','timetable','summary']`\n - `refresh()` calls `loadTimetable()` when on timetable page\n - **Timetable CSS** (key styles):\n ```css\n .tt-scroll-wrap { overflow-x:auto; ... scrollbar-width:thin; }\n .tt-inner { position:relative; height:52px; } /* width set dynamically */\n .tt-playhead { position:absolute; top:0; width:3px; height:36px; background:white; box-shadow:0 0 8px rgba(255,255,255,.9); z-index:10; pointer-events:none; display:none; }\n .tt-playhead-time { position:absolute; top:2px; font-size:9px; font-weight:600; color:white; background:rgba(0,0,0,.75); padding:1px 4px; border-radius:2px; white-space:nowrap; transform:translateX(-50%); z-index:12; pointer-events:none; display:none; }\n .tt-overview-wrap { position:relative; height:14px; ... cursor:pointer; }\n .tt-overview-vp { position:absolute; background:rgba(255,255,255,0.12); border:1px solid rgba(255,255,255,0.4); }\n ```\n - **Timetable JS state variables**:\n ```javascript\n let _ttFrames = [], _ttChunks = [], _ttCurChunk = -1;\n let _ttDayStart = 0, _ttDayEnd = 0, _ttZoom = 1;\n const _ttAppColors = {};\n const TT_ZOOMS = [1, 2, 4, 8, 16, 32];\n const TT_TICK_MIN = {1:30, 2:15, 4:10, 8:5, 16:2, 32:1};\n ```\n - **Key JS functions**:\n - `loadTimetable()` — fetches `/api/timetable`, groups chunks, renders\n - `ttZoom(dir)` — changes zoom level, updates inner width, re-renders ticks, scrolls to playhead\n - `ttTimelineClick(e)` — uses `inner.getBoundingClientRect()` (works correctly when scrolled)\n - `ttOverviewClick(e)` — scrolls timeline + seeks video\n - `ttUpdateOverviewVp()` — updates white viewport rect using `wrap.scrollLeft / inner.scrollWidth`\n - `ttJumpToTime()` — parses time input, converts to ms, calls `ttSeekToMs`\n - `ttSeekToMs(tsMs)` — binary-searches nearest frame, loads chunk, seeks video\n - `_ttScrollToPlayhead(force)` — scrolls wrap so playhead stays at ~35% from left when Follow is checked\n - `_ttMovePlayhead(tsMs)` — sets `ph.style.left` as percentage, calls `_ttScrollToPlayhead`\n - `_ttShowNow(f)` — updates screenshot thumbnail + now-text div\n - `ttSyncBtn()` — syncs play/pause button text\n - Keyboard: Space=play/pause, ←/→=±10s, Ctrl+←/→=±30s, +/-=zoom\n\n- **`/volume1/screenpipe/.gitignore`**\n ```\n *.db, *.sqlite, *.sqlite-shm, *.sqlite-wal\n data/, \\#recycle/,","depth":26,"role_description":"text"},{"role":"AXButton","text":"@eaDir/","depth":26,"help_text":"Open eaDir/","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"app_settings.json, app/.env\n __pycache__/, *.pyc, .DS_Store\n ```\n\n4. Errors and Fixes:\n\n- **`#recycle/` in .gitignore treated as comment**: `#` starts a comment in .gitignore. Fixed by escaping: `\\#recycle/`. Also had to `git rm --cached \"#recycle/desktop.ini\"` to unstage it.\n- **`sudo docker compose restart sqlite-web` didn't apply config change**: `restart` reuses existing container config, doesn't re-read compose file. Fix: `sudo docker compose up -d` recreates containers with new config.\n- **Orphan container holding port 8767**: Old `screenpipe-sqlweb` container still running after rename. Fix: `sudo docker compose up -d --remove-orphans`.\n- **`sudo docker` not accessible from Claude Code**: Interactive sudo required. User runs commands in NAS terminal.\n- **`git config --global --add safe.directory /volume1/screenpipe`**: Required due to dubious ownership of NAS volume directory.\n\n5. Problem Solving:\n\n- **Time zone confusion in search**: Backend uses UTC for time_from/time_to; frontend displays local time. Solved by `localTimeToUtc()` converting before API call, and showing date+time in results.\n- **sqlite-web not showing April 17–21 data**: Container was pointing at db.sqlite (old config), not archive.db. Fixed by updating docker-compose.yml + `up -d`.\n- **Video playback speed**: Browser `video.playbackRate` is capped (~16× max in Chrome) and performs poorly for very low FPS (0.1–0.3 fps) screenpipe videos. Each chunk may only be 1–2 seconds of wall-clock encoded video, playing through instantly. Solution: implement timer-based frame-jumping for speed > 2× (in progress).\n- **Playhead visibility**: White 2px line was hard to see. Fixed CSS to 3px width + stronger box-shadow + added `.tt-playhead-time` overlay label style.\n\n6. All User Messages:\n\n- \"do we use db.sqlite-shm and db.sqlite-wal for anything right now? [image of search UI] Lets add ability to search with combination... Explain how does the search work time seems to work in utc maybe display date next to the time in results. Make only apps and skip apps multiselect with all available apps.\"\n- \"doi I need to restart?\"\n- \"there is sudo docker compose\"\n- \"no still the same\"\n- \"add git. I have created gitea repo https://gitea.com/lakylak/screenpipe.git\"\n- \"just do it\" (re: git push)\n- \"how to make sure data in :8767 are accurate and point to archive.db\"\n- \"I can't see older than 16th there should 21st of april. In http://192.168.0.242:8766/ I can see all but not on sqlite viewer http://192.168.0.242:8767\"\n- \"ok lets add additional port to read db.sqlite, I would like to see the structure of official db that reads db.sqlite db and one for archive\"\n- [docker compose output showing orphan container error]\n- \"looks great. I want to have ability to scroll left and right and also to jump to specific time. I want to be more aware to what I see. Still it should be fast\"\n- \"lets make the playing speed more than 8x\"\n- \"still playing speed is not showing properly still just in one second. also I want to see in timeline where I am\"\n\n7. Pending Tasks:\n\n- **Playback speed fix** (in progress, partially done):\n - Add `<div class=\"tt-playhead-time\" id=\"ttPlayheadTime\"></div>` inside `ttInner` HTML\n - Implement `_ttStartSpeedTimer(speed)` / `_ttStopSpeedTimer()` / `ttSetSpeed(speed)` functions\n - Update speed select `onchange` to call `ttSetSpeed(+this.value)`\n - Add 64× option to speed select\n - Update `_ttMovePlayhead` to also update `ttPlayheadTime` label\n - Update `ttSyncBtn` to start/stop timer based on play state + speed\n - Update `ttNextChunk` and `ttSeekToMs` to stop timer (restarted by onplay → ttSyncBtn)\n - Rebuild Docker image after changes\n\n8. Current Work:\n\nWorking on fixing two issues with the Timetable tab:\n1. **Playback speed**: `video.playbackRate` doesn't work well for low-FPS screenpipe videos. The plan is to implement a `setInterval`-based frame-jumper for speed > 2× that advances `video.currentTime` by `speed * intervalMs / 1000` every 100–200ms, bypassing browser playbackRate limits.\n2. **Timeline position indicator**: Playhead not prominent enough. \n\n**CSS already changed** in `/volume1/screenpipe/app/static/index.html`:\n```css\n.tt-playhead { position:absolute; top:0; width:3px; height:36px; background:white; box-shadow:0 0 8px rgba(255,255,255,.9); z-index:10; pointer-events:none; display:none; }\n.tt-playhead-time { position:absolute; top:2px; font-size:9px; font-weight:600; color:white; background:rgba(0,0,0,.75); padding:1px 4px; border-radius:2px; white-space:nowrap; transform:translateX(-50%); z-index:12; pointer-events:none; display:none; }\n```\n\nSession was interrupted by summary request after this CSS edit, mid-implementation.\n\n9. Optional Next Step:\n\nContinuing the fix for: \"still playing speed is not showing properly still just in one second. also I want to see in timeline where I am\"\n\nThe next steps in order are:\n1. Add `<div class=\"tt-playhead-time\" id=\"ttPlayheadTime\"></div>` to the HTML inside `#ttInner` (after the existing `.tt-playhead` div)\n2. Update `_ttMovePlayhead` to set `ttPlayheadTime` position and text content with `fmtTime()`\n3. Add timer-based speed system to JS (new functions `_ttStartSpeedTimer`, `_ttStopSpeedTimer`, `ttSetSpeed`)\n4. Update speed select's `onchange` to `ttSetSpeed(+this.value)` and add 64× option\n5. Update `ttSyncBtn`, `ttNextChunk`, `ttSeekToMs` to integrate with timer\n6. Rebuild: `sudo docker compose build screenpipe-app && sudo docker compose up -d screenpipe-app`\n\nIf you need specific details from before compaction (like exact code snippets, error messages, or content you generated), read the full transcript at: /home/Adm1n/.claude/projects/-volume1-screenpipe/7777f46e-1e40-4051-b4bb-f43aedd59556.jsonl\nContinue the conversation from where it left off without asking the user any further questions. Resume directly — do not acknowledge the summary, do not recap what was happening, do not preface with \"I'll continue\" or similar. Pick up the last task as if the break never happened.","depth":26,"role_description":"text"},{"role":"AXButton","text":"Thinking","depth":23,"role_description":"disclosure triangle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Thinking","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Find timetable speed and playhead related code","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"tt-playhead\\|ttPlayhead\\|ttInner\\|_ttMovePlayhead\\|ttSetSpeed\\|_ttStartSpeed\\|_ttStopSpeed\\|ttSyncBtn\\|playbackRate\\|speed.*select\\|spdSel\\|ttSpeed\" /volume1/screenpipe/app/static/index.html | head -80","depth":25,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"207:.tt-playhead { position:absolute; top:0; width:3px; height:36px; background:white; box-shadow:0 0 8px rgba(255,255,255,.9); z-index:10; pointer-events:none; display:none; }\n208:.tt-playhead-time { position:absolute; top:2px; font-size:9px; font-weight:600; color:white; background:rgba(0,0,0,.75); padding:1px 4px; border-radius:2px; white-space:nowrap; transform:translateX(-50%); z-index:12; pointer-events:none; display:none; }\n580: <div class=\"tt-inner\" id=\"ttInner\" onclick=\"ttTimelineClick(event)\">\n583: <div class=\"tt-playhead\" id=\"ttPlayhead\"></div>\n598: onpause=\"ttSyncBtn()\"\n599: onplay=\"ttSyncBtn()\">\n607: <select id=\"ttSpeed\" onchange=\"document.getElementById('ttVideo').playbackRate=+this.value\">\n1624: document.getElementById('ttInner').style.width = '100%';\n1632: document.getElementById('ttPlayhead').style.display = 'none';\n1694: document.getElementById('ttInner').style.width = (_ttZoom * 100) + '%';\n1700: const inner = document.getElementById('ttInner');\n1710: const inner = document.getElementById('ttInner');\n1718: const inner = document.getElementById('ttInner');\n1750: _ttMovePlayhead(new Date(best.ts).getTime());\n1772: _ttMovePlayhead(new Date(best.ts).getTime());\n1791:function _ttMovePlayhead(tsMs) {\n1792: const ph = document.getElementById('ttPlayhead');\n1802: const ph = document.getElementById('ttPlayhead');\n1805: const inner = document.getElementById('ttInner');\n1819:function ttSyncBtn() {","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"role_description":"text"},{"role":"AXLink","text":"index.html","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"index.html","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"(lines 576-625)","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"role_description":"text"},{"role":"AXLink","text":"index.html","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"index.html","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"(lines 1786-1865)","depth":24,"role_description":"text"},{"role":"AXButton","text":"Thinking","depth":23,"role_description":"disclosure triangle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Thinking","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Find chunk loading and playhead update functions","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"ttUpdatePlayhead\\|ttNextChunk\\|ttLoadChunk\\|_ttCurChunk\\|_ttChunks\\|_ttFrames\" /volume1/screenpipe/app/static/index.html | head -50","depth":25,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"596: onended=\"ttNextChunk()\"\n597: ontimeupdate=\"ttUpdatePlayhead()\"\n1569:let _ttFrames = [];\n1570:let _ttChunks = [];\n1571:let _ttCurChunk = -1;\n1607: _ttFrames = data.frames;\n1609: for (const f of _ttFrames) {\n1613: _ttChunks = [...chunkMap.values()];\n1614: _ttCurChunk = -1;\n1616: _ttDayStart = new Date(_ttFrames[0].ts).getTime();\n1617: _ttDayEnd = new Date(_ttFrames[_ttFrames.length - 1].ts).getTime();\n1620: for (const f of _ttFrames) _ttColor(f.app);\n1640: for (const f of _ttFrames) {\n1736: if (!_ttFrames.length) return;\n1737: let best = _ttFrames[0], minDiff = Infinity;\n1738: for (const f of _ttFrames) {\n1742: const ci = _ttChunks.findIndex(ch => ch[0].video_url === best.video_url);\n1744: _ttCurChunk = ci;\n1753:function ttNextChunk() {\n1754: if (_ttCurChunk + 1 >= _ttChunks.length) return;\n1755: _ttCurChunk++;\n1757: video.src = _ttChunks[_ttCurChunk][0].video_url;\n1762:function ttUpdatePlayhead() {\n1764: if (_ttCurChunk < 0 || _ttCurChunk >= _ttChunks.length) return;\n1765: const chunk = _ttChunks[_ttCurChunk];","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"role_description":"text"},{"role":"AXLink","text":"index.html","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"index.html","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"(lines 1754-1793)","depth":24,"role_description":"text"},{"role":"AXButton","text":"Thinking","depth":23,"role_description":"disclosure triangle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Thinking","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"role_description":"text"},{"role":"AXLink","text":"index.html","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"index.html","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"(lines 1701-1760)","depth":24,"role_description":"text"},{"role":"AXButton","text":"Thinking","depth":23,"role_description":"disclosure triangle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Thinking","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"role_description":"text"},{"role":"AXLink","text":"index.html","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"index.html","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"(lines 1561-1640)","depth":24,"role_description":"text"},{"role":"AXButton","text":"Thinking","depth":23,"role_description":"disclosure triangle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Thinking","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Find time formatting functions","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"function fmtTime\\|function fmtDate\\|function _fmt\\|localTimeToUtc\\|fmtDateTime\" /volume1/screenpipe/app/static/index.html | head -20","depth":25,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"1088: if (tf) url += `&time_from=${localTimeToUtc(tf)}`;\n1089: if (tt) url += `&time_to=${localTimeToUtc(tt)}`;\n1153: let meta = `<span style=\"color:var(--muted)\">${fmtDateTime(r.timestamp)}</span>${srcBadge}`;\n1166: meta = `<span style=\"color:var(--muted)\">${fmtDateTime(r.timestamp)}</span>${srcBadge} <span class=\"badge ${r.is_input_device?'mic':'sys'}\">${r.is_input_device?'MIC':'SYS'}</span>`;\n1307:function fmtTime(ts) {\n1312:function fmtDateTime(ts) {\n1320:function localTimeToUtc(timeStr) {\n1778:function _fmtSec(s) {\n1788: `${fmtDateTime(f.ts)} · ${f.app}${f.win ? ' / ' + f.win : ''}`;","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"role_description":"text"},{"role":"AXLink","text":"index.html","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"index.html","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"(lines 1308-1327)","depth":24,"role_description":"text"},{"role":"AXButton","text":"Thinking","depth":23,"role_description":"disclosure triangle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Thinking","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Now I have everything I need. I'll implement the frame-by-frame timer system that replaces","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"video.playbackRate","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"with wall-clock accurate playback, plus add the playhead time label. Let me make the changes:","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Edit","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"","depth":24,"role_description":"text"},{"role":"AXLink","text":"index.html","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"index.html","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"Added 1 line","depth":24,"role_description":"text"}]...
|
2518400043095791049
|
4474475550963076503
|
click
|
accessibility
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 2 pending changes
2
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update, 1 requires restart
3
Claude Code
Containers
EXPLORER
EXPLORER
Explorer Section: screenpipe [SSH: nas]
Explorer Section: screenpipe [SSH: nas]
SCREENPIPE [SSH: NAS]
#recycle
app
data
pipes
.gitignore
app_settings.json
archive.db
db.sqlite
screenpipe_sync.sh
screenpipe.db
Outline Section
OUTLINE
OUTLINE
Timeline Section
TIMELINE
TIMELINE
app_settings.json, Editor Group 1
screenpipe_sync.sh, Editor Group 1
db.sqlite-shm, preview, Editor Group 1
#!/bin/bash
# screenpipe_sync.sh
# Syncs Screenpipe SQLite data to a NAS archive database (append-only, no deletions).
# Also copies the day's video/frame data folder to the NAS.
#
# Usage:
# ./screenpipe_sync.sh # syncs yesterday (default)
# ./screenpipe_sync.sh 2026-04-15 # syncs a specific date
# ./screenpipe_sync.sh today # syncs today so far
#
# Cron example (runs at 3am daily):
# 0 3 * * * /Users/lukas/.screenpipe/screenpipe_sync.sh >> /Users/lukas/.screenpipe/sync.log 2>&1
set -euo pipefail
# ─── CONFIG ───────────────────────────────────────────────────────────────────
DB_SRC="${SCREENPIPE_DB:-$HOME/.screenpipe/db.sqlite}"
NAS_MOUNT="${NAS_MOUNT:-/Volumes/Test/screenpipe}"
NAS_DB="$NAS_MOUNT/archive.db"
NAS_DATA="$NAS_MOUNT/data"
LOG_FILE="$HOME/.screenpipe/sync.log"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
SCRIPT_START=$(date +%s)
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# ─── DATE ARGUMENT ────────────────────────────────────────────────────────────
if [ "${1:-}" = "today" ]; then
TARGET_DATE=$(date +%Y-%m-%d)
elif [ -n "${1:-}" ]; then
TARGET_DATE="$1"
if ! [[ "$TARGET_DATE" =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]]; then
echo "ERROR: Invalid date format. Use YYYY-MM-DD, 'today', or no argument for yesterday."
exit 1
fi
else
TARGET_DATE=$(date -v-1d +%Y-%m-%d)
fi
log "========================================"
log "Screenpipe sync starting for: $TARGET_DATE"
log "========================================"
# ─── PREFLIGHT ────────────────────────────────────────────────────────────────
step "Preflight checks"
if [ ! -f "$DB_SRC" ]; then
log "ERROR: Source DB not found at $DB_SRC"; exit 1
fi
printf " %-20s %s (%s)\n" "Source DB:" "OK" "$(du -sh "$DB_SRC" | cut -f1)"
if [ ! -d "$NAS_MOUNT" ]; then
log "ERROR: NAS not mounted at $NAS_MOUNT"; exit 1
fi
printf " %-20s %s\n" "NAS mount:" "OK $NAS_MOUNT"
# Check if DB already synced for this date
DB_ALREADY_SYNCED=false
if [ -f "$NAS_DB" ]; then
EXISTING=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';" 2>/dev/null || echo "0")
if [ "$EXISTING" -gt "0" ]; then
log "Date $TARGET_DATE already has $EXISTING frames in archive — skipping DB sync"
DB_ALREADY_SYNCED=true
else
printf " %-20s %s (%s)\n" "Archive DB:" "exists" "$(du -sh "$NAS_DB" | cut -f1)"
fi
else
printf " %-20s %s\n" "Archive DB:" "will be created"
fi
# Source data dir for this date
DATA_SRC="$HOME/.screenpipe/data/data/$TARGET_DATE"
if [ -d "$DATA_SRC" ]; then
DATA_SIZE=$(du -sh "$DATA_SRC" | cut -f1)
DATA_FILES=$(ls "$DATA_SRC" | wc -l | tr -d ' ')
printf " %-20s %s (%s files, %s)\n" "Data dir:" "OK" "$DATA_FILES" "$DATA_SIZE"
else
printf " %-20s %s\n" "Data dir:" "not found — skipping file copy"
fi
# ─── DB SYNC ──────────────────────────────────────────────────────────────────
if [ "$DB_ALREADY_SYNCED" = false ]; then
# ─── COUNT SOURCE ROWS ────────────────────────────────────────────────────
step "Counting source rows for $TARGET_DATE"
SRC_FRAMES=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';")
SRC_ELEMENTS=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
SRC_UI=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';")
SRC_OCR=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
SRC_MEETINGS=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM meetings WHERE date(meeting_start) = '$TARGET_DATE';")
printf " %-20s %s\n" "frames:" "$SRC_FRAMES"
printf " %-20s %s\n" "elements:" "$SRC_ELEMENTS"
printf " %-20s %s\n" "ui_events:" "$SRC_UI"
printf " %-20s %s\n" "ocr_text:" "$SRC_OCR"
printf " %-20s %s\n" "meetings:" "$SRC_MEETINGS"
if [ "$SRC_FRAMES" -eq "0" ]; then
log "No frames found for $TARGET_DATE — skipping DB sync"
DB_ALREADY_SYNCED=true
fi
fi
if [ "$DB_ALREADY_SYNCED" = false ]; then
# ─── INIT TABLES ──────────────────────────────────────────────────────────
step "Initialising tables, indexes, FTS"
run_sqlite_heredoc "creating tables" "
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
DETACH nas;
"
run_sqlite_heredoc "creating indexes" "
ATTACH '$NAS_DB' AS nas;
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
CREATE INDEX IF NOT EXISTS nas.idx_elements_frame_id ON elements(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_elements_frame_src_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_timestamp ON ui_events(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_app_name ON ui_events(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_frame_id ON ui_events(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_ocr_text_frame_id ON ocr_text(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_meetings_start ON meetings(meeting_start);
CREATE INDEX IF NOT EXISTS nas.idx_video_chunks_device ON video_chunks(device_name);
DETACH nas;
"
run_sqlite_heredoc "creating FTS tables" "
ATTACH '$NAS_DB' AS nas;
CREATE VIRTUAL TABLE IF NOT EXISTS nas.elements_fts USING fts5(
text, role, frame_id UNINDEXED,
content='elements', content_rowid='id', tokenize='unicode61'
);
CREATE VIRTUAL TABLE IF NOT EXISTS nas.frames_fts USING fts5(
full_text, app_name, window_name, browser_url, id UNINDEXED,
tokenize='unicode61'
);
CREATE VIRTUAL TABLE IF NOT EXISTS nas.ui_events_fts USING fts5(
text_content,
app_name,
window_title,
element_name,
content='ui_events',
content_rowid='id',
tokenize='unicode61'
);
DETACH nas;
"
# ─── SYNC DATA ────────────────────────────────────────────────────────────
step "Syncing data for $TARGET_DATE"
run_sqlite_heredoc "video_chunks" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.video_chunks
SELECT * FROM main.video_chunks
WHERE id IN (
SELECT DISTINCT video_chunk_id FROM main.frames
WHERE date(timestamp) = '$TARGET_DATE' AND video_chunk_id IS NOT NULL
);
DETACH nas;
"
run_sqlite_heredoc "frames ($SRC_FRAMES rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "ocr_text ($SRC_OCR rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.ocr_text
SELECT o.* FROM main.ocr_text o
JOIN main.frames f ON o.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "ui_events ($SRC_UI rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.ui_events
SELECT * FROM main.ui_events WHERE date(timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "elements ($SRC_ELEMENTS rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "meetings ($SRC_MEETINGS rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.meetings
SELECT * FROM main.meetings WHERE date(meeting_start) = '$TARGET_DATE';
DETACH nas;
"
# ─── FTS UPDATE ───────────────────────────────────────────────────────────
step "Updating FTS indexes"
run_sqlite_heredoc "elements_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.elements_fts(rowid, text, role)
SELECT e.id, e.text, e.role
FROM nas.elements e
JOIN nas.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE'
AND e.text IS NOT NULL;
DETACH nas;
"
run_sqlite_heredoc "frames_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.frames_fts(rowid, full_text, app_name, window_name, browser_url, id)
SELECT id, full_text, app_name, window_name, browser_url, id
FROM nas.frames
WHERE date(timestamp) = '$TARGET_DATE'
AND full_text IS NOT NULL;
DETACH nas;
"
run_sqlite_heredoc "ui_events_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.ui_events_fts(rowid, text_content, app_name, window_title, element_name)
SELECT id, text_content, app_name, window_title, element_name
FROM nas.ui_events
WHERE date(timestamp) = '$TARGET_DATE'
AND text_content IS NOT NULL;
DETACH nas;
"
# ─── VERIFY DB ────────────────────────────────────────────────────────────
step "Verifying DB"
V_FRAMES=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';")
V_ELEMENTS=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
V_UI=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';")
V_OCR=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
V_MEETINGS=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM meetings WHERE date(meeting_start)= '$TARGET_DATE';")
check "frames" "$V_FRAMES" "$SRC_FRAMES"
check "elements" "$V_ELEMENTS" "$SRC_ELEMENTS"
check "ui_events" "$V_UI" "$SRC_UI"
check "ocr_text" "$V_OCR" "$SRC_OCR"
check "meetings" "$V_MEETINGS" "$SRC_MEETINGS"
fi
# ─── COPY DATA FOLDER ─────────────────────────────────────────────────────────
# Always runs regardless of DB sync status
step "Copying data folder for $TARGET_DATE"
if [ -d "$DATA_SRC" ]; then
mkdir -p "$NAS_DATA/$TARGET_DATE"
RSYNC_START=$(date +%s)
printf " %-36s " "rsync $TARGET_DATE/ → NAS"
rsync -a --ignore-existing \
"$DATA_SRC/" \
"$NAS_DATA/$TARGET_DATE/" \
2>>"$LOG_FILE"
RSYNC_DUR=$(( $(date +%s) - RSYNC_START ))
COPIED_FILES=$(ls "$NAS_DATA/$TARGET_DATE" | wc -l | tr -d ' ')
SRC_FILES=$(ls "$DATA_SRC" | wc -l | tr -d ' ')
COPIED_SIZE=$(du -sh "$NAS_DATA/$TARGET_DATE" | cut -f1)
if [ "$COPIED_FILES" -eq "$SRC_FILES" ]; then
printf "\r %-36s ✓ %dm%02ds (%s files, %s)\n" \
"rsync $TARGET_DATE/ → NAS" \
"$(( RSYNC_DUR / 60 ))" "$(( RSYNC_DUR % 60 ))" \
"$COPIED_FILES" "$COPIED_SIZE" | tee -a "$LOG_FILE"
else
printf "\r %-36s ✗ %s / %s files\n" \
"rsync $TARGET_DATE/ → NAS" "$COPIED_FILES" "$SRC_FILES" | tee -a "$LOG_FILE"
fi
else
printf " %-36s %s\n" "rsync $TARGET_DATE/ → NAS" "skipped (no source dir)"
fi
# ─── SUMMARY ──────────────────────────────────────────────────────────────────
TOTAL_ELAPSED=$(( $(date +%s) - SCRIPT_START ))
DB_SIZE=$(du -sh "$NAS_DB" | cut -f1)
echo ""
log "Archive DB size: $DB_SIZE"
log "Total time: $(( TOTAL_ELAPSED / 60 ))m$(( TOTAL_ELAPSED % 60 ))s"
log "Sync complete for $TARGET_DATE"
log "========================================"
#!/bin/bash
# screenpipe_sync.sh
# Syncs Screenpipe SQLite data to a NAS archive database (append-only, no deletions).
# Also copies the day's video/frame data folder to the NAS.
#
# Usage:
# ./screenpipe_sync.sh # syncs yesterday (default)
# ./screenpipe_sync.sh 2026-04-15 # syncs a specific date
# ./screenpipe_sync.sh today # syncs today so far
#
# Cron example (runs at 3am daily):
# 0 3 * * * /Users/lukas/.screenpipe/screenpipe_sync.sh >> /Users/lukas/.screenpipe/sync.log 2>&1
set -euo pipefail
# ─── CONFIG ───────────────────────────────────────────────────────────────────
DB_SRC="${SCREENPIPE_DB:-$HOME/.screenpipe/db.sqlite}"
NAS_MOUNT="${NAS_MOUNT:-/Volumes/Test/screenpipe}"
NAS_DB="$NAS_MOUNT/archive.db"
NAS_DATA="$NAS_MOUNT/data"
LOG_FILE="$HOME/.screenpipe/sync.log"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
SCRIPT_START=$(date +%s)
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# ─── DATE ARGUMENT ────────────────────────────────────────────────────────────
if [ "${1:-}" = "today" ]; then
TARGET_DATE=$(date +%Y-%m-%d)
elif [ -n "${1:-}" ]; then
TARGET_DATE="$1"
if ! [[ "$TARGET_DATE" =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]]; then
echo "ERROR: Invalid date format. Use YYYY-MM-DD, 'today', or no argument for yesterday."
exit 1
fi
else
TARGET_DATE=$(date -v-1d +%Y-%m-%d)
fi
log "========================================"
log "Screenpipe sync starting for: $TARGET_DATE"
log "========================================"
# ─── PREFLIGHT ────────────────────────────────────────────────────────────────
step "Preflight checks"
if [ ! -f "$DB_SRC" ]; then
log "ERROR: Source DB not found at $DB_SRC"; exit 1
fi
printf " %-20s %s (%s)\n" "Source DB:" "OK" "$(du -sh "$DB_SRC" | cut -f1)"
if [ ! -d "$NAS_MOUNT" ]; then
log "ERROR: NAS not mounted at $NAS_MOUNT"; exit 1
fi
printf " %-20s %s\n" "NAS mount:" "OK $NAS_MOUNT"
# Check if DB already synced for this date
DB_ALREADY_SYNCED=false
if [ -f "$NAS_DB" ]; then
EXISTING=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';" 2>/dev/null || echo "0")
if [ "$EXISTING" -gt "0" ]; then
log "Date $TARGET_DATE already has $EXISTING frames in archive — skipping DB sync"
DB_ALREADY_SYNCED=true
else
printf " %-20s %s (%s)\n" "Archive DB:" "exists" "$(du -sh "$NAS_DB" | cut -f1)"
fi
else
printf " %-20s %s\n" "Archive DB:" "will be created"
fi
# Source data dir for this date
DATA_SRC="$HOME/.screenpipe/data/data/$TARGET_DATE"
if [ -d "$DATA_SRC" ]; then
DATA_SIZE=$(du -sh "$DATA_SRC" | cut -f1)
DATA_FILES=$(ls "$DATA_SRC" | wc -l | tr -d ' ')
printf " %-20s %s (%s files, %s)\n" "Data dir:" "OK" "$DATA_FILES" "$DATA_SIZE"
else
printf " %-20s %s\n" "Data dir:" "not found — skipping file copy"
fi
# ─── DB SYNC ──────────────────────────────────────────────────────────────────
if [ "$DB_ALREADY_SYNCED" = false ]; then
# ─── COUNT SOURCE ROWS ────────────────────────────────────────────────────
step "Counting source rows for $TARGET_DATE"
SRC_FRAMES=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';")
SRC_ELEMENTS=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
SRC_UI=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';")
SRC_OCR=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
SRC_MEETINGS=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM meetings WHERE date(meeting_start) = '$TARGET_DATE';")
printf " %-20s %s\n" "frames:" "$SRC_FRAMES"
printf " %-20s %s\n" "elements:" "$SRC_ELEMENTS"
printf " %-20s %s\n" "ui_events:" "$SRC_UI"
printf " %-20s %s\n" "ocr_text:" "$SRC_OCR"
printf " %-20s %s\n" "meetings:" "$SRC_MEETINGS"
if [ "$SRC_FRAMES" -eq "0" ]; then
log "No frames found for $TARGET_DATE — skipping DB sync"
DB_ALREADY_SYNCED=true
fi
fi
if [ "$DB_ALREADY_SYNCED" = false ]; then
# ─── INIT TABLES ──────────────────────────────────────────────────────────
step "Initialising tables, indexes, FTS"
run_sqlite_heredoc "creating tables" "
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
DETACH nas;
"
run_sqlite_heredoc "creating indexes" "
ATTACH '$NAS_DB' AS nas;
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
CREATE INDEX IF NOT EXISTS nas.idx_elements_frame_id ON elements(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_elements_frame_src_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_timestamp ON ui_events(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_app_name ON ui_events(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_frame_id ON ui_events(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_ocr_text_frame_id ON ocr_text(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_meetings_start ON meetings(meeting_start);
CREATE INDEX IF NOT EXISTS nas.idx_video_chunks_device ON video_chunks(device_name);
DETACH nas;
"
run_sqlite_heredoc "creating FTS tables" "
ATTACH '$NAS_DB' AS nas;
CREATE VIRTUAL TABLE IF NOT EXISTS nas.elements_fts USING fts5(
text, role, frame_id UNINDEXED,
content='elements', content_rowid='id', tokenize='unicode61'
);
CREATE VIRTUAL TABLE IF NOT EXISTS nas.frames_fts USING fts5(
full_text, app_name, window_name, browser_url, id UNINDEXED,
tokenize='unicode61'
);
CREATE VIRTUAL TABLE IF NOT EXISTS nas.ui_events_fts USING fts5(
text_content,
app_name,
window_title,
element_name,
content='ui_events',
content_rowid='id',
tokenize='unicode61'
);
DETACH nas;
"
# ─── SYNC DATA ────────────────────────────────────────────────────────────
step "Syncing data for $TARGET_DATE"
run_sqlite_heredoc "video_chunks" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.video_chunks
SELECT * FROM main.video_chunks
WHERE id IN (
SELECT DISTINCT video_chunk_id FROM main.frames
WHERE date(timestamp) = '$TARGET_DATE' AND video_chunk_id IS NOT NULL
);
DETACH nas;
"
run_sqlite_heredoc "frames ($SRC_FRAMES rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "ocr_text ($SRC_OCR rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.ocr_text
SELECT o.* FROM main.ocr_text o
JOIN main.frames f ON o.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "ui_events ($SRC_UI rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.ui_events
SELECT * FROM main.ui_events WHERE date(timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "elements ($SRC_ELEMENTS rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "meetings ($SRC_MEETINGS rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.meetings
SELECT * FROM main.meetings WHERE date(meeting_start) = '$TARGET_DATE';
DETACH nas;
"
# ─── FTS UPDATE ───────────────────────────────────────────────────────────
step "Updating FTS indexes"
run_sqlite_heredoc "elements_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.elements_fts(rowid, text, role)
SELECT e.id, e.text, e.role
FROM nas.elements e
JOIN nas.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE'
AND e.text IS NOT NULL;
DETACH nas;
"
run_sqlite_heredoc "frames_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.frames_fts(rowid, full_text, app_name, window_name, browser_url, id)
SELECT id, full_text, app_name, window_name, browser_url, id
FROM nas.frames
WHERE date(timestamp) = '$TARGET_DATE'
AND full_text IS NOT NULL;
DETACH nas;
"
run_sqlite_heredoc "ui_events_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.ui_events_fts(rowid, text_content, app_name, window_title, element_name)
SELECT id, text_content, app_name, window_title, element_name
FROM nas.ui_events
WHERE date(timestamp) = '$TARGET_DATE'
AND text_content IS NOT NULL;
DETACH nas;
"
# ─── VERIFY DB ────────────────────────────────────────────────────────────
step "Verifying DB"
V_FRAMES=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';")
V_ELEMENTS=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
V_UI=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';")
V_OCR=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
V_MEETINGS=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM meetings WHERE date(meeting_start)= '$TARGET_DATE';")
check "frames" "$V_FRAMES" "$SRC_FRAMES"
check "elements" "$V_ELEMENTS" "$SRC_ELEMENTS"
check "ui_events" "$V_UI" "$SRC_UI"
check "ocr_text" "$V_OCR" "$SRC_OCR"
check "meetings" "$V_MEETINGS" "$SRC_MEETINGS"
fi
# ─── COPY DATA FOLDER ─────────────────────────────────────────────────────────
# Always runs regardless of DB sync status
step "Copying data folder for $TARGET_DATE"
if [ -d "$DATA_SRC" ]; then
mkdir -p "$NAS_DATA/$TARGET_DATE"
RSYNC_START=$(date +%s)
printf " %-36s " "rsync $TARGET_DATE/ → NAS"
rsync -a --ignore-existing \
"$DATA_SRC/" \
"$NAS_DATA/$TARGET_DATE/" \
2>>"$LOG_FILE"
RSYNC_DUR=$(( $(date +%s) - RSYNC_START ))
COPIED_FILES=$(ls "$NAS_DATA/$TARGET_DATE" | wc -l | tr -d ' ')
SRC_FILES=$(ls "$DATA_SRC" | wc -l | tr -d ' ')
COPIED_SIZE=$(du -sh "$NAS_DATA/$TARGET_DATE" | cut -f1)
if [ "$COPIED_FILES" -eq "$SRC_FILES" ]; then
printf "\r %-36s ✓ %dm%02ds (%s files, %s)\n" \
"rsync $TARGET_DATE/ → NAS" \
"$(( RSYNC_DUR / 60 ))" "$(( RSYNC_DUR % 60 ))" \
"$COPIED_FILES" "$COPIED_SIZE" | tee -a "$LOG_FILE"
else
printf "\r %-36s ✗ %s / %s files\n" \
"rsync $TARGET_DATE/ → NAS" "$COPIED_FILES" "$SRC_FILES" | tee -a "$LOG_FILE"
fi
else
printf " %-36s %s\n" "rsync $TARGET_DATE/ → NAS" "skipped (no source dir)"
fi
# ─── SUMMARY ──────────────────────────────────────────────────────────────────
TOTAL_ELAPSED=$(( $(date +%s) - SCRIPT_START ))
DB_SIZE=$(du -sh "$NAS_DB" | cut -f1)
echo ""
log "Archive DB size: $DB_SIZE"
log "Total time: $(( TOTAL_ELAPSED / 60 ))m$(( TOTAL_ELAPSED % 60 ))s"
log "Sync complete for $TARGET_DATE"
log "========================================"
lets add ability to jump…, Editor Group 2
Problems (⇧⌘M)
PROBLEMS
Output (⇧⌘U)
OUTPUT
Debug Console (⇧⌘Y)
DEBUG CONSOLE
Terminal (⌃`)
TERMINAL
Ports
PORTS
remote SSH: nas
SSH: nas
screenpipe (Git) - master*, Checkout Branch/Tag...
master*
screenpipe (Git) - Synchronize Changes
No Problems
0
0
No Ports Forwarded
0
Notifications
Signed out
Signed out
Shell Script
Editor Language Status: $(copilot) No inline suggestion available, Inline suggestions
LF
UTF-8
Spaces: 2
Ln 320, Col 36
Screen Reader Optimized
git-commit Lukas Kovalik (23 hours ago)
Lukas Kovalik (23 hours ago)
Info: Downloading VS Code Server...
lets add ability to jump fro,m search to timeline so we can see the exact screen (also based on monitor and time
Session history
New session
Message actions
This session is being continued from a previous conversation that ran out of context. The summary below covers the earlier portion of the conversation.
Summary:
1. Primary Request and Intent:
The user has been developing a Screenpipe dashboard on a Synology NAS. Requests in chronological order:
- **Q1**: Are db.sqlite-shm and db.sqlite-wal used? → Explained WAL mode; cleaned up files.
- **Q2**: AND combination search (term1 + term2 must both appear) → Added "AND also" input field.
- **Q3**: Explain UTC time issue, show date in results, make Only/Skip apps use multiselect → Implemented all three.
- **Q4**: Point sqlite-web at archive.db, add second sqlite-web for db.sqlite → Updated docker-compose.yml, added two services on ports 8767/8768.
- **Q5**: "still the same" (container not picking up config) → Explained `up -d` vs `restart`.
- **Q6**: Add git, push to gitea.com/lakylak/screenpipe.git → Initialized repo, committed, pushed.
- **Q7**: Add Timetable tab with video playback and timeline → Full implementation with click-to-seek, auto-advancing chunks, legend.
- **Q8**: Add scroll/zoom on timeline, jump to specific time, better awareness → Implemented zoom (1×–32×), scrollable timeline, overview minimap, viewport indicator, Jump-to-time input, screenshot thumbnail.
- **Q9 (most recent)**: Make playing speed more than 8×, fix speed not working, show position on timeline → CSS fix done (wider playhead + time label style), remainder in progress.
2. Key Technical Concepts:
- **SQLite WAL mode**: db.sqlite-shm and db.sqlite-wal are WAL companion files; cleaned with `PRAGMA wal_checkpoint(TRUNCATE)`.
- **SQLite FTS5**: Space-separated terms = AND; `MATCH 'term1 term2'` requires both; OR requires explicit `OR` keyword.
- **FastAPI**: Python backend with route handlers in main.py, consumers pattern for DB queries.
- **Docker Compose**: App image is built (code baked in), not volume-mounted → requires `build` + `up -d` for code changes. `restart` doesn't re-read compose file — need `up -d`.
- **sqlite-web**: Read-only flag `-r`, pre-built image, no rebuild needed for config changes.
- **Video playback**: screenpipe records at 0.1–0.3 fps (timelapse). `seek = offset_index / fps` gives seconds into video chunk. ~245 chunks/day across 2 monitors. Videos may be encoded at standard fps making them very short at native speed.
- **Timeline rendering**: App-colored segments built by merging consecutive frames with same `app_name`. Percentage positions: `((ts - dayStart) / span * 100)%`.
- **Zoom/scroll**: Inner div width = `zoom × 100%`, outer wrapper has `overflow-x:auto`. Playhead position stays as % of inner div, which is correct at all zoom levels.
- **Timer-based speed**: For speed > 2×, browser `playbackRate` is unreliable on low-FPS video; correct approach is `setInterval` advancing `video.currentTime` by `speed * interval_ms / 1000` seconds per tick.
- **UTC vs local time**: Backend treats `time_from`/`time_to` as UTC. Frontend converts with `localTimeToUtc()` before sending.
- **Git**: `#recycle/` in .gitignore treated as comment — must escape as `\#recycle/`.
3. Files and Code Sections:
- **`/volume1/screenpipe/app/main.py`**
- Added `/api/apps` endpoint (all unique app names from frames table)
- Added `/api/timetable` endpoint (frames + video URLs + screenshot URLs per device per date)
- `/api/timetable` response structure: `{frames: [{ts, app, win, video_url, seek, screenshot_url}], devices: [...], device: "..."}`
- Key snippet:
```python
@app.get("/api/timetable"
)
async def timetable_data(d: str | None = Query(None), device: str | None = Query(None)):
...
rows = conn.execute(f"""
SELECT f.timestamp AS ts, f.app_name AS app, f.window_name AS win,
f.offset_index, f.snapshot_path,
vc.file_path AS video_path, vc.fps AS video_fps
FROM frames f
JOIN video_chunks vc ON f.video_chunk_id = vc.id
WHERE f.timestamp >= ? AND f.timestamp < ?
AND f.video_chunk_id IS NOT NULL {dev_clause}
ORDER BY f.timestamp
""", params).fetchall()
# seek = offset_index / fps, screenshot_url from _snapshot_to_url(snapshot_path)
```
- **`/volume1/screenpipe/app/docker-compose.yml`**
- Changed sqlite-web service name to `sqlite-web-archive` → port 8767 → `/data/archive.db`
- Added `sqlite-web-live` → port 8768 → `/data/db.sqlite`
- screenpipe-app: port 8766, `DB_PATH: /data/db.sqlite`, `TZ: Europe/Sofia`
- **`/volume1/screenpipe/app/static/index.html`** (single large file with all CSS/HTML/JS)
- **Search enhancements**:
- Added `id="sq2"` "AND also" input between search-row1 and search-row2
- Replaced `sOnlyApps`/`sSkipApps` text inputs with custom multiselect components (`id="msOnlyApps"`, `id="msSkipApps"`)
- Updated `buildUrl()` to combine `q + " " + q2` and convert times with `localTimeToUtc()`
- Added `fmtDateTime(ts)` showing "Apr 20 14:08" format
- Added `localTimeToUtc(timeStr)` converting local HH:MM to UTC
- Multiselect state: `const _msState = { msOnlyApps: new Set(), msSkipApps: new Set() }`
- **Timetable tab** (new page):
- Tab button added between Work Report and AI Summary
- `showPage` array updated: `['activity','search','audio','report','timetable','summary']`
- `refresh()` calls `loadTimetable()` when on timetable page
- **Timetable CSS** (key styles):
```css
.tt-scroll-wrap { overflow-x:auto; ... scrollbar-width:thin; }
.tt-inner { position:relative; height:52px; } /* width set dynamically */
.tt-playhead { position:absolute; top:0; width:3px; height:36px; background:white; box-shadow:0 0 8px rgba(255,255,255,.9); z-index:10; pointer-events:none; display:none; }
.tt-playhead-time { position:absolute; top:2px; font-size:9px; font-weight:600; color:white; background:rgba(0,0,0,.75); padding:1px 4px; border-radius:2px; white-space:nowrap; transform:translateX(-50%); z-index:12; pointer-events:none; display:none; }
.tt-overview-wrap { position:relative; height:14px; ... cursor:pointer; }
.tt-overview-vp { position:absolute; background:rgba(255,255,255,0.12); border:1px solid rgba(255,255,255,0.4); }
```
- **Timetable JS state variables**:
```javascript
let _ttFrames = [], _ttChunks = [], _ttCurChunk = -1;
let _ttDayStart = 0, _ttDayEnd = 0, _ttZoom = 1;
const _ttAppColors = {};
const TT_ZOOMS = [1, 2, 4, 8, 16, 32];
const TT_TICK_MIN = {1:30, 2:15, 4:10, 8:5, 16:2, 32:1};
```
- **Key JS functions**:
- `loadTimetable()` — fetches `/api/timetable`, groups chunks, renders
- `ttZoom(dir)` — changes zoom level, updates inner width, re-renders ticks, scrolls to playhead
- `ttTimelineClick(e)` — uses `inner.getBoundingClientRect()` (works correctly when scrolled)
- `ttOverviewClick(e)` — scrolls timeline + seeks video
- `ttUpdateOverviewVp()` — updates white viewport rect using `wrap.scrollLeft / inner.scrollWidth`
- `ttJumpToTime()` — parses time input, converts to ms, calls `ttSeekToMs`
- `ttSeekToMs(tsMs)` — binary-searches nearest frame, loads chunk, seeks video
- `_ttScrollToPlayhead(force)` — scrolls wrap so playhead stays at ~35% from left when Follow is checked
- `_ttMovePlayhead(tsMs)` — sets `ph.style.left` as percentage, calls `_ttScrollToPlayhead`
- `_ttShowNow(f)` — updates screenshot thumbnail + now-text div
- `ttSyncBtn()` — syncs play/pause button text
- Keyboard: Space=play/pause, ←/→=±10s, Ctrl+←/→=±30s, +/-=zoom
- **`/volume1/screenpipe/.gitignore`**
```
*.db, *.sqlite, *.sqlite-shm, *.sqlite-wal
data/, \#recycle/,
@eaDir/
app_settings.json, app/.env
__pycache__/, *.pyc, .DS_Store
```
4. Errors and Fixes:
- **`#recycle/` in .gitignore treated as comment**: `#` starts a comment in .gitignore. Fixed by escaping: `\#recycle/`. Also had to `git rm --cached "#recycle/desktop.ini"` to unstage it.
- **`sudo docker compose restart sqlite-web` didn't apply config change**: `restart` reuses existing container config, doesn't re-read compose file. Fix: `sudo docker compose up -d` recreates containers with new config.
- **Orphan container holding port 8767**: Old `screenpipe-sqlweb` container still running after rename. Fix: `sudo docker compose up -d --remove-orphans`.
- **`sudo docker` not accessible from Claude Code**: Interactive sudo required. User runs commands in NAS terminal.
- **`git config --global --add safe.directory /volume1/screenpipe`**: Required due to dubious ownership of NAS volume directory.
5. Problem Solving:
- **Time zone confusion in search**: Backend uses UTC for time_from/time_to; frontend displays local time. Solved by `localTimeToUtc()` converting before API call, and showing date+time in results.
- **sqlite-web not showing April 17–21 data**: Container was pointing at db.sqlite (old config), not archive.db. Fixed by updating docker-compose.yml + `up -d`.
- **Video playback speed**: Browser `video.playbackRate` is capped (~16× max in Chrome) and performs poorly for very low FPS (0.1–0.3 fps) screenpipe videos. Each chunk may only be 1–2 seconds of wall-clock encoded video, playing through instantly. Solution: implement timer-based frame-jumping for speed > 2× (in progress).
- **Playhead visibility**: White 2px line was hard to see. Fixed CSS to 3px width + stronger box-shadow + added `.tt-playhead-time` overlay label style.
6. All User Messages:
- "do we use db.sqlite-shm and db.sqlite-wal for anything right now? [image of search UI] Lets add ability to search with combination... Explain how does the search work time seems to work in utc maybe display date next to the time in results. Make only apps and skip apps multiselect with all available apps."
- "doi I need to restart?"
- "there is sudo docker compose"
- "no still the same"
- "add git. I have created gitea repo https://gitea.com/lakylak/screenpipe.git"
- "just do it" (re: git push)
- "how to make sure data in :8767 are accurate and point to archive.db"
- "I can't see older than 16th there should 21st of april. In http://[IP_ADDRESS]:8766/ I can see all but not on sqlite viewer http://[IP_ADDRESS]:8767"
- "ok lets add additional port to read db.sqlite, I would like to see the structure of official db that reads db.sqlite db and one for archive"
- [docker compose output showing orphan container error]
- "looks great. I want to have ability to scroll left and right and also to jump to specific time. I want to be more aware to what I see. Still it should be fast"
- "lets make the playing speed more than 8x"
- "still playing speed is not showing properly still just in one second. also I want to see in timeline where I am"
7. Pending Tasks:
- **Playback speed fix** (in progress, partially done):
- Add `<div class="tt-playhead-time" id="ttPlayheadTime"></div>` inside `ttInner` HTML
- Implement `_ttStartSpeedTimer(speed)` / `_ttStopSpeedTimer()` / `ttSetSpeed(speed)` functions
- Update speed select `onchange` to call `ttSetSpeed(+this.value)`
- Add 64× option to speed select
- Update `_ttMovePlayhead` to also update `ttPlayheadTime` label
- Update `ttSyncBtn` to start/stop timer based on play state + speed
- Update `ttNextChunk` and `ttSeekToMs` to stop timer (restarted by onplay → ttSyncBtn)
- Rebuild Docker image after changes
8. Current Work:
Working on fixing two issues with the Timetable tab:
1. **Playback speed**: `video.playbackRate` doesn't work well for low-FPS screenpipe videos. The plan is to implement a `setInterval`-based frame-jumper for speed > 2× that advances `video.currentTime` by `speed * intervalMs / 1000` every 100–200ms, bypassing browser playbackRate limits.
2. **Timeline position indicator**: Playhead not prominent enough.
**CSS already changed** in `/volume1/screenpipe/app/static/index.html`:
```css
.tt-playhead { position:absolute; top:0; width:3px; height:36px; background:white; box-shadow:0 0 8px rgba(255,255,255,.9); z-index:10; pointer-events:none; display:none; }
.tt-playhead-time { position:absolute; top:2px; font-size:9px; font-weight:600; color:white; background:rgba(0,0,0,.75); padding:1px 4px; border-radius:2px; white-space:nowrap; transform:translateX(-50%); z-index:12; pointer-events:none; display:none; }
```
Session was interrupted by summary request after this CSS edit, mid-implementation.
9. Optional Next Step:
Continuing the fix for: "still playing speed is not showing properly still just in one second. also I want to see in timeline where I am"
The next steps in order are:
1. Add `<div class="tt-playhead-time" id="ttPlayheadTime"></div>` to the HTML inside `#ttInner` (after the existing `.tt-playhead` div)
2. Update `_ttMovePlayhead` to set `ttPlayheadTime` position and text content with `fmtTime()`
3. Add timer-based speed system to JS (new functions `_ttStartSpeedTimer`, `_ttStopSpeedTimer`, `ttSetSpeed`)
4. Update speed select's `onchange` to `ttSetSpeed(+this.value)` and add 64× option
5. Update `ttSyncBtn`, `ttNextChunk`, `ttSeekToMs` to integrate with timer
6. Rebuild: `sudo docker compose build screenpipe-app && sudo docker compose up -d screenpipe-app`
If you need specific details from before compaction (like exact code snippets, error messages, or content you generated), read the full transcript at: /home/Adm1n/.claude/projects/-volume1-screenpipe/7777f46e-1e40-4051-b4bb-f43aedd59556.jsonl
Continue the conversation from where it left off without asking the user any further questions. Resume directly — do not acknowledge the summary, do not recap what was happening, do not preface with "I'll continue" or similar. Pick up the last task as if the break never happened.
Thinking
Thinking
Bash
Find timetable speed and playhead related code
IN
grep -n "tt-playhead\|ttPlayhead\|ttInner\|_ttMovePlayhead\|ttSetSpeed\|_ttStartSpeed\|_ttStopSpeed\|ttSyncBtn\|playbackRate\|speed.*select\|spdSel\|ttSpeed" /volume1/screenpipe/app/static/index.html | head -80
Copy code to clipboard
OUT
207:.tt-playhead { position:absolute; top:0; width:3px; height:36px; background:white; box-shadow:0 0 8px rgba(255,255,255,.9); z-index:10; pointer-events:none; display:none; }
208:.tt-playhead-time { position:absolute; top:2px; font-size:9px; font-weight:600; color:white; background:rgba(0,0,0,.75); padding:1px 4px; border-radius:2px; white-space:nowrap; transform:translateX(-50%); z-index:12; pointer-events:none; display:none; }
580: <div class="tt-inner" id="ttInner" onclick="ttTimelineClick(event)">
583: <div class="tt-playhead" id="ttPlayhead"></div>
598: onpause="ttSyncBtn()"
599: onplay="ttSyncBtn()">
607: <select id="ttSpeed" onchange="document.getElementById('ttVideo').playbackRate=+this.value">
1624: document.getElementById('ttInner').style.width = '100%';
1632: document.getElementById('ttPlayhead').style.display = 'none';
1694: document.getElementById('ttInner').style.width = (_ttZoom * 100) + '%';
1700: const inner = document.getElementById('ttInner');
1710: const inner = document.getElementById('ttInner');
1718: const inner = document.getElementById('ttInner');
1750: _ttMovePlayhead(new Date(best.ts).getTime());
1772: _ttMovePlayhead(new Date(best.ts).getTime());
1791:function _ttMovePlayhead(tsMs) {
1792: const ph = document.getElementById('ttPlayhead');
1802: const ph = document.getElementById('ttPlayhead');
1805: const inner = document.getElementById('ttInner');
1819:function ttSyncBtn() {
Read
index.html
index.html
(lines 576-625)
Read
index.html
index.html
(lines 1786-1865)
Thinking
Thinking
Bash
Find chunk loading and playhead update functions
IN
grep -n "ttUpdatePlayhead\|ttNextChunk\|ttLoadChunk\|_ttCurChunk\|_ttChunks\|_ttFrames" /volume1/screenpipe/app/static/index.html | head -50
Copy code to clipboard
OUT
596: onended="ttNextChunk()"
597: ontimeupdate="ttUpdatePlayhead()"
1569:let _ttFrames = [];
1570:let _ttChunks = [];
1571:let _ttCurChunk = -1;
1607: _ttFrames = data.frames;
1609: for (const f of _ttFrames) {
1613: _ttChunks = [...chunkMap.values()];
1614: _ttCurChunk = -1;
1616: _ttDayStart = new Date(_ttFrames[0].ts).getTime();
1617: _ttDayEnd = new Date(_ttFrames[_ttFrames.length - 1].ts).getTime();
1620: for (const f of _ttFrames) _ttColor(f.app);
1640: for (const f of _ttFrames) {
1736: if (!_ttFrames.length) return;
1737: let best = _ttFrames[0], minDiff = Infinity;
1738: for (const f of _ttFrames) {
1742: const ci = _ttChunks.findIndex(ch => ch[0].video_url === best.video_url);
1744: _ttCurChunk = ci;
1753:function ttNextChunk() {
1754: if (_ttCurChunk + 1 >= _ttChunks.length) return;
1755: _ttCurChunk++;
1757: video.src = _ttChunks[_ttCurChunk][0].video_url;
1762:function ttUpdatePlayhead() {
1764: if (_ttCurChunk < 0 || _ttCurChunk >= _ttChunks.length) return;
1765: const chunk = _ttChunks[_ttCurChunk];
Read
index.html
index.html
(lines 1754-1793)
Thinking
Thinking
Read
index.html
index.html
(lines 1701-1760)
Thinking
Thinking
Read
index.html
index.html
(lines 1561-1640)
Thinking
Thinking
Bash
Find time formatting functions
IN
grep -n "function fmtTime\|function fmtDate\|function _fmt\|localTimeToUtc\|fmtDateTime" /volume1/screenpipe/app/static/index.html | head -20
Copy code to clipboard
OUT
1088: if (tf) url += `&time_from=${localTimeToUtc(tf)}`;
1089: if (tt) url += `&time_to=${localTimeToUtc(tt)}`;
1153: let meta = `<span style="color:var(--muted)">${fmtDateTime(r.timestamp)}</span>${srcBadge}`;
1166: meta = `<span style="color:var(--muted)">${fmtDateTime(r.timestamp)}</span>${srcBadge} <span class="badge ${r.is_input_device?'mic':'sys'}">${r.is_input_device?'MIC':'SYS'}</span>`;
1307:function fmtTime(ts) {
1312:function fmtDateTime(ts) {
1320:function localTimeToUtc(timeStr) {
1778:function _fmtSec(s) {
1788: `${fmtDateTime(f.ts)} · ${f.app}${f.win ? ' / ' + f.win : ''}`;
Read
index.html
index.html
(lines 1308-1327)
Thinking
Thinking
Now I have everything I need. I'll implement the frame-by-frame timer system that replaces
video.playbackRate
with wall-clock accurate playback, plus add the playhead time label. Let me make the changes:
Edit
index.html
index.html
Added 1 line...
|
NULL
|
|
81025
|
2156
|
8
|
2026-04-25T15:56:21.192275+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-25/1777 /Users/lukas/.screenpipe/data/data/2026-04-25/1777132581192_m1.jpg...
|
Code
|
screenpipe_sync.sh — screenpipe [SSH: nas]
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 2 pending changes
2
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update, 1 requires restart
3
Claude Code
Containers
EXPLORER
EXPLORER
Explorer Section: screenpipe [SSH: nas]
Explorer Section: screenpipe [SSH: nas]
SCREENPIPE [SSH: NAS]
#recycle
app
data
pipes
.gitignore
app_settings.json
archive.db
db.sqlite
screenpipe_sync.sh
screenpipe.db
Outline Section
OUTLINE
OUTLINE
Timeline Section
TIMELINE
TIMELINE
app_settings.json, Editor Group 1
screenpipe_sync.sh, Editor Group 1
db.sqlite-shm, preview, Editor Group 1
#!/bin/bash
# screenpipe_sync.sh
# Syncs Screenpipe SQLite data to a NAS archive database (append-only, no deletions).
# Also copies the day's video/frame data folder to the NAS.
#
# Usage:
# ./screenpipe_sync.sh # syncs yesterday (default)
# ./screenpipe_sync.sh 2026-04-15 # syncs a specific date
# ./screenpipe_sync.sh today # syncs today so far
#
# Cron example (runs at 3am daily):
# 0 3 * * * /Users/lukas/.screenpipe/screenpipe_sync.sh >> /Users/lukas/.screenpipe/sync.log 2>&1
set -euo pipefail
# ─── CONFIG ───────────────────────────────────────────────────────────────────
DB_SRC="${SCREENPIPE_DB:-$HOME/.screenpipe/db.sqlite}"
NAS_MOUNT="${NAS_MOUNT:-/Volumes/Test/screenpipe}"
NAS_DB="$NAS_MOUNT/archive.db"
NAS_DATA="$NAS_MOUNT/data"
LOG_FILE="$HOME/.screenpipe/sync.log"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
SCRIPT_START=$(date +%s)
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# ─── DATE ARGUMENT ────────────────────────────────────────────────────────────
if [ "${1:-}" = "today" ]; then
TARGET_DATE=$(date +%Y-%m-%d)
elif [ -n "${1:-}" ]; then
TARGET_DATE="$1"
if ! [[ "$TARGET_DATE" =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]]; then
echo "ERROR: Invalid date format. Use YYYY-MM-DD, 'today', or no argument for yesterday."
exit 1
fi
else
TARGET_DATE=$(date -v-1d +%Y-%m-%d)
fi
log "========================================"
log "Screenpipe sync starting for: $TARGET_DATE"
log "========================================"
# ─── PREFLIGHT ────────────────────────────────────────────────────────────────
step "Preflight checks"
if [ ! -f "$DB_SRC" ]; then
log "ERROR: Source DB not found at $DB_SRC"; exit 1
fi
printf " %-20s %s (%s)\n" "Source DB:" "OK" "$(du -sh "$DB_SRC" | cut -f1)"
if [ ! -d "$NAS_MOUNT" ]; then
log "ERROR: NAS not mounted at $NAS_MOUNT"; exit 1
fi
printf " %-20s %s\n" "NAS mount:" "OK $NAS_MOUNT"
# Check if DB already synced for this date
DB_ALREADY_SYNCED=false
if [ -f "$NAS_DB" ]; then
EXISTING=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';" 2>/dev/null || echo "0")
if [ "$EXISTING" -gt "0" ]; then
log "Date $TARGET_DATE already has $EXISTING frames in archive — skipping DB sync"
DB_ALREADY_SYNCED=true
else
printf " %-20s %s (%s)\n" "Archive DB:" "exists" "$(du -sh "$NAS_DB" | cut -f1)"
fi
else
printf " %-20s %s\n" "Archive DB:" "will be created"
fi
# Source data dir for this date
DATA_SRC="$HOME/.screenpipe/data/data/$TARGET_DATE"
if [ -d "$DATA_SRC" ]; then
DATA_SIZE=$(du -sh "$DATA_SRC" | cut -f1)
DATA_FILES=$(ls "$DATA_SRC" | wc -l | tr -d ' ')
printf " %-20s %s (%s files, %s)\n" "Data dir:" "OK" "$DATA_FILES" "$DATA_SIZE"
else
printf " %-20s %s\n" "Data dir:" "not found — skipping file copy"
fi
# ─── DB SYNC ──────────────────────────────────────────────────────────────────
if [ "$DB_ALREADY_SYNCED" = false ]; then
# ─── COUNT SOURCE ROWS ────────────────────────────────────────────────────
step "Counting source rows for $TARGET_DATE"
SRC_FRAMES=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';")
SRC_ELEMENTS=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
SRC_UI=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';")
SRC_OCR=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
SRC_MEETINGS=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM meetings WHERE date(meeting_start) = '$TARGET_DATE';")
printf " %-20s %s\n" "frames:" "$SRC_FRAMES"
printf " %-20s %s\n" "elements:" "$SRC_ELEMENTS"
printf " %-20s %s\n" "ui_events:" "$SRC_UI"
printf " %-20s %s\n" "ocr_text:" "$SRC_OCR"
printf " %-20s %s\n" "meetings:" "$SRC_MEETINGS"
if [ "$SRC_FRAMES" -eq "0" ]; then
log "No frames found for $TARGET_DATE — skipping DB sync"
DB_ALREADY_SYNCED=true
fi
fi
if [ "$DB_ALREADY_SYNCED" = false ]; then
# ─── INIT TABLES ──────────────────────────────────────────────────────────
step "Initialising tables, indexes, FTS"
run_sqlite_heredoc "creating tables" "
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
DETACH nas;
"
run_sqlite_heredoc "creating indexes" "
ATTACH '$NAS_DB' AS nas;
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
CREATE INDEX IF NOT EXISTS nas.idx_elements_frame_id ON elements(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_elements_frame_src_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_timestamp ON ui_events(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_app_name ON ui_events(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_frame_id ON ui_events(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_ocr_text_frame_id ON ocr_text(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_meetings_start ON meetings(meeting_start);
CREATE INDEX IF NOT EXISTS nas.idx_video_chunks_device ON video_chunks(device_name);
DETACH nas;
"
run_sqlite_heredoc "creating FTS tables" "
ATTACH '$NAS_DB' AS nas;
CREATE VIRTUAL TABLE IF NOT EXISTS nas.elements_fts USING fts5(
text, role, frame_id UNINDEXED,
content='elements', content_rowid='id', tokenize='unicode61'
);
CREATE VIRTUAL TABLE IF NOT EXISTS nas.frames_fts USING fts5(
full_text, app_name, window_name, browser_url, id UNINDEXED,
tokenize='unicode61'
);
CREATE VIRTUAL TABLE IF NOT EXISTS nas.ui_events_fts USING fts5(
text_content,
app_name,
window_title,
element_name,
content='ui_events',
content_rowid='id',
tokenize='unicode61'
);
DETACH nas;
"
# ─── SYNC DATA ────────────────────────────────────────────────────────────
step "Syncing data for $TARGET_DATE"
run_sqlite_heredoc "video_chunks" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.video_chunks
SELECT * FROM main.video_chunks
WHERE id IN (
SELECT DISTINCT video_chunk_id FROM main.frames
WHERE date(timestamp) = '$TARGET_DATE' AND video_chunk_id IS NOT NULL
);
DETACH nas;
"
run_sqlite_heredoc "frames ($SRC_FRAMES rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "ocr_text ($SRC_OCR rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.ocr_text
SELECT o.* FROM main.ocr_text o
JOIN main.frames f ON o.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "ui_events ($SRC_UI rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.ui_events
SELECT * FROM main.ui_events WHERE date(timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "elements ($SRC_ELEMENTS rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "meetings ($SRC_MEETINGS rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.meetings
SELECT * FROM main.meetings WHERE date(meeting_start) = '$TARGET_DATE';
DETACH nas;
"
# ─── FTS UPDATE ───────────────────────────────────────────────────────────
step "Updating FTS indexes"
run_sqlite_heredoc "elements_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.elements_fts(rowid, text, role)
SELECT e.id, e.text, e.role
FROM nas.elements e
JOIN nas.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE'
AND e.text IS NOT NULL;
DETACH nas;
"
run_sqlite_heredoc "frames_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.frames_fts(rowid, full_text, app_name, window_name, browser_url, id)
SELECT id, full_text, app_name, window_name, browser_url, id
FROM nas.frames
WHERE date(timestamp) = '$TARGET_DATE'
AND full_text IS NOT NULL;
DETACH nas;
"
run_sqlite_heredoc "ui_events_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.ui_events_fts(rowid, text_content, app_name, window_title, element_name)
SELECT id, text_content, app_name, window_title, element_name
FROM nas.ui_events
WHERE date(timestamp) = '$TARGET_DATE'
AND text_content IS NOT NULL;
DETACH nas;
"
# ─── VERIFY DB ────────────────────────────────────────────────────────────
step "Verifying DB"
V_FRAMES=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';")
V_ELEMENTS=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
V_UI=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';")
V_OCR=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
V_MEETINGS=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM meetings WHERE date(meeting_start)= '$TARGET_DATE';")
check "frames" "$V_FRAMES" "$SRC_FRAMES"
check "elements" "$V_ELEMENTS" "$SRC_ELEMENTS"
check "ui_events" "$V_UI" "$SRC_UI"
check "ocr_text" "$V_OCR" "$SRC_OCR"
check "meetings" "$V_MEETINGS" "$SRC_MEETINGS"
fi
# ─── COPY DATA FOLDER ─────────────────────────────────────────────────────────
# Always runs regardless of DB sync status
step "Copying data folder for $TARGET_DATE"
if [ -d "$DATA_SRC" ]; then
mkdir -p "$NAS_DATA/$TARGET_DATE"
RSYNC_START=$(date +%s)
printf " %-36s " "rsync $TARGET_DATE/ → NAS"
rsync -a --ignore-existing \
"$DATA_SRC/" \
"$NAS_DATA/$TARGET_DATE/" \
2>>"$LOG_FILE"
RSYNC_DUR=$(( $(date +%s) - RSYNC_START ))
COPIED_FILES=$(ls "$NAS_DATA/$TARGET_DATE" | wc -l | tr -d ' ')
SRC_FILES=$(ls "$DATA_SRC" | wc -l | tr -d ' ')
COPIED_SIZE=$(du -sh "$NAS_DATA/$TARGET_DATE" | cut -f1)
if [ "$COPIED_FILES" -eq "$SRC_FILES" ]; then
printf "\r %-36s ✓ %dm%02ds (%s files, %s)\n" \
"rsync $TARGET_DATE/ → NAS" \
"$(( RSYNC_DUR / 60 ))" "$(( RSYNC_DUR % 60 ))" \
"$COPIED_FILES" "$COPIED_SIZE" | tee -a "$LOG_FILE"
else
printf "\r %-36s ✗ %s / %s files\n" \
"rsync $TARGET_DATE/ → NAS" "$COPIED_FILES" "$SRC_FILES" | tee -a "$LOG_FILE"
fi
else
printf " %-36s %s\n" "rsync $TARGET_DATE/ → NAS" "skipped (no source dir)"
fi
# ─── SUMMARY ──────────────────────────────────────────────────────────────────
TOTAL_ELAPSED=$(( $(date +%s) - SCRIPT_START ))
DB_SIZE=$(du -sh "$NAS_DB" | cut -f1)
echo ""
log "Archive DB size: $DB_SIZE"
log "Total time: $(( TOTAL_ELAPSED / 60 ))m$(( TOTAL_ELAPSED % 60 ))s"
log "Sync complete for $TARGET_DATE"
log "========================================"
#!/bin/bash
# screenpipe_sync.sh
# Syncs Screenpipe SQLite data to a NAS archive database (append-only, no deletions).
# Also copies the day's video/frame data folder to the NAS.
#
# Usage:
# ./screenpipe_sync.sh # syncs yesterday (default)
# ./screenpipe_sync.sh 2026-04-15 # syncs a specific date
# ./screenpipe_sync.sh today # syncs today so far
#
# Cron example (runs at 3am daily):
# 0 3 * * * /Users/lukas/.screenpipe/screenpipe_sync.sh >> /Users/lukas/.screenpipe/sync.log 2>&1
set -euo pipefail
# ─── CONFIG ───────────────────────────────────────────────────────────────────
DB_SRC="${SCREENPIPE_DB:-$HOME/.screenpipe/db.sqlite}"
NAS_MOUNT="${NAS_MOUNT:-/Volumes/Test/screenpipe}"
NAS_DB="$NAS_MOUNT/archive.db"
NAS_DATA="$NAS_MOUNT/data"
LOG_FILE="$HOME/.screenpipe/sync.log"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
SCRIPT_START=$(date +%s)
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# ─── DATE ARGUMENT ────────────────────────────────────────────────────────────
if [ "${1:-}" = "today" ]; then
TARGET_DATE=$(date +%Y-%m-%d)
elif [ -n "${1:-}" ]; then
TARGET_DATE="$1"
if ! [[ "$TARGET_DATE" =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]]; then
echo "ERROR: Invalid date format. Use YYYY-MM-DD, 'today', or no argument for yesterday."
exit 1
fi
else
TARGET_DATE=$(date -v-1d +%Y-%m-%d)
fi
log "========================================"
log "Screenpipe sync starting for: $TARGET_DATE"
log "========================================"
# ─── PREFLIGHT ────────────────────────────────────────────────────────────────
step "Preflight checks"
if [ ! -f "$DB_SRC" ]; then
log "ERROR: Source DB not found at $DB_SRC"; exit 1
fi
printf " %-20s %s (%s)\n" "Source DB:" "OK" "$(du -sh "$DB_SRC" | cut -f1)"
if [ ! -d "$NAS_MOUNT" ]; then
log "ERROR: NAS not mounted at $NAS_MOUNT"; exit 1
fi
printf " %-20s %s\n" "NAS mount:" "OK $NAS_MOUNT"
# Check if DB already synced for this date
DB_ALREADY_SYNCED=false
if [ -f "$NAS_DB" ]; then
EXISTING=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';" 2>/dev/null || echo "0")
if [ "$EXISTING" -gt "0" ]; then
log "Date $TARGET_DATE already has $EXISTING frames in archive — skipping DB sync"
DB_ALREADY_SYNCED=true
else
printf " %-20s %s (%s)\n" "Archive DB:" "exists" "$(du -sh "$NAS_DB" | cut -f1)"
fi
else
printf " %-20s %s\n" "Archive DB:" "will be created"
fi
# Source data dir for this date
DATA_SRC="$HOME/.screenpipe/data/data/$TARGET_DATE"
if [ -d "$DATA_SRC" ]; then
DATA_SIZE=$(du -sh "$DATA_SRC" | cut -f1)
DATA_FILES=$(ls "$DATA_SRC" | wc -l | tr -d ' ')
printf " %-20s %s (%s files, %s)\n" "Data dir:" "OK" "$DATA_FILES" "$DATA_SIZE"
else
printf " %-20s %s\n" "Data dir:" "not found — skipping file copy"
fi
# ─── DB SYNC ──────────────────────────────────────────────────────────────────
if [ "$DB_ALREADY_SYNCED" = false ]; then
# ─── COUNT SOURCE ROWS ────────────────────────────────────────────────────
step "Counting source rows for $TARGET_DATE"
SRC_FRAMES=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';")
SRC_ELEMENTS=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
SRC_UI=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';")
SRC_OCR=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
SRC_MEETINGS=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM meetings WHERE date(meeting_start) = '$TARGET_DATE';")
printf " %-20s %s\n" "frames:" "$SRC_FRAMES"
printf " %-20s %s\n" "elements:" "$SRC_ELEMENTS"
printf " %-20s %s\n" "ui_events:" "$SRC_UI"
printf " %-20s %s\n" "ocr_text:" "$SRC_OCR"
printf " %-20s %s\n" "meetings:" "$SRC_MEETINGS"
if [ "$SRC_FRAMES" -eq "0" ]; then
log "No frames found for $TARGET_DATE — skipping DB sync"
DB_ALREADY_SYNCED=true
fi
fi
if [ "$DB_ALREADY_SYNCED" = false ]; then
# ─── INIT TABLES ──────────────────────────────────────────────────────────
step "Initialising tables, indexes, FTS"
run_sqlite_heredoc "creating tables" "
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
DETACH nas;
"
run_sqlite_heredoc "creating indexes" "
ATTACH '$NAS_DB' AS nas;
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
CREATE INDEX IF NOT EXISTS nas.idx_elements_frame_id ON elements(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_elements_frame_src_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_timestamp ON ui_events(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_app_name ON ui_events(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_frame_id ON ui_events(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_ocr_text_frame_id ON ocr_text(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_meetings_start ON meetings(meeting_start);
CREATE INDEX IF NOT EXISTS nas.idx_video_chunks_device ON video_chunks(device_name);
DETACH nas;
"
run_sqlite_heredoc "creating FTS tables" "
ATTACH '$NAS_DB' AS nas;
CREATE VIRTUAL TABLE IF NOT EXISTS nas.elements_fts USING fts5(
text, role, frame_id UNINDEXED,
content='elements', content_rowid='id', tokenize='unicode61'
);
CREATE VIRTUAL TABLE IF NOT EXISTS nas.frames_fts USING fts5(
full_text, app_name, window_name, browser_url, id UNINDEXED,
tokenize='unicode61'
);
CREATE VIRTUAL TABLE IF NOT EXISTS nas.ui_events_fts USING fts5(
text_content,
app_name,
window_title,
element_name,
content='ui_events',
content_rowid='id',
tokenize='unicode61'
);
DETACH nas;
"
# ─── SYNC DATA ────────────────────────────────────────────────────────────
step "Syncing data for $TARGET_DATE"
run_sqlite_heredoc "video_chunks" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.video_chunks
SELECT * FROM main.video_chunks
WHERE id IN (
SELECT DISTINCT video_chunk_id FROM main.frames
WHERE date(timestamp) = '$TARGET_DATE' AND video_chunk_id IS NOT NULL
);
DETACH nas;
"
run_sqlite_heredoc "frames ($SRC_FRAMES rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "ocr_text ($SRC_OCR rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.ocr_text
SELECT o.* FROM main.ocr_text o
JOIN main.frames f ON o.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "ui_events ($SRC_UI rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.ui_events
SELECT * FROM main.ui_events WHERE date(timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "elements ($SRC_ELEMENTS rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "meetings ($SRC_MEETINGS rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.meetings
SELECT * FROM main.meetings WHERE date(meeting_start) = '$TARGET_DATE';
DETACH nas;
"
# ─── FTS UPDATE ───────────────────────────────────────────────────────────
step "Updating FTS indexes"
run_sqlite_heredoc "elements_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.elements_fts(rowid, text, role)
SELECT e.id, e.text, e.role
FROM nas.elements e
JOIN nas.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE'
AND e.text IS NOT NULL;
DETACH nas;
"
run_sqlite_heredoc "frames_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.frames_fts(rowid, full_text, app_name, window_name, browser_url, id)
SELECT id, full_text, app_name, window_name, browser_url, id
FROM nas.frames
WHERE date(timestamp) = '$TARGET_DATE'
AND full_text IS NOT NULL;
DETACH nas;
"
run_sqlite_heredoc "ui_events_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.ui_events_fts(rowid, text_content, app_name, window_title, element_name)
SELECT id, text_content, app_name, window_title, element_name
FROM nas.ui_events
WHERE date(timestamp) = '$TARGET_DATE'
AND text_content IS NOT NULL;
DETACH nas;
"
# ─── VERIFY DB ────────────────────────────────────────────────────────────
step "Verifying DB"
V_FRAMES=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';")
V_ELEMENTS=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
V_UI=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';")
V_OCR=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
V_MEETINGS=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM meetings WHERE date(meeting_start)= '$TARGET_DATE';")
check "frames" "$V_FRAMES" "$SRC_FRAMES"
check "elements" "$V_ELEMENTS" "$SRC_ELEMENTS"
check "ui_events" "$V_UI" "$SRC_UI"
check "ocr_text" "$V_OCR" "$SRC_OCR"
check "meetings" "$V_MEETINGS" "$SRC_MEETINGS"
fi
# ─── COPY DATA FOLDER ─────────────────────────────────────────────────────────
# Always runs regardless of DB sync status
step "Copying data folder for $TARGET_DATE"
if [ -d "$DATA_SRC" ]; then
mkdir -p "$NAS_DATA/$TARGET_DATE"
RSYNC_START=$(date +%s)
printf " %-36s " "rsync $TARGET_DATE/ → NAS"
rsync -a --ignore-existing \
"$DATA_SRC/" \
"$NAS_DATA/$TARGET_DATE/" \
2>>"$LOG_FILE"
RSYNC_DUR=$(( $(date +%s) - RSYNC_START ))
COPIED_FILES=$(ls "$NAS_DATA/$TARGET_DATE" | wc -l | tr -d ' ')
SRC_FILES=$(ls "$DATA_SRC" | wc -l | tr -d ' ')
COPIED_SIZE=$(du -sh "$NAS_DATA/$TARGET_DATE" | cut -f1)
if [ "$COPIED_FILES" -eq "$SRC_FILES" ]; then
printf "\r %-36s ✓ %dm%02ds (%s files, %s)\n" \
"rsync $TARGET_DATE/ → NAS" \
"$(( RSYNC_DUR / 60 ))" "$(( RSYNC_DUR % 60 ))" \
"$COPIED_FILES" "$COPIED_SIZE" | tee -a "$LOG_FILE"
else
printf "\r %-36s ✗ %s / %s files\n" \
"rsync $TARGET_DATE/ → NAS" "$COPIED_FILES" "$SRC_FILES" | tee -a "$LOG_FILE"
fi
else
printf " %-36s %s\n" "rsync $TARGET_DATE/ → NAS" "skipped (no source dir)"
fi
# ─── SUMMARY ──────────────────────────────────────────────────────────────────
TOTAL_ELAPSED=$(( $(date +%s) - SCRIPT_START ))
DB_SIZE=$(du -sh "$NAS_DB" | cut -f1)
echo ""
log "Archive DB size: $DB_SIZE"
log "Total time: $(( TOTAL_ELAPSED / 60 ))m$(( TOTAL_ELAPSED % 60 ))s"
log "Sync complete for $TARGET_DATE"
log "========================================"
lets add ability to jump…, Editor Group 2
Problems (⇧⌘M)
PROBLEMS
Output (⇧⌘U)
OUTPUT
Debug Console (⇧⌘Y)
DEBUG CONSOLE
Terminal (⌃`)
TERMINAL
Ports
PORTS
remote SSH: nas
SSH: nas
screenpipe (Git) - master*, Checkout Branch/Tag...
master*
screenpipe (Git) - Synchronize Changes
No Problems
0
0
No Ports Forwarded
0
Notifications
Signed out
Signed out
Shell Script
Editor Language Status: $(copilot) No inline suggestion available, Inline suggestions
LF
UTF-8
Spaces: 2
Ln 320, Col 36
Screen Reader Optimized
git-commit Lukas Kovalik (23 hours ago)
Lukas Kovalik (23 hours ago)
Info: Downloading VS Code Server...
lets add ability to jump fro,m search to timeline so we can see the exact screen (also based on monitor and time
Session history
New session
Message actions
This session is being continued from a previous conversation that ran out of context. The summary below covers the earlier portion of the conversation.
Summary:
1. Primary Request and Intent:
The user has been developing a Screenpipe dashboard on a Synology NAS. Requests in chronological order:
- **Q1**: Are db.sqlite-shm and db.sqlite-wal used? → Explained WAL mode; cleaned up files.
- **Q2**: AND combination search (term1 + term2 must both appear) → Added "AND also" input field.
- **Q3**: Explain UTC time issue, show date in results, make Only/Skip apps use multiselect → Implemented all three.
- **Q4**: Point sqlite-web at archive.db, add second sqlite-web for db.sqlite → Updated docker-compose.yml, added two services on ports 8767/8768.
- **Q5**: "still the same" (container not picking up config) → Explained `up -d` vs `restart`.
- **Q6**: Add git, push to gitea.com/lakylak/screenpipe.git → Initialized repo, committed, pushed.
- **Q7**: Add Timetable tab with video playback and timeline → Full implementation with click-to-seek, auto-advancing chunks, legend.
- **Q8**: Add scroll/zoom on timeline, jump to specific time, better awareness → Implemented zoom (1×–32×), scrollable timeline, overview minimap, viewport indicator, Jump-to-time input, screenshot thumbnail.
- **Q9 (most recent)**: Make playing speed more than 8×, fix speed not working, show position on timeline → CSS fix done (wider playhead + time label style), remainder in progress.
2. Key Technical Concepts:
- **SQLite WAL mode**: db.sqlite-shm and db.sqlite-wal are WAL companion files; cleaned with `PRAGMA wal_checkpoint(TRUNCATE)`.
- **SQLite FTS5**: Space-separated terms = AND; `MATCH 'term1 term2'` requires both; OR requires explicit `OR` keyword.
- **FastAPI**: Python backend with route handlers in main.py, consumers pattern for DB queries.
- **Docker Compose**: App image is built (code baked in), not volume-mounted → requires `build` + `up -d` for code changes. `restart` doesn't re-read compose file — need `up -d`.
- **sqlite-web**: Read-only flag `-r`, pre-built image, no rebuild needed for config changes.
- **Video playback**: screenpipe records at 0.1–0.3 fps (timelapse). `seek = offset_index / fps` gives seconds into video chunk. ~245 chunks/day across 2 monitors. Videos may be encoded at standard fps making them very short at native speed.
- **Timeline rendering**: App-colored segments built by merging consecutive frames with same `app_name`. Percentage positions: `((ts - dayStart) / span * 100)%`.
- **Zoom/scroll**: Inner div width = `zoom × 100%`, outer wrapper has `overflow-x:auto`. Playhead position stays as % of inner div, which is correct at all zoom levels.
- **Timer-based speed**: For speed > 2×, browser `playbackRate` is unreliable on low-FPS video; correct approach is `setInterval` advancing `video.currentTime` by `speed * interval_ms / 1000` seconds per tick.
- **UTC vs local time**: Backend treats `time_from`/`time_to` as UTC. Frontend converts with `localTimeToUtc()` before sending.
- **Git**: `#recycle/` in .gitignore treated as comment — must escape as `\#recycle/`.
3. Files and Code Sections:
- **`/volume1/screenpipe/app/main.py`**
- Added `/api/apps` endpoint (all unique app names from frames table)
- Added `/api/timetable` endpoint (frames + video URLs + screenshot URLs per device per date)
- `/api/timetable` response structure: `{frames: [{ts, app, win, video_url, seek, screenshot_url}], devices: [...], device: "..."}`
- Key snippet:
```python
@app.get("/api/timetable"
)
async def timetable_data(d: str | None = Query(None), device: str | None = Query(None)):
...
rows = conn.execute(f"""
SELECT f.timestamp AS ts, f.app_name AS app, f.window_name AS win,
f.offset_index, f.snapshot_path,
vc.file_path AS video_path, vc.fps AS video_fps
FROM frames f
JOIN video_chunks vc ON f.video_chunk_id = vc.id
WHERE f.timestamp >= ? AND f.timestamp < ?
AND f.video_chunk_id IS NOT NULL {dev_clause}
ORDER BY f.timestamp
""", params).fetchall()
# seek = offset_index / fps, screenshot_url from _snapshot_to_url(snapshot_path)
```
- **`/volume1/screenpipe/app/docker-compose.yml`**
- Changed sqlite-web service name to `sqlite-web-archive` → port 8767 → `/data/archive.db`
- Added `sqlite-web-live` → port 8768 → `/data/db.sqlite`
- screenpipe-app: port 8766, `DB_PATH: /data/db.sqlite`, `TZ: Europe/Sofia`
- **`/volume1/screenpipe/app/static/index.html`** (single large file with all CSS/HTML/JS)
- **Search enhancements**:
- Added `id="sq2"` "AND also" input between search-row1 and search-row2
- Replaced `sOnlyApps`/`sSkipApps` text inputs with custom multiselect components (`id="msOnlyApps"`, `id="msSkipApps"`)
- Updated `buildUrl()` to combine `q + " " + q2` and convert times with `localTimeToUtc()`
- Added `fmtDateTime(ts)` showing "Apr 20 14:08" format
- Added `localTimeToUtc(timeStr)` converting local HH:MM to UTC
- Multiselect state: `const _msState = { msOnlyApps: new Set(), msSkipApps: new Set() }`
- **Timetable tab** (new page):
- Tab button added between Work Report and AI Summary
- `showPage` array updated: `['activity','search','audio','report','timetable','summary']`
- `refresh()` calls `loadTimetable()` when on timetable page
- **Timetable CSS** (key styles):
```css
.tt-scroll-wrap { overflow-x:auto; ... scrollbar-width:thin; }
.tt-inner { position:relative; height:52px; } /* width set dynamically */
.tt-playhead { position:absolute; top:0; width:3px; height:36px; background:white; box-shadow:0 0 8px rgba(255,255,255,.9); z-index:10; pointer-events:none; display:none; }
.tt-playhead-time { position:absolute; top:2px; font-size:9px; font-weight:600; color:white; background:rgba(0,0,0,.75); padding:1px 4px; border-radius:2px; white-space:nowrap; transform:translateX(-50%); z-index:12; pointer-events:none; display:none; }
.tt-overview-wrap { position:relative; height:14px; ... cursor:pointer; }
.tt-overview-vp { position:absolute; background:rgba(255,255,255,0.12); border:1px solid rgba(255,255,255,0.4); }
```
- **Timetable JS state variables**:
```javascript
let _ttFrames = [], _ttChunks = [], _ttCurChunk = -1;
let _ttDayStart = 0, _ttDayEnd = 0, _ttZoom = 1;
const _ttAppColors = {};
const TT_ZOOMS = [1, 2, 4, 8, 16, 32];
const TT_TICK_MIN = {1:30, 2:15, 4:10, 8:5, 16:2, 32:1};
```
- **Key JS functions**:
- `loadTimetable()` — fetches `/api/timetable`, groups chunks, renders
- `ttZoom(dir)` — changes zoom level, updates inner width, re-renders ticks, scrolls to playhead
- `ttTimelineClick(e)` — uses `inner.getBoundingClientRect()` (works correctly when scrolled)
- `ttOverviewClick(e)` — scrolls timeline + seeks video
- `ttUpdateOverviewVp()` — updates white viewport rect using `wrap.scrollLeft / inner.scrollWidth`
- `ttJumpToTime()` — parses time input, converts to ms, calls `ttSeekToMs`
- `ttSeekToMs(tsMs)` — binary-searches nearest frame, loads chunk, seeks video
- `_ttScrollToPlayhead(force)` — scrolls wrap so playhead stays at ~35% from left when Follow is checked
- `_ttMovePlayhead(tsMs)` — sets `ph.style.left` as percentage, calls `_ttScrollToPlayhead`
- `_ttShowNow(f)` — updates screenshot thumbnail + now-text div
- `ttSyncBtn()` — syncs play/pause button text
- Keyboard: Space=play/pause, ←/→=±10s, Ctrl+←/→=±30s, +/-=zoom
- **`/volume1/screenpipe/.gitignore`**
```
*.db, *.sqlite, *.sqlite-shm, *.sqlite-wal
data/, \#recycle/,
@eaDir/
app_settings.json, app/.env
__pycache__/, *.pyc, .DS_Store
```
4. Errors and Fixes:
- **`#recycle/` in .gitignore treated as comment**: `#` starts a comment in .gitignore. Fixed by escaping: `\#recycle/`. Also had to `git rm --cached "#recycle/desktop.ini"` to unstage it.
- **`sudo docker compose restart sqlite-web` didn't apply config change**: `restart` reuses existing container config, doesn't re-read compose file. Fix: `sudo docker compose up -d` recreates containers with new config.
- **Orphan container holding port 8767**: Old `screenpipe-sqlweb` container still running after rename. Fix: `sudo docker compose up -d --remove-orphans`.
- **`sudo docker` not accessible from Claude Code**: Interactive sudo required. User runs commands in NAS terminal.
- **`git config --global --add safe.directory /volume1/screenpipe`**: Required due to dubious ownership of NAS volume directory.
5. Problem Solving:
- **Time zone confusion in search**: Backend uses UTC for time_from/time_to; frontend displays local time. Solved by `localTimeToUtc()` converting before API call, and showing date+time in results.
- **sqlite-web not showing April 17–21 data**: Container was pointing at db.sqlite (old config), not archive.db. Fixed by updating docker-compose.yml + `up -d`.
- **Video playback speed**: Browser `video.playbackRate` is capped (~16× max in Chrome) and performs poorly for very low FPS (0.1–0.3 fps) screenpipe videos. Each chunk may only be 1–2 seconds of wall-clock encoded video, playing through instantly. Solution: implement timer-based frame-jumping for speed > 2× (in progress).
- **Playhead visibility**: White 2px line was hard to see. Fixed CSS to 3px width + stronger box-shadow + added `.tt-playhead-time` overlay label style.
6. All User Messages:
- "do we use db.sqlite-shm and db.sqlite-wal for anything right now? [image of search UI] Lets add ability to search with combination... Explain how does the search work time seems to work in utc maybe display date next to the time in results. Make only apps and skip apps multiselect with all available apps."
- "doi I need to restart?"
- "there is sudo docker compose"
- "no still the same"
- "add git. I have created gitea repo https://gitea.com/lakylak/screenpipe.git"
- "just do it" (re: git push)
- "how to make sure data in :8767 are accurate and point to archive.db"
- "I can't see older than 16th there should 21st of april. In http://[IP_ADDRESS]:8766/ I can see all but not on sqlite viewer http://[IP_ADDRESS]:8767"
- "ok lets add additional port to read db.sqlite, I would like to see the structure of official db that reads db.sqlite db and one for archive"
- [docker compose output showing orphan container error]
- "looks great. I want to have ability to scroll left and right and also to jump to specific time. I want to be more aware to what I see. Still it should be fast"
- "lets make the playing speed more than 8x"
- "still playing speed is not showing properly still just in one second. also I want to see in timeline where I am"
7. Pending Tasks:
- **Playback speed fix** (in progress, partially done):
- Add `<div class="tt-playhead-time" id="ttPlayheadTime"></div>` inside `ttInner` HTML
- Implement `_ttStartSpeedTimer(speed)` / `_ttStopSpeedTimer()` / `ttSetSpeed(speed)` functions
- Update speed select `onchange` to call `ttSetSpeed(+this.value)`
- Add 64× option to speed select
- Update `_ttMovePlayhead` to also update `ttPlayheadTime` label
- Update `ttSyncBtn` to start/stop timer based on play state + speed
- Update `ttNextChunk` and `ttSeekToMs` to stop timer (restarted by onplay → ttSyncBtn)
- Rebuild Docker image after changes
8. Current Work:
Working on fixing two issues with the Timetable tab:
1. **Playback speed**: `video.playbackRate` doesn't work well for low-FPS screenpipe videos. The plan is to implement a `setInterval`-based frame-jumper for speed > 2× that advances `video.currentTime` by `speed * intervalMs / 1000` every 100–200ms, bypassing browser playbackRate limits.
2. **Timeline position indicator**: Playhead not prominent enough.
**CSS already changed** in `/volume1/screenpipe/app/static/index.html`:
```css
.tt-playhead { position:absolute; top:0; width:3px; height:36px; background:white; box-shadow:0 0 8px rgba(255,255,255,.9); z-index:10; pointer-events:none; display:none; }
.tt-playhead-time { position:absolute; top:2px; font-size:9px; font-weight:600; color:white; background:rgba(0,0,0,.75); padding:1px 4px; border-radius:2px; white-space:nowrap; transform:translateX(-50%); z-index:12; pointer-events:none; display:none; }
```
Session was interrupted by summary request after this CSS edit, mid-implementation.
9. Optional Next Step:
Continuing the fix for: "still playing speed is not showing properly still just in one second. also I want to see in timeline where I am"
The next steps in order are:
1. Add `<div class="tt-playhead-time" id="ttPlayheadTime"></div>` to the HTML inside `#ttInner` (after the existing `.tt-playhead` div)
2. Update `_ttMovePlayhead` to set `ttPlayheadTime` position and text content with `fmtTime()`
3. Add timer-based speed system to JS (new functions `_ttStartSpeedTimer`, `_ttStopSpeedTimer`, `ttSetSpeed`)
4. Update speed select's `onchange` to `ttSetSpeed(+this.value)` and add 64× option
5. Update `ttSyncBtn`, `ttNextChunk`, `ttSeekToMs` to integrate with timer
6. Rebuild: `sudo docker compose build screenpipe-app && sudo docker compose up -d screenpipe-app`
If you need specific details from before compaction (like exact code snippets, error messages, or content you generated), read the full transcript at: /home/Adm1n/.claude/projects/-volume1-screenpipe/7777f46e-1e40-4051-b4bb-f43aedd59556.jsonl
Continue the conversation from where it left off without asking the user any further questions. Resume directly — do not acknowledge the summary, do not recap what was happening, do not preface with "I'll continue" or similar. Pick up the last task as if the break never happened.
Thinking
Thinking
Bash
Find timetable speed and playhead related code
IN
grep -n "tt-playhead\|ttPlayhead\|ttInner\|_ttMovePlayhead\|ttSetSpeed\|_ttStartSpeed\|_ttStopSpeed\|ttSyncBtn\|playbackRate\|speed.*select\|spdSel\|ttSpeed" /volume1/screenpipe/app/static/index.html | head -80
Copy code to clipboard
OUT
207:.tt-playhead { position:absolute; top:0; width:3px; height:36px; background:white; box-shadow:0 0 8px rgba(255,255,255,.9); z-index:10; pointer-events:none; display:none; }
208:.tt-playhead-time { position:absolute; top:2px; font-size:9px; font-weight:600; color:white; background:rgba(0,0,0,.75); padding:1px 4px; border-radius:2px; white-space:nowrap; transform:translateX(-50%); z-index:12; pointer-events:none; display:none; }
580: <div class="tt-inner" id="ttInner" onclick="ttTimelineClick(event)">
583: <div class="tt-playhead" id="ttPlayhead"></div>
598: onpause="ttSyncBtn()"
599: onplay="ttSyncBtn()">
607: <select id="ttSpeed" onchange="document.getElementById('ttVideo').playbackRate=+this.value">
1624: document.getElementById('ttInner').style.width = '100%';
1632: document.getElementById('ttPlayhead').style.display = 'none';
1694: document.getElementById('ttInner').style.width = (_ttZoom * 100) + '%';
1700: const inner = document.getElementById('ttInner');
1710: const inner = document.getElementById('ttInner');
1718: const inner = document.getElementById('ttInner');
1750: _ttMovePlayhead(new Date(best.ts).getTime());
1772: _ttMovePlayhead(new Date(best.ts).getTime());
1791:function _ttMovePlayhead(tsMs) {
1792: const ph = document.getElementById('ttPlayhead');
1802: const ph = document.getElementById('ttPlayhead');
1805: const inner = document.getElementById('ttInner');
1819:function ttSyncBtn() {
Read
index.html
index.html
(lines 576-625)
Read
index.html
index.html
(lines 1786-1865)
Thinking
Thinking
Bash
Find chunk loading and playhead update functions
IN
grep -n "ttUpdatePlayhead\|ttNextChunk\|ttLoadChunk\|_ttCurChunk\|_ttChunks\|_ttFrames" /volume1/screenpipe/app/static/index.html | head -50
Copy code to clipboard
OUT
596: onended="ttNextChunk()"
597: ontimeupdate="ttUpdatePlayhead()"
1569:let _ttFrames = [];
1570:let _ttChunks = [];
1571:let _ttCurChunk = -1;
1607: _ttFrames = data.frames;
1609: for (const f of _ttFrames) {
1613: _ttChunks = [...chunkMap.values()];
1614: _ttCurChunk = -1;
1616: _ttDayStart = new Date(_ttFrames[0].ts).getTime();
1617: _ttDayEnd = new Date(_ttFrames[_ttFrames.length - 1].ts).getTime();
1620: for (const f of _ttFrames) _ttColor(f.app);
1640: for (const f of _ttFrames) {
1736: if (!_ttFrames.length) return;
1737: let best = _ttFrames[0], minDiff = Infinity;
1738: for (const f of _ttFrames) {
1742: const ci = _ttChunks.findIndex(ch => ch[0].video_url === best.video_url);
1744: _ttCurChunk = ci;
1753:function ttNextChunk() {
1754: if (_ttCurChunk + 1 >= _ttChunks.length) return;
1755: _ttCurChunk++;
1757: video.src = _ttChunks[_ttCurChunk][0].video_url;
1762:function ttUpdatePlayhead() {
1764: if (_ttCurChunk < 0 || _ttCurChunk >= _ttChunks.length) return;
1765: const chunk = _ttChunks[_ttCurChunk];
Read
index.html
index.html
(lines 1754-1793)
Thinking
Thinking
Read
index.html
index.html
(lines 1701-1760)
Thinking
Thinking
Read
index.html
index.html
(lines 1561-1640)
Thinking
Thinking
Bash
Find time formatting functions
IN
grep -n "function fmtTime\|function fmtDate\|function _fmt\|localTimeToUtc\|fmtDateTime" /volume1/screenpipe/app/static/index.html | head -20
Copy code to clipboard
OUT...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Explorer (⇧⌘E)","depth":19,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":true},{"role":"AXStaticText","text":"","depth":22,"role_description":"text"},{"role":"AXRadioButton","text":"Search (⇧⌘F)","depth":19,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"role_description":"text"},{"role":"AXRadioButton","text":"Source Control (⌃⇧G) - 2 pending changes","depth":19,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":22,"role_description":"text"},{"role":"AXRadioButton","text":"Run and Debug (⇧⌘D)","depth":19,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"role_description":"text"},{"role":"AXRadioButton","text":"Remote Explorer","depth":19,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"role_description":"text"},{"role":"AXRadioButton","text":"Extensions (⇧⌘X) - 2 require update, 1 requires restart","depth":19,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"role_description":"text"},{"role":"AXStaticText","text":"3","depth":22,"role_description":"text"},{"role":"AXRadioButton","text":"Claude Code","depth":19,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Containers","depth":19,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"EXPLORER","depth":17,"role_description":"heading"},{"role":"AXStaticText","text":"EXPLORER","depth":18,"role_description":"text"},{"role":"AXButton","text":"Explorer Section: screenpipe [SSH: nas]","depth":21,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXStaticText","text":"","depth":23,"role_description":"text"},{"role":"AXHeading","text":"Explorer Section: screenpipe [SSH: nas]","depth":22,"role_description":"heading"},{"role":"AXStaticText","text":"SCREENPIPE [SSH: NAS]","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"#recycle","depth":27,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"app","depth":27,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"data","depth":27,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"pipes","depth":27,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"role_description":"text"},{"role":"AXStaticText","text":".gitignore","depth":27,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"role_description":"text"},{"role":"AXStaticText","text":"app_settings.json","depth":27,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"role_description":"text"},{"role":"AXStaticText","text":"archive.db","depth":27,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"role_description":"text"},{"role":"AXStaticText","text":"db.sqlite","depth":27,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"role_description":"text"},{"role":"AXStaticText","text":"screenpipe_sync.sh","depth":27,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"role_description":"text"},{"role":"AXStaticText","text":"screenpipe.db","depth":27,"role_description":"text"},{"role":"AXButton","text":"Outline Section","depth":21,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"role_description":"text"},{"role":"AXHeading","text":"OUTLINE","depth":22,"role_description":"heading"},{"role":"AXStaticText","text":"OUTLINE","depth":23,"role_description":"text"},{"role":"AXButton","text":"Timeline Section","depth":21,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"role_description":"text"},{"role":"AXHeading","text":"TIMELINE","depth":22,"role_description":"heading"},{"role":"AXStaticText","text":"TIMELINE","depth":23,"role_description":"text"},{"role":"AXRadioButton","text":"app_settings.json, Editor Group 1","depth":28,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe_sync.sh, Editor Group 1","depth":28,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXRadioButton","text":"db.sqlite-shm, preview, Editor Group 1","depth":28,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"#!/bin/bash\n# screenpipe_sync.sh\n# Syncs Screenpipe SQLite data to a NAS archive database (append-only, no deletions).\n# Also copies the day's video/frame data folder to the NAS.\n#\n# Usage:\n# ./screenpipe_sync.sh # syncs yesterday (default)\n# ./screenpipe_sync.sh 2026-04-15 # syncs a specific date\n# ./screenpipe_sync.sh today # syncs today so far\n#\n# Cron example (runs at 3am daily):\n# 0 3 * * * /Users/lukas/.screenpipe/screenpipe_sync.sh >> /Users/lukas/.screenpipe/sync.log 2>&1\n\nset -euo pipefail\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\nDB_SRC=\"${SCREENPIPE_DB:-$HOME/.screenpipe/db.sqlite}\"\nNAS_MOUNT=\"${NAS_MOUNT:-/Volumes/Test/screenpipe}\"\nNAS_DB=\"$NAS_MOUNT/archive.db\"\nNAS_DATA=\"$NAS_MOUNT/data\"\nLOG_FILE=\"$HOME/.screenpipe/sync.log\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\nSCRIPT_START=$(date +%s)\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── DATE ARGUMENT ────────────────────────────────────────────────────────────\nif [ \"${1:-}\" = \"today\" ]; then\n TARGET_DATE=$(date +%Y-%m-%d)\nelif [ -n \"${1:-}\" ]; then\n TARGET_DATE=\"$1\"\n if ! [[ \"$TARGET_DATE\" =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]]; then\n echo \"ERROR: Invalid date format. Use YYYY-MM-DD, 'today', or no argument for yesterday.\"\n exit 1\n fi\nelse\n TARGET_DATE=$(date -v-1d +%Y-%m-%d)\nfi\n\nlog \"========================================\"\nlog \"Screenpipe sync starting for: $TARGET_DATE\"\nlog \"========================================\"\n\n# ─── PREFLIGHT ────────────────────────────────────────────────────────────────\nstep \"Preflight checks\"\n\nif [ ! -f \"$DB_SRC\" ]; then\n log \"ERROR: Source DB not found at $DB_SRC\"; exit 1\nfi\nprintf \" %-20s %s (%s)\\n\" \"Source DB:\" \"OK\" \"$(du -sh \"$DB_SRC\" | cut -f1)\"\n\nif [ ! -d \"$NAS_MOUNT\" ]; then\n log \"ERROR: NAS not mounted at $NAS_MOUNT\"; exit 1\nfi\nprintf \" %-20s %s\\n\" \"NAS mount:\" \"OK $NAS_MOUNT\"\n\n# Check if DB already synced for this date\nDB_ALREADY_SYNCED=false\nif [ -f \"$NAS_DB\" ]; then\n EXISTING=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';\" 2>/dev/null || echo \"0\")\n if [ \"$EXISTING\" -gt \"0\" ]; then\n log \"Date $TARGET_DATE already has $EXISTING frames in archive — skipping DB sync\"\n DB_ALREADY_SYNCED=true\n else\n printf \" %-20s %s (%s)\\n\" \"Archive DB:\" \"exists\" \"$(du -sh \"$NAS_DB\" | cut -f1)\"\n fi\nelse\n printf \" %-20s %s\\n\" \"Archive DB:\" \"will be created\"\nfi\n\n# Source data dir for this date\nDATA_SRC=\"$HOME/.screenpipe/data/data/$TARGET_DATE\"\nif [ -d \"$DATA_SRC\" ]; then\n DATA_SIZE=$(du -sh \"$DATA_SRC\" | cut -f1)\n DATA_FILES=$(ls \"$DATA_SRC\" | wc -l | tr -d ' ')\n printf \" %-20s %s (%s files, %s)\\n\" \"Data dir:\" \"OK\" \"$DATA_FILES\" \"$DATA_SIZE\"\nelse\n printf \" %-20s %s\\n\" \"Data dir:\" \"not found — skipping file copy\"\nfi\n\n# ─── DB SYNC ──────────────────────────────────────────────────────────────────\nif [ \"$DB_ALREADY_SYNCED\" = false ]; then\n\n # ─── COUNT SOURCE ROWS ────────────────────────────────────────────────────\n step \"Counting source rows for $TARGET_DATE\"\n\n SRC_FRAMES=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';\")\n SRC_ELEMENTS=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');\")\n SRC_UI=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';\")\n SRC_OCR=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');\")\n SRC_MEETINGS=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM meetings WHERE date(meeting_start) = '$TARGET_DATE';\")\n\n printf \" %-20s %s\\n\" \"frames:\" \"$SRC_FRAMES\"\n printf \" %-20s %s\\n\" \"elements:\" \"$SRC_ELEMENTS\"\n printf \" %-20s %s\\n\" \"ui_events:\" \"$SRC_UI\"\n printf \" %-20s %s\\n\" \"ocr_text:\" \"$SRC_OCR\"\n printf \" %-20s %s\\n\" \"meetings:\" \"$SRC_MEETINGS\"\n\n if [ \"$SRC_FRAMES\" -eq \"0\" ]; then\n log \"No frames found for $TARGET_DATE — skipping DB sync\"\n DB_ALREADY_SYNCED=true\n fi\n\nfi\n\nif [ \"$DB_ALREADY_SYNCED\" = false ]; then\n\n # ─── INIT TABLES ──────────────────────────────────────────────────────────\n step \"Initialising tables, indexes, FTS\"\n\n run_sqlite_heredoc \"creating tables\" \"\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"creating indexes\" \"\nATTACH '$NAS_DB' AS nas;\nCREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);\nCREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);\nCREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);\nCREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);\nCREATE INDEX IF NOT EXISTS nas.idx_elements_frame_id ON elements(frame_id);\nCREATE INDEX IF NOT EXISTS nas.idx_elements_frame_src_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;\nCREATE INDEX IF NOT EXISTS nas.idx_ui_events_timestamp ON ui_events(timestamp);\nCREATE INDEX IF NOT EXISTS nas.idx_ui_events_app_name ON ui_events(app_name);\nCREATE INDEX IF NOT EXISTS nas.idx_ui_events_frame_id ON ui_events(frame_id);\nCREATE INDEX IF NOT EXISTS nas.idx_ocr_text_frame_id ON ocr_text(frame_id);\nCREATE INDEX IF NOT EXISTS nas.idx_meetings_start ON meetings(meeting_start);\nCREATE INDEX IF NOT EXISTS nas.idx_video_chunks_device ON video_chunks(device_name);\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"creating FTS tables\" \"\nATTACH '$NAS_DB' AS nas;\nCREATE VIRTUAL TABLE IF NOT EXISTS nas.elements_fts USING fts5(\n text, role, frame_id UNINDEXED,\n content='elements', content_rowid='id', tokenize='unicode61'\n);\nCREATE VIRTUAL TABLE IF NOT EXISTS nas.frames_fts USING fts5(\n full_text, app_name, window_name, browser_url, id UNINDEXED,\n tokenize='unicode61'\n);\nCREATE VIRTUAL TABLE IF NOT EXISTS nas.ui_events_fts USING fts5(\n text_content,\n app_name,\n window_title,\n element_name,\n content='ui_events',\n content_rowid='id',\n tokenize='unicode61'\n);\nDETACH nas;\n\"\n\n # ─── SYNC DATA ────────────────────────────────────────────────────────────\n step \"Syncing data for $TARGET_DATE\"\n\n run_sqlite_heredoc \"video_chunks\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.video_chunks\n SELECT * FROM main.video_chunks\n WHERE id IN (\n SELECT DISTINCT video_chunk_id FROM main.frames\n WHERE date(timestamp) = '$TARGET_DATE' AND video_chunk_id IS NOT NULL\n );\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"frames ($SRC_FRAMES rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.frames\n SELECT * FROM main.frames WHERE date(timestamp) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"ocr_text ($SRC_OCR rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.ocr_text\n SELECT o.* FROM main.ocr_text o\n JOIN main.frames f ON o.frame_id = f.id\n WHERE date(f.timestamp) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"ui_events ($SRC_UI rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.ui_events\n SELECT * FROM main.ui_events WHERE date(timestamp) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"elements ($SRC_ELEMENTS rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.elements\n SELECT e.* FROM main.elements e\n JOIN main.frames f ON e.frame_id = f.id\n WHERE date(f.timestamp) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"meetings ($SRC_MEETINGS rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.meetings\n SELECT * FROM main.meetings WHERE date(meeting_start) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n # ─── FTS UPDATE ───────────────────────────────────────────────────────────\n step \"Updating FTS indexes\"\n\n run_sqlite_heredoc \"elements_fts\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT INTO nas.elements_fts(rowid, text, role)\n SELECT e.id, e.text, e.role\n FROM nas.elements e\n JOIN nas.frames f ON e.frame_id = f.id\n WHERE date(f.timestamp) = '$TARGET_DATE'\n AND e.text IS NOT NULL;\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"frames_fts\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT INTO nas.frames_fts(rowid, full_text, app_name, window_name, browser_url, id)\n SELECT id, full_text, app_name, window_name, browser_url, id\n FROM nas.frames\n WHERE date(timestamp) = '$TARGET_DATE'\n AND full_text IS NOT NULL;\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"ui_events_fts\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT INTO nas.ui_events_fts(rowid, text_content, app_name, window_title, element_name)\n SELECT id, text_content, app_name, window_title, element_name\n FROM nas.ui_events\n WHERE date(timestamp) = '$TARGET_DATE'\n AND text_content IS NOT NULL;\nDETACH nas;\n\"\n\n # ─── VERIFY DB ────────────────────────────────────────────────────────────\n step \"Verifying DB\"\n\n V_FRAMES=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';\")\n V_ELEMENTS=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');\")\n V_UI=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';\")\n V_OCR=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');\")\n V_MEETINGS=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM meetings WHERE date(meeting_start)= '$TARGET_DATE';\")\n\n check \"frames\" \"$V_FRAMES\" \"$SRC_FRAMES\"\n check \"elements\" \"$V_ELEMENTS\" \"$SRC_ELEMENTS\"\n check \"ui_events\" \"$V_UI\" \"$SRC_UI\"\n check \"ocr_text\" \"$V_OCR\" \"$SRC_OCR\"\n check \"meetings\" \"$V_MEETINGS\" \"$SRC_MEETINGS\"\n\nfi\n\n# ─── COPY DATA FOLDER ─────────────────────────────────────────────────────────\n# Always runs regardless of DB sync status\nstep \"Copying data folder for $TARGET_DATE\"\n\nif [ -d \"$DATA_SRC\" ]; then\n mkdir -p \"$NAS_DATA/$TARGET_DATE\"\n RSYNC_START=$(date +%s)\n printf \" %-36s \" \"rsync $TARGET_DATE/ → NAS\"\n rsync -a --ignore-existing \\\n \"$DATA_SRC/\" \\\n \"$NAS_DATA/$TARGET_DATE/\" \\\n 2>>\"$LOG_FILE\"\n RSYNC_DUR=$(( $(date +%s) - RSYNC_START ))\n COPIED_FILES=$(ls \"$NAS_DATA/$TARGET_DATE\" | wc -l | tr -d ' ')\n SRC_FILES=$(ls \"$DATA_SRC\" | wc -l | tr -d ' ')\n COPIED_SIZE=$(du -sh \"$NAS_DATA/$TARGET_DATE\" | cut -f1)\n if [ \"$COPIED_FILES\" -eq \"$SRC_FILES\" ]; then\n printf \"\\r %-36s ✓ %dm%02ds (%s files, %s)\\n\" \\\n \"rsync $TARGET_DATE/ → NAS\" \\\n \"$(( RSYNC_DUR / 60 ))\" \"$(( RSYNC_DUR % 60 ))\" \\\n \"$COPIED_FILES\" \"$COPIED_SIZE\" | tee -a \"$LOG_FILE\"\n else\n printf \"\\r %-36s ✗ %s / %s files\\n\" \\\n \"rsync $TARGET_DATE/ → NAS\" \"$COPIED_FILES\" \"$SRC_FILES\" | tee -a \"$LOG_FILE\"\n fi\nelse\n printf \" %-36s %s\\n\" \"rsync $TARGET_DATE/ → NAS\" \"skipped (no source dir)\"\nfi\n\n# ─── SUMMARY ──────────────────────────────────────────────────────────────────\nTOTAL_ELAPSED=$(( $(date +%s) - SCRIPT_START ))\nDB_SIZE=$(du -sh \"$NAS_DB\" | cut -f1)\n\necho \"\"\nlog \"Archive DB size: $DB_SIZE\"\nlog \"Total time: $(( TOTAL_ELAPSED / 60 ))m$(( TOTAL_ELAPSED % 60 ))s\"\nlog \"Sync complete for $TARGET_DATE\"\nlog \"========================================\"","depth":28,"value":"#!/bin/bash\n# screenpipe_sync.sh\n# Syncs Screenpipe SQLite data to a NAS archive database (append-only, no deletions).\n# Also copies the day's video/frame data folder to the NAS.\n#\n# Usage:\n# ./screenpipe_sync.sh # syncs yesterday (default)\n# ./screenpipe_sync.sh 2026-04-15 # syncs a specific date\n# ./screenpipe_sync.sh today # syncs today so far\n#\n# Cron example (runs at 3am daily):\n# 0 3 * * * /Users/lukas/.screenpipe/screenpipe_sync.sh >> /Users/lukas/.screenpipe/sync.log 2>&1\n\nset -euo pipefail\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\nDB_SRC=\"${SCREENPIPE_DB:-$HOME/.screenpipe/db.sqlite}\"\nNAS_MOUNT=\"${NAS_MOUNT:-/Volumes/Test/screenpipe}\"\nNAS_DB=\"$NAS_MOUNT/archive.db\"\nNAS_DATA=\"$NAS_MOUNT/data\"\nLOG_FILE=\"$HOME/.screenpipe/sync.log\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\nSCRIPT_START=$(date +%s)\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── DATE ARGUMENT ────────────────────────────────────────────────────────────\nif [ \"${1:-}\" = \"today\" ]; then\n TARGET_DATE=$(date +%Y-%m-%d)\nelif [ -n \"${1:-}\" ]; then\n TARGET_DATE=\"$1\"\n if ! [[ \"$TARGET_DATE\" =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]]; then\n echo \"ERROR: Invalid date format. Use YYYY-MM-DD, 'today', or no argument for yesterday.\"\n exit 1\n fi\nelse\n TARGET_DATE=$(date -v-1d +%Y-%m-%d)\nfi\n\nlog \"========================================\"\nlog \"Screenpipe sync starting for: $TARGET_DATE\"\nlog \"========================================\"\n\n# ─── PREFLIGHT ────────────────────────────────────────────────────────────────\nstep \"Preflight checks\"\n\nif [ ! -f \"$DB_SRC\" ]; then\n log \"ERROR: Source DB not found at $DB_SRC\"; exit 1\nfi\nprintf \" %-20s %s (%s)\\n\" \"Source DB:\" \"OK\" \"$(du -sh \"$DB_SRC\" | cut -f1)\"\n\nif [ ! -d \"$NAS_MOUNT\" ]; then\n log \"ERROR: NAS not mounted at $NAS_MOUNT\"; exit 1\nfi\nprintf \" %-20s %s\\n\" \"NAS mount:\" \"OK $NAS_MOUNT\"\n\n# Check if DB already synced for this date\nDB_ALREADY_SYNCED=false\nif [ -f \"$NAS_DB\" ]; then\n EXISTING=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';\" 2>/dev/null || echo \"0\")\n if [ \"$EXISTING\" -gt \"0\" ]; then\n log \"Date $TARGET_DATE already has $EXISTING frames in archive — skipping DB sync\"\n DB_ALREADY_SYNCED=true\n else\n printf \" %-20s %s (%s)\\n\" \"Archive DB:\" \"exists\" \"$(du -sh \"$NAS_DB\" | cut -f1)\"\n fi\nelse\n printf \" %-20s %s\\n\" \"Archive DB:\" \"will be created\"\nfi\n\n# Source data dir for this date\nDATA_SRC=\"$HOME/.screenpipe/data/data/$TARGET_DATE\"\nif [ -d \"$DATA_SRC\" ]; then\n DATA_SIZE=$(du -sh \"$DATA_SRC\" | cut -f1)\n DATA_FILES=$(ls \"$DATA_SRC\" | wc -l | tr -d ' ')\n printf \" %-20s %s (%s files, %s)\\n\" \"Data dir:\" \"OK\" \"$DATA_FILES\" \"$DATA_SIZE\"\nelse\n printf \" %-20s %s\\n\" \"Data dir:\" \"not found — skipping file copy\"\nfi\n\n# ─── DB SYNC ──────────────────────────────────────────────────────────────────\nif [ \"$DB_ALREADY_SYNCED\" = false ]; then\n\n # ─── COUNT SOURCE ROWS ────────────────────────────────────────────────────\n step \"Counting source rows for $TARGET_DATE\"\n\n SRC_FRAMES=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';\")\n SRC_ELEMENTS=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');\")\n SRC_UI=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';\")\n SRC_OCR=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');\")\n SRC_MEETINGS=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM meetings WHERE date(meeting_start) = '$TARGET_DATE';\")\n\n printf \" %-20s %s\\n\" \"frames:\" \"$SRC_FRAMES\"\n printf \" %-20s %s\\n\" \"elements:\" \"$SRC_ELEMENTS\"\n printf \" %-20s %s\\n\" \"ui_events:\" \"$SRC_UI\"\n printf \" %-20s %s\\n\" \"ocr_text:\" \"$SRC_OCR\"\n printf \" %-20s %s\\n\" \"meetings:\" \"$SRC_MEETINGS\"\n\n if [ \"$SRC_FRAMES\" -eq \"0\" ]; then\n log \"No frames found for $TARGET_DATE — skipping DB sync\"\n DB_ALREADY_SYNCED=true\n fi\n\nfi\n\nif [ \"$DB_ALREADY_SYNCED\" = false ]; then\n\n # ─── INIT TABLES ──────────────────────────────────────────────────────────\n step \"Initialising tables, indexes, FTS\"\n\n run_sqlite_heredoc \"creating tables\" \"\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"creating indexes\" \"\nATTACH '$NAS_DB' AS nas;\nCREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);\nCREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);\nCREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);\nCREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);\nCREATE INDEX IF NOT EXISTS nas.idx_elements_frame_id ON elements(frame_id);\nCREATE INDEX IF NOT EXISTS nas.idx_elements_frame_src_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;\nCREATE INDEX IF NOT EXISTS nas.idx_ui_events_timestamp ON ui_events(timestamp);\nCREATE INDEX IF NOT EXISTS nas.idx_ui_events_app_name ON ui_events(app_name);\nCREATE INDEX IF NOT EXISTS nas.idx_ui_events_frame_id ON ui_events(frame_id);\nCREATE INDEX IF NOT EXISTS nas.idx_ocr_text_frame_id ON ocr_text(frame_id);\nCREATE INDEX IF NOT EXISTS nas.idx_meetings_start ON meetings(meeting_start);\nCREATE INDEX IF NOT EXISTS nas.idx_video_chunks_device ON video_chunks(device_name);\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"creating FTS tables\" \"\nATTACH '$NAS_DB' AS nas;\nCREATE VIRTUAL TABLE IF NOT EXISTS nas.elements_fts USING fts5(\n text, role, frame_id UNINDEXED,\n content='elements', content_rowid='id', tokenize='unicode61'\n);\nCREATE VIRTUAL TABLE IF NOT EXISTS nas.frames_fts USING fts5(\n full_text, app_name, window_name, browser_url, id UNINDEXED,\n tokenize='unicode61'\n);\nCREATE VIRTUAL TABLE IF NOT EXISTS nas.ui_events_fts USING fts5(\n text_content,\n app_name,\n window_title,\n element_name,\n content='ui_events',\n content_rowid='id',\n tokenize='unicode61'\n);\nDETACH nas;\n\"\n\n # ─── SYNC DATA ────────────────────────────────────────────────────────────\n step \"Syncing data for $TARGET_DATE\"\n\n run_sqlite_heredoc \"video_chunks\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.video_chunks\n SELECT * FROM main.video_chunks\n WHERE id IN (\n SELECT DISTINCT video_chunk_id FROM main.frames\n WHERE date(timestamp) = '$TARGET_DATE' AND video_chunk_id IS NOT NULL\n );\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"frames ($SRC_FRAMES rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.frames\n SELECT * FROM main.frames WHERE date(timestamp) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"ocr_text ($SRC_OCR rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.ocr_text\n SELECT o.* FROM main.ocr_text o\n JOIN main.frames f ON o.frame_id = f.id\n WHERE date(f.timestamp) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"ui_events ($SRC_UI rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.ui_events\n SELECT * FROM main.ui_events WHERE date(timestamp) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"elements ($SRC_ELEMENTS rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.elements\n SELECT e.* FROM main.elements e\n JOIN main.frames f ON e.frame_id = f.id\n WHERE date(f.timestamp) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"meetings ($SRC_MEETINGS rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.meetings\n SELECT * FROM main.meetings WHERE date(meeting_start) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n # ─── FTS UPDATE ───────────────────────────────────────────────────────────\n step \"Updating FTS indexes\"\n\n run_sqlite_heredoc \"elements_fts\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT INTO nas.elements_fts(rowid, text, role)\n SELECT e.id, e.text, e.role\n FROM nas.elements e\n JOIN nas.frames f ON e.frame_id = f.id\n WHERE date(f.timestamp) = '$TARGET_DATE'\n AND e.text IS NOT NULL;\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"frames_fts\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT INTO nas.frames_fts(rowid, full_text, app_name, window_name, browser_url, id)\n SELECT id, full_text, app_name, window_name, browser_url, id\n FROM nas.frames\n WHERE date(timestamp) = '$TARGET_DATE'\n AND full_text IS NOT NULL;\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"ui_events_fts\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT INTO nas.ui_events_fts(rowid, text_content, app_name, window_title, element_name)\n SELECT id, text_content, app_name, window_title, element_name\n FROM nas.ui_events\n WHERE date(timestamp) = '$TARGET_DATE'\n AND text_content IS NOT NULL;\nDETACH nas;\n\"\n\n # ─── VERIFY DB ────────────────────────────────────────────────────────────\n step \"Verifying DB\"\n\n V_FRAMES=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';\")\n V_ELEMENTS=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');\")\n V_UI=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';\")\n V_OCR=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');\")\n V_MEETINGS=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM meetings WHERE date(meeting_start)= '$TARGET_DATE';\")\n\n check \"frames\" \"$V_FRAMES\" \"$SRC_FRAMES\"\n check \"elements\" \"$V_ELEMENTS\" \"$SRC_ELEMENTS\"\n check \"ui_events\" \"$V_UI\" \"$SRC_UI\"\n check \"ocr_text\" \"$V_OCR\" \"$SRC_OCR\"\n check \"meetings\" \"$V_MEETINGS\" \"$SRC_MEETINGS\"\n\nfi\n\n# ─── COPY DATA FOLDER ─────────────────────────────────────────────────────────\n# Always runs regardless of DB sync status\nstep \"Copying data folder for $TARGET_DATE\"\n\nif [ -d \"$DATA_SRC\" ]; then\n mkdir -p \"$NAS_DATA/$TARGET_DATE\"\n RSYNC_START=$(date +%s)\n printf \" %-36s \" \"rsync $TARGET_DATE/ → NAS\"\n rsync -a --ignore-existing \\\n \"$DATA_SRC/\" \\\n \"$NAS_DATA/$TARGET_DATE/\" \\\n 2>>\"$LOG_FILE\"\n RSYNC_DUR=$(( $(date +%s) - RSYNC_START ))\n COPIED_FILES=$(ls \"$NAS_DATA/$TARGET_DATE\" | wc -l | tr -d ' ')\n SRC_FILES=$(ls \"$DATA_SRC\" | wc -l | tr -d ' ')\n COPIED_SIZE=$(du -sh \"$NAS_DATA/$TARGET_DATE\" | cut -f1)\n if [ \"$COPIED_FILES\" -eq \"$SRC_FILES\" ]; then\n printf \"\\r %-36s ✓ %dm%02ds (%s files, %s)\\n\" \\\n \"rsync $TARGET_DATE/ → NAS\" \\\n \"$(( RSYNC_DUR / 60 ))\" \"$(( RSYNC_DUR % 60 ))\" \\\n \"$COPIED_FILES\" \"$COPIED_SIZE\" | tee -a \"$LOG_FILE\"\n else\n printf \"\\r %-36s ✗ %s / %s files\\n\" \\\n \"rsync $TARGET_DATE/ → NAS\" \"$COPIED_FILES\" \"$SRC_FILES\" | tee -a \"$LOG_FILE\"\n fi\nelse\n printf \" %-36s %s\\n\" \"rsync $TARGET_DATE/ → NAS\" \"skipped (no source dir)\"\nfi\n\n# ─── SUMMARY ──────────────────────────────────────────────────────────────────\nTOTAL_ELAPSED=$(( $(date +%s) - SCRIPT_START ))\nDB_SIZE=$(du -sh \"$NAS_DB\" | cut -f1)\n\necho \"\"\nlog \"Archive DB size: $DB_SIZE\"\nlog \"Total time: $(( TOTAL_ELAPSED / 60 ))m$(( TOTAL_ELAPSED % 60 ))s\"\nlog \"Sync complete for $TARGET_DATE\"\nlog \"========================================\"","role_description":"editor","is_enabled":true,"is_focused":true,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"#!/bin/bash\n# screenpipe_sync.sh\n# Syncs Screenpipe SQLite data to a NAS archive database (append-only, no deletions).\n# Also copies the day's video/frame data folder to the NAS.\n#\n# Usage:\n# ./screenpipe_sync.sh # syncs yesterday (default)\n# ./screenpipe_sync.sh 2026-04-15 # syncs a specific date\n# ./screenpipe_sync.sh today # syncs today so far\n#\n# Cron example (runs at 3am daily):\n# 0 3 * * * /Users/lukas/.screenpipe/screenpipe_sync.sh >> /Users/lukas/.screenpipe/sync.log 2>&1\n\nset -euo pipefail\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\nDB_SRC=\"${SCREENPIPE_DB:-$HOME/.screenpipe/db.sqlite}\"\nNAS_MOUNT=\"${NAS_MOUNT:-/Volumes/Test/screenpipe}\"\nNAS_DB=\"$NAS_MOUNT/archive.db\"\nNAS_DATA=\"$NAS_MOUNT/data\"\nLOG_FILE=\"$HOME/.screenpipe/sync.log\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\nSCRIPT_START=$(date +%s)\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── DATE ARGUMENT ────────────────────────────────────────────────────────────\nif [ \"${1:-}\" = \"today\" ]; then\n TARGET_DATE=$(date +%Y-%m-%d)\nelif [ -n \"${1:-}\" ]; then\n TARGET_DATE=\"$1\"\n if ! [[ \"$TARGET_DATE\" =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]]; then\n echo \"ERROR: Invalid date format. Use YYYY-MM-DD, 'today', or no argument for yesterday.\"\n exit 1\n fi\nelse\n TARGET_DATE=$(date -v-1d +%Y-%m-%d)\nfi\n\nlog \"========================================\"\nlog \"Screenpipe sync starting for: $TARGET_DATE\"\nlog \"========================================\"\n\n# ─── PREFLIGHT ────────────────────────────────────────────────────────────────\nstep \"Preflight checks\"\n\nif [ ! -f \"$DB_SRC\" ]; then\n log \"ERROR: Source DB not found at $DB_SRC\"; exit 1\nfi\nprintf \" %-20s %s (%s)\\n\" \"Source DB:\" \"OK\" \"$(du -sh \"$DB_SRC\" | cut -f1)\"\n\nif [ ! -d \"$NAS_MOUNT\" ]; then\n log \"ERROR: NAS not mounted at $NAS_MOUNT\"; exit 1\nfi\nprintf \" %-20s %s\\n\" \"NAS mount:\" \"OK $NAS_MOUNT\"\n\n# Check if DB already synced for this date\nDB_ALREADY_SYNCED=false\nif [ -f \"$NAS_DB\" ]; then\n EXISTING=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';\" 2>/dev/null || echo \"0\")\n if [ \"$EXISTING\" -gt \"0\" ]; then\n log \"Date $TARGET_DATE already has $EXISTING frames in archive — skipping DB sync\"\n DB_ALREADY_SYNCED=true\n else\n printf \" %-20s %s (%s)\\n\" \"Archive DB:\" \"exists\" \"$(du -sh \"$NAS_DB\" | cut -f1)\"\n fi\nelse\n printf \" %-20s %s\\n\" \"Archive DB:\" \"will be created\"\nfi\n\n# Source data dir for this date\nDATA_SRC=\"$HOME/.screenpipe/data/data/$TARGET_DATE\"\nif [ -d \"$DATA_SRC\" ]; then\n DATA_SIZE=$(du -sh \"$DATA_SRC\" | cut -f1)\n DATA_FILES=$(ls \"$DATA_SRC\" | wc -l | tr -d ' ')\n printf \" %-20s %s (%s files, %s)\\n\" \"Data dir:\" \"OK\" \"$DATA_FILES\" \"$DATA_SIZE\"\nelse\n printf \" %-20s %s\\n\" \"Data dir:\" \"not found — skipping file copy\"\nfi\n\n# ─── DB SYNC ──────────────────────────────────────────────────────────────────\nif [ \"$DB_ALREADY_SYNCED\" = false ]; then\n\n # ─── COUNT SOURCE ROWS ────────────────────────────────────────────────────\n step \"Counting source rows for $TARGET_DATE\"\n\n SRC_FRAMES=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';\")\n SRC_ELEMENTS=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');\")\n SRC_UI=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';\")\n SRC_OCR=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');\")\n SRC_MEETINGS=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM meetings WHERE date(meeting_start) = '$TARGET_DATE';\")\n\n printf \" %-20s %s\\n\" \"frames:\" \"$SRC_FRAMES\"\n printf \" %-20s %s\\n\" \"elements:\" \"$SRC_ELEMENTS\"\n printf \" %-20s %s\\n\" \"ui_events:\" \"$SRC_UI\"\n printf \" %-20s %s\\n\" \"ocr_text:\" \"$SRC_OCR\"\n printf \" %-20s %s\\n\" \"meetings:\" \"$SRC_MEETINGS\"\n\n if [ \"$SRC_FRAMES\" -eq \"0\" ]; then\n log \"No frames found for $TARGET_DATE — skipping DB sync\"\n DB_ALREADY_SYNCED=true\n fi\n\nfi\n\nif [ \"$DB_ALREADY_SYNCED\" = false ]; then\n\n # ─── INIT TABLES ──────────────────────────────────────────────────────────\n step \"Initialising tables, indexes, FTS\"\n\n run_sqlite_heredoc \"creating tables\" \"\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"creating indexes\" \"\nATTACH '$NAS_DB' AS nas;\nCREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);\nCREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);\nCREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);\nCREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);\nCREATE INDEX IF NOT EXISTS nas.idx_elements_frame_id ON elements(frame_id);\nCREATE INDEX IF NOT EXISTS nas.idx_elements_frame_src_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;\nCREATE INDEX IF NOT EXISTS nas.idx_ui_events_timestamp ON ui_events(timestamp);\nCREATE INDEX IF NOT EXISTS nas.idx_ui_events_app_name ON ui_events(app_name);\nCREATE INDEX IF NOT EXISTS nas.idx_ui_events_frame_id ON ui_events(frame_id);\nCREATE INDEX IF NOT EXISTS nas.idx_ocr_text_frame_id ON ocr_text(frame_id);\nCREATE INDEX IF NOT EXISTS nas.idx_meetings_start ON meetings(meeting_start);\nCREATE INDEX IF NOT EXISTS nas.idx_video_chunks_device ON video_chunks(device_name);\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"creating FTS tables\" \"\nATTACH '$NAS_DB' AS nas;\nCREATE VIRTUAL TABLE IF NOT EXISTS nas.elements_fts USING fts5(\n text, role, frame_id UNINDEXED,\n content='elements', content_rowid='id', tokenize='unicode61'\n);\nCREATE VIRTUAL TABLE IF NOT EXISTS nas.frames_fts USING fts5(\n full_text, app_name, window_name, browser_url, id UNINDEXED,\n tokenize='unicode61'\n);\nCREATE VIRTUAL TABLE IF NOT EXISTS nas.ui_events_fts USING fts5(\n text_content,\n app_name,\n window_title,\n element_name,\n content='ui_events',\n content_rowid='id',\n tokenize='unicode61'\n);\nDETACH nas;\n\"\n\n # ─── SYNC DATA ────────────────────────────────────────────────────────────\n step \"Syncing data for $TARGET_DATE\"\n\n run_sqlite_heredoc \"video_chunks\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.video_chunks\n SELECT * FROM main.video_chunks\n WHERE id IN (\n SELECT DISTINCT video_chunk_id FROM main.frames\n WHERE date(timestamp) = '$TARGET_DATE' AND video_chunk_id IS NOT NULL\n );\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"frames ($SRC_FRAMES rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.frames\n SELECT * FROM main.frames WHERE date(timestamp) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"ocr_text ($SRC_OCR rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.ocr_text\n SELECT o.* FROM main.ocr_text o\n JOIN main.frames f ON o.frame_id = f.id\n WHERE date(f.timestamp) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"ui_events ($SRC_UI rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.ui_events\n SELECT * FROM main.ui_events WHERE date(timestamp) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"elements ($SRC_ELEMENTS rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.elements\n SELECT e.* FROM main.elements e\n JOIN main.frames f ON e.frame_id = f.id\n WHERE date(f.timestamp) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"meetings ($SRC_MEETINGS rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.meetings\n SELECT * FROM main.meetings WHERE date(meeting_start) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n # ─── FTS UPDATE ───────────────────────────────────────────────────────────\n step \"Updating FTS indexes\"\n\n run_sqlite_heredoc \"elements_fts\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT INTO nas.elements_fts(rowid, text, role)\n SELECT e.id, e.text, e.role\n FROM nas.elements e\n JOIN nas.frames f ON e.frame_id = f.id\n WHERE date(f.timestamp) = '$TARGET_DATE'\n AND e.text IS NOT NULL;\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"frames_fts\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT INTO nas.frames_fts(rowid, full_text, app_name, window_name, browser_url, id)\n SELECT id, full_text, app_name, window_name, browser_url, id\n FROM nas.frames\n WHERE date(timestamp) = '$TARGET_DATE'\n AND full_text IS NOT NULL;\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"ui_events_fts\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT INTO nas.ui_events_fts(rowid, text_content, app_name, window_title, element_name)\n SELECT id, text_content, app_name, window_title, element_name\n FROM nas.ui_events\n WHERE date(timestamp) = '$TARGET_DATE'\n AND text_content IS NOT NULL;\nDETACH nas;\n\"\n\n # ─── VERIFY DB ────────────────────────────────────────────────────────────\n step \"Verifying DB\"\n\n V_FRAMES=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';\")\n V_ELEMENTS=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');\")\n V_UI=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';\")\n V_OCR=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');\")\n V_MEETINGS=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM meetings WHERE date(meeting_start)= '$TARGET_DATE';\")\n\n check \"frames\" \"$V_FRAMES\" \"$SRC_FRAMES\"\n check \"elements\" \"$V_ELEMENTS\" \"$SRC_ELEMENTS\"\n check \"ui_events\" \"$V_UI\" \"$SRC_UI\"\n check \"ocr_text\" \"$V_OCR\" \"$SRC_OCR\"\n check \"meetings\" \"$V_MEETINGS\" \"$SRC_MEETINGS\"\n\nfi\n\n# ─── COPY DATA FOLDER ─────────────────────────────────────────────────────────\n# Always runs regardless of DB sync status\nstep \"Copying data folder for $TARGET_DATE\"\n\nif [ -d \"$DATA_SRC\" ]; then\n mkdir -p \"$NAS_DATA/$TARGET_DATE\"\n RSYNC_START=$(date +%s)\n printf \" %-36s \" \"rsync $TARGET_DATE/ → NAS\"\n rsync -a --ignore-existing \\\n \"$DATA_SRC/\" \\\n \"$NAS_DATA/$TARGET_DATE/\" \\\n 2>>\"$LOG_FILE\"\n RSYNC_DUR=$(( $(date +%s) - RSYNC_START ))\n COPIED_FILES=$(ls \"$NAS_DATA/$TARGET_DATE\" | wc -l | tr -d ' ')\n SRC_FILES=$(ls \"$DATA_SRC\" | wc -l | tr -d ' ')\n COPIED_SIZE=$(du -sh \"$NAS_DATA/$TARGET_DATE\" | cut -f1)\n if [ \"$COPIED_FILES\" -eq \"$SRC_FILES\" ]; then\n printf \"\\r %-36s ✓ %dm%02ds (%s files, %s)\\n\" \\\n \"rsync $TARGET_DATE/ → NAS\" \\\n \"$(( RSYNC_DUR / 60 ))\" \"$(( RSYNC_DUR % 60 ))\" \\\n \"$COPIED_FILES\" \"$COPIED_SIZE\" | tee -a \"$LOG_FILE\"\n else\n printf \"\\r %-36s ✗ %s / %s files\\n\" \\\n \"rsync $TARGET_DATE/ → NAS\" \"$COPIED_FILES\" \"$SRC_FILES\" | tee -a \"$LOG_FILE\"\n fi\nelse\n printf \" %-36s %s\\n\" \"rsync $TARGET_DATE/ → NAS\" \"skipped (no source dir)\"\nfi\n\n# ─── SUMMARY ──────────────────────────────────────────────────────────────────\nTOTAL_ELAPSED=$(( $(date +%s) - SCRIPT_START ))\nDB_SIZE=$(du -sh \"$NAS_DB\" | cut -f1)\n\necho \"\"\nlog \"Archive DB size: $DB_SIZE\"\nlog \"Total time: $(( TOTAL_ELAPSED / 60 ))m$(( TOTAL_ELAPSED % 60 ))s\"\nlog \"Sync complete for $TARGET_DATE\"\nlog \"========================================\"","depth":29,"role_description":"text"},{"role":"AXRadioButton","text":"lets add ability to jump…, Editor Group 2","depth":28,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXRadioButton","text":"Problems (⇧⌘M)","depth":22,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"PROBLEMS","depth":24,"role_description":"text"},{"role":"AXRadioButton","text":"Output (⇧⌘U)","depth":22,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUTPUT","depth":24,"role_description":"text"},{"role":"AXRadioButton","text":"Debug Console (⇧⌘Y)","depth":22,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"DEBUG CONSOLE","depth":24,"role_description":"text"},{"role":"AXRadioButton","text":"Terminal (⌃`)","depth":22,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":true},{"role":"AXStaticText","text":"TERMINAL","depth":24,"role_description":"text"},{"role":"AXRadioButton","text":"Ports","depth":22,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"PORTS","depth":24,"role_description":"text"},{"role":"AXButton","text":"remote SSH: nas","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"role_description":"text"},{"role":"AXStaticText","text":"SSH: nas","depth":17,"role_description":"text"},{"role":"AXButton","text":"screenpipe (Git) - master*, Checkout Branch/Tag...","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"role_description":"text"},{"role":"AXStaticText","text":"master*","depth":17,"role_description":"text"},{"role":"AXButton","text":"screenpipe (Git) - Synchronize Changes","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"No Problems","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"role_description":"text"},{"role":"AXStaticText","text":"0","depth":17,"role_description":"text"},{"role":"AXStaticText","text":"","depth":17,"role_description":"text"},{"role":"AXStaticText","text":"0","depth":17,"role_description":"text"},{"role":"AXButton","text":"No Ports Forwarded","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"role_description":"text"},{"role":"AXStaticText","text":"0","depth":17,"role_description":"text"},{"role":"AXButton","text":"Notifications","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Signed out","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"role_description":"text"},{"role":"AXStaticText","text":"Signed out","depth":17,"role_description":"text"},{"role":"AXButton","text":"Shell Script","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Editor Language Status: $(copilot) No inline suggestion available, Inline suggestions","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"LF","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"UTF-8","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Spaces: 2","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Ln 320, Col 36","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Screen Reader Optimized","depth":16,"bounds":{"left":1.0,"top":0.0,"width":-0.07500005,"height":0.024444444},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"git-commit Lukas Kovalik (23 hours ago)","depth":16,"bounds":{"left":0.9388889,"top":0.0,"width":0.061111093,"height":0.024444444},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.9423611,"top":0.0,"width":0.011805556,"height":0.017777778},"role_description":"text"},{"role":"AXStaticText","text":"Lukas Kovalik (23 hours ago)","depth":17,"bounds":{"left":0.9534722,"top":0.0,"width":0.046527803,"height":0.015555556},"role_description":"text"},{"role":"AXStaticText","text":"Info: Downloading VS Code Server...","depth":12,"role_description":"text"},{"role":"AXButton","text":"lets add ability to jump fro,m search to timeline so we can see the exact screen (also based on monitor and time","depth":19,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Session history","depth":19,"help_text":"Session history","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"New session","depth":19,"help_text":"New session","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Message actions","depth":24,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"This session is being continued from a previous conversation that ran out of context. The summary below covers the earlier portion of the conversation.\n\nSummary:\n1. Primary Request and Intent:\n\nThe user has been developing a Screenpipe dashboard on a Synology NAS. Requests in chronological order:\n- **Q1**: Are db.sqlite-shm and db.sqlite-wal used? → Explained WAL mode; cleaned up files.\n- **Q2**: AND combination search (term1 + term2 must both appear) → Added \"AND also\" input field.\n- **Q3**: Explain UTC time issue, show date in results, make Only/Skip apps use multiselect → Implemented all three.\n- **Q4**: Point sqlite-web at archive.db, add second sqlite-web for db.sqlite → Updated docker-compose.yml, added two services on ports 8767/8768.\n- **Q5**: \"still the same\" (container not picking up config) → Explained `up -d` vs `restart`.\n- **Q6**: Add git, push to gitea.com/lakylak/screenpipe.git → Initialized repo, committed, pushed.\n- **Q7**: Add Timetable tab with video playback and timeline → Full implementation with click-to-seek, auto-advancing chunks, legend.\n- **Q8**: Add scroll/zoom on timeline, jump to specific time, better awareness → Implemented zoom (1×–32×), scrollable timeline, overview minimap, viewport indicator, Jump-to-time input, screenshot thumbnail.\n- **Q9 (most recent)**: Make playing speed more than 8×, fix speed not working, show position on timeline → CSS fix done (wider playhead + time label style), remainder in progress.\n\n2. Key Technical Concepts:\n\n- **SQLite WAL mode**: db.sqlite-shm and db.sqlite-wal are WAL companion files; cleaned with `PRAGMA wal_checkpoint(TRUNCATE)`.\n- **SQLite FTS5**: Space-separated terms = AND; `MATCH 'term1 term2'` requires both; OR requires explicit `OR` keyword.\n- **FastAPI**: Python backend with route handlers in main.py, consumers pattern for DB queries.\n- **Docker Compose**: App image is built (code baked in), not volume-mounted → requires `build` + `up -d` for code changes. `restart` doesn't re-read compose file — need `up -d`.\n- **sqlite-web**: Read-only flag `-r`, pre-built image, no rebuild needed for config changes.\n- **Video playback**: screenpipe records at 0.1–0.3 fps (timelapse). `seek = offset_index / fps` gives seconds into video chunk. ~245 chunks/day across 2 monitors. Videos may be encoded at standard fps making them very short at native speed.\n- **Timeline rendering**: App-colored segments built by merging consecutive frames with same `app_name`. Percentage positions: `((ts - dayStart) / span * 100)%`.\n- **Zoom/scroll**: Inner div width = `zoom × 100%`, outer wrapper has `overflow-x:auto`. Playhead position stays as % of inner div, which is correct at all zoom levels.\n- **Timer-based speed**: For speed > 2×, browser `playbackRate` is unreliable on low-FPS video; correct approach is `setInterval` advancing `video.currentTime` by `speed * interval_ms / 1000` seconds per tick.\n- **UTC vs local time**: Backend treats `time_from`/`time_to` as UTC. Frontend converts with `localTimeToUtc()` before sending.\n- **Git**: `#recycle/` in .gitignore treated as comment — must escape as `\\#recycle/`.\n\n3. Files and Code Sections:\n\n- **`/volume1/screenpipe/app/main.py`**\n - Added `/api/apps` endpoint (all unique app names from frames table)\n - Added `/api/timetable` endpoint (frames + video URLs + screenshot URLs per device per date)\n - `/api/timetable` response structure: `{frames: [{ts, app, win, video_url, seek, screenshot_url}], devices: [...], device: \"...\"}`\n - Key snippet:\n ```python","depth":26,"role_description":"text"},{"role":"AXButton","text":"@app.get(\"/api/timetable\"","depth":26,"help_text":"Open app.get(\"/api/timetable\"","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":")\n async def timetable_data(d: str | None = Query(None), device: str | None = Query(None)):\n ...\n rows = conn.execute(f\"\"\"\n SELECT f.timestamp AS ts, f.app_name AS app, f.window_name AS win,\n f.offset_index, f.snapshot_path,\n vc.file_path AS video_path, vc.fps AS video_fps\n FROM frames f\n JOIN video_chunks vc ON f.video_chunk_id = vc.id\n WHERE f.timestamp >= ? AND f.timestamp < ?\n AND f.video_chunk_id IS NOT NULL {dev_clause}\n ORDER BY f.timestamp\n \"\"\", params).fetchall()\n # seek = offset_index / fps, screenshot_url from _snapshot_to_url(snapshot_path)\n ```\n\n- **`/volume1/screenpipe/app/docker-compose.yml`**\n - Changed sqlite-web service name to `sqlite-web-archive` → port 8767 → `/data/archive.db`\n - Added `sqlite-web-live` → port 8768 → `/data/db.sqlite`\n - screenpipe-app: port 8766, `DB_PATH: /data/db.sqlite`, `TZ: Europe/Sofia`\n\n- **`/volume1/screenpipe/app/static/index.html`** (single large file with all CSS/HTML/JS)\n - **Search enhancements**:\n - Added `id=\"sq2\"` \"AND also\" input between search-row1 and search-row2\n - Replaced `sOnlyApps`/`sSkipApps` text inputs with custom multiselect components (`id=\"msOnlyApps\"`, `id=\"msSkipApps\"`)\n - Updated `buildUrl()` to combine `q + \" \" + q2` and convert times with `localTimeToUtc()`\n - Added `fmtDateTime(ts)` showing \"Apr 20 14:08\" format\n - Added `localTimeToUtc(timeStr)` converting local HH:MM to UTC\n - Multiselect state: `const _msState = { msOnlyApps: new Set(), msSkipApps: new Set() }`\n - **Timetable tab** (new page):\n - Tab button added between Work Report and AI Summary\n - `showPage` array updated: `['activity','search','audio','report','timetable','summary']`\n - `refresh()` calls `loadTimetable()` when on timetable page\n - **Timetable CSS** (key styles):\n ```css\n .tt-scroll-wrap { overflow-x:auto; ... scrollbar-width:thin; }\n .tt-inner { position:relative; height:52px; } /* width set dynamically */\n .tt-playhead { position:absolute; top:0; width:3px; height:36px; background:white; box-shadow:0 0 8px rgba(255,255,255,.9); z-index:10; pointer-events:none; display:none; }\n .tt-playhead-time { position:absolute; top:2px; font-size:9px; font-weight:600; color:white; background:rgba(0,0,0,.75); padding:1px 4px; border-radius:2px; white-space:nowrap; transform:translateX(-50%); z-index:12; pointer-events:none; display:none; }\n .tt-overview-wrap { position:relative; height:14px; ... cursor:pointer; }\n .tt-overview-vp { position:absolute; background:rgba(255,255,255,0.12); border:1px solid rgba(255,255,255,0.4); }\n ```\n - **Timetable JS state variables**:\n ```javascript\n let _ttFrames = [], _ttChunks = [], _ttCurChunk = -1;\n let _ttDayStart = 0, _ttDayEnd = 0, _ttZoom = 1;\n const _ttAppColors = {};\n const TT_ZOOMS = [1, 2, 4, 8, 16, 32];\n const TT_TICK_MIN = {1:30, 2:15, 4:10, 8:5, 16:2, 32:1};\n ```\n - **Key JS functions**:\n - `loadTimetable()` — fetches `/api/timetable`, groups chunks, renders\n - `ttZoom(dir)` — changes zoom level, updates inner width, re-renders ticks, scrolls to playhead\n - `ttTimelineClick(e)` — uses `inner.getBoundingClientRect()` (works correctly when scrolled)\n - `ttOverviewClick(e)` — scrolls timeline + seeks video\n - `ttUpdateOverviewVp()` — updates white viewport rect using `wrap.scrollLeft / inner.scrollWidth`\n - `ttJumpToTime()` — parses time input, converts to ms, calls `ttSeekToMs`\n - `ttSeekToMs(tsMs)` — binary-searches nearest frame, loads chunk, seeks video\n - `_ttScrollToPlayhead(force)` — scrolls wrap so playhead stays at ~35% from left when Follow is checked\n - `_ttMovePlayhead(tsMs)` — sets `ph.style.left` as percentage, calls `_ttScrollToPlayhead`\n - `_ttShowNow(f)` — updates screenshot thumbnail + now-text div\n - `ttSyncBtn()` — syncs play/pause button text\n - Keyboard: Space=play/pause, ←/→=±10s, Ctrl+←/→=±30s, +/-=zoom\n\n- **`/volume1/screenpipe/.gitignore`**\n ```\n *.db, *.sqlite, *.sqlite-shm, *.sqlite-wal\n data/, \\#recycle/,","depth":26,"role_description":"text"},{"role":"AXButton","text":"@eaDir/","depth":26,"help_text":"Open eaDir/","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"app_settings.json, app/.env\n __pycache__/, *.pyc, .DS_Store\n ```\n\n4. Errors and Fixes:\n\n- **`#recycle/` in .gitignore treated as comment**: `#` starts a comment in .gitignore. Fixed by escaping: `\\#recycle/`. Also had to `git rm --cached \"#recycle/desktop.ini\"` to unstage it.\n- **`sudo docker compose restart sqlite-web` didn't apply config change**: `restart` reuses existing container config, doesn't re-read compose file. Fix: `sudo docker compose up -d` recreates containers with new config.\n- **Orphan container holding port 8767**: Old `screenpipe-sqlweb` container still running after rename. Fix: `sudo docker compose up -d --remove-orphans`.\n- **`sudo docker` not accessible from Claude Code**: Interactive sudo required. User runs commands in NAS terminal.\n- **`git config --global --add safe.directory /volume1/screenpipe`**: Required due to dubious ownership of NAS volume directory.\n\n5. Problem Solving:\n\n- **Time zone confusion in search**: Backend uses UTC for time_from/time_to; frontend displays local time. Solved by `localTimeToUtc()` converting before API call, and showing date+time in results.\n- **sqlite-web not showing April 17–21 data**: Container was pointing at db.sqlite (old config), not archive.db. Fixed by updating docker-compose.yml + `up -d`.\n- **Video playback speed**: Browser `video.playbackRate` is capped (~16× max in Chrome) and performs poorly for very low FPS (0.1–0.3 fps) screenpipe videos. Each chunk may only be 1–2 seconds of wall-clock encoded video, playing through instantly. Solution: implement timer-based frame-jumping for speed > 2× (in progress).\n- **Playhead visibility**: White 2px line was hard to see. Fixed CSS to 3px width + stronger box-shadow + added `.tt-playhead-time` overlay label style.\n\n6. All User Messages:\n\n- \"do we use db.sqlite-shm and db.sqlite-wal for anything right now? [image of search UI] Lets add ability to search with combination... Explain how does the search work time seems to work in utc maybe display date next to the time in results. Make only apps and skip apps multiselect with all available apps.\"\n- \"doi I need to restart?\"\n- \"there is sudo docker compose\"\n- \"no still the same\"\n- \"add git. I have created gitea repo https://gitea.com/lakylak/screenpipe.git\"\n- \"just do it\" (re: git push)\n- \"how to make sure data in :8767 are accurate and point to archive.db\"\n- \"I can't see older than 16th there should 21st of april. In http://192.168.0.242:8766/ I can see all but not on sqlite viewer http://192.168.0.242:8767\"\n- \"ok lets add additional port to read db.sqlite, I would like to see the structure of official db that reads db.sqlite db and one for archive\"\n- [docker compose output showing orphan container error]\n- \"looks great. I want to have ability to scroll left and right and also to jump to specific time. I want to be more aware to what I see. Still it should be fast\"\n- \"lets make the playing speed more than 8x\"\n- \"still playing speed is not showing properly still just in one second. also I want to see in timeline where I am\"\n\n7. Pending Tasks:\n\n- **Playback speed fix** (in progress, partially done):\n - Add `<div class=\"tt-playhead-time\" id=\"ttPlayheadTime\"></div>` inside `ttInner` HTML\n - Implement `_ttStartSpeedTimer(speed)` / `_ttStopSpeedTimer()` / `ttSetSpeed(speed)` functions\n - Update speed select `onchange` to call `ttSetSpeed(+this.value)`\n - Add 64× option to speed select\n - Update `_ttMovePlayhead` to also update `ttPlayheadTime` label\n - Update `ttSyncBtn` to start/stop timer based on play state + speed\n - Update `ttNextChunk` and `ttSeekToMs` to stop timer (restarted by onplay → ttSyncBtn)\n - Rebuild Docker image after changes\n\n8. Current Work:\n\nWorking on fixing two issues with the Timetable tab:\n1. **Playback speed**: `video.playbackRate` doesn't work well for low-FPS screenpipe videos. The plan is to implement a `setInterval`-based frame-jumper for speed > 2× that advances `video.currentTime` by `speed * intervalMs / 1000` every 100–200ms, bypassing browser playbackRate limits.\n2. **Timeline position indicator**: Playhead not prominent enough. \n\n**CSS already changed** in `/volume1/screenpipe/app/static/index.html`:\n```css\n.tt-playhead { position:absolute; top:0; width:3px; height:36px; background:white; box-shadow:0 0 8px rgba(255,255,255,.9); z-index:10; pointer-events:none; display:none; }\n.tt-playhead-time { position:absolute; top:2px; font-size:9px; font-weight:600; color:white; background:rgba(0,0,0,.75); padding:1px 4px; border-radius:2px; white-space:nowrap; transform:translateX(-50%); z-index:12; pointer-events:none; display:none; }\n```\n\nSession was interrupted by summary request after this CSS edit, mid-implementation.\n\n9. Optional Next Step:\n\nContinuing the fix for: \"still playing speed is not showing properly still just in one second. also I want to see in timeline where I am\"\n\nThe next steps in order are:\n1. Add `<div class=\"tt-playhead-time\" id=\"ttPlayheadTime\"></div>` to the HTML inside `#ttInner` (after the existing `.tt-playhead` div)\n2. Update `_ttMovePlayhead` to set `ttPlayheadTime` position and text content with `fmtTime()`\n3. Add timer-based speed system to JS (new functions `_ttStartSpeedTimer`, `_ttStopSpeedTimer`, `ttSetSpeed`)\n4. Update speed select's `onchange` to `ttSetSpeed(+this.value)` and add 64× option\n5. Update `ttSyncBtn`, `ttNextChunk`, `ttSeekToMs` to integrate with timer\n6. Rebuild: `sudo docker compose build screenpipe-app && sudo docker compose up -d screenpipe-app`\n\nIf you need specific details from before compaction (like exact code snippets, error messages, or content you generated), read the full transcript at: /home/Adm1n/.claude/projects/-volume1-screenpipe/7777f46e-1e40-4051-b4bb-f43aedd59556.jsonl\nContinue the conversation from where it left off without asking the user any further questions. Resume directly — do not acknowledge the summary, do not recap what was happening, do not preface with \"I'll continue\" or similar. Pick up the last task as if the break never happened.","depth":26,"role_description":"text"},{"role":"AXButton","text":"Thinking","depth":23,"role_description":"disclosure triangle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Thinking","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Find timetable speed and playhead related code","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"tt-playhead\\|ttPlayhead\\|ttInner\\|_ttMovePlayhead\\|ttSetSpeed\\|_ttStartSpeed\\|_ttStopSpeed\\|ttSyncBtn\\|playbackRate\\|speed.*select\\|spdSel\\|ttSpeed\" /volume1/screenpipe/app/static/index.html | head -80","depth":25,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"207:.tt-playhead { position:absolute; top:0; width:3px; height:36px; background:white; box-shadow:0 0 8px rgba(255,255,255,.9); z-index:10; pointer-events:none; display:none; }\n208:.tt-playhead-time { position:absolute; top:2px; font-size:9px; font-weight:600; color:white; background:rgba(0,0,0,.75); padding:1px 4px; border-radius:2px; white-space:nowrap; transform:translateX(-50%); z-index:12; pointer-events:none; display:none; }\n580: <div class=\"tt-inner\" id=\"ttInner\" onclick=\"ttTimelineClick(event)\">\n583: <div class=\"tt-playhead\" id=\"ttPlayhead\"></div>\n598: onpause=\"ttSyncBtn()\"\n599: onplay=\"ttSyncBtn()\">\n607: <select id=\"ttSpeed\" onchange=\"document.getElementById('ttVideo').playbackRate=+this.value\">\n1624: document.getElementById('ttInner').style.width = '100%';\n1632: document.getElementById('ttPlayhead').style.display = 'none';\n1694: document.getElementById('ttInner').style.width = (_ttZoom * 100) + '%';\n1700: const inner = document.getElementById('ttInner');\n1710: const inner = document.getElementById('ttInner');\n1718: const inner = document.getElementById('ttInner');\n1750: _ttMovePlayhead(new Date(best.ts).getTime());\n1772: _ttMovePlayhead(new Date(best.ts).getTime());\n1791:function _ttMovePlayhead(tsMs) {\n1792: const ph = document.getElementById('ttPlayhead');\n1802: const ph = document.getElementById('ttPlayhead');\n1805: const inner = document.getElementById('ttInner');\n1819:function ttSyncBtn() {","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"role_description":"text"},{"role":"AXLink","text":"index.html","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"index.html","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"(lines 576-625)","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"role_description":"text"},{"role":"AXLink","text":"index.html","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"index.html","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"(lines 1786-1865)","depth":24,"role_description":"text"},{"role":"AXButton","text":"Thinking","depth":23,"role_description":"disclosure triangle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Thinking","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Find chunk loading and playhead update functions","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"ttUpdatePlayhead\\|ttNextChunk\\|ttLoadChunk\\|_ttCurChunk\\|_ttChunks\\|_ttFrames\" /volume1/screenpipe/app/static/index.html | head -50","depth":25,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"596: onended=\"ttNextChunk()\"\n597: ontimeupdate=\"ttUpdatePlayhead()\"\n1569:let _ttFrames = [];\n1570:let _ttChunks = [];\n1571:let _ttCurChunk = -1;\n1607: _ttFrames = data.frames;\n1609: for (const f of _ttFrames) {\n1613: _ttChunks = [...chunkMap.values()];\n1614: _ttCurChunk = -1;\n1616: _ttDayStart = new Date(_ttFrames[0].ts).getTime();\n1617: _ttDayEnd = new Date(_ttFrames[_ttFrames.length - 1].ts).getTime();\n1620: for (const f of _ttFrames) _ttColor(f.app);\n1640: for (const f of _ttFrames) {\n1736: if (!_ttFrames.length) return;\n1737: let best = _ttFrames[0], minDiff = Infinity;\n1738: for (const f of _ttFrames) {\n1742: const ci = _ttChunks.findIndex(ch => ch[0].video_url === best.video_url);\n1744: _ttCurChunk = ci;\n1753:function ttNextChunk() {\n1754: if (_ttCurChunk + 1 >= _ttChunks.length) return;\n1755: _ttCurChunk++;\n1757: video.src = _ttChunks[_ttCurChunk][0].video_url;\n1762:function ttUpdatePlayhead() {\n1764: if (_ttCurChunk < 0 || _ttCurChunk >= _ttChunks.length) return;\n1765: const chunk = _ttChunks[_ttCurChunk];","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"role_description":"text"},{"role":"AXLink","text":"index.html","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"index.html","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"(lines 1754-1793)","depth":24,"role_description":"text"},{"role":"AXButton","text":"Thinking","depth":23,"role_description":"disclosure triangle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Thinking","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"role_description":"text"},{"role":"AXLink","text":"index.html","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"index.html","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"(lines 1701-1760)","depth":24,"role_description":"text"},{"role":"AXButton","text":"Thinking","depth":23,"role_description":"disclosure triangle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Thinking","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"role_description":"text"},{"role":"AXLink","text":"index.html","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"index.html","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"(lines 1561-1640)","depth":24,"role_description":"text"},{"role":"AXButton","text":"Thinking","depth":23,"role_description":"disclosure triangle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Thinking","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Find time formatting functions","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"function fmtTime\\|function fmtDate\\|function _fmt\\|localTimeToUtc\\|fmtDateTime\" /volume1/screenpipe/app/static/index.html | head -20","depth":25,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"role_description":"text"}]...
|
-9211766644227580523
|
4474475550963076503
|
click
|
accessibility
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 2 pending changes
2
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update, 1 requires restart
3
Claude Code
Containers
EXPLORER
EXPLORER
Explorer Section: screenpipe [SSH: nas]
Explorer Section: screenpipe [SSH: nas]
SCREENPIPE [SSH: NAS]
#recycle
app
data
pipes
.gitignore
app_settings.json
archive.db
db.sqlite
screenpipe_sync.sh
screenpipe.db
Outline Section
OUTLINE
OUTLINE
Timeline Section
TIMELINE
TIMELINE
app_settings.json, Editor Group 1
screenpipe_sync.sh, Editor Group 1
db.sqlite-shm, preview, Editor Group 1
#!/bin/bash
# screenpipe_sync.sh
# Syncs Screenpipe SQLite data to a NAS archive database (append-only, no deletions).
# Also copies the day's video/frame data folder to the NAS.
#
# Usage:
# ./screenpipe_sync.sh # syncs yesterday (default)
# ./screenpipe_sync.sh 2026-04-15 # syncs a specific date
# ./screenpipe_sync.sh today # syncs today so far
#
# Cron example (runs at 3am daily):
# 0 3 * * * /Users/lukas/.screenpipe/screenpipe_sync.sh >> /Users/lukas/.screenpipe/sync.log 2>&1
set -euo pipefail
# ─── CONFIG ───────────────────────────────────────────────────────────────────
DB_SRC="${SCREENPIPE_DB:-$HOME/.screenpipe/db.sqlite}"
NAS_MOUNT="${NAS_MOUNT:-/Volumes/Test/screenpipe}"
NAS_DB="$NAS_MOUNT/archive.db"
NAS_DATA="$NAS_MOUNT/data"
LOG_FILE="$HOME/.screenpipe/sync.log"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
SCRIPT_START=$(date +%s)
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# ─── DATE ARGUMENT ────────────────────────────────────────────────────────────
if [ "${1:-}" = "today" ]; then
TARGET_DATE=$(date +%Y-%m-%d)
elif [ -n "${1:-}" ]; then
TARGET_DATE="$1"
if ! [[ "$TARGET_DATE" =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]]; then
echo "ERROR: Invalid date format. Use YYYY-MM-DD, 'today', or no argument for yesterday."
exit 1
fi
else
TARGET_DATE=$(date -v-1d +%Y-%m-%d)
fi
log "========================================"
log "Screenpipe sync starting for: $TARGET_DATE"
log "========================================"
# ─── PREFLIGHT ────────────────────────────────────────────────────────────────
step "Preflight checks"
if [ ! -f "$DB_SRC" ]; then
log "ERROR: Source DB not found at $DB_SRC"; exit 1
fi
printf " %-20s %s (%s)\n" "Source DB:" "OK" "$(du -sh "$DB_SRC" | cut -f1)"
if [ ! -d "$NAS_MOUNT" ]; then
log "ERROR: NAS not mounted at $NAS_MOUNT"; exit 1
fi
printf " %-20s %s\n" "NAS mount:" "OK $NAS_MOUNT"
# Check if DB already synced for this date
DB_ALREADY_SYNCED=false
if [ -f "$NAS_DB" ]; then
EXISTING=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';" 2>/dev/null || echo "0")
if [ "$EXISTING" -gt "0" ]; then
log "Date $TARGET_DATE already has $EXISTING frames in archive — skipping DB sync"
DB_ALREADY_SYNCED=true
else
printf " %-20s %s (%s)\n" "Archive DB:" "exists" "$(du -sh "$NAS_DB" | cut -f1)"
fi
else
printf " %-20s %s\n" "Archive DB:" "will be created"
fi
# Source data dir for this date
DATA_SRC="$HOME/.screenpipe/data/data/$TARGET_DATE"
if [ -d "$DATA_SRC" ]; then
DATA_SIZE=$(du -sh "$DATA_SRC" | cut -f1)
DATA_FILES=$(ls "$DATA_SRC" | wc -l | tr -d ' ')
printf " %-20s %s (%s files, %s)\n" "Data dir:" "OK" "$DATA_FILES" "$DATA_SIZE"
else
printf " %-20s %s\n" "Data dir:" "not found — skipping file copy"
fi
# ─── DB SYNC ──────────────────────────────────────────────────────────────────
if [ "$DB_ALREADY_SYNCED" = false ]; then
# ─── COUNT SOURCE ROWS ────────────────────────────────────────────────────
step "Counting source rows for $TARGET_DATE"
SRC_FRAMES=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';")
SRC_ELEMENTS=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
SRC_UI=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';")
SRC_OCR=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
SRC_MEETINGS=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM meetings WHERE date(meeting_start) = '$TARGET_DATE';")
printf " %-20s %s\n" "frames:" "$SRC_FRAMES"
printf " %-20s %s\n" "elements:" "$SRC_ELEMENTS"
printf " %-20s %s\n" "ui_events:" "$SRC_UI"
printf " %-20s %s\n" "ocr_text:" "$SRC_OCR"
printf " %-20s %s\n" "meetings:" "$SRC_MEETINGS"
if [ "$SRC_FRAMES" -eq "0" ]; then
log "No frames found for $TARGET_DATE — skipping DB sync"
DB_ALREADY_SYNCED=true
fi
fi
if [ "$DB_ALREADY_SYNCED" = false ]; then
# ─── INIT TABLES ──────────────────────────────────────────────────────────
step "Initialising tables, indexes, FTS"
run_sqlite_heredoc "creating tables" "
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
DETACH nas;
"
run_sqlite_heredoc "creating indexes" "
ATTACH '$NAS_DB' AS nas;
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
CREATE INDEX IF NOT EXISTS nas.idx_elements_frame_id ON elements(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_elements_frame_src_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_timestamp ON ui_events(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_app_name ON ui_events(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_frame_id ON ui_events(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_ocr_text_frame_id ON ocr_text(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_meetings_start ON meetings(meeting_start);
CREATE INDEX IF NOT EXISTS nas.idx_video_chunks_device ON video_chunks(device_name);
DETACH nas;
"
run_sqlite_heredoc "creating FTS tables" "
ATTACH '$NAS_DB' AS nas;
CREATE VIRTUAL TABLE IF NOT EXISTS nas.elements_fts USING fts5(
text, role, frame_id UNINDEXED,
content='elements', content_rowid='id', tokenize='unicode61'
);
CREATE VIRTUAL TABLE IF NOT EXISTS nas.frames_fts USING fts5(
full_text, app_name, window_name, browser_url, id UNINDEXED,
tokenize='unicode61'
);
CREATE VIRTUAL TABLE IF NOT EXISTS nas.ui_events_fts USING fts5(
text_content,
app_name,
window_title,
element_name,
content='ui_events',
content_rowid='id',
tokenize='unicode61'
);
DETACH nas;
"
# ─── SYNC DATA ────────────────────────────────────────────────────────────
step "Syncing data for $TARGET_DATE"
run_sqlite_heredoc "video_chunks" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.video_chunks
SELECT * FROM main.video_chunks
WHERE id IN (
SELECT DISTINCT video_chunk_id FROM main.frames
WHERE date(timestamp) = '$TARGET_DATE' AND video_chunk_id IS NOT NULL
);
DETACH nas;
"
run_sqlite_heredoc "frames ($SRC_FRAMES rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "ocr_text ($SRC_OCR rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.ocr_text
SELECT o.* FROM main.ocr_text o
JOIN main.frames f ON o.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "ui_events ($SRC_UI rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.ui_events
SELECT * FROM main.ui_events WHERE date(timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "elements ($SRC_ELEMENTS rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "meetings ($SRC_MEETINGS rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.meetings
SELECT * FROM main.meetings WHERE date(meeting_start) = '$TARGET_DATE';
DETACH nas;
"
# ─── FTS UPDATE ───────────────────────────────────────────────────────────
step "Updating FTS indexes"
run_sqlite_heredoc "elements_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.elements_fts(rowid, text, role)
SELECT e.id, e.text, e.role
FROM nas.elements e
JOIN nas.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE'
AND e.text IS NOT NULL;
DETACH nas;
"
run_sqlite_heredoc "frames_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.frames_fts(rowid, full_text, app_name, window_name, browser_url, id)
SELECT id, full_text, app_name, window_name, browser_url, id
FROM nas.frames
WHERE date(timestamp) = '$TARGET_DATE'
AND full_text IS NOT NULL;
DETACH nas;
"
run_sqlite_heredoc "ui_events_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.ui_events_fts(rowid, text_content, app_name, window_title, element_name)
SELECT id, text_content, app_name, window_title, element_name
FROM nas.ui_events
WHERE date(timestamp) = '$TARGET_DATE'
AND text_content IS NOT NULL;
DETACH nas;
"
# ─── VERIFY DB ────────────────────────────────────────────────────────────
step "Verifying DB"
V_FRAMES=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';")
V_ELEMENTS=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
V_UI=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';")
V_OCR=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
V_MEETINGS=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM meetings WHERE date(meeting_start)= '$TARGET_DATE';")
check "frames" "$V_FRAMES" "$SRC_FRAMES"
check "elements" "$V_ELEMENTS" "$SRC_ELEMENTS"
check "ui_events" "$V_UI" "$SRC_UI"
check "ocr_text" "$V_OCR" "$SRC_OCR"
check "meetings" "$V_MEETINGS" "$SRC_MEETINGS"
fi
# ─── COPY DATA FOLDER ─────────────────────────────────────────────────────────
# Always runs regardless of DB sync status
step "Copying data folder for $TARGET_DATE"
if [ -d "$DATA_SRC" ]; then
mkdir -p "$NAS_DATA/$TARGET_DATE"
RSYNC_START=$(date +%s)
printf " %-36s " "rsync $TARGET_DATE/ → NAS"
rsync -a --ignore-existing \
"$DATA_SRC/" \
"$NAS_DATA/$TARGET_DATE/" \
2>>"$LOG_FILE"
RSYNC_DUR=$(( $(date +%s) - RSYNC_START ))
COPIED_FILES=$(ls "$NAS_DATA/$TARGET_DATE" | wc -l | tr -d ' ')
SRC_FILES=$(ls "$DATA_SRC" | wc -l | tr -d ' ')
COPIED_SIZE=$(du -sh "$NAS_DATA/$TARGET_DATE" | cut -f1)
if [ "$COPIED_FILES" -eq "$SRC_FILES" ]; then
printf "\r %-36s ✓ %dm%02ds (%s files, %s)\n" \
"rsync $TARGET_DATE/ → NAS" \
"$(( RSYNC_DUR / 60 ))" "$(( RSYNC_DUR % 60 ))" \
"$COPIED_FILES" "$COPIED_SIZE" | tee -a "$LOG_FILE"
else
printf "\r %-36s ✗ %s / %s files\n" \
"rsync $TARGET_DATE/ → NAS" "$COPIED_FILES" "$SRC_FILES" | tee -a "$LOG_FILE"
fi
else
printf " %-36s %s\n" "rsync $TARGET_DATE/ → NAS" "skipped (no source dir)"
fi
# ─── SUMMARY ──────────────────────────────────────────────────────────────────
TOTAL_ELAPSED=$(( $(date +%s) - SCRIPT_START ))
DB_SIZE=$(du -sh "$NAS_DB" | cut -f1)
echo ""
log "Archive DB size: $DB_SIZE"
log "Total time: $(( TOTAL_ELAPSED / 60 ))m$(( TOTAL_ELAPSED % 60 ))s"
log "Sync complete for $TARGET_DATE"
log "========================================"
#!/bin/bash
# screenpipe_sync.sh
# Syncs Screenpipe SQLite data to a NAS archive database (append-only, no deletions).
# Also copies the day's video/frame data folder to the NAS.
#
# Usage:
# ./screenpipe_sync.sh # syncs yesterday (default)
# ./screenpipe_sync.sh 2026-04-15 # syncs a specific date
# ./screenpipe_sync.sh today # syncs today so far
#
# Cron example (runs at 3am daily):
# 0 3 * * * /Users/lukas/.screenpipe/screenpipe_sync.sh >> /Users/lukas/.screenpipe/sync.log 2>&1
set -euo pipefail
# ─── CONFIG ───────────────────────────────────────────────────────────────────
DB_SRC="${SCREENPIPE_DB:-$HOME/.screenpipe/db.sqlite}"
NAS_MOUNT="${NAS_MOUNT:-/Volumes/Test/screenpipe}"
NAS_DB="$NAS_MOUNT/archive.db"
NAS_DATA="$NAS_MOUNT/data"
LOG_FILE="$HOME/.screenpipe/sync.log"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
SCRIPT_START=$(date +%s)
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# ─── DATE ARGUMENT ────────────────────────────────────────────────────────────
if [ "${1:-}" = "today" ]; then
TARGET_DATE=$(date +%Y-%m-%d)
elif [ -n "${1:-}" ]; then
TARGET_DATE="$1"
if ! [[ "$TARGET_DATE" =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]]; then
echo "ERROR: Invalid date format. Use YYYY-MM-DD, 'today', or no argument for yesterday."
exit 1
fi
else
TARGET_DATE=$(date -v-1d +%Y-%m-%d)
fi
log "========================================"
log "Screenpipe sync starting for: $TARGET_DATE"
log "========================================"
# ─── PREFLIGHT ────────────────────────────────────────────────────────────────
step "Preflight checks"
if [ ! -f "$DB_SRC" ]; then
log "ERROR: Source DB not found at $DB_SRC"; exit 1
fi
printf " %-20s %s (%s)\n" "Source DB:" "OK" "$(du -sh "$DB_SRC" | cut -f1)"
if [ ! -d "$NAS_MOUNT" ]; then
log "ERROR: NAS not mounted at $NAS_MOUNT"; exit 1
fi
printf " %-20s %s\n" "NAS mount:" "OK $NAS_MOUNT"
# Check if DB already synced for this date
DB_ALREADY_SYNCED=false
if [ -f "$NAS_DB" ]; then
EXISTING=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';" 2>/dev/null || echo "0")
if [ "$EXISTING" -gt "0" ]; then
log "Date $TARGET_DATE already has $EXISTING frames in archive — skipping DB sync"
DB_ALREADY_SYNCED=true
else
printf " %-20s %s (%s)\n" "Archive DB:" "exists" "$(du -sh "$NAS_DB" | cut -f1)"
fi
else
printf " %-20s %s\n" "Archive DB:" "will be created"
fi
# Source data dir for this date
DATA_SRC="$HOME/.screenpipe/data/data/$TARGET_DATE"
if [ -d "$DATA_SRC" ]; then
DATA_SIZE=$(du -sh "$DATA_SRC" | cut -f1)
DATA_FILES=$(ls "$DATA_SRC" | wc -l | tr -d ' ')
printf " %-20s %s (%s files, %s)\n" "Data dir:" "OK" "$DATA_FILES" "$DATA_SIZE"
else
printf " %-20s %s\n" "Data dir:" "not found — skipping file copy"
fi
# ─── DB SYNC ──────────────────────────────────────────────────────────────────
if [ "$DB_ALREADY_SYNCED" = false ]; then
# ─── COUNT SOURCE ROWS ────────────────────────────────────────────────────
step "Counting source rows for $TARGET_DATE"
SRC_FRAMES=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';")
SRC_ELEMENTS=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
SRC_UI=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';")
SRC_OCR=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
SRC_MEETINGS=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM meetings WHERE date(meeting_start) = '$TARGET_DATE';")
printf " %-20s %s\n" "frames:" "$SRC_FRAMES"
printf " %-20s %s\n" "elements:" "$SRC_ELEMENTS"
printf " %-20s %s\n" "ui_events:" "$SRC_UI"
printf " %-20s %s\n" "ocr_text:" "$SRC_OCR"
printf " %-20s %s\n" "meetings:" "$SRC_MEETINGS"
if [ "$SRC_FRAMES" -eq "0" ]; then
log "No frames found for $TARGET_DATE — skipping DB sync"
DB_ALREADY_SYNCED=true
fi
fi
if [ "$DB_ALREADY_SYNCED" = false ]; then
# ─── INIT TABLES ──────────────────────────────────────────────────────────
step "Initialising tables, indexes, FTS"
run_sqlite_heredoc "creating tables" "
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
DETACH nas;
"
run_sqlite_heredoc "creating indexes" "
ATTACH '$NAS_DB' AS nas;
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
CREATE INDEX IF NOT EXISTS nas.idx_elements_frame_id ON elements(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_elements_frame_src_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_timestamp ON ui_events(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_app_name ON ui_events(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_frame_id ON ui_events(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_ocr_text_frame_id ON ocr_text(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_meetings_start ON meetings(meeting_start);
CREATE INDEX IF NOT EXISTS nas.idx_video_chunks_device ON video_chunks(device_name);
DETACH nas;
"
run_sqlite_heredoc "creating FTS tables" "
ATTACH '$NAS_DB' AS nas;
CREATE VIRTUAL TABLE IF NOT EXISTS nas.elements_fts USING fts5(
text, role, frame_id UNINDEXED,
content='elements', content_rowid='id', tokenize='unicode61'
);
CREATE VIRTUAL TABLE IF NOT EXISTS nas.frames_fts USING fts5(
full_text, app_name, window_name, browser_url, id UNINDEXED,
tokenize='unicode61'
);
CREATE VIRTUAL TABLE IF NOT EXISTS nas.ui_events_fts USING fts5(
text_content,
app_name,
window_title,
element_name,
content='ui_events',
content_rowid='id',
tokenize='unicode61'
);
DETACH nas;
"
# ─── SYNC DATA ────────────────────────────────────────────────────────────
step "Syncing data for $TARGET_DATE"
run_sqlite_heredoc "video_chunks" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.video_chunks
SELECT * FROM main.video_chunks
WHERE id IN (
SELECT DISTINCT video_chunk_id FROM main.frames
WHERE date(timestamp) = '$TARGET_DATE' AND video_chunk_id IS NOT NULL
);
DETACH nas;
"
run_sqlite_heredoc "frames ($SRC_FRAMES rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "ocr_text ($SRC_OCR rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.ocr_text
SELECT o.* FROM main.ocr_text o
JOIN main.frames f ON o.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "ui_events ($SRC_UI rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.ui_events
SELECT * FROM main.ui_events WHERE date(timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "elements ($SRC_ELEMENTS rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "meetings ($SRC_MEETINGS rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.meetings
SELECT * FROM main.meetings WHERE date(meeting_start) = '$TARGET_DATE';
DETACH nas;
"
# ─── FTS UPDATE ───────────────────────────────────────────────────────────
step "Updating FTS indexes"
run_sqlite_heredoc "elements_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.elements_fts(rowid, text, role)
SELECT e.id, e.text, e.role
FROM nas.elements e
JOIN nas.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE'
AND e.text IS NOT NULL;
DETACH nas;
"
run_sqlite_heredoc "frames_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.frames_fts(rowid, full_text, app_name, window_name, browser_url, id)
SELECT id, full_text, app_name, window_name, browser_url, id
FROM nas.frames
WHERE date(timestamp) = '$TARGET_DATE'
AND full_text IS NOT NULL;
DETACH nas;
"
run_sqlite_heredoc "ui_events_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.ui_events_fts(rowid, text_content, app_name, window_title, element_name)
SELECT id, text_content, app_name, window_title, element_name
FROM nas.ui_events
WHERE date(timestamp) = '$TARGET_DATE'
AND text_content IS NOT NULL;
DETACH nas;
"
# ─── VERIFY DB ────────────────────────────────────────────────────────────
step "Verifying DB"
V_FRAMES=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';")
V_ELEMENTS=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
V_UI=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';")
V_OCR=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
V_MEETINGS=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM meetings WHERE date(meeting_start)= '$TARGET_DATE';")
check "frames" "$V_FRAMES" "$SRC_FRAMES"
check "elements" "$V_ELEMENTS" "$SRC_ELEMENTS"
check "ui_events" "$V_UI" "$SRC_UI"
check "ocr_text" "$V_OCR" "$SRC_OCR"
check "meetings" "$V_MEETINGS" "$SRC_MEETINGS"
fi
# ─── COPY DATA FOLDER ─────────────────────────────────────────────────────────
# Always runs regardless of DB sync status
step "Copying data folder for $TARGET_DATE"
if [ -d "$DATA_SRC" ]; then
mkdir -p "$NAS_DATA/$TARGET_DATE"
RSYNC_START=$(date +%s)
printf " %-36s " "rsync $TARGET_DATE/ → NAS"
rsync -a --ignore-existing \
"$DATA_SRC/" \
"$NAS_DATA/$TARGET_DATE/" \
2>>"$LOG_FILE"
RSYNC_DUR=$(( $(date +%s) - RSYNC_START ))
COPIED_FILES=$(ls "$NAS_DATA/$TARGET_DATE" | wc -l | tr -d ' ')
SRC_FILES=$(ls "$DATA_SRC" | wc -l | tr -d ' ')
COPIED_SIZE=$(du -sh "$NAS_DATA/$TARGET_DATE" | cut -f1)
if [ "$COPIED_FILES" -eq "$SRC_FILES" ]; then
printf "\r %-36s ✓ %dm%02ds (%s files, %s)\n" \
"rsync $TARGET_DATE/ → NAS" \
"$(( RSYNC_DUR / 60 ))" "$(( RSYNC_DUR % 60 ))" \
"$COPIED_FILES" "$COPIED_SIZE" | tee -a "$LOG_FILE"
else
printf "\r %-36s ✗ %s / %s files\n" \
"rsync $TARGET_DATE/ → NAS" "$COPIED_FILES" "$SRC_FILES" | tee -a "$LOG_FILE"
fi
else
printf " %-36s %s\n" "rsync $TARGET_DATE/ → NAS" "skipped (no source dir)"
fi
# ─── SUMMARY ──────────────────────────────────────────────────────────────────
TOTAL_ELAPSED=$(( $(date +%s) - SCRIPT_START ))
DB_SIZE=$(du -sh "$NAS_DB" | cut -f1)
echo ""
log "Archive DB size: $DB_SIZE"
log "Total time: $(( TOTAL_ELAPSED / 60 ))m$(( TOTAL_ELAPSED % 60 ))s"
log "Sync complete for $TARGET_DATE"
log "========================================"
lets add ability to jump…, Editor Group 2
Problems (⇧⌘M)
PROBLEMS
Output (⇧⌘U)
OUTPUT
Debug Console (⇧⌘Y)
DEBUG CONSOLE
Terminal (⌃`)
TERMINAL
Ports
PORTS
remote SSH: nas
SSH: nas
screenpipe (Git) - master*, Checkout Branch/Tag...
master*
screenpipe (Git) - Synchronize Changes
No Problems
0
0
No Ports Forwarded
0
Notifications
Signed out
Signed out
Shell Script
Editor Language Status: $(copilot) No inline suggestion available, Inline suggestions
LF
UTF-8
Spaces: 2
Ln 320, Col 36
Screen Reader Optimized
git-commit Lukas Kovalik (23 hours ago)
Lukas Kovalik (23 hours ago)
Info: Downloading VS Code Server...
lets add ability to jump fro,m search to timeline so we can see the exact screen (also based on monitor and time
Session history
New session
Message actions
This session is being continued from a previous conversation that ran out of context. The summary below covers the earlier portion of the conversation.
Summary:
1. Primary Request and Intent:
The user has been developing a Screenpipe dashboard on a Synology NAS. Requests in chronological order:
- **Q1**: Are db.sqlite-shm and db.sqlite-wal used? → Explained WAL mode; cleaned up files.
- **Q2**: AND combination search (term1 + term2 must both appear) → Added "AND also" input field.
- **Q3**: Explain UTC time issue, show date in results, make Only/Skip apps use multiselect → Implemented all three.
- **Q4**: Point sqlite-web at archive.db, add second sqlite-web for db.sqlite → Updated docker-compose.yml, added two services on ports 8767/8768.
- **Q5**: "still the same" (container not picking up config) → Explained `up -d` vs `restart`.
- **Q6**: Add git, push to gitea.com/lakylak/screenpipe.git → Initialized repo, committed, pushed.
- **Q7**: Add Timetable tab with video playback and timeline → Full implementation with click-to-seek, auto-advancing chunks, legend.
- **Q8**: Add scroll/zoom on timeline, jump to specific time, better awareness → Implemented zoom (1×–32×), scrollable timeline, overview minimap, viewport indicator, Jump-to-time input, screenshot thumbnail.
- **Q9 (most recent)**: Make playing speed more than 8×, fix speed not working, show position on timeline → CSS fix done (wider playhead + time label style), remainder in progress.
2. Key Technical Concepts:
- **SQLite WAL mode**: db.sqlite-shm and db.sqlite-wal are WAL companion files; cleaned with `PRAGMA wal_checkpoint(TRUNCATE)`.
- **SQLite FTS5**: Space-separated terms = AND; `MATCH 'term1 term2'` requires both; OR requires explicit `OR` keyword.
- **FastAPI**: Python backend with route handlers in main.py, consumers pattern for DB queries.
- **Docker Compose**: App image is built (code baked in), not volume-mounted → requires `build` + `up -d` for code changes. `restart` doesn't re-read compose file — need `up -d`.
- **sqlite-web**: Read-only flag `-r`, pre-built image, no rebuild needed for config changes.
- **Video playback**: screenpipe records at 0.1–0.3 fps (timelapse). `seek = offset_index / fps` gives seconds into video chunk. ~245 chunks/day across 2 monitors. Videos may be encoded at standard fps making them very short at native speed.
- **Timeline rendering**: App-colored segments built by merging consecutive frames with same `app_name`. Percentage positions: `((ts - dayStart) / span * 100)%`.
- **Zoom/scroll**: Inner div width = `zoom × 100%`, outer wrapper has `overflow-x:auto`. Playhead position stays as % of inner div, which is correct at all zoom levels.
- **Timer-based speed**: For speed > 2×, browser `playbackRate` is unreliable on low-FPS video; correct approach is `setInterval` advancing `video.currentTime` by `speed * interval_ms / 1000` seconds per tick.
- **UTC vs local time**: Backend treats `time_from`/`time_to` as UTC. Frontend converts with `localTimeToUtc()` before sending.
- **Git**: `#recycle/` in .gitignore treated as comment — must escape as `\#recycle/`.
3. Files and Code Sections:
- **`/volume1/screenpipe/app/main.py`**
- Added `/api/apps` endpoint (all unique app names from frames table)
- Added `/api/timetable` endpoint (frames + video URLs + screenshot URLs per device per date)
- `/api/timetable` response structure: `{frames: [{ts, app, win, video_url, seek, screenshot_url}], devices: [...], device: "..."}`
- Key snippet:
```python
@app.get("/api/timetable"
)
async def timetable_data(d: str | None = Query(None), device: str | None = Query(None)):
...
rows = conn.execute(f"""
SELECT f.timestamp AS ts, f.app_name AS app, f.window_name AS win,
f.offset_index, f.snapshot_path,
vc.file_path AS video_path, vc.fps AS video_fps
FROM frames f
JOIN video_chunks vc ON f.video_chunk_id = vc.id
WHERE f.timestamp >= ? AND f.timestamp < ?
AND f.video_chunk_id IS NOT NULL {dev_clause}
ORDER BY f.timestamp
""", params).fetchall()
# seek = offset_index / fps, screenshot_url from _snapshot_to_url(snapshot_path)
```
- **`/volume1/screenpipe/app/docker-compose.yml`**
- Changed sqlite-web service name to `sqlite-web-archive` → port 8767 → `/data/archive.db`
- Added `sqlite-web-live` → port 8768 → `/data/db.sqlite`
- screenpipe-app: port 8766, `DB_PATH: /data/db.sqlite`, `TZ: Europe/Sofia`
- **`/volume1/screenpipe/app/static/index.html`** (single large file with all CSS/HTML/JS)
- **Search enhancements**:
- Added `id="sq2"` "AND also" input between search-row1 and search-row2
- Replaced `sOnlyApps`/`sSkipApps` text inputs with custom multiselect components (`id="msOnlyApps"`, `id="msSkipApps"`)
- Updated `buildUrl()` to combine `q + " " + q2` and convert times with `localTimeToUtc()`
- Added `fmtDateTime(ts)` showing "Apr 20 14:08" format
- Added `localTimeToUtc(timeStr)` converting local HH:MM to UTC
- Multiselect state: `const _msState = { msOnlyApps: new Set(), msSkipApps: new Set() }`
- **Timetable tab** (new page):
- Tab button added between Work Report and AI Summary
- `showPage` array updated: `['activity','search','audio','report','timetable','summary']`
- `refresh()` calls `loadTimetable()` when on timetable page
- **Timetable CSS** (key styles):
```css
.tt-scroll-wrap { overflow-x:auto; ... scrollbar-width:thin; }
.tt-inner { position:relative; height:52px; } /* width set dynamically */
.tt-playhead { position:absolute; top:0; width:3px; height:36px; background:white; box-shadow:0 0 8px rgba(255,255,255,.9); z-index:10; pointer-events:none; display:none; }
.tt-playhead-time { position:absolute; top:2px; font-size:9px; font-weight:600; color:white; background:rgba(0,0,0,.75); padding:1px 4px; border-radius:2px; white-space:nowrap; transform:translateX(-50%); z-index:12; pointer-events:none; display:none; }
.tt-overview-wrap { position:relative; height:14px; ... cursor:pointer; }
.tt-overview-vp { position:absolute; background:rgba(255,255,255,0.12); border:1px solid rgba(255,255,255,0.4); }
```
- **Timetable JS state variables**:
```javascript
let _ttFrames = [], _ttChunks = [], _ttCurChunk = -1;
let _ttDayStart = 0, _ttDayEnd = 0, _ttZoom = 1;
const _ttAppColors = {};
const TT_ZOOMS = [1, 2, 4, 8, 16, 32];
const TT_TICK_MIN = {1:30, 2:15, 4:10, 8:5, 16:2, 32:1};
```
- **Key JS functions**:
- `loadTimetable()` — fetches `/api/timetable`, groups chunks, renders
- `ttZoom(dir)` — changes zoom level, updates inner width, re-renders ticks, scrolls to playhead
- `ttTimelineClick(e)` — uses `inner.getBoundingClientRect()` (works correctly when scrolled)
- `ttOverviewClick(e)` — scrolls timeline + seeks video
- `ttUpdateOverviewVp()` — updates white viewport rect using `wrap.scrollLeft / inner.scrollWidth`
- `ttJumpToTime()` — parses time input, converts to ms, calls `ttSeekToMs`
- `ttSeekToMs(tsMs)` — binary-searches nearest frame, loads chunk, seeks video
- `_ttScrollToPlayhead(force)` — scrolls wrap so playhead stays at ~35% from left when Follow is checked
- `_ttMovePlayhead(tsMs)` — sets `ph.style.left` as percentage, calls `_ttScrollToPlayhead`
- `_ttShowNow(f)` — updates screenshot thumbnail + now-text div
- `ttSyncBtn()` — syncs play/pause button text
- Keyboard: Space=play/pause, ←/→=±10s, Ctrl+←/→=±30s, +/-=zoom
- **`/volume1/screenpipe/.gitignore`**
```
*.db, *.sqlite, *.sqlite-shm, *.sqlite-wal
data/, \#recycle/,
@eaDir/
app_settings.json, app/.env
__pycache__/, *.pyc, .DS_Store
```
4. Errors and Fixes:
- **`#recycle/` in .gitignore treated as comment**: `#` starts a comment in .gitignore. Fixed by escaping: `\#recycle/`. Also had to `git rm --cached "#recycle/desktop.ini"` to unstage it.
- **`sudo docker compose restart sqlite-web` didn't apply config change**: `restart` reuses existing container config, doesn't re-read compose file. Fix: `sudo docker compose up -d` recreates containers with new config.
- **Orphan container holding port 8767**: Old `screenpipe-sqlweb` container still running after rename. Fix: `sudo docker compose up -d --remove-orphans`.
- **`sudo docker` not accessible from Claude Code**: Interactive sudo required. User runs commands in NAS terminal.
- **`git config --global --add safe.directory /volume1/screenpipe`**: Required due to dubious ownership of NAS volume directory.
5. Problem Solving:
- **Time zone confusion in search**: Backend uses UTC for time_from/time_to; frontend displays local time. Solved by `localTimeToUtc()` converting before API call, and showing date+time in results.
- **sqlite-web not showing April 17–21 data**: Container was pointing at db.sqlite (old config), not archive.db. Fixed by updating docker-compose.yml + `up -d`.
- **Video playback speed**: Browser `video.playbackRate` is capped (~16× max in Chrome) and performs poorly for very low FPS (0.1–0.3 fps) screenpipe videos. Each chunk may only be 1–2 seconds of wall-clock encoded video, playing through instantly. Solution: implement timer-based frame-jumping for speed > 2× (in progress).
- **Playhead visibility**: White 2px line was hard to see. Fixed CSS to 3px width + stronger box-shadow + added `.tt-playhead-time` overlay label style.
6. All User Messages:
- "do we use db.sqlite-shm and db.sqlite-wal for anything right now? [image of search UI] Lets add ability to search with combination... Explain how does the search work time seems to work in utc maybe display date next to the time in results. Make only apps and skip apps multiselect with all available apps."
- "doi I need to restart?"
- "there is sudo docker compose"
- "no still the same"
- "add git. I have created gitea repo https://gitea.com/lakylak/screenpipe.git"
- "just do it" (re: git push)
- "how to make sure data in :8767 are accurate and point to archive.db"
- "I can't see older than 16th there should 21st of april. In http://[IP_ADDRESS]:8766/ I can see all but not on sqlite viewer http://[IP_ADDRESS]:8767"
- "ok lets add additional port to read db.sqlite, I would like to see the structure of official db that reads db.sqlite db and one for archive"
- [docker compose output showing orphan container error]
- "looks great. I want to have ability to scroll left and right and also to jump to specific time. I want to be more aware to what I see. Still it should be fast"
- "lets make the playing speed more than 8x"
- "still playing speed is not showing properly still just in one second. also I want to see in timeline where I am"
7. Pending Tasks:
- **Playback speed fix** (in progress, partially done):
- Add `<div class="tt-playhead-time" id="ttPlayheadTime"></div>` inside `ttInner` HTML
- Implement `_ttStartSpeedTimer(speed)` / `_ttStopSpeedTimer()` / `ttSetSpeed(speed)` functions
- Update speed select `onchange` to call `ttSetSpeed(+this.value)`
- Add 64× option to speed select
- Update `_ttMovePlayhead` to also update `ttPlayheadTime` label
- Update `ttSyncBtn` to start/stop timer based on play state + speed
- Update `ttNextChunk` and `ttSeekToMs` to stop timer (restarted by onplay → ttSyncBtn)
- Rebuild Docker image after changes
8. Current Work:
Working on fixing two issues with the Timetable tab:
1. **Playback speed**: `video.playbackRate` doesn't work well for low-FPS screenpipe videos. The plan is to implement a `setInterval`-based frame-jumper for speed > 2× that advances `video.currentTime` by `speed * intervalMs / 1000` every 100–200ms, bypassing browser playbackRate limits.
2. **Timeline position indicator**: Playhead not prominent enough.
**CSS already changed** in `/volume1/screenpipe/app/static/index.html`:
```css
.tt-playhead { position:absolute; top:0; width:3px; height:36px; background:white; box-shadow:0 0 8px rgba(255,255,255,.9); z-index:10; pointer-events:none; display:none; }
.tt-playhead-time { position:absolute; top:2px; font-size:9px; font-weight:600; color:white; background:rgba(0,0,0,.75); padding:1px 4px; border-radius:2px; white-space:nowrap; transform:translateX(-50%); z-index:12; pointer-events:none; display:none; }
```
Session was interrupted by summary request after this CSS edit, mid-implementation.
9. Optional Next Step:
Continuing the fix for: "still playing speed is not showing properly still just in one second. also I want to see in timeline where I am"
The next steps in order are:
1. Add `<div class="tt-playhead-time" id="ttPlayheadTime"></div>` to the HTML inside `#ttInner` (after the existing `.tt-playhead` div)
2. Update `_ttMovePlayhead` to set `ttPlayheadTime` position and text content with `fmtTime()`
3. Add timer-based speed system to JS (new functions `_ttStartSpeedTimer`, `_ttStopSpeedTimer`, `ttSetSpeed`)
4. Update speed select's `onchange` to `ttSetSpeed(+this.value)` and add 64× option
5. Update `ttSyncBtn`, `ttNextChunk`, `ttSeekToMs` to integrate with timer
6. Rebuild: `sudo docker compose build screenpipe-app && sudo docker compose up -d screenpipe-app`
If you need specific details from before compaction (like exact code snippets, error messages, or content you generated), read the full transcript at: /home/Adm1n/.claude/projects/-volume1-screenpipe/7777f46e-1e40-4051-b4bb-f43aedd59556.jsonl
Continue the conversation from where it left off without asking the user any further questions. Resume directly — do not acknowledge the summary, do not recap what was happening, do not preface with "I'll continue" or similar. Pick up the last task as if the break never happened.
Thinking
Thinking
Bash
Find timetable speed and playhead related code
IN
grep -n "tt-playhead\|ttPlayhead\|ttInner\|_ttMovePlayhead\|ttSetSpeed\|_ttStartSpeed\|_ttStopSpeed\|ttSyncBtn\|playbackRate\|speed.*select\|spdSel\|ttSpeed" /volume1/screenpipe/app/static/index.html | head -80
Copy code to clipboard
OUT
207:.tt-playhead { position:absolute; top:0; width:3px; height:36px; background:white; box-shadow:0 0 8px rgba(255,255,255,.9); z-index:10; pointer-events:none; display:none; }
208:.tt-playhead-time { position:absolute; top:2px; font-size:9px; font-weight:600; color:white; background:rgba(0,0,0,.75); padding:1px 4px; border-radius:2px; white-space:nowrap; transform:translateX(-50%); z-index:12; pointer-events:none; display:none; }
580: <div class="tt-inner" id="ttInner" onclick="ttTimelineClick(event)">
583: <div class="tt-playhead" id="ttPlayhead"></div>
598: onpause="ttSyncBtn()"
599: onplay="ttSyncBtn()">
607: <select id="ttSpeed" onchange="document.getElementById('ttVideo').playbackRate=+this.value">
1624: document.getElementById('ttInner').style.width = '100%';
1632: document.getElementById('ttPlayhead').style.display = 'none';
1694: document.getElementById('ttInner').style.width = (_ttZoom * 100) + '%';
1700: const inner = document.getElementById('ttInner');
1710: const inner = document.getElementById('ttInner');
1718: const inner = document.getElementById('ttInner');
1750: _ttMovePlayhead(new Date(best.ts).getTime());
1772: _ttMovePlayhead(new Date(best.ts).getTime());
1791:function _ttMovePlayhead(tsMs) {
1792: const ph = document.getElementById('ttPlayhead');
1802: const ph = document.getElementById('ttPlayhead');
1805: const inner = document.getElementById('ttInner');
1819:function ttSyncBtn() {
Read
index.html
index.html
(lines 576-625)
Read
index.html
index.html
(lines 1786-1865)
Thinking
Thinking
Bash
Find chunk loading and playhead update functions
IN
grep -n "ttUpdatePlayhead\|ttNextChunk\|ttLoadChunk\|_ttCurChunk\|_ttChunks\|_ttFrames" /volume1/screenpipe/app/static/index.html | head -50
Copy code to clipboard
OUT
596: onended="ttNextChunk()"
597: ontimeupdate="ttUpdatePlayhead()"
1569:let _ttFrames = [];
1570:let _ttChunks = [];
1571:let _ttCurChunk = -1;
1607: _ttFrames = data.frames;
1609: for (const f of _ttFrames) {
1613: _ttChunks = [...chunkMap.values()];
1614: _ttCurChunk = -1;
1616: _ttDayStart = new Date(_ttFrames[0].ts).getTime();
1617: _ttDayEnd = new Date(_ttFrames[_ttFrames.length - 1].ts).getTime();
1620: for (const f of _ttFrames) _ttColor(f.app);
1640: for (const f of _ttFrames) {
1736: if (!_ttFrames.length) return;
1737: let best = _ttFrames[0], minDiff = Infinity;
1738: for (const f of _ttFrames) {
1742: const ci = _ttChunks.findIndex(ch => ch[0].video_url === best.video_url);
1744: _ttCurChunk = ci;
1753:function ttNextChunk() {
1754: if (_ttCurChunk + 1 >= _ttChunks.length) return;
1755: _ttCurChunk++;
1757: video.src = _ttChunks[_ttCurChunk][0].video_url;
1762:function ttUpdatePlayhead() {
1764: if (_ttCurChunk < 0 || _ttCurChunk >= _ttChunks.length) return;
1765: const chunk = _ttChunks[_ttCurChunk];
Read
index.html
index.html
(lines 1754-1793)
Thinking
Thinking
Read
index.html
index.html
(lines 1701-1760)
Thinking
Thinking
Read
index.html
index.html
(lines 1561-1640)
Thinking
Thinking
Bash
Find time formatting functions
IN
grep -n "function fmtTime\|function fmtDate\|function _fmt\|localTimeToUtc\|fmtDateTime" /volume1/screenpipe/app/static/index.html | head -20
Copy code to clipboard
OUT...
|
81023
|
|
81024
|
2157
|
11
|
2026-04-25T15:56:20.668664+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-25/1777 /Users/lukas/.screenpipe/data/data/2026-04-25/1777132580668_m2.jpg...
|
Code
|
screenpipe_sync.sh — screenpipe [SSH: nas]
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 2 pending changes
2
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update, 1 requires restart
3
Claude Code
Containers
EXPLORER
EXPLORER
Explorer Section: screenpipe [SSH: nas]
Explorer Section: screenpipe [SSH: nas]
SCREENPIPE [SSH: NAS]
#recycle
app
data
pipes
.gitignore
app_settings.json
archive.db
db.sqlite
screenpipe_sync.sh
screenpipe.db
Outline Section
OUTLINE
OUTLINE
Timeline Section
TIMELINE
TIMELINE
app_settings.json, Editor Group 1
screenpipe_sync.sh, Editor Group 1
db.sqlite-shm, preview, Editor Group 1
#!/bin/bash
# screenpipe_sync.sh
# Syncs Screenpipe SQLite data to a NAS archive database (append-only, no deletions).
# Also copies the day's video/frame data folder to the NAS.
#
# Usage:
# ./screenpipe_sync.sh # syncs yesterday (default)
# ./screenpipe_sync.sh 2026-04-15 # syncs a specific date
# ./screenpipe_sync.sh today # syncs today so far
#
# Cron example (runs at 3am daily):
# 0 3 * * * /Users/lukas/.screenpipe/screenpipe_sync.sh >> /Users/lukas/.screenpipe/sync.log 2>&1
set -euo pipefail
# ─── CONFIG ───────────────────────────────────────────────────────────────────
DB_SRC="${SCREENPIPE_DB:-$HOME/.screenpipe/db.sqlite}"
NAS_MOUNT="${NAS_MOUNT:-/Volumes/Test/screenpipe}"
NAS_DB="$NAS_MOUNT/archive.db"
NAS_DATA="$NAS_MOUNT/data"
LOG_FILE="$HOME/.screenpipe/sync.log"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
SCRIPT_START=$(date +%s)
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# ─── DATE ARGUMENT ────────────────────────────────────────────────────────────
if [ "${1:-}" = "today" ]; then
TARGET_DATE=$(date +%Y-%m-%d)
elif [ -n "${1:-}" ]; then
TARGET_DATE="$1"
if ! [[ "$TARGET_DATE" =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]]; then
echo "ERROR: Invalid date format. Use YYYY-MM-DD, 'today', or no argument for yesterday."
exit 1
fi
else
TARGET_DATE=$(date -v-1d +%Y-%m-%d)
fi
log "========================================"
log "Screenpipe sync starting for: $TARGET_DATE"
log "========================================"
# ─── PREFLIGHT ────────────────────────────────────────────────────────────────
step "Preflight checks"
if [ ! -f "$DB_SRC" ]; then
log "ERROR: Source DB not found at $DB_SRC"; exit 1
fi
printf " %-20s %s (%s)\n" "Source DB:" "OK" "$(du -sh "$DB_SRC" | cut -f1)"
if [ ! -d "$NAS_MOUNT" ]; then
log "ERROR: NAS not mounted at $NAS_MOUNT"; exit 1
fi
printf " %-20s %s\n" "NAS mount:" "OK $NAS_MOUNT"
# Check if DB already synced for this date
DB_ALREADY_SYNCED=false
if [ -f "$NAS_DB" ]; then
EXISTING=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';" 2>/dev/null || echo "0")
if [ "$EXISTING" -gt "0" ]; then
log "Date $TARGET_DATE already has $EXISTING frames in archive — skipping DB sync"
DB_ALREADY_SYNCED=true
else
printf " %-20s %s (%s)\n" "Archive DB:" "exists" "$(du -sh "$NAS_DB" | cut -f1)"
fi
else
printf " %-20s %s\n" "Archive DB:" "will be created"
fi
# Source data dir for this date
DATA_SRC="$HOME/.screenpipe/data/data/$TARGET_DATE"
if [ -d "$DATA_SRC" ]; then
DATA_SIZE=$(du -sh "$DATA_SRC" | cut -f1)
DATA_FILES=$(ls "$DATA_SRC" | wc -l | tr -d ' ')
printf " %-20s %s (%s files, %s)\n" "Data dir:" "OK" "$DATA_FILES" "$DATA_SIZE"
else
printf " %-20s %s\n" "Data dir:" "not found — skipping file copy"
fi
# ─── DB SYNC ──────────────────────────────────────────────────────────────────
if [ "$DB_ALREADY_SYNCED" = false ]; then
# ─── COUNT SOURCE ROWS ────────────────────────────────────────────────────
step "Counting source rows for $TARGET_DATE"
SRC_FRAMES=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';")
SRC_ELEMENTS=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
SRC_UI=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';")
SRC_OCR=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
SRC_MEETINGS=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM meetings WHERE date(meeting_start) = '$TARGET_DATE';")
printf " %-20s %s\n" "frames:" "$SRC_FRAMES"
printf " %-20s %s\n" "elements:" "$SRC_ELEMENTS"
printf " %-20s %s\n" "ui_events:" "$SRC_UI"
printf " %-20s %s\n" "ocr_text:" "$SRC_OCR"
printf " %-20s %s\n" "meetings:" "$SRC_MEETINGS"
if [ "$SRC_FRAMES" -eq "0" ]; then
log "No frames found for $TARGET_DATE — skipping DB sync"
DB_ALREADY_SYNCED=true
fi
fi
if [ "$DB_ALREADY_SYNCED" = false ]; then
# ─── INIT TABLES ──────────────────────────────────────────────────────────
step "Initialising tables, indexes, FTS"
run_sqlite_heredoc "creating tables" "
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
DETACH nas;
"
run_sqlite_heredoc "creating indexes" "
ATTACH '$NAS_DB' AS nas;
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
CREATE INDEX IF NOT EXISTS nas.idx_elements_frame_id ON elements(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_elements_frame_src_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_timestamp ON ui_events(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_app_name ON ui_events(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_frame_id ON ui_events(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_ocr_text_frame_id ON ocr_text(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_meetings_start ON meetings(meeting_start);
CREATE INDEX IF NOT EXISTS nas.idx_video_chunks_device ON video_chunks(device_name);
DETACH nas;
"
run_sqlite_heredoc "creating FTS tables" "
ATTACH '$NAS_DB' AS nas;
CREATE VIRTUAL TABLE IF NOT EXISTS nas.elements_fts USING fts5(
text, role, frame_id UNINDEXED,
content='elements', content_rowid='id', tokenize='unicode61'
);
CREATE VIRTUAL TABLE IF NOT EXISTS nas.frames_fts USING fts5(
full_text, app_name, window_name, browser_url, id UNINDEXED,
tokenize='unicode61'
);
CREATE VIRTUAL TABLE IF NOT EXISTS nas.ui_events_fts USING fts5(
text_content,
app_name,
window_title,
element_name,
content='ui_events',
content_rowid='id',
tokenize='unicode61'
);
DETACH nas;
"
# ─── SYNC DATA ────────────────────────────────────────────────────────────
step "Syncing data for $TARGET_DATE"
run_sqlite_heredoc "video_chunks" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.video_chunks
SELECT * FROM main.video_chunks
WHERE id IN (
SELECT DISTINCT video_chunk_id FROM main.frames
WHERE date(timestamp) = '$TARGET_DATE' AND video_chunk_id IS NOT NULL
);
DETACH nas;
"
run_sqlite_heredoc "frames ($SRC_FRAMES rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "ocr_text ($SRC_OCR rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.ocr_text
SELECT o.* FROM main.ocr_text o
JOIN main.frames f ON o.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "ui_events ($SRC_UI rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.ui_events
SELECT * FROM main.ui_events WHERE date(timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "elements ($SRC_ELEMENTS rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "meetings ($SRC_MEETINGS rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.meetings
SELECT * FROM main.meetings WHERE date(meeting_start) = '$TARGET_DATE';
DETACH nas;
"
# ─── FTS UPDATE ───────────────────────────────────────────────────────────
step "Updating FTS indexes"
run_sqlite_heredoc "elements_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.elements_fts(rowid, text, role)
SELECT e.id, e.text, e.role
FROM nas.elements e
JOIN nas.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE'
AND e.text IS NOT NULL;
DETACH nas;
"
run_sqlite_heredoc "frames_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.frames_fts(rowid, full_text, app_name, window_name, browser_url, id)
SELECT id, full_text, app_name, window_name, browser_url, id
FROM nas.frames
WHERE date(timestamp) = '$TARGET_DATE'
AND full_text IS NOT NULL;
DETACH nas;
"
run_sqlite_heredoc "ui_events_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.ui_events_fts(rowid, text_content, app_name, window_title, element_name)
SELECT id, text_content, app_name, window_title, element_name
FROM nas.ui_events
WHERE date(timestamp) = '$TARGET_DATE'
AND text_content IS NOT NULL;
DETACH nas;
"
# ─── VERIFY DB ────────────────────────────────────────────────────────────
step "Verifying DB"
V_FRAMES=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';")
V_ELEMENTS=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
V_UI=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';")
V_OCR=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
V_MEETINGS=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM meetings WHERE date(meeting_start)= '$TARGET_DATE';")
check "frames" "$V_FRAMES" "$SRC_FRAMES"
check "elements" "$V_ELEMENTS" "$SRC_ELEMENTS"
check "ui_events" "$V_UI" "$SRC_UI"
check "ocr_text" "$V_OCR" "$SRC_OCR"
check "meetings" "$V_MEETINGS" "$SRC_MEETINGS"
fi
# ─── COPY DATA FOLDER ─────────────────────────────────────────────────────────
# Always runs regardless of DB sync status
step "Copying data folder for $TARGET_DATE"
if [ -d "$DATA_SRC" ]; then
mkdir -p "$NAS_DATA/$TARGET_DATE"
RSYNC_START=$(date +%s)
printf " %-36s " "rsync $TARGET_DATE/ → NAS"
rsync -a --ignore-existing \
"$DATA_SRC/" \
"$NAS_DATA/$TARGET_DATE/" \
2>>"$LOG_FILE"
RSYNC_DUR=$(( $(date +%s) - RSYNC_START ))
COPIED_FILES=$(ls "$NAS_DATA/$TARGET_DATE" | wc -l | tr -d ' ')
SRC_FILES=$(ls "$DATA_SRC" | wc -l | tr -d ' ')
COPIED_SIZE=$(du -sh "$NAS_DATA/$TARGET_DATE" | cut -f1)
if [ "$COPIED_FILES" -eq "$SRC_FILES" ]; then
printf "\r %-36s ✓ %dm%02ds (%s files, %s)\n" \
"rsync $TARGET_DATE/ → NAS" \
"$(( RSYNC_DUR / 60 ))" "$(( RSYNC_DUR % 60 ))" \
"$COPIED_FILES" "$COPIED_SIZE" | tee -a "$LOG_FILE"
else
printf "\r %-36s ✗ %s / %s files\n" \
"rsync $TARGET_DATE/ → NAS" "$COPIED_FILES" "$SRC_FILES" | tee -a "$LOG_FILE"
fi
else
printf " %-36s %s\n" "rsync $TARGET_DATE/ → NAS" "skipped (no source dir)"
fi
# ─── SUMMARY ──────────────────────────────────────────────────────────────────
TOTAL_ELAPSED=$(( $(date +%s) - SCRIPT_START ))
DB_SIZE=$(du -sh "$NAS_DB" | cut -f1)
echo ""
log "Archive DB size: $DB_SIZE"
log "Total time: $(( TOTAL_ELAPSED / 60 ))m$(( TOTAL_ELAPSED % 60 ))s"
log "Sync complete for $TARGET_DATE"
log "========================================"
#!/bin/bash
# screenpipe_sync.sh
# Syncs Screenpipe SQLite data to a NAS archive database (append-only, no deletions).
# Also copies the day's video/frame data folder to the NAS.
#
# Usage:
# ./screenpipe_sync.sh # syncs yesterday (default)
# ./screenpipe_sync.sh 2026-04-15 # syncs a specific date
# ./screenpipe_sync.sh today # syncs today so far
#
# Cron example (runs at 3am daily):
# 0 3 * * * /Users/lukas/.screenpipe/screenpipe_sync.sh >> /Users/lukas/.screenpipe/sync.log 2>&1
set -euo pipefail
# ─── CONFIG ───────────────────────────────────────────────────────────────────
DB_SRC="${SCREENPIPE_DB:-$HOME/.screenpipe/db.sqlite}"
NAS_MOUNT="${NAS_MOUNT:-/Volumes/Test/screenpipe}"
NAS_DB="$NAS_MOUNT/archive.db"
NAS_DATA="$NAS_MOUNT/data"
LOG_FILE="$HOME/.screenpipe/sync.log"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
SCRIPT_START=$(date +%s)
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# ─── DATE ARGUMENT ────────────────────────────────────────────────────────────
if [ "${1:-}" = "today" ]; then
TARGET_DATE=$(date +%Y-%m-%d)
elif [ -n "${1:-}" ]; then
TARGET_DATE="$1"
if ! [[ "$TARGET_DATE" =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]]; then
echo "ERROR: Invalid date format. Use YYYY-MM-DD, 'today', or no argument for yesterday."
exit 1
fi
else
TARGET_DATE=$(date -v-1d +%Y-%m-%d)
fi
log "========================================"
log "Screenpipe sync starting for: $TARGET_DATE"
log "========================================"
# ─── PREFLIGHT ────────────────────────────────────────────────────────────────
step "Preflight checks"
if [ ! -f "$DB_SRC" ]; then
log "ERROR: Source DB not found at $DB_SRC"; exit 1
fi
printf " %-20s %s (%s)\n" "Source DB:" "OK" "$(du -sh "$DB_SRC" | cut -f1)"
if [ ! -d "$NAS_MOUNT" ]; then
log "ERROR: NAS not mounted at $NAS_MOUNT"; exit 1
fi
printf " %-20s %s\n" "NAS mount:" "OK $NAS_MOUNT"
# Check if DB already synced for this date
DB_ALREADY_SYNCED=false
if [ -f "$NAS_DB" ]; then
EXISTING=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';" 2>/dev/null || echo "0")
if [ "$EXISTING" -gt "0" ]; then
log "Date $TARGET_DATE already has $EXISTING frames in archive — skipping DB sync"
DB_ALREADY_SYNCED=true
else
printf " %-20s %s (%s)\n" "Archive DB:" "exists" "$(du -sh "$NAS_DB" | cut -f1)"
fi
else
printf " %-20s %s\n" "Archive DB:" "will be created"
fi
# Source data dir for this date
DATA_SRC="$HOME/.screenpipe/data/data/$TARGET_DATE"
if [ -d "$DATA_SRC" ]; then
DATA_SIZE=$(du -sh "$DATA_SRC" | cut -f1)
DATA_FILES=$(ls "$DATA_SRC" | wc -l | tr -d ' ')
printf " %-20s %s (%s files, %s)\n" "Data dir:" "OK" "$DATA_FILES" "$DATA_SIZE"
else
printf " %-20s %s\n" "Data dir:" "not found — skipping file copy"
fi
# ─── DB SYNC ──────────────────────────────────────────────────────────────────
if [ "$DB_ALREADY_SYNCED" = false ]; then
# ─── COUNT SOURCE ROWS ────────────────────────────────────────────────────
step "Counting source rows for $TARGET_DATE"
SRC_FRAMES=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';")
SRC_ELEMENTS=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
SRC_UI=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';")
SRC_OCR=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
SRC_MEETINGS=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM meetings WHERE date(meeting_start) = '$TARGET_DATE';")
printf " %-20s %s\n" "frames:" "$SRC_FRAMES"
printf " %-20s %s\n" "elements:" "$SRC_ELEMENTS"
printf " %-20s %s\n" "ui_events:" "$SRC_UI"
printf " %-20s %s\n" "ocr_text:" "$SRC_OCR"
printf " %-20s %s\n" "meetings:" "$SRC_MEETINGS"
if [ "$SRC_FRAMES" -eq "0" ]; then
log "No frames found for $TARGET_DATE — skipping DB sync"
DB_ALREADY_SYNCED=true
fi
fi
if [ "$DB_ALREADY_SYNCED" = false ]; then
# ─── INIT TABLES ──────────────────────────────────────────────────────────
step "Initialising tables, indexes, FTS"
run_sqlite_heredoc "creating tables" "
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
DETACH nas;
"
run_sqlite_heredoc "creating indexes" "
ATTACH '$NAS_DB' AS nas;
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
CREATE INDEX IF NOT EXISTS nas.idx_elements_frame_id ON elements(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_elements_frame_src_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_timestamp ON ui_events(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_app_name ON ui_events(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_frame_id ON ui_events(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_ocr_text_frame_id ON ocr_text(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_meetings_start ON meetings(meeting_start);
CREATE INDEX IF NOT EXISTS nas.idx_video_chunks_device ON video_chunks(device_name);
DETACH nas;
"
run_sqlite_heredoc "creating FTS tables" "
ATTACH '$NAS_DB' AS nas;
CREATE VIRTUAL TABLE IF NOT EXISTS nas.elements_fts USING fts5(
text, role, frame_id UNINDEXED,
content='elements', content_rowid='id', tokenize='unicode61'
);
CREATE VIRTUAL TABLE IF NOT EXISTS nas.frames_fts USING fts5(
full_text, app_name, window_name, browser_url, id UNINDEXED,
tokenize='unicode61'
);
CREATE VIRTUAL TABLE IF NOT EXISTS nas.ui_events_fts USING fts5(
text_content,
app_name,
window_title,
element_name,
content='ui_events',
content_rowid='id',
tokenize='unicode61'
);
DETACH nas;
"
# ─── SYNC DATA ────────────────────────────────────────────────────────────
step "Syncing data for $TARGET_DATE"
run_sqlite_heredoc "video_chunks" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.video_chunks
SELECT * FROM main.video_chunks
WHERE id IN (
SELECT DISTINCT video_chunk_id FROM main.frames
WHERE date(timestamp) = '$TARGET_DATE' AND video_chunk_id IS NOT NULL
);
DETACH nas;
"
run_sqlite_heredoc "frames ($SRC_FRAMES rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "ocr_text ($SRC_OCR rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.ocr_text
SELECT o.* FROM main.ocr_text o
JOIN main.frames f ON o.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "ui_events ($SRC_UI rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.ui_events
SELECT * FROM main.ui_events WHERE date(timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "elements ($SRC_ELEMENTS rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "meetings ($SRC_MEETINGS rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.meetings
SELECT * FROM main.meetings WHERE date(meeting_start) = '$TARGET_DATE';
DETACH nas;
"
# ─── FTS UPDATE ───────────────────────────────────────────────────────────
step "Updating FTS indexes"
run_sqlite_heredoc "elements_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.elements_fts(rowid, text, role)
SELECT e.id, e.text, e.role
FROM nas.elements e
JOIN nas.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE'
AND e.text IS NOT NULL;
DETACH nas;
"
run_sqlite_heredoc "frames_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.frames_fts(rowid, full_text, app_name, window_name, browser_url, id)
SELECT id, full_text, app_name, window_name, browser_url, id
FROM nas.frames
WHERE date(timestamp) = '$TARGET_DATE'
AND full_text IS NOT NULL;
DETACH nas;
"
run_sqlite_heredoc "ui_events_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.ui_events_fts(rowid, text_content, app_name, window_title, element_name)
SELECT id, text_content, app_name, window_title, element_name
FROM nas.ui_events
WHERE date(timestamp) = '$TARGET_DATE'
AND text_content IS NOT NULL;
DETACH nas;
"
# ─── VERIFY DB ────────────────────────────────────────────────────────────
step "Verifying DB"
V_FRAMES=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';")
V_ELEMENTS=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
V_UI=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';")
V_OCR=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
V_MEETINGS=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM meetings WHERE date(meeting_start)= '$TARGET_DATE';")
check "frames" "$V_FRAMES" "$SRC_FRAMES"
check "elements" "$V_ELEMENTS" "$SRC_ELEMENTS"
check "ui_events" "$V_UI" "$SRC_UI"
check "ocr_text" "$V_OCR" "$SRC_OCR"
check "meetings" "$V_MEETINGS" "$SRC_MEETINGS"
fi
# ─── COPY DATA FOLDER ─────────────────────────────────────────────────────────
# Always runs regardless of DB sync status
step "Copying data folder for $TARGET_DATE"
if [ -d "$DATA_SRC" ]; then
mkdir -p "$NAS_DATA/$TARGET_DATE"
RSYNC_START=$(date +%s)
printf " %-36s " "rsync $TARGET_DATE/ → NAS"
rsync -a --ignore-existing \
"$DATA_SRC/" \
"$NAS_DATA/$TARGET_DATE/" \
2>>"$LOG_FILE"
RSYNC_DUR=$(( $(date +%s) - RSYNC_START ))
COPIED_FILES=$(ls "$NAS_DATA/$TARGET_DATE" | wc -l | tr -d ' ')
SRC_FILES=$(ls "$DATA_SRC" | wc -l | tr -d ' ')
COPIED_SIZE=$(du -sh "$NAS_DATA/$TARGET_DATE" | cut -f1)
if [ "$COPIED_FILES" -eq "$SRC_FILES" ]; then
printf "\r %-36s ✓ %dm%02ds (%s files, %s)\n" \
"rsync $TARGET_DATE/ → NAS" \
"$(( RSYNC_DUR / 60 ))" "$(( RSYNC_DUR % 60 ))" \
"$COPIED_FILES" "$COPIED_SIZE" | tee -a "$LOG_FILE"
else
printf "\r %-36s ✗ %s / %s files\n" \
"rsync $TARGET_DATE/ → NAS" "$COPIED_FILES" "$SRC_FILES" | tee -a "$LOG_FILE"
fi
else
printf " %-36s %s\n" "rsync $TARGET_DATE/ → NAS" "skipped (no source dir)"
fi
# ─── SUMMARY ──────────────────────────────────────────────────────────────────
TOTAL_ELAPSED=$(( $(date +%s) - SCRIPT_START ))
DB_SIZE=$(du -sh "$NAS_DB" | cut -f1)
echo ""
log "Archive DB size: $DB_SIZE"
log "Total time: $(( TOTAL_ELAPSED / 60 ))m$(( TOTAL_ELAPSED % 60 ))s"
log "Sync complete for $TARGET_DATE"
log "========================================"
lets add ability to jump…, Editor Group 2
Problems (⇧⌘M)
PROBLEMS
Output (⇧⌘U)
OUTPUT
Debug Console (⇧⌘Y)
DEBUG CONSOLE
Terminal (⌃`)
TERMINAL
Ports
PORTS
remote SSH: nas
SSH: nas
screenpipe (Git) - master*, Checkout Branch/Tag...
master*
screenpipe (Git) - Synchronize Changes
No Problems
0
0
No Ports Forwarded
0
Notifications
Signed out
Signed out
Shell Script
Editor Language Status: $(copilot) No inline suggestion available, Inline suggestions
LF
UTF-8
Spaces: 2
Ln 352, Col 47 (13096 selected)
Screen Reader Optimized
git-commit Lukas Kovalik (23 hours ago)
Lukas Kovalik (23 hours ago)
Info: Downloading VS Code Server...
lets add ability to jump fro,m search to timeline so we can see the exact screen (also based on monitor and time
Session history
New session
Message actions
This session is being continued from a previous conversation that ran out of context. The summary below covers the earlier portion of the conversation.
Summary:
1. Primary Request and Intent:
The user has been developing a Screenpipe dashboard on a Synology NAS. Requests in chronological order:
- **Q1**: Are db.sqlite-shm and db.sqlite-wal used? → Explained WAL mode; cleaned up files.
- **Q2**: AND combination search (term1 + term2 must both appear) → Added "AND also" input field.
- **Q3**: Explain UTC time issue, show date in results, make Only/Skip apps use multiselect → Implemented all three.
- **Q4**: Point sqlite-web at archive.db, add second sqlite-web for db.sqlite → Updated docker-compose.yml, added two services on ports 8767/8768.
- **Q5**: "still the same" (container not picking up config) → Explained `up -d` vs `restart`.
- **Q6**: Add git, push to gitea.com/lakylak/screenpipe.git → Initialized repo, committed, pushed.
- **Q7**: Add Timetable tab with video playback and timeline → Full implementation with click-to-seek, auto-advancing chunks, legend.
- **Q8**: Add scroll/zoom on timeline, jump to specific time, better awareness → Implemented zoom (1×–32×), scrollable timeline, overview minimap, viewport indicator, Jump-to-time input, screenshot thumbnail.
- **Q9 (most recent)**: Make playing speed more than 8×, fix speed not working, show position on timeline → CSS fix done (wider playhead + time label style), remainder in progress.
2. Key Technical Concepts:
- **SQLite WAL mode**: db.sqlite-shm and db.sqlite-wal are WAL companion files; cleaned with `PRAGMA wal_checkpoint(TRUNCATE)`.
- **SQLite FTS5**: Space-separated terms = AND; `MATCH 'term1 term2'` requires both; OR requires explicit `OR` keyword.
- **FastAPI**: Python backend with route handlers in main.py, consumers pattern for DB queries.
- **Docker Compose**: App image is built (code baked in), not volume-mounted → requires `build` + `up -d` for code changes. `restart` doesn't re-read compose file — need `up -d`.
- **sqlite-web**: Read-only flag `-r`, pre-built image, no rebuild needed for config changes.
- **Video playback**: screenpipe records at 0.1–0.3 fps (timelapse). `seek = offset_index / fps` gives seconds into video chunk. ~245 chunks/day across 2 monitors. Videos may be encoded at standard fps making them very short at native speed.
- **Timeline rendering**: App-colored segments built by merging consecutive frames with same `app_name`. Percentage positions: `((ts - dayStart) / span * 100)%`.
- **Zoom/scroll**: Inner div width = `zoom × 100%`, outer wrapper has `overflow-x:auto`. Playhead position stays as % of inner div, which is correct at all zoom levels.
- **Timer-based speed**: For speed > 2×, browser `playbackRate` is unreliable on low-FPS video; correct approach is `setInterval` advancing `video.currentTime` by `speed * interval_ms / 1000` seconds per tick.
- **UTC vs local time**: Backend treats `time_from`/`time_to` as UTC. Frontend converts with `localTimeToUtc()` before sending.
- **Git**: `#recycle/` in .gitignore treated as comment — must escape as `\#recycle/`.
3. Files and Code Sections:
- **`/volume1/screenpipe/app/main.py`**
- Added `/api/apps` endpoint (all unique app names from frames table)
- Added `/api/timetable` endpoint (frames + video URLs + screenshot URLs per device per date)
- `/api/timetable` response structure: `{frames: [{ts, app, win, video_url, seek, screenshot_url}], devices: [...], device: "..."}`
- Key snippet:
```python
@app.get("/api/timetable"
)
async def timetable_data(d: str | None = Query(None), device: str | None = Query(None)):
...
rows = conn.execute(f"""
SELECT f.timestamp AS ts, f.app_name AS app, f.window_name AS win,
f.offset_index, f.snapshot_path,
vc.file_path AS video_path, vc.fps AS video_fps
FROM frames f
JOIN video_chunks vc ON f.video_chunk_id = vc.id
WHERE f.timestamp >= ? AND f.timestamp < ?
AND f.video_chunk_id IS NOT NULL {dev_clause}
ORDER BY f.timestamp
""", params).fetchall()
# seek = offset_index / fps, screenshot_url from _snapshot_to_url(snapshot_path)
```
- **`/volume1/screenpipe/app/docker-compose.yml`**
- Changed sqlite-web service name to `sqlite-web-archive` → port 8767 → `/data/archive.db`
- Added `sqlite-web-live` → port 8768 → `/data/db.sqlite`
- screenpipe-app: port 8766, `DB_PATH: /data/db.sqlite`, `TZ: Europe/Sofia`
- **`/volume1/screenpipe/app/static/index.html`** (single large file with all CSS/HTML/JS)
- **Search enhancements**:
- Added `id="sq2"` "AND also" input between search-row1 and search-row2
- Replaced `sOnlyApps`/`sSkipApps` text inputs with custom multiselect components (`id="msOnlyApps"`, `id="msSkipApps"`)
- Updated `buildUrl()` to combine `q + " " + q2` and convert times with `localTimeToUtc()`
- Added `fmtDateTime(ts)` showing "Apr 20 14:08" format
- Added `localTimeToUtc(timeStr)` converting local HH:MM to UTC
- Multiselect state: `const _msState = { msOnlyApps: new Set(), msSkipApps: new Set() }`
- **Timetable tab** (new page):
- Tab button added between Work Report and AI Summary
- `showPage` array updated: `['activity','search','audio','report','timetable','summary']`
- `refresh()` calls `loadTimetable()` when on timetable page
- **Timetable CSS** (key styles):
```css
.tt-scroll-wrap { overflow-x:auto; ... scrollbar-width:thin; }
.tt-inner { position:relative; height:52px; } /* width set dynamically */
.tt-playhead { position:absolute; top:0; width:3px; height:36px; background:white; box-shadow:0 0 8px rgba(255,255,255,.9); z-index:10; pointer-events:none; display:none; }
.tt-playhead-time { position:absolute; top:2px; font-size:9px; font-weight:600; color:white; background:rgba(0,0,0,.75); padding:1px 4px; border-radius:2px; white-space:nowrap; transform:translateX(-50%); z-index:12; pointer-events:none; display:none; }
.tt-overview-wrap { position:relative; height:14px; ... cursor:pointer; }
.tt-overview-vp { position:absolute; background:rgba(255,255,255,0.12); border:1px solid rgba(255,255,255,0.4); }
```
- **Timetable JS state variables**:
```javascript
let _ttFrames = [], _ttChunks = [], _ttCurChunk = -1;
let _ttDayStart = 0, _ttDayEnd = 0, _ttZoom = 1;
const _ttAppColors = {};
const TT_ZOOMS = [1, 2, 4, 8, 16, 32];
const TT_TICK_MIN = {1:30, 2:15, 4:10, 8:5, 16:2, 32:1};
```
- **Key JS functions**:
- `loadTimetable()` — fetches `/api/timetable`, groups chunks, renders
- `ttZoom(dir)` — changes zoom level, updates inner width, re-renders ticks, scrolls to playhead
- `ttTimelineClick(e)` — uses `inner.getBoundingClientRect()` (works correctly when scrolled)
- `ttOverviewClick(e)` — scrolls timeline + seeks video
- `ttUpdateOverviewVp()` — updates white viewport rect using `wrap.scrollLeft / inner.scrollWidth`
- `ttJumpToTime()` — parses time input, converts to ms, calls `ttSeekToMs`
- `ttSeekToMs(tsMs)` — binary-searches nearest frame, loads chunk, seeks video
- `_ttScrollToPlayhead(force)` — scrolls wrap so playhead stays at ~35% from left when Follow is checked
- `_ttMovePlayhead(tsMs)` — sets `ph.style.left` as percentage, calls `_ttScrollToPlayhead`
- `_ttShowNow(f)` — updates screenshot thumbnail + now-text div
- `ttSyncBtn()` — syncs play/pause button text
- Keyboard: Space=play/pause, ←/→=±10s, Ctrl+←/→=±30s, +/-=zoom
- **`/volume1/screenpipe/.gitignore`**
```
*.db, *.sqlite, *.sqlite-shm, *.sqlite-wal
data/, \#recycle/,
@eaDir/
app_settings.json, app/.env
__pycache__/, *.pyc, .DS_Store
```
4. Errors and Fixes:
- **`#recycle/` in .gitignore treated as comment**: `#` starts a comment in .gitignore. Fixed by escaping: `\#recycle/`. Also had to `git rm --cached "#recycle/desktop.ini"` to unstage it.
- **`sudo docker compose restart sqlite-web` didn't apply config change**: `restart` reuses existing container config, doesn't re-read compose file. Fix: `sudo docker compose up -d` recreates containers with new config.
- **Orphan container holding port 8767**: Old `screenpipe-sqlweb` container still running after rename. Fix: `sudo docker compose up -d --remove-orphans`.
- **`sudo docker` not accessible from Claude Code**: Interactive sudo required. User runs commands in NAS terminal.
- **`git config --global --add safe.directory /volume1/screenpipe`**: Required due to dubious ownership of NAS volume directory.
5. Problem Solving:
- **Time zone confusion in search**: Backend uses UTC for time_from/time_to; frontend displays local time. Solved by `localTimeToUtc()` converting before API call, and showing date+time in results.
- **sqlite-web not showing April 17–21 data**: Container was pointing at db.sqlite (old config), not archive.db. Fixed by updating docker-compose.yml + `up -d`.
- **Video playback speed**: Browser `video.playbackRate` is capped (~16× max in Chrome) and performs poorly for very low FPS (0.1–0.3 fps) screenpipe videos. Each chunk may only be 1–2 seconds of wall-clock encoded video, playing through instantly. Solution: implement timer-based frame-jumping for speed > 2× (in progress).
- **Playhead visibility**: White 2px line was hard to see. Fixed CSS to 3px width + stronger box-shadow + added `.tt-playhead-time` overlay label style.
6. All User Messages:
- "do we use db.sqlite-shm and db.sqlite-wal for anything right now? [image of search UI] Lets add ability to search with combination... Explain how does the search work time seems to work in utc maybe display date next to the time in results. Make only apps and skip apps multiselect with all available apps."
- "doi I need to restart?"
- "there is sudo docker compose"
- "no still the same"
- "add git. I have created gitea repo https://gitea.com/lakylak/screenpipe.git"
- "just do it" (re: git push)
- "how to make sure data in :8767 are accurate and point to archive.db"
- "I can't see older than 16th there should 21st of april. In http://[IP_ADDRESS]:8766/ I can see all but not on sqlite viewer http://[IP_ADDRESS]:8767"
- "ok lets add additional port to read db.sqlite, I would like to see the structure of official db that reads db.sqlite db and one for archive"
- [docker compose output showing orphan container error]
- "looks great. I want to have ability to scroll left and right and also to jump to specific time. I want to be more aware to what I see. Still it should be fast"
- "lets make the playing speed more than 8x"
- "still playing speed is not showing properly still just in one second. also I want to see in timeline where I am"
7. Pending Tasks:
- **Playback speed fix** (in progress, partially done):
- Add `<div class="tt-playhead-time" id="ttPlayheadTime"></div>` inside `ttInner` HTML
- Implement `_ttStartSpeedTimer(speed)` / `_ttStopSpeedTimer()` / `ttSetSpeed(speed)` functions
- Update speed select `onchange` to call `ttSetSpeed(+this.value)`
- Add 64× option to speed select
- Update `_ttMovePlayhead` to also update `ttPlayheadTime` label
- Update `ttSyncBtn` to start/stop timer based on play state + speed
- Update `ttNextChunk` and `ttSeekToMs` to stop timer (restarted by onplay → ttSyncBtn)
- Rebuild Docker image after changes
8. Current Work:
Working on fixing two issues with the Timetable tab:
1. **Playback speed**: `video.playbackRate` doesn't work well for low-FPS screenpipe videos. The plan is to implement a `setInterval`-based frame-jumper for speed > 2× that advances `video.currentTime` by `speed * intervalMs / 1000` every 100–200ms, bypassing browser playbackRate limits.
2. **Timeline position indicator**: Playhead not prominent enough.
**CSS already changed** in `/volume1/screenpipe/app/static/index.html`:
```css
.tt-playhead { position:absolute; top:0; width:3px; height:36px; background:white; box-shadow:0 0 8px rgba(255,255,255,.9); z-index:10; pointer-events:none; display:none; }
.tt-playhead-time { position:absolute; top:2px; font-size:9px; font-weight:600; color:white; background:rgba(0,0,0,.75); padding:1px 4px; border-radius:2px; white-space:nowrap; transform:translateX(-50%); z-index:12; pointer-events:none; display:none; }
```
Session was interrupted by summary request after this CSS edit, mid-implementation.
9. Optional Next Step:
Continuing the fix for: "still playing speed is not showing properly still just in one second. also I want to see in timeline where I am"
The next steps in order are:
1. Add `<div class="tt-playhead-time" id="ttPlayheadTime"></div>` to the HTML inside `#ttInner` (after the existing `.tt-playhead` div)
2. Update `_ttMovePlayhead` to set `ttPlayheadTime` position and text content with `fmtTime()`
3. Add timer-based speed system to JS (new functions `_ttStartSpeedTimer`, `_ttStopSpeedTimer`, `ttSetSpeed`)
4. Update speed select's `onchange` to `ttSetSpeed(+this.value)` and add 64× option
5. Update `ttSyncBtn`, `ttNextChunk`, `ttSeekToMs` to integrate with timer
6. Rebuild: `sudo docker compose build screenpipe-app && sudo docker compose up -d screenpipe-app`
If you need specific details from before compaction (like exact code snippets, error messages, or content you generated), read the full transcript at: /home/Adm1n/.claude/projects/-volume1-screenpipe/7777f46e-1e40-4051-b4bb-f43aedd59556.jsonl
Continue the conversation from where it left off without asking the user any further questions. Resume directly — do not acknowledge the summary, do not recap what was happening, do not preface with "I'll continue" or similar. Pick up the last task as if the break never happened.
Thinking
Thinking
Bash
Find timetable speed and playhead related code
IN
grep -n "tt-playhead\|ttPlayhead\|ttInner\|_ttMovePlayhead\|ttSetSpeed\|_ttStartSpeed\|_ttStopSpeed\|ttSyncBtn\|playbackRate\|speed.*select\|spdSel\|ttSpeed" /volume1/screenpipe/app/static/index.html | head -80
Copy code to clipboard
OUT
207:.tt-playhead { position:absolute; top:0; width:3px; height:36px; background:white; box-shadow:0 0 8px rgba(255,255,255,.9); z-index:10; pointer-events:none; display:none; }
208:.tt-playhead-time { position:absolute; top:2px; font-size:9px; font-weight:600; color:white; background:rgba(0,0,0,.75); padding:1px 4px; border-radius:2px; white-space:nowrap; transform:translateX(-50%); z-index:12; pointer-events:none; display:none; }
580: <div class="tt-inner" id="ttInner" onclick="ttTimelineClick(event)">
583: <div class="tt-playhead" id="ttPlayhead"></div>
598: onpause="ttSyncBtn()"
599: onplay="ttSyncBtn()">
607: <select id="ttSpeed" onchange="document.getElementById('ttVideo').playbackRate=+this.value">
1624: document.getElementById('ttInner').style.width = '100%';
1632: document.getElementById('ttPlayhead').style.display = 'none';
1694: document.getElementById('ttInner').style.width = (_ttZoom * 100) + '%';
1700: const inner = document.getElementById('ttInner');
1710: const inner = document.getElementById('ttInner');
1718: const inner = document.getElementById('ttInner');
1750: _ttMovePlayhead(new Date(best.ts).getTime());
1772: _ttMovePlayhead(new Date(best.ts).getTime());
1791:function _ttMovePlayhead(tsMs) {
1792: const ph = document.getElementById('ttPlayhead');
1802: const ph = document.getElementById('ttPlayhead');
1805: const inner = document.getElementById('ttInner');
1819:function ttSyncBtn() {
Read
index.html
index.html
(lines 576-625)
Read
index.html
index.html
(lines 1786-1865)
Thinking
Thinking
Bash
Find chunk loading and playhead update functions
IN
grep -n "ttUpdatePlayhead\|ttNextChunk\|ttLoadChunk\|_ttCurChunk\|_ttChunks\|_ttFrames" /volume1/screenpipe/app/static/index.html | head -50
Copy code to clipboard
OUT
596: onended="ttNextChunk()"
597: ontimeupdate="ttUpdatePlayhead()"
1569:let _ttFrames = [];
1570:let _ttChunks = [];
1571:let _ttCurChunk = -1;
1607: _ttFrames = data.frames;
1609: for (const f of _ttFrames) {
1613: _ttChunks = [...chunkMap.values()];
1614: _ttCurChunk = -1;
1616: _ttDayStart = new Date(_ttFrames[0].ts).getTime();
1617: _ttDayEnd = new Date(_ttFrames[_ttFrames.length - 1].ts).getTime();
1620: for (const f of _ttFrames) _ttColor(f.app);
1640: for (const f of _ttFrames) {
1736: if (!_ttFrames.length) return;
1737: let best = _ttFrames[0], minDiff = Infinity;
1738: for (const f of _ttFrames) {
1742: const ci = _ttChunks.findIndex(ch => ch[0].video_url === best.video_url);
1744: _ttCurChunk = ci;
1753:function ttNextChunk() {
1754: if (_ttCurChunk + 1 >= _ttChunks.length) return;
1755: _ttCurChunk++;
1757: video.src = _ttChunks[_ttCurChunk][0].video_url;
1762:function ttUpdatePlayhead() {
1764: if (_ttCurChunk < 0 || _ttCurChunk >= _ttChunks.length) return;
1765: const chunk = _ttChunks[_ttCurChunk];
Read
index.html
index.html
(lines 1754-1793)
Thinking
Thinking
Read
index.html
index.html
(lines 1701-1760)
Thinking
Thinking
Read
index.html
index.html
(lines 1561-1640)
Thinking
Thinking
Bash
Find time formatting functions
IN
grep -n "function fmtTime\|function fmtDate\|function _fmt\|localTimeToUtc\|fmtDateTime" /volume1/screenpipe/app/static/index.html | head -20
Copy code to clipboard
OUT
1088: if (tf) url += `&time_from=${localTimeToUtc(tf)}`;
1089: if (tt) url += `&time_to=${localTimeToUtc(tt)}`;
1153: let meta = `<span style="color:var(--muted)">${fmtDateTime(r.timestamp)}</span>${srcBadge}`;
1166: meta = `<span style="color:var(--muted)">${fmtDateTime(r.timestamp)}</span>${srcBadge} <span class="badge ${r.is_input_device?'mic':'sys'}">${r.is_input_device?'MIC':'SYS'}</span>`;
1307:function fmtTime(ts) {
1312:function fmtDateTime(ts) {
1320:function localTimeToUtc(timeStr) {
1778:function _fmtSec(s) {
1788: `${fmtDateTime(f.ts)} · ${f.app}${f.win ? ' / ' + f.win : ''}`;
Read
index.html
index.html
(lines 1308-1327)
Thinking
Thinking
Now I have everything I need. I'll implement the frame-by-frame timer system that replaces
video.playbackRate
with wall-clock accurate playback, plus add the playhead time label. Let me make the changes:
Edit
index.html
index.html
Added 1 line...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Explorer (⇧⌘E)","depth":19,"bounds":{"left":0.0,"top":0.047885075,"width":0.015957447,"height":0.03830806},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":true},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.057462092,"width":0.007978723,"height":0.01915403},"role_description":"text"},{"role":"AXRadioButton","text":"Search (⇧⌘F)","depth":19,"bounds":{"left":0.0,"top":0.08619314,"width":0.015957447,"height":0.03830806},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.09577015,"width":0.007978723,"height":0.01915403},"role_description":"text"},{"role":"AXRadioButton","text":"Source Control (⌃⇧G) - 2 pending changes","depth":19,"bounds":{"left":0.0,"top":0.1245012,"width":0.015957447,"height":0.03830806},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.13407822,"width":0.007978723,"height":0.01915403},"role_description":"text"},{"role":"AXStaticText","text":"2","depth":22,"bounds":{"left":0.009640957,"top":0.1452514,"width":0.0019946808,"height":0.008778931},"role_description":"text"},{"role":"AXRadioButton","text":"Run and Debug (⇧⌘D)","depth":19,"bounds":{"left":0.0,"top":0.16280925,"width":0.015957447,"height":0.03830806},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.17238627,"width":0.007978723,"height":0.01915403},"role_description":"text"},{"role":"AXRadioButton","text":"Remote Explorer","depth":19,"bounds":{"left":0.0,"top":0.20111732,"width":0.015957447,"height":0.03830806},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.21069433,"width":0.007978723,"height":0.01915403},"role_description":"text"},{"role":"AXRadioButton","text":"Extensions (⇧⌘X) - 2 require update, 1 requires restart","depth":19,"bounds":{"left":0.0,"top":0.23942538,"width":0.015957447,"height":0.03830806},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.2490024,"width":0.007978723,"height":0.01915403},"role_description":"text"},{"role":"AXStaticText","text":"3","depth":22,"bounds":{"left":0.00930851,"top":0.2601756,"width":0.0023271276,"height":0.008778931},"role_description":"text"},{"role":"AXRadioButton","text":"Claude Code","depth":19,"bounds":{"left":0.0,"top":0.27773345,"width":0.015957447,"height":0.03830806},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Containers","depth":19,"bounds":{"left":0.0,"top":0.3160415,"width":0.015957447,"height":0.03830806},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"EXPLORER","depth":17,"bounds":{"left":0.022606382,"top":0.047885075,"width":0.018949468,"height":0.02793296},"role_description":"heading"},{"role":"AXStaticText","text":"EXPLORER","depth":18,"bounds":{"left":0.022606382,"top":0.056664005,"width":0.018949468,"height":0.0103751},"role_description":"text"},{"role":"AXButton","text":"Explorer Section: screenpipe [SSH: nas]","depth":21,"bounds":{"left":0.015957447,"top":0.07581804,"width":0.09940159,"height":0.017557861},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.01662234,"top":0.07821229,"width":0.005319149,"height":0.012769354},"role_description":"text"},{"role":"AXHeading","text":"Explorer Section: screenpipe [SSH: nas]","depth":22,"bounds":{"left":0.022606382,"top":0.07581804,"width":0.045877658,"height":0.017557861},"role_description":"heading"},{"role":"AXStaticText","text":"SCREENPIPE [SSH: NAS]","depth":23,"bounds":{"left":0.022606382,"top":0.079010375,"width":0.045877658,"height":0.0103751},"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.019614361,"top":0.09577015,"width":0.005319149,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"#recycle","depth":27,"bounds":{"left":0.025930852,"top":0.09577015,"width":0.017287234,"height":0.011971269},"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.019614361,"top":0.11332801,"width":0.005319149,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"app","depth":27,"bounds":{"left":0.025930852,"top":0.11332801,"width":0.0076462766,"height":0.011971269},"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.10605053,"top":0.11412609,"width":0.004654255,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.019614361,"top":0.13088587,"width":0.005319149,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"data","depth":27,"bounds":{"left":0.025930852,"top":0.13088587,"width":0.008976064,"height":0.011971269},"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.019614361,"top":0.14844373,"width":0.005319149,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"pipes","depth":27,"bounds":{"left":0.025930852,"top":0.14844373,"width":0.010970744,"height":0.011971269},"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.01861702,"top":0.16440542,"width":0.0063164895,"height":0.015163607},"role_description":"text"},{"role":"AXStaticText","text":".gitignore","depth":27,"bounds":{"left":0.025930852,"top":0.1660016,"width":0.018949468,"height":0.011971269},"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.01861702,"top":0.1819633,"width":0.0063164895,"height":0.015163607},"role_description":"text"},{"role":"AXStaticText","text":"app_settings.json","depth":27,"bounds":{"left":0.025930852,"top":0.18355946,"width":0.03557181,"height":0.011971269},"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.01861702,"top":0.19952115,"width":0.0076462766,"height":0.015163607},"role_description":"text"},{"role":"AXStaticText","text":"archive.db","depth":27,"bounds":{"left":0.025930852,"top":0.20111732,"width":0.020944148,"height":0.011971269},"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.01861702,"top":0.21707901,"width":0.0076462766,"height":0.015163607},"role_description":"text"},{"role":"AXStaticText","text":"db.sqlite","depth":27,"bounds":{"left":0.025930852,"top":0.21867518,"width":0.017287234,"height":0.011971269},"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.01861702,"top":0.23463687,"width":0.0063164895,"height":0.015163607},"role_description":"text"},{"role":"AXStaticText","text":"screenpipe_sync.sh","depth":27,"bounds":{"left":0.025930852,"top":0.23623304,"width":0.039893616,"height":0.011971269},"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.01861702,"top":0.25219473,"width":0.0076462766,"height":0.015163607},"role_description":"text"},{"role":"AXStaticText","text":"screenpipe.db","depth":27,"bounds":{"left":0.025930852,"top":0.25379092,"width":0.028590426,"height":0.011971269},"role_description":"text"},{"role":"AXButton","text":"Outline Section","depth":21,"bounds":{"left":0.015957447,"top":0.9473264,"width":0.09940159,"height":0.017557861},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.01662234,"top":0.9497207,"width":0.005319149,"height":0.012769354},"role_description":"text"},{"role":"AXHeading","text":"OUTLINE","depth":22,"bounds":{"left":0.022606382,"top":0.9473264,"width":0.01662234,"height":0.017557861},"role_description":"heading"},{"role":"AXStaticText","text":"OUTLINE","depth":23,"bounds":{"left":0.022606382,"top":0.95131683,"width":0.01662234,"height":0.0103751},"role_description":"text"},{"role":"AXButton","text":"Timeline Section","depth":21,"bounds":{"left":0.015957447,"top":0.9648843,"width":0.09940159,"height":0.017557861},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.01662234,"top":0.96727854,"width":0.005319149,"height":0.012769354},"role_description":"text"},{"role":"AXHeading","text":"TIMELINE","depth":22,"bounds":{"left":0.022606382,"top":0.9648843,"width":0.01761968,"height":0.017557861},"role_description":"heading"},{"role":"AXStaticText","text":"TIMELINE","depth":23,"bounds":{"left":0.022606382,"top":0.9688747,"width":0.01761968,"height":0.0103751},"role_description":"text"},{"role":"AXRadioButton","text":"app_settings.json, Editor Group 1","depth":28,"bounds":{"left":0.11569149,"top":0.047885075,"width":0.055851065,"height":0.02793296},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe_sync.sh, Editor Group 1","depth":28,"bounds":{"left":0.17154256,"top":0.047885075,"width":0.06050532,"height":0.02793296},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXRadioButton","text":"db.sqlite-shm, preview, Editor Group 1","depth":28,"bounds":{"left":0.23171543,"top":0.047885075,"width":0.04886968,"height":0.02793296},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"#!/bin/bash\n# screenpipe_sync.sh\n# Syncs Screenpipe SQLite data to a NAS archive database (append-only, no deletions).\n# Also copies the day's video/frame data folder to the NAS.\n#\n# Usage:\n# ./screenpipe_sync.sh # syncs yesterday (default)\n# ./screenpipe_sync.sh 2026-04-15 # syncs a specific date\n# ./screenpipe_sync.sh today # syncs today so far\n#\n# Cron example (runs at 3am daily):\n# 0 3 * * * /Users/lukas/.screenpipe/screenpipe_sync.sh >> /Users/lukas/.screenpipe/sync.log 2>&1\n\nset -euo pipefail\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\nDB_SRC=\"${SCREENPIPE_DB:-$HOME/.screenpipe/db.sqlite}\"\nNAS_MOUNT=\"${NAS_MOUNT:-/Volumes/Test/screenpipe}\"\nNAS_DB=\"$NAS_MOUNT/archive.db\"\nNAS_DATA=\"$NAS_MOUNT/data\"\nLOG_FILE=\"$HOME/.screenpipe/sync.log\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\nSCRIPT_START=$(date +%s)\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── DATE ARGUMENT ────────────────────────────────────────────────────────────\nif [ \"${1:-}\" = \"today\" ]; then\n TARGET_DATE=$(date +%Y-%m-%d)\nelif [ -n \"${1:-}\" ]; then\n TARGET_DATE=\"$1\"\n if ! [[ \"$TARGET_DATE\" =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]]; then\n echo \"ERROR: Invalid date format. Use YYYY-MM-DD, 'today', or no argument for yesterday.\"\n exit 1\n fi\nelse\n TARGET_DATE=$(date -v-1d +%Y-%m-%d)\nfi\n\nlog \"========================================\"\nlog \"Screenpipe sync starting for: $TARGET_DATE\"\nlog \"========================================\"\n\n# ─── PREFLIGHT ────────────────────────────────────────────────────────────────\nstep \"Preflight checks\"\n\nif [ ! -f \"$DB_SRC\" ]; then\n log \"ERROR: Source DB not found at $DB_SRC\"; exit 1\nfi\nprintf \" %-20s %s (%s)\\n\" \"Source DB:\" \"OK\" \"$(du -sh \"$DB_SRC\" | cut -f1)\"\n\nif [ ! -d \"$NAS_MOUNT\" ]; then\n log \"ERROR: NAS not mounted at $NAS_MOUNT\"; exit 1\nfi\nprintf \" %-20s %s\\n\" \"NAS mount:\" \"OK $NAS_MOUNT\"\n\n# Check if DB already synced for this date\nDB_ALREADY_SYNCED=false\nif [ -f \"$NAS_DB\" ]; then\n EXISTING=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';\" 2>/dev/null || echo \"0\")\n if [ \"$EXISTING\" -gt \"0\" ]; then\n log \"Date $TARGET_DATE already has $EXISTING frames in archive — skipping DB sync\"\n DB_ALREADY_SYNCED=true\n else\n printf \" %-20s %s (%s)\\n\" \"Archive DB:\" \"exists\" \"$(du -sh \"$NAS_DB\" | cut -f1)\"\n fi\nelse\n printf \" %-20s %s\\n\" \"Archive DB:\" \"will be created\"\nfi\n\n# Source data dir for this date\nDATA_SRC=\"$HOME/.screenpipe/data/data/$TARGET_DATE\"\nif [ -d \"$DATA_SRC\" ]; then\n DATA_SIZE=$(du -sh \"$DATA_SRC\" | cut -f1)\n DATA_FILES=$(ls \"$DATA_SRC\" | wc -l | tr -d ' ')\n printf \" %-20s %s (%s files, %s)\\n\" \"Data dir:\" \"OK\" \"$DATA_FILES\" \"$DATA_SIZE\"\nelse\n printf \" %-20s %s\\n\" \"Data dir:\" \"not found — skipping file copy\"\nfi\n\n# ─── DB SYNC ──────────────────────────────────────────────────────────────────\nif [ \"$DB_ALREADY_SYNCED\" = false ]; then\n\n # ─── COUNT SOURCE ROWS ────────────────────────────────────────────────────\n step \"Counting source rows for $TARGET_DATE\"\n\n SRC_FRAMES=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';\")\n SRC_ELEMENTS=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');\")\n SRC_UI=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';\")\n SRC_OCR=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');\")\n SRC_MEETINGS=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM meetings WHERE date(meeting_start) = '$TARGET_DATE';\")\n\n printf \" %-20s %s\\n\" \"frames:\" \"$SRC_FRAMES\"\n printf \" %-20s %s\\n\" \"elements:\" \"$SRC_ELEMENTS\"\n printf \" %-20s %s\\n\" \"ui_events:\" \"$SRC_UI\"\n printf \" %-20s %s\\n\" \"ocr_text:\" \"$SRC_OCR\"\n printf \" %-20s %s\\n\" \"meetings:\" \"$SRC_MEETINGS\"\n\n if [ \"$SRC_FRAMES\" -eq \"0\" ]; then\n log \"No frames found for $TARGET_DATE — skipping DB sync\"\n DB_ALREADY_SYNCED=true\n fi\n\nfi\n\nif [ \"$DB_ALREADY_SYNCED\" = false ]; then\n\n # ─── INIT TABLES ──────────────────────────────────────────────────────────\n step \"Initialising tables, indexes, FTS\"\n\n run_sqlite_heredoc \"creating tables\" \"\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"creating indexes\" \"\nATTACH '$NAS_DB' AS nas;\nCREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);\nCREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);\nCREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);\nCREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);\nCREATE INDEX IF NOT EXISTS nas.idx_elements_frame_id ON elements(frame_id);\nCREATE INDEX IF NOT EXISTS nas.idx_elements_frame_src_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;\nCREATE INDEX IF NOT EXISTS nas.idx_ui_events_timestamp ON ui_events(timestamp);\nCREATE INDEX IF NOT EXISTS nas.idx_ui_events_app_name ON ui_events(app_name);\nCREATE INDEX IF NOT EXISTS nas.idx_ui_events_frame_id ON ui_events(frame_id);\nCREATE INDEX IF NOT EXISTS nas.idx_ocr_text_frame_id ON ocr_text(frame_id);\nCREATE INDEX IF NOT EXISTS nas.idx_meetings_start ON meetings(meeting_start);\nCREATE INDEX IF NOT EXISTS nas.idx_video_chunks_device ON video_chunks(device_name);\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"creating FTS tables\" \"\nATTACH '$NAS_DB' AS nas;\nCREATE VIRTUAL TABLE IF NOT EXISTS nas.elements_fts USING fts5(\n text, role, frame_id UNINDEXED,\n content='elements', content_rowid='id', tokenize='unicode61'\n);\nCREATE VIRTUAL TABLE IF NOT EXISTS nas.frames_fts USING fts5(\n full_text, app_name, window_name, browser_url, id UNINDEXED,\n tokenize='unicode61'\n);\nCREATE VIRTUAL TABLE IF NOT EXISTS nas.ui_events_fts USING fts5(\n text_content,\n app_name,\n window_title,\n element_name,\n content='ui_events',\n content_rowid='id',\n tokenize='unicode61'\n);\nDETACH nas;\n\"\n\n # ─── SYNC DATA ────────────────────────────────────────────────────────────\n step \"Syncing data for $TARGET_DATE\"\n\n run_sqlite_heredoc \"video_chunks\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.video_chunks\n SELECT * FROM main.video_chunks\n WHERE id IN (\n SELECT DISTINCT video_chunk_id FROM main.frames\n WHERE date(timestamp) = '$TARGET_DATE' AND video_chunk_id IS NOT NULL\n );\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"frames ($SRC_FRAMES rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.frames\n SELECT * FROM main.frames WHERE date(timestamp) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"ocr_text ($SRC_OCR rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.ocr_text\n SELECT o.* FROM main.ocr_text o\n JOIN main.frames f ON o.frame_id = f.id\n WHERE date(f.timestamp) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"ui_events ($SRC_UI rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.ui_events\n SELECT * FROM main.ui_events WHERE date(timestamp) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"elements ($SRC_ELEMENTS rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.elements\n SELECT e.* FROM main.elements e\n JOIN main.frames f ON e.frame_id = f.id\n WHERE date(f.timestamp) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"meetings ($SRC_MEETINGS rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.meetings\n SELECT * FROM main.meetings WHERE date(meeting_start) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n # ─── FTS UPDATE ───────────────────────────────────────────────────────────\n step \"Updating FTS indexes\"\n\n run_sqlite_heredoc \"elements_fts\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT INTO nas.elements_fts(rowid, text, role)\n SELECT e.id, e.text, e.role\n FROM nas.elements e\n JOIN nas.frames f ON e.frame_id = f.id\n WHERE date(f.timestamp) = '$TARGET_DATE'\n AND e.text IS NOT NULL;\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"frames_fts\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT INTO nas.frames_fts(rowid, full_text, app_name, window_name, browser_url, id)\n SELECT id, full_text, app_name, window_name, browser_url, id\n FROM nas.frames\n WHERE date(timestamp) = '$TARGET_DATE'\n AND full_text IS NOT NULL;\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"ui_events_fts\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT INTO nas.ui_events_fts(rowid, text_content, app_name, window_title, element_name)\n SELECT id, text_content, app_name, window_title, element_name\n FROM nas.ui_events\n WHERE date(timestamp) = '$TARGET_DATE'\n AND text_content IS NOT NULL;\nDETACH nas;\n\"\n\n # ─── VERIFY DB ────────────────────────────────────────────────────────────\n step \"Verifying DB\"\n\n V_FRAMES=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';\")\n V_ELEMENTS=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');\")\n V_UI=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';\")\n V_OCR=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');\")\n V_MEETINGS=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM meetings WHERE date(meeting_start)= '$TARGET_DATE';\")\n\n check \"frames\" \"$V_FRAMES\" \"$SRC_FRAMES\"\n check \"elements\" \"$V_ELEMENTS\" \"$SRC_ELEMENTS\"\n check \"ui_events\" \"$V_UI\" \"$SRC_UI\"\n check \"ocr_text\" \"$V_OCR\" \"$SRC_OCR\"\n check \"meetings\" \"$V_MEETINGS\" \"$SRC_MEETINGS\"\n\nfi\n\n# ─── COPY DATA FOLDER ─────────────────────────────────────────────────────────\n# Always runs regardless of DB sync status\nstep \"Copying data folder for $TARGET_DATE\"\n\nif [ -d \"$DATA_SRC\" ]; then\n mkdir -p \"$NAS_DATA/$TARGET_DATE\"\n RSYNC_START=$(date +%s)\n printf \" %-36s \" \"rsync $TARGET_DATE/ → NAS\"\n rsync -a --ignore-existing \\\n \"$DATA_SRC/\" \\\n \"$NAS_DATA/$TARGET_DATE/\" \\\n 2>>\"$LOG_FILE\"\n RSYNC_DUR=$(( $(date +%s) - RSYNC_START ))\n COPIED_FILES=$(ls \"$NAS_DATA/$TARGET_DATE\" | wc -l | tr -d ' ')\n SRC_FILES=$(ls \"$DATA_SRC\" | wc -l | tr -d ' ')\n COPIED_SIZE=$(du -sh \"$NAS_DATA/$TARGET_DATE\" | cut -f1)\n if [ \"$COPIED_FILES\" -eq \"$SRC_FILES\" ]; then\n printf \"\\r %-36s ✓ %dm%02ds (%s files, %s)\\n\" \\\n \"rsync $TARGET_DATE/ → NAS\" \\\n \"$(( RSYNC_DUR / 60 ))\" \"$(( RSYNC_DUR % 60 ))\" \\\n \"$COPIED_FILES\" \"$COPIED_SIZE\" | tee -a \"$LOG_FILE\"\n else\n printf \"\\r %-36s ✗ %s / %s files\\n\" \\\n \"rsync $TARGET_DATE/ → NAS\" \"$COPIED_FILES\" \"$SRC_FILES\" | tee -a \"$LOG_FILE\"\n fi\nelse\n printf \" %-36s %s\\n\" \"rsync $TARGET_DATE/ → NAS\" \"skipped (no source dir)\"\nfi\n\n# ─── SUMMARY ──────────────────────────────────────────────────────────────────\nTOTAL_ELAPSED=$(( $(date +%s) - SCRIPT_START ))\nDB_SIZE=$(du -sh \"$NAS_DB\" | cut -f1)\n\necho \"\"\nlog \"Archive DB size: $DB_SIZE\"\nlog \"Total time: $(( TOTAL_ELAPSED / 60 ))m$(( TOTAL_ELAPSED % 60 ))s\"\nlog \"Sync complete for $TARGET_DATE\"\nlog \"========================================\"","depth":28,"bounds":{"left":0.11569149,"top":0.0933759,"width":0.38031915,"height":0.0007980846},"value":"#!/bin/bash\n# screenpipe_sync.sh\n# Syncs Screenpipe SQLite data to a NAS archive database (append-only, no deletions).\n# Also copies the day's video/frame data folder to the NAS.\n#\n# Usage:\n# ./screenpipe_sync.sh # syncs yesterday (default)\n# ./screenpipe_sync.sh 2026-04-15 # syncs a specific date\n# ./screenpipe_sync.sh today # syncs today so far\n#\n# Cron example (runs at 3am daily):\n# 0 3 * * * /Users/lukas/.screenpipe/screenpipe_sync.sh >> /Users/lukas/.screenpipe/sync.log 2>&1\n\nset -euo pipefail\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\nDB_SRC=\"${SCREENPIPE_DB:-$HOME/.screenpipe/db.sqlite}\"\nNAS_MOUNT=\"${NAS_MOUNT:-/Volumes/Test/screenpipe}\"\nNAS_DB=\"$NAS_MOUNT/archive.db\"\nNAS_DATA=\"$NAS_MOUNT/data\"\nLOG_FILE=\"$HOME/.screenpipe/sync.log\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\nSCRIPT_START=$(date +%s)\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── DATE ARGUMENT ────────────────────────────────────────────────────────────\nif [ \"${1:-}\" = \"today\" ]; then\n TARGET_DATE=$(date +%Y-%m-%d)\nelif [ -n \"${1:-}\" ]; then\n TARGET_DATE=\"$1\"\n if ! [[ \"$TARGET_DATE\" =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]]; then\n echo \"ERROR: Invalid date format. Use YYYY-MM-DD, 'today', or no argument for yesterday.\"\n exit 1\n fi\nelse\n TARGET_DATE=$(date -v-1d +%Y-%m-%d)\nfi\n\nlog \"========================================\"\nlog \"Screenpipe sync starting for: $TARGET_DATE\"\nlog \"========================================\"\n\n# ─── PREFLIGHT ────────────────────────────────────────────────────────────────\nstep \"Preflight checks\"\n\nif [ ! -f \"$DB_SRC\" ]; then\n log \"ERROR: Source DB not found at $DB_SRC\"; exit 1\nfi\nprintf \" %-20s %s (%s)\\n\" \"Source DB:\" \"OK\" \"$(du -sh \"$DB_SRC\" | cut -f1)\"\n\nif [ ! -d \"$NAS_MOUNT\" ]; then\n log \"ERROR: NAS not mounted at $NAS_MOUNT\"; exit 1\nfi\nprintf \" %-20s %s\\n\" \"NAS mount:\" \"OK $NAS_MOUNT\"\n\n# Check if DB already synced for this date\nDB_ALREADY_SYNCED=false\nif [ -f \"$NAS_DB\" ]; then\n EXISTING=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';\" 2>/dev/null || echo \"0\")\n if [ \"$EXISTING\" -gt \"0\" ]; then\n log \"Date $TARGET_DATE already has $EXISTING frames in archive — skipping DB sync\"\n DB_ALREADY_SYNCED=true\n else\n printf \" %-20s %s (%s)\\n\" \"Archive DB:\" \"exists\" \"$(du -sh \"$NAS_DB\" | cut -f1)\"\n fi\nelse\n printf \" %-20s %s\\n\" \"Archive DB:\" \"will be created\"\nfi\n\n# Source data dir for this date\nDATA_SRC=\"$HOME/.screenpipe/data/data/$TARGET_DATE\"\nif [ -d \"$DATA_SRC\" ]; then\n DATA_SIZE=$(du -sh \"$DATA_SRC\" | cut -f1)\n DATA_FILES=$(ls \"$DATA_SRC\" | wc -l | tr -d ' ')\n printf \" %-20s %s (%s files, %s)\\n\" \"Data dir:\" \"OK\" \"$DATA_FILES\" \"$DATA_SIZE\"\nelse\n printf \" %-20s %s\\n\" \"Data dir:\" \"not found — skipping file copy\"\nfi\n\n# ─── DB SYNC ──────────────────────────────────────────────────────────────────\nif [ \"$DB_ALREADY_SYNCED\" = false ]; then\n\n # ─── COUNT SOURCE ROWS ────────────────────────────────────────────────────\n step \"Counting source rows for $TARGET_DATE\"\n\n SRC_FRAMES=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';\")\n SRC_ELEMENTS=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');\")\n SRC_UI=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';\")\n SRC_OCR=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');\")\n SRC_MEETINGS=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM meetings WHERE date(meeting_start) = '$TARGET_DATE';\")\n\n printf \" %-20s %s\\n\" \"frames:\" \"$SRC_FRAMES\"\n printf \" %-20s %s\\n\" \"elements:\" \"$SRC_ELEMENTS\"\n printf \" %-20s %s\\n\" \"ui_events:\" \"$SRC_UI\"\n printf \" %-20s %s\\n\" \"ocr_text:\" \"$SRC_OCR\"\n printf \" %-20s %s\\n\" \"meetings:\" \"$SRC_MEETINGS\"\n\n if [ \"$SRC_FRAMES\" -eq \"0\" ]; then\n log \"No frames found for $TARGET_DATE — skipping DB sync\"\n DB_ALREADY_SYNCED=true\n fi\n\nfi\n\nif [ \"$DB_ALREADY_SYNCED\" = false ]; then\n\n # ─── INIT TABLES ──────────────────────────────────────────────────────────\n step \"Initialising tables, indexes, FTS\"\n\n run_sqlite_heredoc \"creating tables\" \"\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"creating indexes\" \"\nATTACH '$NAS_DB' AS nas;\nCREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);\nCREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);\nCREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);\nCREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);\nCREATE INDEX IF NOT EXISTS nas.idx_elements_frame_id ON elements(frame_id);\nCREATE INDEX IF NOT EXISTS nas.idx_elements_frame_src_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;\nCREATE INDEX IF NOT EXISTS nas.idx_ui_events_timestamp ON ui_events(timestamp);\nCREATE INDEX IF NOT EXISTS nas.idx_ui_events_app_name ON ui_events(app_name);\nCREATE INDEX IF NOT EXISTS nas.idx_ui_events_frame_id ON ui_events(frame_id);\nCREATE INDEX IF NOT EXISTS nas.idx_ocr_text_frame_id ON ocr_text(frame_id);\nCREATE INDEX IF NOT EXISTS nas.idx_meetings_start ON meetings(meeting_start);\nCREATE INDEX IF NOT EXISTS nas.idx_video_chunks_device ON video_chunks(device_name);\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"creating FTS tables\" \"\nATTACH '$NAS_DB' AS nas;\nCREATE VIRTUAL TABLE IF NOT EXISTS nas.elements_fts USING fts5(\n text, role, frame_id UNINDEXED,\n content='elements', content_rowid='id', tokenize='unicode61'\n);\nCREATE VIRTUAL TABLE IF NOT EXISTS nas.frames_fts USING fts5(\n full_text, app_name, window_name, browser_url, id UNINDEXED,\n tokenize='unicode61'\n);\nCREATE VIRTUAL TABLE IF NOT EXISTS nas.ui_events_fts USING fts5(\n text_content,\n app_name,\n window_title,\n element_name,\n content='ui_events',\n content_rowid='id',\n tokenize='unicode61'\n);\nDETACH nas;\n\"\n\n # ─── SYNC DATA ────────────────────────────────────────────────────────────\n step \"Syncing data for $TARGET_DATE\"\n\n run_sqlite_heredoc \"video_chunks\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.video_chunks\n SELECT * FROM main.video_chunks\n WHERE id IN (\n SELECT DISTINCT video_chunk_id FROM main.frames\n WHERE date(timestamp) = '$TARGET_DATE' AND video_chunk_id IS NOT NULL\n );\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"frames ($SRC_FRAMES rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.frames\n SELECT * FROM main.frames WHERE date(timestamp) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"ocr_text ($SRC_OCR rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.ocr_text\n SELECT o.* FROM main.ocr_text o\n JOIN main.frames f ON o.frame_id = f.id\n WHERE date(f.timestamp) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"ui_events ($SRC_UI rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.ui_events\n SELECT * FROM main.ui_events WHERE date(timestamp) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"elements ($SRC_ELEMENTS rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.elements\n SELECT e.* FROM main.elements e\n JOIN main.frames f ON e.frame_id = f.id\n WHERE date(f.timestamp) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"meetings ($SRC_MEETINGS rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.meetings\n SELECT * FROM main.meetings WHERE date(meeting_start) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n # ─── FTS UPDATE ───────────────────────────────────────────────────────────\n step \"Updating FTS indexes\"\n\n run_sqlite_heredoc \"elements_fts\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT INTO nas.elements_fts(rowid, text, role)\n SELECT e.id, e.text, e.role\n FROM nas.elements e\n JOIN nas.frames f ON e.frame_id = f.id\n WHERE date(f.timestamp) = '$TARGET_DATE'\n AND e.text IS NOT NULL;\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"frames_fts\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT INTO nas.frames_fts(rowid, full_text, app_name, window_name, browser_url, id)\n SELECT id, full_text, app_name, window_name, browser_url, id\n FROM nas.frames\n WHERE date(timestamp) = '$TARGET_DATE'\n AND full_text IS NOT NULL;\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"ui_events_fts\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT INTO nas.ui_events_fts(rowid, text_content, app_name, window_title, element_name)\n SELECT id, text_content, app_name, window_title, element_name\n FROM nas.ui_events\n WHERE date(timestamp) = '$TARGET_DATE'\n AND text_content IS NOT NULL;\nDETACH nas;\n\"\n\n # ─── VERIFY DB ────────────────────────────────────────────────────────────\n step \"Verifying DB\"\n\n V_FRAMES=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';\")\n V_ELEMENTS=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');\")\n V_UI=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';\")\n V_OCR=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');\")\n V_MEETINGS=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM meetings WHERE date(meeting_start)= '$TARGET_DATE';\")\n\n check \"frames\" \"$V_FRAMES\" \"$SRC_FRAMES\"\n check \"elements\" \"$V_ELEMENTS\" \"$SRC_ELEMENTS\"\n check \"ui_events\" \"$V_UI\" \"$SRC_UI\"\n check \"ocr_text\" \"$V_OCR\" \"$SRC_OCR\"\n check \"meetings\" \"$V_MEETINGS\" \"$SRC_MEETINGS\"\n\nfi\n\n# ─── COPY DATA FOLDER ─────────────────────────────────────────────────────────\n# Always runs regardless of DB sync status\nstep \"Copying data folder for $TARGET_DATE\"\n\nif [ -d \"$DATA_SRC\" ]; then\n mkdir -p \"$NAS_DATA/$TARGET_DATE\"\n RSYNC_START=$(date +%s)\n printf \" %-36s \" \"rsync $TARGET_DATE/ → NAS\"\n rsync -a --ignore-existing \\\n \"$DATA_SRC/\" \\\n \"$NAS_DATA/$TARGET_DATE/\" \\\n 2>>\"$LOG_FILE\"\n RSYNC_DUR=$(( $(date +%s) - RSYNC_START ))\n COPIED_FILES=$(ls \"$NAS_DATA/$TARGET_DATE\" | wc -l | tr -d ' ')\n SRC_FILES=$(ls \"$DATA_SRC\" | wc -l | tr -d ' ')\n COPIED_SIZE=$(du -sh \"$NAS_DATA/$TARGET_DATE\" | cut -f1)\n if [ \"$COPIED_FILES\" -eq \"$SRC_FILES\" ]; then\n printf \"\\r %-36s ✓ %dm%02ds (%s files, %s)\\n\" \\\n \"rsync $TARGET_DATE/ → NAS\" \\\n \"$(( RSYNC_DUR / 60 ))\" \"$(( RSYNC_DUR % 60 ))\" \\\n \"$COPIED_FILES\" \"$COPIED_SIZE\" | tee -a \"$LOG_FILE\"\n else\n printf \"\\r %-36s ✗ %s / %s files\\n\" \\\n \"rsync $TARGET_DATE/ → NAS\" \"$COPIED_FILES\" \"$SRC_FILES\" | tee -a \"$LOG_FILE\"\n fi\nelse\n printf \" %-36s %s\\n\" \"rsync $TARGET_DATE/ → NAS\" \"skipped (no source dir)\"\nfi\n\n# ─── SUMMARY ──────────────────────────────────────────────────────────────────\nTOTAL_ELAPSED=$(( $(date +%s) - SCRIPT_START ))\nDB_SIZE=$(du -sh \"$NAS_DB\" | cut -f1)\n\necho \"\"\nlog \"Archive DB size: $DB_SIZE\"\nlog \"Total time: $(( TOTAL_ELAPSED / 60 ))m$(( TOTAL_ELAPSED % 60 ))s\"\nlog \"Sync complete for $TARGET_DATE\"\nlog \"========================================\"","role_description":"editor","is_enabled":true,"is_focused":true,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"#!/bin/bash\n# screenpipe_sync.sh\n# Syncs Screenpipe SQLite data to a NAS archive database (append-only, no deletions).\n# Also copies the day's video/frame data folder to the NAS.\n#\n# Usage:\n# ./screenpipe_sync.sh # syncs yesterday (default)\n# ./screenpipe_sync.sh 2026-04-15 # syncs a specific date\n# ./screenpipe_sync.sh today # syncs today so far\n#\n# Cron example (runs at 3am daily):\n# 0 3 * * * /Users/lukas/.screenpipe/screenpipe_sync.sh >> /Users/lukas/.screenpipe/sync.log 2>&1\n\nset -euo pipefail\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\nDB_SRC=\"${SCREENPIPE_DB:-$HOME/.screenpipe/db.sqlite}\"\nNAS_MOUNT=\"${NAS_MOUNT:-/Volumes/Test/screenpipe}\"\nNAS_DB=\"$NAS_MOUNT/archive.db\"\nNAS_DATA=\"$NAS_MOUNT/data\"\nLOG_FILE=\"$HOME/.screenpipe/sync.log\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\nSCRIPT_START=$(date +%s)\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── DATE ARGUMENT ────────────────────────────────────────────────────────────\nif [ \"${1:-}\" = \"today\" ]; then\n TARGET_DATE=$(date +%Y-%m-%d)\nelif [ -n \"${1:-}\" ]; then\n TARGET_DATE=\"$1\"\n if ! [[ \"$TARGET_DATE\" =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]]; then\n echo \"ERROR: Invalid date format. Use YYYY-MM-DD, 'today', or no argument for yesterday.\"\n exit 1\n fi\nelse\n TARGET_DATE=$(date -v-1d +%Y-%m-%d)\nfi\n\nlog \"========================================\"\nlog \"Screenpipe sync starting for: $TARGET_DATE\"\nlog \"========================================\"\n\n# ─── PREFLIGHT ────────────────────────────────────────────────────────────────\nstep \"Preflight checks\"\n\nif [ ! -f \"$DB_SRC\" ]; then\n log \"ERROR: Source DB not found at $DB_SRC\"; exit 1\nfi\nprintf \" %-20s %s (%s)\\n\" \"Source DB:\" \"OK\" \"$(du -sh \"$DB_SRC\" | cut -f1)\"\n\nif [ ! -d \"$NAS_MOUNT\" ]; then\n log \"ERROR: NAS not mounted at $NAS_MOUNT\"; exit 1\nfi\nprintf \" %-20s %s\\n\" \"NAS mount:\" \"OK $NAS_MOUNT\"\n\n# Check if DB already synced for this date\nDB_ALREADY_SYNCED=false\nif [ -f \"$NAS_DB\" ]; then\n EXISTING=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';\" 2>/dev/null || echo \"0\")\n if [ \"$EXISTING\" -gt \"0\" ]; then\n log \"Date $TARGET_DATE already has $EXISTING frames in archive — skipping DB sync\"\n DB_ALREADY_SYNCED=true\n else\n printf \" %-20s %s (%s)\\n\" \"Archive DB:\" \"exists\" \"$(du -sh \"$NAS_DB\" | cut -f1)\"\n fi\nelse\n printf \" %-20s %s\\n\" \"Archive DB:\" \"will be created\"\nfi\n\n# Source data dir for this date\nDATA_SRC=\"$HOME/.screenpipe/data/data/$TARGET_DATE\"\nif [ -d \"$DATA_SRC\" ]; then\n DATA_SIZE=$(du -sh \"$DATA_SRC\" | cut -f1)\n DATA_FILES=$(ls \"$DATA_SRC\" | wc -l | tr -d ' ')\n printf \" %-20s %s (%s files, %s)\\n\" \"Data dir:\" \"OK\" \"$DATA_FILES\" \"$DATA_SIZE\"\nelse\n printf \" %-20s %s\\n\" \"Data dir:\" \"not found — skipping file copy\"\nfi\n\n# ─── DB SYNC ──────────────────────────────────────────────────────────────────\nif [ \"$DB_ALREADY_SYNCED\" = false ]; then\n\n # ─── COUNT SOURCE ROWS ────────────────────────────────────────────────────\n step \"Counting source rows for $TARGET_DATE\"\n\n SRC_FRAMES=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';\")\n SRC_ELEMENTS=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');\")\n SRC_UI=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';\")\n SRC_OCR=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');\")\n SRC_MEETINGS=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM meetings WHERE date(meeting_start) = '$TARGET_DATE';\")\n\n printf \" %-20s %s\\n\" \"frames:\" \"$SRC_FRAMES\"\n printf \" %-20s %s\\n\" \"elements:\" \"$SRC_ELEMENTS\"\n printf \" %-20s %s\\n\" \"ui_events:\" \"$SRC_UI\"\n printf \" %-20s %s\\n\" \"ocr_text:\" \"$SRC_OCR\"\n printf \" %-20s %s\\n\" \"meetings:\" \"$SRC_MEETINGS\"\n\n if [ \"$SRC_FRAMES\" -eq \"0\" ]; then\n log \"No frames found for $TARGET_DATE — skipping DB sync\"\n DB_ALREADY_SYNCED=true\n fi\n\nfi\n\nif [ \"$DB_ALREADY_SYNCED\" = false ]; then\n\n # ─── INIT TABLES ──────────────────────────────────────────────────────────\n step \"Initialising tables, indexes, FTS\"\n\n run_sqlite_heredoc \"creating tables\" \"\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"creating indexes\" \"\nATTACH '$NAS_DB' AS nas;\nCREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);\nCREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);\nCREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);\nCREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);\nCREATE INDEX IF NOT EXISTS nas.idx_elements_frame_id ON elements(frame_id);\nCREATE INDEX IF NOT EXISTS nas.idx_elements_frame_src_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;\nCREATE INDEX IF NOT EXISTS nas.idx_ui_events_timestamp ON ui_events(timestamp);\nCREATE INDEX IF NOT EXISTS nas.idx_ui_events_app_name ON ui_events(app_name);\nCREATE INDEX IF NOT EXISTS nas.idx_ui_events_frame_id ON ui_events(frame_id);\nCREATE INDEX IF NOT EXISTS nas.idx_ocr_text_frame_id ON ocr_text(frame_id);\nCREATE INDEX IF NOT EXISTS nas.idx_meetings_start ON meetings(meeting_start);\nCREATE INDEX IF NOT EXISTS nas.idx_video_chunks_device ON video_chunks(device_name);\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"creating FTS tables\" \"\nATTACH '$NAS_DB' AS nas;\nCREATE VIRTUAL TABLE IF NOT EXISTS nas.elements_fts USING fts5(\n text, role, frame_id UNINDEXED,\n content='elements', content_rowid='id', tokenize='unicode61'\n);\nCREATE VIRTUAL TABLE IF NOT EXISTS nas.frames_fts USING fts5(\n full_text, app_name, window_name, browser_url, id UNINDEXED,\n tokenize='unicode61'\n);\nCREATE VIRTUAL TABLE IF NOT EXISTS nas.ui_events_fts USING fts5(\n text_content,\n app_name,\n window_title,\n element_name,\n content='ui_events',\n content_rowid='id',\n tokenize='unicode61'\n);\nDETACH nas;\n\"\n\n # ─── SYNC DATA ────────────────────────────────────────────────────────────\n step \"Syncing data for $TARGET_DATE\"\n\n run_sqlite_heredoc \"video_chunks\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.video_chunks\n SELECT * FROM main.video_chunks\n WHERE id IN (\n SELECT DISTINCT video_chunk_id FROM main.frames\n WHERE date(timestamp) = '$TARGET_DATE' AND video_chunk_id IS NOT NULL\n );\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"frames ($SRC_FRAMES rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.frames\n SELECT * FROM main.frames WHERE date(timestamp) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"ocr_text ($SRC_OCR rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.ocr_text\n SELECT o.* FROM main.ocr_text o\n JOIN main.frames f ON o.frame_id = f.id\n WHERE date(f.timestamp) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"ui_events ($SRC_UI rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.ui_events\n SELECT * FROM main.ui_events WHERE date(timestamp) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"elements ($SRC_ELEMENTS rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.elements\n SELECT e.* FROM main.elements e\n JOIN main.frames f ON e.frame_id = f.id\n WHERE date(f.timestamp) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"meetings ($SRC_MEETINGS rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.meetings\n SELECT * FROM main.meetings WHERE date(meeting_start) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n # ─── FTS UPDATE ───────────────────────────────────────────────────────────\n step \"Updating FTS indexes\"\n\n run_sqlite_heredoc \"elements_fts\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT INTO nas.elements_fts(rowid, text, role)\n SELECT e.id, e.text, e.role\n FROM nas.elements e\n JOIN nas.frames f ON e.frame_id = f.id\n WHERE date(f.timestamp) = '$TARGET_DATE'\n AND e.text IS NOT NULL;\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"frames_fts\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT INTO nas.frames_fts(rowid, full_text, app_name, window_name, browser_url, id)\n SELECT id, full_text, app_name, window_name, browser_url, id\n FROM nas.frames\n WHERE date(timestamp) = '$TARGET_DATE'\n AND full_text IS NOT NULL;\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"ui_events_fts\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT INTO nas.ui_events_fts(rowid, text_content, app_name, window_title, element_name)\n SELECT id, text_content, app_name, window_title, element_name\n FROM nas.ui_events\n WHERE date(timestamp) = '$TARGET_DATE'\n AND text_content IS NOT NULL;\nDETACH nas;\n\"\n\n # ─── VERIFY DB ────────────────────────────────────────────────────────────\n step \"Verifying DB\"\n\n V_FRAMES=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';\")\n V_ELEMENTS=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');\")\n V_UI=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';\")\n V_OCR=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');\")\n V_MEETINGS=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM meetings WHERE date(meeting_start)= '$TARGET_DATE';\")\n\n check \"frames\" \"$V_FRAMES\" \"$SRC_FRAMES\"\n check \"elements\" \"$V_ELEMENTS\" \"$SRC_ELEMENTS\"\n check \"ui_events\" \"$V_UI\" \"$SRC_UI\"\n check \"ocr_text\" \"$V_OCR\" \"$SRC_OCR\"\n check \"meetings\" \"$V_MEETINGS\" \"$SRC_MEETINGS\"\n\nfi\n\n# ─── COPY DATA FOLDER ─────────────────────────────────────────────────────────\n# Always runs regardless of DB sync status\nstep \"Copying data folder for $TARGET_DATE\"\n\nif [ -d \"$DATA_SRC\" ]; then\n mkdir -p \"$NAS_DATA/$TARGET_DATE\"\n RSYNC_START=$(date +%s)\n printf \" %-36s \" \"rsync $TARGET_DATE/ → NAS\"\n rsync -a --ignore-existing \\\n \"$DATA_SRC/\" \\\n \"$NAS_DATA/$TARGET_DATE/\" \\\n 2>>\"$LOG_FILE\"\n RSYNC_DUR=$(( $(date +%s) - RSYNC_START ))\n COPIED_FILES=$(ls \"$NAS_DATA/$TARGET_DATE\" | wc -l | tr -d ' ')\n SRC_FILES=$(ls \"$DATA_SRC\" | wc -l | tr -d ' ')\n COPIED_SIZE=$(du -sh \"$NAS_DATA/$TARGET_DATE\" | cut -f1)\n if [ \"$COPIED_FILES\" -eq \"$SRC_FILES\" ]; then\n printf \"\\r %-36s ✓ %dm%02ds (%s files, %s)\\n\" \\\n \"rsync $TARGET_DATE/ → NAS\" \\\n \"$(( RSYNC_DUR / 60 ))\" \"$(( RSYNC_DUR % 60 ))\" \\\n \"$COPIED_FILES\" \"$COPIED_SIZE\" | tee -a \"$LOG_FILE\"\n else\n printf \"\\r %-36s ✗ %s / %s files\\n\" \\\n \"rsync $TARGET_DATE/ → NAS\" \"$COPIED_FILES\" \"$SRC_FILES\" | tee -a \"$LOG_FILE\"\n fi\nelse\n printf \" %-36s %s\\n\" \"rsync $TARGET_DATE/ → NAS\" \"skipped (no source dir)\"\nfi\n\n# ─── SUMMARY ──────────────────────────────────────────────────────────────────\nTOTAL_ELAPSED=$(( $(date +%s) - SCRIPT_START ))\nDB_SIZE=$(du -sh \"$NAS_DB\" | cut -f1)\n\necho \"\"\nlog \"Archive DB size: $DB_SIZE\"\nlog \"Total time: $(( TOTAL_ELAPSED / 60 ))m$(( TOTAL_ELAPSED % 60 ))s\"\nlog \"Sync complete for $TARGET_DATE\"\nlog \"========================================\"","depth":29,"bounds":{"left":0.11569149,"top":0.0933759,"width":0.35804522,"height":0.0007980846},"role_description":"text"},{"role":"AXRadioButton","text":"lets add ability to jump…, Editor Group 2","depth":28,"bounds":{"left":0.5578458,"top":0.047885075,"width":0.06948138,"height":0.02793296},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXRadioButton","text":"Problems (⇧⌘M)","depth":22,"bounds":{"left":0.118351065,"top":0.59936154,"width":0.027925532,"height":0.02793296},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"PROBLEMS","depth":24,"bounds":{"left":0.122340426,"top":0.60814047,"width":0.019946808,"height":0.0103751},"role_description":"text"},{"role":"AXRadioButton","text":"Output (⇧⌘U)","depth":22,"bounds":{"left":0.14594415,"top":0.59936154,"width":0.023603724,"height":0.02793296},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUTPUT","depth":24,"bounds":{"left":0.14993352,"top":0.60814047,"width":0.015625,"height":0.0103751},"role_description":"text"},{"role":"AXRadioButton","text":"Debug Console (⇧⌘Y)","depth":22,"bounds":{"left":0.16921543,"top":0.59936154,"width":0.039893616,"height":0.02793296},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"DEBUG CONSOLE","depth":24,"bounds":{"left":0.1732048,"top":0.60814047,"width":0.031914894,"height":0.0103751},"role_description":"text"},{"role":"AXRadioButton","text":"Terminal (⌃`)","depth":22,"bounds":{"left":0.2087766,"top":0.59936154,"width":0.026595745,"height":0.02793296},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":true},{"role":"AXStaticText","text":"TERMINAL","depth":24,"bounds":{"left":0.21276596,"top":0.60814047,"width":0.01861702,"height":0.0103751},"role_description":"text"},{"role":"AXRadioButton","text":"Ports","depth":22,"bounds":{"left":0.23537233,"top":0.59936154,"width":0.020279255,"height":0.02793296},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"PORTS","depth":24,"bounds":{"left":0.2393617,"top":0.60814047,"width":0.012300532,"height":0.0103751},"role_description":"text"},{"role":"AXButton","text":"remote SSH: nas","depth":16,"bounds":{"left":0.0006648936,"top":0.98244214,"width":0.028590426,"height":0.01755786},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.0033244682,"top":0.9848364,"width":0.005319149,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"SSH: nas","depth":17,"bounds":{"left":0.008643617,"top":0.9856345,"width":0.017952127,"height":0.011173184},"role_description":"text"},{"role":"AXButton","text":"screenpipe (Git) - master*, Checkout Branch/Tag...","depth":16,"bounds":{"left":0.030917553,"top":0.98244214,"width":0.023271276,"height":0.01755786},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.031914894,"top":0.9848364,"width":0.005319149,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"master*","depth":17,"bounds":{"left":0.03723404,"top":0.9856345,"width":0.015957447,"height":0.011173184},"role_description":"text"},{"role":"AXButton","text":"screenpipe (Git) - Synchronize Changes","depth":16,"bounds":{"left":0.05418883,"top":0.98244214,"width":0.00731383,"height":0.01755786},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"No Problems","depth":16,"bounds":{"left":0.06416223,"top":0.98244214,"width":0.022606382,"height":0.01755786},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.06582447,"top":0.9848364,"width":0.005319149,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"0","depth":17,"bounds":{"left":0.07114362,"top":0.9856345,"width":0.004986702,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.07579787,"top":0.9848364,"width":0.0056515955,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"0","depth":17,"bounds":{"left":0.08111702,"top":0.9856345,"width":0.0039893617,"height":0.011173184},"role_description":"text"},{"role":"AXButton","text":"No Ports Forwarded","depth":16,"bounds":{"left":0.08843085,"top":0.98244214,"width":0.012632979,"height":0.01755786},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.09009308,"top":0.9848364,"width":0.0056515955,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"0","depth":17,"bounds":{"left":0.09541223,"top":0.9856345,"width":0.0039893617,"height":0.011173184},"role_description":"text"},{"role":"AXButton","text":"Notifications","depth":16,"bounds":{"left":0.9886968,"top":0.98244214,"width":0.010638298,"height":0.01755786},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Signed out","depth":16,"bounds":{"left":0.9567819,"top":0.98244214,"width":0.031914894,"height":0.01755786},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.9594415,"top":0.9848364,"width":0.005319149,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Signed out","depth":17,"bounds":{"left":0.96476066,"top":0.9856345,"width":0.021276595,"height":0.011173184},"role_description":"text"},{"role":"AXButton","text":"Shell Script","depth":16,"bounds":{"left":0.93151593,"top":0.98244214,"width":0.023603724,"height":0.01755786},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Editor Language Status: $(copilot) No inline suggestion available, Inline suggestions","depth":16,"bounds":{"left":0.92420214,"top":0.98244214,"width":0.0076462766,"height":0.01755786},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"LF","depth":16,"bounds":{"left":0.91356385,"top":0.98244214,"width":0.00831117,"height":0.01755786},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"UTF-8","depth":16,"bounds":{"left":0.8962766,"top":0.98244214,"width":0.015625,"height":0.01755786},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Spaces: 2","depth":16,"bounds":{"left":0.87234044,"top":0.98244214,"width":0.021941489,"height":0.01755786},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Ln 352, Col 47 (13096 selected)","depth":16,"bounds":{"left":0.80518615,"top":0.98244214,"width":0.065159574,"height":0.01755786},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Screen Reader Optimized","depth":16,"bounds":{"left":0.75099736,"top":0.98244214,"width":0.05319149,"height":0.01755786},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"git-commit Lukas Kovalik (23 hours ago)","depth":16,"bounds":{"left":0.68583775,"top":0.98244214,"width":0.06416223,"height":0.01755786},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.6875,"top":0.9848364,"width":0.005319149,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Lukas Kovalik (23 hours ago)","depth":17,"bounds":{"left":0.6928192,"top":0.9856345,"width":0.055518616,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"Info: Downloading VS Code Server...","depth":12,"role_description":"text"},{"role":"AXButton","text":"lets add ability to jump fro,m search to timeline so we can see the exact screen (also based on monitor and time","depth":19,"bounds":{"left":0.56017286,"top":0.08060654,"width":0.099734046,"height":0.022346368},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Session history","depth":19,"bounds":{"left":0.9780585,"top":0.08060654,"width":0.00930851,"height":0.022346368},"help_text":"Session history","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"New session","depth":19,"bounds":{"left":0.9886968,"top":0.08060654,"width":0.00930851,"height":0.022346368},"help_text":"New session","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Message actions","depth":24,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"This session is being continued from a previous conversation that ran out of context. The summary below covers the earlier portion of the conversation.\n\nSummary:\n1. Primary Request and Intent:\n\nThe user has been developing a Screenpipe dashboard on a Synology NAS. Requests in chronological order:\n- **Q1**: Are db.sqlite-shm and db.sqlite-wal used? → Explained WAL mode; cleaned up files.\n- **Q2**: AND combination search (term1 + term2 must both appear) → Added \"AND also\" input field.\n- **Q3**: Explain UTC time issue, show date in results, make Only/Skip apps use multiselect → Implemented all three.\n- **Q4**: Point sqlite-web at archive.db, add second sqlite-web for db.sqlite → Updated docker-compose.yml, added two services on ports 8767/8768.\n- **Q5**: \"still the same\" (container not picking up config) → Explained `up -d` vs `restart`.\n- **Q6**: Add git, push to gitea.com/lakylak/screenpipe.git → Initialized repo, committed, pushed.\n- **Q7**: Add Timetable tab with video playback and timeline → Full implementation with click-to-seek, auto-advancing chunks, legend.\n- **Q8**: Add scroll/zoom on timeline, jump to specific time, better awareness → Implemented zoom (1×–32×), scrollable timeline, overview minimap, viewport indicator, Jump-to-time input, screenshot thumbnail.\n- **Q9 (most recent)**: Make playing speed more than 8×, fix speed not working, show position on timeline → CSS fix done (wider playhead + time label style), remainder in progress.\n\n2. Key Technical Concepts:\n\n- **SQLite WAL mode**: db.sqlite-shm and db.sqlite-wal are WAL companion files; cleaned with `PRAGMA wal_checkpoint(TRUNCATE)`.\n- **SQLite FTS5**: Space-separated terms = AND; `MATCH 'term1 term2'` requires both; OR requires explicit `OR` keyword.\n- **FastAPI**: Python backend with route handlers in main.py, consumers pattern for DB queries.\n- **Docker Compose**: App image is built (code baked in), not volume-mounted → requires `build` + `up -d` for code changes. `restart` doesn't re-read compose file — need `up -d`.\n- **sqlite-web**: Read-only flag `-r`, pre-built image, no rebuild needed for config changes.\n- **Video playback**: screenpipe records at 0.1–0.3 fps (timelapse). `seek = offset_index / fps` gives seconds into video chunk. ~245 chunks/day across 2 monitors. Videos may be encoded at standard fps making them very short at native speed.\n- **Timeline rendering**: App-colored segments built by merging consecutive frames with same `app_name`. Percentage positions: `((ts - dayStart) / span * 100)%`.\n- **Zoom/scroll**: Inner div width = `zoom × 100%`, outer wrapper has `overflow-x:auto`. Playhead position stays as % of inner div, which is correct at all zoom levels.\n- **Timer-based speed**: For speed > 2×, browser `playbackRate` is unreliable on low-FPS video; correct approach is `setInterval` advancing `video.currentTime` by `speed * interval_ms / 1000` seconds per tick.\n- **UTC vs local time**: Backend treats `time_from`/`time_to` as UTC. Frontend converts with `localTimeToUtc()` before sending.\n- **Git**: `#recycle/` in .gitignore treated as comment — must escape as `\\#recycle/`.\n\n3. Files and Code Sections:\n\n- **`/volume1/screenpipe/app/main.py`**\n - Added `/api/apps` endpoint (all unique app names from frames table)\n - Added `/api/timetable` endpoint (frames + video URLs + screenshot URLs per device per date)\n - `/api/timetable` response structure: `{frames: [{ts, app, win, video_url, seek, screenshot_url}], devices: [...], device: \"...\"}`\n - Key snippet:\n ```python","depth":26,"role_description":"text"},{"role":"AXButton","text":"@app.get(\"/api/timetable\"","depth":26,"help_text":"Open app.get(\"/api/timetable\"","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":")\n async def timetable_data(d: str | None = Query(None), device: str | None = Query(None)):\n ...\n rows = conn.execute(f\"\"\"\n SELECT f.timestamp AS ts, f.app_name AS app, f.window_name AS win,\n f.offset_index, f.snapshot_path,\n vc.file_path AS video_path, vc.fps AS video_fps\n FROM frames f\n JOIN video_chunks vc ON f.video_chunk_id = vc.id\n WHERE f.timestamp >= ? AND f.timestamp < ?\n AND f.video_chunk_id IS NOT NULL {dev_clause}\n ORDER BY f.timestamp\n \"\"\", params).fetchall()\n # seek = offset_index / fps, screenshot_url from _snapshot_to_url(snapshot_path)\n ```\n\n- **`/volume1/screenpipe/app/docker-compose.yml`**\n - Changed sqlite-web service name to `sqlite-web-archive` → port 8767 → `/data/archive.db`\n - Added `sqlite-web-live` → port 8768 → `/data/db.sqlite`\n - screenpipe-app: port 8766, `DB_PATH: /data/db.sqlite`, `TZ: Europe/Sofia`\n\n- **`/volume1/screenpipe/app/static/index.html`** (single large file with all CSS/HTML/JS)\n - **Search enhancements**:\n - Added `id=\"sq2\"` \"AND also\" input between search-row1 and search-row2\n - Replaced `sOnlyApps`/`sSkipApps` text inputs with custom multiselect components (`id=\"msOnlyApps\"`, `id=\"msSkipApps\"`)\n - Updated `buildUrl()` to combine `q + \" \" + q2` and convert times with `localTimeToUtc()`\n - Added `fmtDateTime(ts)` showing \"Apr 20 14:08\" format\n - Added `localTimeToUtc(timeStr)` converting local HH:MM to UTC\n - Multiselect state: `const _msState = { msOnlyApps: new Set(), msSkipApps: new Set() }`\n - **Timetable tab** (new page):\n - Tab button added between Work Report and AI Summary\n - `showPage` array updated: `['activity','search','audio','report','timetable','summary']`\n - `refresh()` calls `loadTimetable()` when on timetable page\n - **Timetable CSS** (key styles):\n ```css\n .tt-scroll-wrap { overflow-x:auto; ... scrollbar-width:thin; }\n .tt-inner { position:relative; height:52px; } /* width set dynamically */\n .tt-playhead { position:absolute; top:0; width:3px; height:36px; background:white; box-shadow:0 0 8px rgba(255,255,255,.9); z-index:10; pointer-events:none; display:none; }\n .tt-playhead-time { position:absolute; top:2px; font-size:9px; font-weight:600; color:white; background:rgba(0,0,0,.75); padding:1px 4px; border-radius:2px; white-space:nowrap; transform:translateX(-50%); z-index:12; pointer-events:none; display:none; }\n .tt-overview-wrap { position:relative; height:14px; ... cursor:pointer; }\n .tt-overview-vp { position:absolute; background:rgba(255,255,255,0.12); border:1px solid rgba(255,255,255,0.4); }\n ```\n - **Timetable JS state variables**:\n ```javascript\n let _ttFrames = [], _ttChunks = [], _ttCurChunk = -1;\n let _ttDayStart = 0, _ttDayEnd = 0, _ttZoom = 1;\n const _ttAppColors = {};\n const TT_ZOOMS = [1, 2, 4, 8, 16, 32];\n const TT_TICK_MIN = {1:30, 2:15, 4:10, 8:5, 16:2, 32:1};\n ```\n - **Key JS functions**:\n - `loadTimetable()` — fetches `/api/timetable`, groups chunks, renders\n - `ttZoom(dir)` — changes zoom level, updates inner width, re-renders ticks, scrolls to playhead\n - `ttTimelineClick(e)` — uses `inner.getBoundingClientRect()` (works correctly when scrolled)\n - `ttOverviewClick(e)` — scrolls timeline + seeks video\n - `ttUpdateOverviewVp()` — updates white viewport rect using `wrap.scrollLeft / inner.scrollWidth`\n - `ttJumpToTime()` — parses time input, converts to ms, calls `ttSeekToMs`\n - `ttSeekToMs(tsMs)` — binary-searches nearest frame, loads chunk, seeks video\n - `_ttScrollToPlayhead(force)` — scrolls wrap so playhead stays at ~35% from left when Follow is checked\n - `_ttMovePlayhead(tsMs)` — sets `ph.style.left` as percentage, calls `_ttScrollToPlayhead`\n - `_ttShowNow(f)` — updates screenshot thumbnail + now-text div\n - `ttSyncBtn()` — syncs play/pause button text\n - Keyboard: Space=play/pause, ←/→=±10s, Ctrl+←/→=±30s, +/-=zoom\n\n- **`/volume1/screenpipe/.gitignore`**\n ```\n *.db, *.sqlite, *.sqlite-shm, *.sqlite-wal\n data/, \\#recycle/,","depth":26,"role_description":"text"},{"role":"AXButton","text":"@eaDir/","depth":26,"help_text":"Open eaDir/","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"app_settings.json, app/.env\n __pycache__/, *.pyc, .DS_Store\n ```\n\n4. Errors and Fixes:\n\n- **`#recycle/` in .gitignore treated as comment**: `#` starts a comment in .gitignore. Fixed by escaping: `\\#recycle/`. Also had to `git rm --cached \"#recycle/desktop.ini\"` to unstage it.\n- **`sudo docker compose restart sqlite-web` didn't apply config change**: `restart` reuses existing container config, doesn't re-read compose file. Fix: `sudo docker compose up -d` recreates containers with new config.\n- **Orphan container holding port 8767**: Old `screenpipe-sqlweb` container still running after rename. Fix: `sudo docker compose up -d --remove-orphans`.\n- **`sudo docker` not accessible from Claude Code**: Interactive sudo required. User runs commands in NAS terminal.\n- **`git config --global --add safe.directory /volume1/screenpipe`**: Required due to dubious ownership of NAS volume directory.\n\n5. Problem Solving:\n\n- **Time zone confusion in search**: Backend uses UTC for time_from/time_to; frontend displays local time. Solved by `localTimeToUtc()` converting before API call, and showing date+time in results.\n- **sqlite-web not showing April 17–21 data**: Container was pointing at db.sqlite (old config), not archive.db. Fixed by updating docker-compose.yml + `up -d`.\n- **Video playback speed**: Browser `video.playbackRate` is capped (~16× max in Chrome) and performs poorly for very low FPS (0.1–0.3 fps) screenpipe videos. Each chunk may only be 1–2 seconds of wall-clock encoded video, playing through instantly. Solution: implement timer-based frame-jumping for speed > 2× (in progress).\n- **Playhead visibility**: White 2px line was hard to see. Fixed CSS to 3px width + stronger box-shadow + added `.tt-playhead-time` overlay label style.\n\n6. All User Messages:\n\n- \"do we use db.sqlite-shm and db.sqlite-wal for anything right now? [image of search UI] Lets add ability to search with combination... Explain how does the search work time seems to work in utc maybe display date next to the time in results. Make only apps and skip apps multiselect with all available apps.\"\n- \"doi I need to restart?\"\n- \"there is sudo docker compose\"\n- \"no still the same\"\n- \"add git. I have created gitea repo https://gitea.com/lakylak/screenpipe.git\"\n- \"just do it\" (re: git push)\n- \"how to make sure data in :8767 are accurate and point to archive.db\"\n- \"I can't see older than 16th there should 21st of april. In http://192.168.0.242:8766/ I can see all but not on sqlite viewer http://192.168.0.242:8767\"\n- \"ok lets add additional port to read db.sqlite, I would like to see the structure of official db that reads db.sqlite db and one for archive\"\n- [docker compose output showing orphan container error]\n- \"looks great. I want to have ability to scroll left and right and also to jump to specific time. I want to be more aware to what I see. Still it should be fast\"\n- \"lets make the playing speed more than 8x\"\n- \"still playing speed is not showing properly still just in one second. also I want to see in timeline where I am\"\n\n7. Pending Tasks:\n\n- **Playback speed fix** (in progress, partially done):\n - Add `<div class=\"tt-playhead-time\" id=\"ttPlayheadTime\"></div>` inside `ttInner` HTML\n - Implement `_ttStartSpeedTimer(speed)` / `_ttStopSpeedTimer()` / `ttSetSpeed(speed)` functions\n - Update speed select `onchange` to call `ttSetSpeed(+this.value)`\n - Add 64× option to speed select\n - Update `_ttMovePlayhead` to also update `ttPlayheadTime` label\n - Update `ttSyncBtn` to start/stop timer based on play state + speed\n - Update `ttNextChunk` and `ttSeekToMs` to stop timer (restarted by onplay → ttSyncBtn)\n - Rebuild Docker image after changes\n\n8. Current Work:\n\nWorking on fixing two issues with the Timetable tab:\n1. **Playback speed**: `video.playbackRate` doesn't work well for low-FPS screenpipe videos. The plan is to implement a `setInterval`-based frame-jumper for speed > 2× that advances `video.currentTime` by `speed * intervalMs / 1000` every 100–200ms, bypassing browser playbackRate limits.\n2. **Timeline position indicator**: Playhead not prominent enough. \n\n**CSS already changed** in `/volume1/screenpipe/app/static/index.html`:\n```css\n.tt-playhead { position:absolute; top:0; width:3px; height:36px; background:white; box-shadow:0 0 8px rgba(255,255,255,.9); z-index:10; pointer-events:none; display:none; }\n.tt-playhead-time { position:absolute; top:2px; font-size:9px; font-weight:600; color:white; background:rgba(0,0,0,.75); padding:1px 4px; border-radius:2px; white-space:nowrap; transform:translateX(-50%); z-index:12; pointer-events:none; display:none; }\n```\n\nSession was interrupted by summary request after this CSS edit, mid-implementation.\n\n9. Optional Next Step:\n\nContinuing the fix for: \"still playing speed is not showing properly still just in one second. also I want to see in timeline where I am\"\n\nThe next steps in order are:\n1. Add `<div class=\"tt-playhead-time\" id=\"ttPlayheadTime\"></div>` to the HTML inside `#ttInner` (after the existing `.tt-playhead` div)\n2. Update `_ttMovePlayhead` to set `ttPlayheadTime` position and text content with `fmtTime()`\n3. Add timer-based speed system to JS (new functions `_ttStartSpeedTimer`, `_ttStopSpeedTimer`, `ttSetSpeed`)\n4. Update speed select's `onchange` to `ttSetSpeed(+this.value)` and add 64× option\n5. Update `ttSyncBtn`, `ttNextChunk`, `ttSeekToMs` to integrate with timer\n6. Rebuild: `sudo docker compose build screenpipe-app && sudo docker compose up -d screenpipe-app`\n\nIf you need specific details from before compaction (like exact code snippets, error messages, or content you generated), read the full transcript at: /home/Adm1n/.claude/projects/-volume1-screenpipe/7777f46e-1e40-4051-b4bb-f43aedd59556.jsonl\nContinue the conversation from where it left off without asking the user any further questions. Resume directly — do not acknowledge the summary, do not recap what was happening, do not preface with \"I'll continue\" or similar. Pick up the last task as if the break never happened.","depth":26,"role_description":"text"},{"role":"AXButton","text":"Thinking","depth":23,"role_description":"disclosure triangle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Thinking","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Find timetable speed and playhead related code","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"tt-playhead\\|ttPlayhead\\|ttInner\\|_ttMovePlayhead\\|ttSetSpeed\\|_ttStartSpeed\\|_ttStopSpeed\\|ttSyncBtn\\|playbackRate\\|speed.*select\\|spdSel\\|ttSpeed\" /volume1/screenpipe/app/static/index.html | head -80","depth":25,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"207:.tt-playhead { position:absolute; top:0; width:3px; height:36px; background:white; box-shadow:0 0 8px rgba(255,255,255,.9); z-index:10; pointer-events:none; display:none; }\n208:.tt-playhead-time { position:absolute; top:2px; font-size:9px; font-weight:600; color:white; background:rgba(0,0,0,.75); padding:1px 4px; border-radius:2px; white-space:nowrap; transform:translateX(-50%); z-index:12; pointer-events:none; display:none; }\n580: <div class=\"tt-inner\" id=\"ttInner\" onclick=\"ttTimelineClick(event)\">\n583: <div class=\"tt-playhead\" id=\"ttPlayhead\"></div>\n598: onpause=\"ttSyncBtn()\"\n599: onplay=\"ttSyncBtn()\">\n607: <select id=\"ttSpeed\" onchange=\"document.getElementById('ttVideo').playbackRate=+this.value\">\n1624: document.getElementById('ttInner').style.width = '100%';\n1632: document.getElementById('ttPlayhead').style.display = 'none';\n1694: document.getElementById('ttInner').style.width = (_ttZoom * 100) + '%';\n1700: const inner = document.getElementById('ttInner');\n1710: const inner = document.getElementById('ttInner');\n1718: const inner = document.getElementById('ttInner');\n1750: _ttMovePlayhead(new Date(best.ts).getTime());\n1772: _ttMovePlayhead(new Date(best.ts).getTime());\n1791:function _ttMovePlayhead(tsMs) {\n1792: const ph = document.getElementById('ttPlayhead');\n1802: const ph = document.getElementById('ttPlayhead');\n1805: const inner = document.getElementById('ttInner');\n1819:function ttSyncBtn() {","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"role_description":"text"},{"role":"AXLink","text":"index.html","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"index.html","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"(lines 576-625)","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"role_description":"text"},{"role":"AXLink","text":"index.html","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"index.html","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"(lines 1786-1865)","depth":24,"role_description":"text"},{"role":"AXButton","text":"Thinking","depth":23,"role_description":"disclosure triangle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Thinking","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Find chunk loading and playhead update functions","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"ttUpdatePlayhead\\|ttNextChunk\\|ttLoadChunk\\|_ttCurChunk\\|_ttChunks\\|_ttFrames\" /volume1/screenpipe/app/static/index.html | head -50","depth":25,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"596: onended=\"ttNextChunk()\"\n597: ontimeupdate=\"ttUpdatePlayhead()\"\n1569:let _ttFrames = [];\n1570:let _ttChunks = [];\n1571:let _ttCurChunk = -1;\n1607: _ttFrames = data.frames;\n1609: for (const f of _ttFrames) {\n1613: _ttChunks = [...chunkMap.values()];\n1614: _ttCurChunk = -1;\n1616: _ttDayStart = new Date(_ttFrames[0].ts).getTime();\n1617: _ttDayEnd = new Date(_ttFrames[_ttFrames.length - 1].ts).getTime();\n1620: for (const f of _ttFrames) _ttColor(f.app);\n1640: for (const f of _ttFrames) {\n1736: if (!_ttFrames.length) return;\n1737: let best = _ttFrames[0], minDiff = Infinity;\n1738: for (const f of _ttFrames) {\n1742: const ci = _ttChunks.findIndex(ch => ch[0].video_url === best.video_url);\n1744: _ttCurChunk = ci;\n1753:function ttNextChunk() {\n1754: if (_ttCurChunk + 1 >= _ttChunks.length) return;\n1755: _ttCurChunk++;\n1757: video.src = _ttChunks[_ttCurChunk][0].video_url;\n1762:function ttUpdatePlayhead() {\n1764: if (_ttCurChunk < 0 || _ttCurChunk >= _ttChunks.length) return;\n1765: const chunk = _ttChunks[_ttCurChunk];","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"role_description":"text"},{"role":"AXLink","text":"index.html","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"index.html","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"(lines 1754-1793)","depth":24,"role_description":"text"},{"role":"AXButton","text":"Thinking","depth":23,"role_description":"disclosure triangle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Thinking","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"role_description":"text"},{"role":"AXLink","text":"index.html","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"index.html","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"(lines 1701-1760)","depth":24,"role_description":"text"},{"role":"AXButton","text":"Thinking","depth":23,"role_description":"disclosure triangle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Thinking","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"role_description":"text"},{"role":"AXLink","text":"index.html","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"index.html","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"(lines 1561-1640)","depth":24,"role_description":"text"},{"role":"AXButton","text":"Thinking","depth":23,"role_description":"disclosure triangle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Thinking","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Find time formatting functions","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"function fmtTime\\|function fmtDate\\|function _fmt\\|localTimeToUtc\\|fmtDateTime\" /volume1/screenpipe/app/static/index.html | head -20","depth":25,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"1088: if (tf) url += `&time_from=${localTimeToUtc(tf)}`;\n1089: if (tt) url += `&time_to=${localTimeToUtc(tt)}`;\n1153: let meta = `<span style=\"color:var(--muted)\">${fmtDateTime(r.timestamp)}</span>${srcBadge}`;\n1166: meta = `<span style=\"color:var(--muted)\">${fmtDateTime(r.timestamp)}</span>${srcBadge} <span class=\"badge ${r.is_input_device?'mic':'sys'}\">${r.is_input_device?'MIC':'SYS'}</span>`;\n1307:function fmtTime(ts) {\n1312:function fmtDateTime(ts) {\n1320:function localTimeToUtc(timeStr) {\n1778:function _fmtSec(s) {\n1788: `${fmtDateTime(f.ts)} · ${f.app}${f.win ? ' / ' + f.win : ''}`;","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"role_description":"text"},{"role":"AXLink","text":"index.html","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"index.html","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"(lines 1308-1327)","depth":24,"role_description":"text"},{"role":"AXButton","text":"Thinking","depth":23,"role_description":"disclosure triangle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Thinking","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Now I have everything I need. I'll implement the frame-by-frame timer system that replaces","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"video.playbackRate","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"with wall-clock accurate playback, plus add the playhead time label. Let me make the changes:","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Edit","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"","depth":24,"role_description":"text"},{"role":"AXLink","text":"index.html","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"index.html","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"Added 1 line","depth":24,"role_description":"text"}]...
|
-7616568506802356149
|
4474475550963076503
|
visual_change
|
accessibility
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 2 pending changes
2
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update, 1 requires restart
3
Claude Code
Containers
EXPLORER
EXPLORER
Explorer Section: screenpipe [SSH: nas]
Explorer Section: screenpipe [SSH: nas]
SCREENPIPE [SSH: NAS]
#recycle
app
data
pipes
.gitignore
app_settings.json
archive.db
db.sqlite
screenpipe_sync.sh
screenpipe.db
Outline Section
OUTLINE
OUTLINE
Timeline Section
TIMELINE
TIMELINE
app_settings.json, Editor Group 1
screenpipe_sync.sh, Editor Group 1
db.sqlite-shm, preview, Editor Group 1
#!/bin/bash
# screenpipe_sync.sh
# Syncs Screenpipe SQLite data to a NAS archive database (append-only, no deletions).
# Also copies the day's video/frame data folder to the NAS.
#
# Usage:
# ./screenpipe_sync.sh # syncs yesterday (default)
# ./screenpipe_sync.sh 2026-04-15 # syncs a specific date
# ./screenpipe_sync.sh today # syncs today so far
#
# Cron example (runs at 3am daily):
# 0 3 * * * /Users/lukas/.screenpipe/screenpipe_sync.sh >> /Users/lukas/.screenpipe/sync.log 2>&1
set -euo pipefail
# ─── CONFIG ───────────────────────────────────────────────────────────────────
DB_SRC="${SCREENPIPE_DB:-$HOME/.screenpipe/db.sqlite}"
NAS_MOUNT="${NAS_MOUNT:-/Volumes/Test/screenpipe}"
NAS_DB="$NAS_MOUNT/archive.db"
NAS_DATA="$NAS_MOUNT/data"
LOG_FILE="$HOME/.screenpipe/sync.log"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
SCRIPT_START=$(date +%s)
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# ─── DATE ARGUMENT ────────────────────────────────────────────────────────────
if [ "${1:-}" = "today" ]; then
TARGET_DATE=$(date +%Y-%m-%d)
elif [ -n "${1:-}" ]; then
TARGET_DATE="$1"
if ! [[ "$TARGET_DATE" =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]]; then
echo "ERROR: Invalid date format. Use YYYY-MM-DD, 'today', or no argument for yesterday."
exit 1
fi
else
TARGET_DATE=$(date -v-1d +%Y-%m-%d)
fi
log "========================================"
log "Screenpipe sync starting for: $TARGET_DATE"
log "========================================"
# ─── PREFLIGHT ────────────────────────────────────────────────────────────────
step "Preflight checks"
if [ ! -f "$DB_SRC" ]; then
log "ERROR: Source DB not found at $DB_SRC"; exit 1
fi
printf " %-20s %s (%s)\n" "Source DB:" "OK" "$(du -sh "$DB_SRC" | cut -f1)"
if [ ! -d "$NAS_MOUNT" ]; then
log "ERROR: NAS not mounted at $NAS_MOUNT"; exit 1
fi
printf " %-20s %s\n" "NAS mount:" "OK $NAS_MOUNT"
# Check if DB already synced for this date
DB_ALREADY_SYNCED=false
if [ -f "$NAS_DB" ]; then
EXISTING=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';" 2>/dev/null || echo "0")
if [ "$EXISTING" -gt "0" ]; then
log "Date $TARGET_DATE already has $EXISTING frames in archive — skipping DB sync"
DB_ALREADY_SYNCED=true
else
printf " %-20s %s (%s)\n" "Archive DB:" "exists" "$(du -sh "$NAS_DB" | cut -f1)"
fi
else
printf " %-20s %s\n" "Archive DB:" "will be created"
fi
# Source data dir for this date
DATA_SRC="$HOME/.screenpipe/data/data/$TARGET_DATE"
if [ -d "$DATA_SRC" ]; then
DATA_SIZE=$(du -sh "$DATA_SRC" | cut -f1)
DATA_FILES=$(ls "$DATA_SRC" | wc -l | tr -d ' ')
printf " %-20s %s (%s files, %s)\n" "Data dir:" "OK" "$DATA_FILES" "$DATA_SIZE"
else
printf " %-20s %s\n" "Data dir:" "not found — skipping file copy"
fi
# ─── DB SYNC ──────────────────────────────────────────────────────────────────
if [ "$DB_ALREADY_SYNCED" = false ]; then
# ─── COUNT SOURCE ROWS ────────────────────────────────────────────────────
step "Counting source rows for $TARGET_DATE"
SRC_FRAMES=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';")
SRC_ELEMENTS=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
SRC_UI=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';")
SRC_OCR=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
SRC_MEETINGS=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM meetings WHERE date(meeting_start) = '$TARGET_DATE';")
printf " %-20s %s\n" "frames:" "$SRC_FRAMES"
printf " %-20s %s\n" "elements:" "$SRC_ELEMENTS"
printf " %-20s %s\n" "ui_events:" "$SRC_UI"
printf " %-20s %s\n" "ocr_text:" "$SRC_OCR"
printf " %-20s %s\n" "meetings:" "$SRC_MEETINGS"
if [ "$SRC_FRAMES" -eq "0" ]; then
log "No frames found for $TARGET_DATE — skipping DB sync"
DB_ALREADY_SYNCED=true
fi
fi
if [ "$DB_ALREADY_SYNCED" = false ]; then
# ─── INIT TABLES ──────────────────────────────────────────────────────────
step "Initialising tables, indexes, FTS"
run_sqlite_heredoc "creating tables" "
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
DETACH nas;
"
run_sqlite_heredoc "creating indexes" "
ATTACH '$NAS_DB' AS nas;
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
CREATE INDEX IF NOT EXISTS nas.idx_elements_frame_id ON elements(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_elements_frame_src_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_timestamp ON ui_events(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_app_name ON ui_events(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_frame_id ON ui_events(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_ocr_text_frame_id ON ocr_text(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_meetings_start ON meetings(meeting_start);
CREATE INDEX IF NOT EXISTS nas.idx_video_chunks_device ON video_chunks(device_name);
DETACH nas;
"
run_sqlite_heredoc "creating FTS tables" "
ATTACH '$NAS_DB' AS nas;
CREATE VIRTUAL TABLE IF NOT EXISTS nas.elements_fts USING fts5(
text, role, frame_id UNINDEXED,
content='elements', content_rowid='id', tokenize='unicode61'
);
CREATE VIRTUAL TABLE IF NOT EXISTS nas.frames_fts USING fts5(
full_text, app_name, window_name, browser_url, id UNINDEXED,
tokenize='unicode61'
);
CREATE VIRTUAL TABLE IF NOT EXISTS nas.ui_events_fts USING fts5(
text_content,
app_name,
window_title,
element_name,
content='ui_events',
content_rowid='id',
tokenize='unicode61'
);
DETACH nas;
"
# ─── SYNC DATA ────────────────────────────────────────────────────────────
step "Syncing data for $TARGET_DATE"
run_sqlite_heredoc "video_chunks" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.video_chunks
SELECT * FROM main.video_chunks
WHERE id IN (
SELECT DISTINCT video_chunk_id FROM main.frames
WHERE date(timestamp) = '$TARGET_DATE' AND video_chunk_id IS NOT NULL
);
DETACH nas;
"
run_sqlite_heredoc "frames ($SRC_FRAMES rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "ocr_text ($SRC_OCR rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.ocr_text
SELECT o.* FROM main.ocr_text o
JOIN main.frames f ON o.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "ui_events ($SRC_UI rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.ui_events
SELECT * FROM main.ui_events WHERE date(timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "elements ($SRC_ELEMENTS rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "meetings ($SRC_MEETINGS rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.meetings
SELECT * FROM main.meetings WHERE date(meeting_start) = '$TARGET_DATE';
DETACH nas;
"
# ─── FTS UPDATE ───────────────────────────────────────────────────────────
step "Updating FTS indexes"
run_sqlite_heredoc "elements_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.elements_fts(rowid, text, role)
SELECT e.id, e.text, e.role
FROM nas.elements e
JOIN nas.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE'
AND e.text IS NOT NULL;
DETACH nas;
"
run_sqlite_heredoc "frames_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.frames_fts(rowid, full_text, app_name, window_name, browser_url, id)
SELECT id, full_text, app_name, window_name, browser_url, id
FROM nas.frames
WHERE date(timestamp) = '$TARGET_DATE'
AND full_text IS NOT NULL;
DETACH nas;
"
run_sqlite_heredoc "ui_events_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.ui_events_fts(rowid, text_content, app_name, window_title, element_name)
SELECT id, text_content, app_name, window_title, element_name
FROM nas.ui_events
WHERE date(timestamp) = '$TARGET_DATE'
AND text_content IS NOT NULL;
DETACH nas;
"
# ─── VERIFY DB ────────────────────────────────────────────────────────────
step "Verifying DB"
V_FRAMES=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';")
V_ELEMENTS=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
V_UI=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';")
V_OCR=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
V_MEETINGS=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM meetings WHERE date(meeting_start)= '$TARGET_DATE';")
check "frames" "$V_FRAMES" "$SRC_FRAMES"
check "elements" "$V_ELEMENTS" "$SRC_ELEMENTS"
check "ui_events" "$V_UI" "$SRC_UI"
check "ocr_text" "$V_OCR" "$SRC_OCR"
check "meetings" "$V_MEETINGS" "$SRC_MEETINGS"
fi
# ─── COPY DATA FOLDER ─────────────────────────────────────────────────────────
# Always runs regardless of DB sync status
step "Copying data folder for $TARGET_DATE"
if [ -d "$DATA_SRC" ]; then
mkdir -p "$NAS_DATA/$TARGET_DATE"
RSYNC_START=$(date +%s)
printf " %-36s " "rsync $TARGET_DATE/ → NAS"
rsync -a --ignore-existing \
"$DATA_SRC/" \
"$NAS_DATA/$TARGET_DATE/" \
2>>"$LOG_FILE"
RSYNC_DUR=$(( $(date +%s) - RSYNC_START ))
COPIED_FILES=$(ls "$NAS_DATA/$TARGET_DATE" | wc -l | tr -d ' ')
SRC_FILES=$(ls "$DATA_SRC" | wc -l | tr -d ' ')
COPIED_SIZE=$(du -sh "$NAS_DATA/$TARGET_DATE" | cut -f1)
if [ "$COPIED_FILES" -eq "$SRC_FILES" ]; then
printf "\r %-36s ✓ %dm%02ds (%s files, %s)\n" \
"rsync $TARGET_DATE/ → NAS" \
"$(( RSYNC_DUR / 60 ))" "$(( RSYNC_DUR % 60 ))" \
"$COPIED_FILES" "$COPIED_SIZE" | tee -a "$LOG_FILE"
else
printf "\r %-36s ✗ %s / %s files\n" \
"rsync $TARGET_DATE/ → NAS" "$COPIED_FILES" "$SRC_FILES" | tee -a "$LOG_FILE"
fi
else
printf " %-36s %s\n" "rsync $TARGET_DATE/ → NAS" "skipped (no source dir)"
fi
# ─── SUMMARY ──────────────────────────────────────────────────────────────────
TOTAL_ELAPSED=$(( $(date +%s) - SCRIPT_START ))
DB_SIZE=$(du -sh "$NAS_DB" | cut -f1)
echo ""
log "Archive DB size: $DB_SIZE"
log "Total time: $(( TOTAL_ELAPSED / 60 ))m$(( TOTAL_ELAPSED % 60 ))s"
log "Sync complete for $TARGET_DATE"
log "========================================"
#!/bin/bash
# screenpipe_sync.sh
# Syncs Screenpipe SQLite data to a NAS archive database (append-only, no deletions).
# Also copies the day's video/frame data folder to the NAS.
#
# Usage:
# ./screenpipe_sync.sh # syncs yesterday (default)
# ./screenpipe_sync.sh 2026-04-15 # syncs a specific date
# ./screenpipe_sync.sh today # syncs today so far
#
# Cron example (runs at 3am daily):
# 0 3 * * * /Users/lukas/.screenpipe/screenpipe_sync.sh >> /Users/lukas/.screenpipe/sync.log 2>&1
set -euo pipefail
# ─── CONFIG ───────────────────────────────────────────────────────────────────
DB_SRC="${SCREENPIPE_DB:-$HOME/.screenpipe/db.sqlite}"
NAS_MOUNT="${NAS_MOUNT:-/Volumes/Test/screenpipe}"
NAS_DB="$NAS_MOUNT/archive.db"
NAS_DATA="$NAS_MOUNT/data"
LOG_FILE="$HOME/.screenpipe/sync.log"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
SCRIPT_START=$(date +%s)
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# ─── DATE ARGUMENT ────────────────────────────────────────────────────────────
if [ "${1:-}" = "today" ]; then
TARGET_DATE=$(date +%Y-%m-%d)
elif [ -n "${1:-}" ]; then
TARGET_DATE="$1"
if ! [[ "$TARGET_DATE" =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]]; then
echo "ERROR: Invalid date format. Use YYYY-MM-DD, 'today', or no argument for yesterday."
exit 1
fi
else
TARGET_DATE=$(date -v-1d +%Y-%m-%d)
fi
log "========================================"
log "Screenpipe sync starting for: $TARGET_DATE"
log "========================================"
# ─── PREFLIGHT ────────────────────────────────────────────────────────────────
step "Preflight checks"
if [ ! -f "$DB_SRC" ]; then
log "ERROR: Source DB not found at $DB_SRC"; exit 1
fi
printf " %-20s %s (%s)\n" "Source DB:" "OK" "$(du -sh "$DB_SRC" | cut -f1)"
if [ ! -d "$NAS_MOUNT" ]; then
log "ERROR: NAS not mounted at $NAS_MOUNT"; exit 1
fi
printf " %-20s %s\n" "NAS mount:" "OK $NAS_MOUNT"
# Check if DB already synced for this date
DB_ALREADY_SYNCED=false
if [ -f "$NAS_DB" ]; then
EXISTING=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';" 2>/dev/null || echo "0")
if [ "$EXISTING" -gt "0" ]; then
log "Date $TARGET_DATE already has $EXISTING frames in archive — skipping DB sync"
DB_ALREADY_SYNCED=true
else
printf " %-20s %s (%s)\n" "Archive DB:" "exists" "$(du -sh "$NAS_DB" | cut -f1)"
fi
else
printf " %-20s %s\n" "Archive DB:" "will be created"
fi
# Source data dir for this date
DATA_SRC="$HOME/.screenpipe/data/data/$TARGET_DATE"
if [ -d "$DATA_SRC" ]; then
DATA_SIZE=$(du -sh "$DATA_SRC" | cut -f1)
DATA_FILES=$(ls "$DATA_SRC" | wc -l | tr -d ' ')
printf " %-20s %s (%s files, %s)\n" "Data dir:" "OK" "$DATA_FILES" "$DATA_SIZE"
else
printf " %-20s %s\n" "Data dir:" "not found — skipping file copy"
fi
# ─── DB SYNC ──────────────────────────────────────────────────────────────────
if [ "$DB_ALREADY_SYNCED" = false ]; then
# ─── COUNT SOURCE ROWS ────────────────────────────────────────────────────
step "Counting source rows for $TARGET_DATE"
SRC_FRAMES=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';")
SRC_ELEMENTS=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
SRC_UI=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';")
SRC_OCR=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
SRC_MEETINGS=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM meetings WHERE date(meeting_start) = '$TARGET_DATE';")
printf " %-20s %s\n" "frames:" "$SRC_FRAMES"
printf " %-20s %s\n" "elements:" "$SRC_ELEMENTS"
printf " %-20s %s\n" "ui_events:" "$SRC_UI"
printf " %-20s %s\n" "ocr_text:" "$SRC_OCR"
printf " %-20s %s\n" "meetings:" "$SRC_MEETINGS"
if [ "$SRC_FRAMES" -eq "0" ]; then
log "No frames found for $TARGET_DATE — skipping DB sync"
DB_ALREADY_SYNCED=true
fi
fi
if [ "$DB_ALREADY_SYNCED" = false ]; then
# ─── INIT TABLES ──────────────────────────────────────────────────────────
step "Initialising tables, indexes, FTS"
run_sqlite_heredoc "creating tables" "
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
DETACH nas;
"
run_sqlite_heredoc "creating indexes" "
ATTACH '$NAS_DB' AS nas;
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
CREATE INDEX IF NOT EXISTS nas.idx_elements_frame_id ON elements(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_elements_frame_src_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_timestamp ON ui_events(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_app_name ON ui_events(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_frame_id ON ui_events(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_ocr_text_frame_id ON ocr_text(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_meetings_start ON meetings(meeting_start);
CREATE INDEX IF NOT EXISTS nas.idx_video_chunks_device ON video_chunks(device_name);
DETACH nas;
"
run_sqlite_heredoc "creating FTS tables" "
ATTACH '$NAS_DB' AS nas;
CREATE VIRTUAL TABLE IF NOT EXISTS nas.elements_fts USING fts5(
text, role, frame_id UNINDEXED,
content='elements', content_rowid='id', tokenize='unicode61'
);
CREATE VIRTUAL TABLE IF NOT EXISTS nas.frames_fts USING fts5(
full_text, app_name, window_name, browser_url, id UNINDEXED,
tokenize='unicode61'
);
CREATE VIRTUAL TABLE IF NOT EXISTS nas.ui_events_fts USING fts5(
text_content,
app_name,
window_title,
element_name,
content='ui_events',
content_rowid='id',
tokenize='unicode61'
);
DETACH nas;
"
# ─── SYNC DATA ────────────────────────────────────────────────────────────
step "Syncing data for $TARGET_DATE"
run_sqlite_heredoc "video_chunks" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.video_chunks
SELECT * FROM main.video_chunks
WHERE id IN (
SELECT DISTINCT video_chunk_id FROM main.frames
WHERE date(timestamp) = '$TARGET_DATE' AND video_chunk_id IS NOT NULL
);
DETACH nas;
"
run_sqlite_heredoc "frames ($SRC_FRAMES rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "ocr_text ($SRC_OCR rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.ocr_text
SELECT o.* FROM main.ocr_text o
JOIN main.frames f ON o.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "ui_events ($SRC_UI rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.ui_events
SELECT * FROM main.ui_events WHERE date(timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "elements ($SRC_ELEMENTS rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "meetings ($SRC_MEETINGS rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.meetings
SELECT * FROM main.meetings WHERE date(meeting_start) = '$TARGET_DATE';
DETACH nas;
"
# ─── FTS UPDATE ───────────────────────────────────────────────────────────
step "Updating FTS indexes"
run_sqlite_heredoc "elements_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.elements_fts(rowid, text, role)
SELECT e.id, e.text, e.role
FROM nas.elements e
JOIN nas.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE'
AND e.text IS NOT NULL;
DETACH nas;
"
run_sqlite_heredoc "frames_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.frames_fts(rowid, full_text, app_name, window_name, browser_url, id)
SELECT id, full_text, app_name, window_name, browser_url, id
FROM nas.frames
WHERE date(timestamp) = '$TARGET_DATE'
AND full_text IS NOT NULL;
DETACH nas;
"
run_sqlite_heredoc "ui_events_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.ui_events_fts(rowid, text_content, app_name, window_title, element_name)
SELECT id, text_content, app_name, window_title, element_name
FROM nas.ui_events
WHERE date(timestamp) = '$TARGET_DATE'
AND text_content IS NOT NULL;
DETACH nas;
"
# ─── VERIFY DB ────────────────────────────────────────────────────────────
step "Verifying DB"
V_FRAMES=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';")
V_ELEMENTS=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
V_UI=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';")
V_OCR=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
V_MEETINGS=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM meetings WHERE date(meeting_start)= '$TARGET_DATE';")
check "frames" "$V_FRAMES" "$SRC_FRAMES"
check "elements" "$V_ELEMENTS" "$SRC_ELEMENTS"
check "ui_events" "$V_UI" "$SRC_UI"
check "ocr_text" "$V_OCR" "$SRC_OCR"
check "meetings" "$V_MEETINGS" "$SRC_MEETINGS"
fi
# ─── COPY DATA FOLDER ─────────────────────────────────────────────────────────
# Always runs regardless of DB sync status
step "Copying data folder for $TARGET_DATE"
if [ -d "$DATA_SRC" ]; then
mkdir -p "$NAS_DATA/$TARGET_DATE"
RSYNC_START=$(date +%s)
printf " %-36s " "rsync $TARGET_DATE/ → NAS"
rsync -a --ignore-existing \
"$DATA_SRC/" \
"$NAS_DATA/$TARGET_DATE/" \
2>>"$LOG_FILE"
RSYNC_DUR=$(( $(date +%s) - RSYNC_START ))
COPIED_FILES=$(ls "$NAS_DATA/$TARGET_DATE" | wc -l | tr -d ' ')
SRC_FILES=$(ls "$DATA_SRC" | wc -l | tr -d ' ')
COPIED_SIZE=$(du -sh "$NAS_DATA/$TARGET_DATE" | cut -f1)
if [ "$COPIED_FILES" -eq "$SRC_FILES" ]; then
printf "\r %-36s ✓ %dm%02ds (%s files, %s)\n" \
"rsync $TARGET_DATE/ → NAS" \
"$(( RSYNC_DUR / 60 ))" "$(( RSYNC_DUR % 60 ))" \
"$COPIED_FILES" "$COPIED_SIZE" | tee -a "$LOG_FILE"
else
printf "\r %-36s ✗ %s / %s files\n" \
"rsync $TARGET_DATE/ → NAS" "$COPIED_FILES" "$SRC_FILES" | tee -a "$LOG_FILE"
fi
else
printf " %-36s %s\n" "rsync $TARGET_DATE/ → NAS" "skipped (no source dir)"
fi
# ─── SUMMARY ──────────────────────────────────────────────────────────────────
TOTAL_ELAPSED=$(( $(date +%s) - SCRIPT_START ))
DB_SIZE=$(du -sh "$NAS_DB" | cut -f1)
echo ""
log "Archive DB size: $DB_SIZE"
log "Total time: $(( TOTAL_ELAPSED / 60 ))m$(( TOTAL_ELAPSED % 60 ))s"
log "Sync complete for $TARGET_DATE"
log "========================================"
lets add ability to jump…, Editor Group 2
Problems (⇧⌘M)
PROBLEMS
Output (⇧⌘U)
OUTPUT
Debug Console (⇧⌘Y)
DEBUG CONSOLE
Terminal (⌃`)
TERMINAL
Ports
PORTS
remote SSH: nas
SSH: nas
screenpipe (Git) - master*, Checkout Branch/Tag...
master*
screenpipe (Git) - Synchronize Changes
No Problems
0
0
No Ports Forwarded
0
Notifications
Signed out
Signed out
Shell Script
Editor Language Status: $(copilot) No inline suggestion available, Inline suggestions
LF
UTF-8
Spaces: 2
Ln 352, Col 47 (13096 selected)
Screen Reader Optimized
git-commit Lukas Kovalik (23 hours ago)
Lukas Kovalik (23 hours ago)
Info: Downloading VS Code Server...
lets add ability to jump fro,m search to timeline so we can see the exact screen (also based on monitor and time
Session history
New session
Message actions
This session is being continued from a previous conversation that ran out of context. The summary below covers the earlier portion of the conversation.
Summary:
1. Primary Request and Intent:
The user has been developing a Screenpipe dashboard on a Synology NAS. Requests in chronological order:
- **Q1**: Are db.sqlite-shm and db.sqlite-wal used? → Explained WAL mode; cleaned up files.
- **Q2**: AND combination search (term1 + term2 must both appear) → Added "AND also" input field.
- **Q3**: Explain UTC time issue, show date in results, make Only/Skip apps use multiselect → Implemented all three.
- **Q4**: Point sqlite-web at archive.db, add second sqlite-web for db.sqlite → Updated docker-compose.yml, added two services on ports 8767/8768.
- **Q5**: "still the same" (container not picking up config) → Explained `up -d` vs `restart`.
- **Q6**: Add git, push to gitea.com/lakylak/screenpipe.git → Initialized repo, committed, pushed.
- **Q7**: Add Timetable tab with video playback and timeline → Full implementation with click-to-seek, auto-advancing chunks, legend.
- **Q8**: Add scroll/zoom on timeline, jump to specific time, better awareness → Implemented zoom (1×–32×), scrollable timeline, overview minimap, viewport indicator, Jump-to-time input, screenshot thumbnail.
- **Q9 (most recent)**: Make playing speed more than 8×, fix speed not working, show position on timeline → CSS fix done (wider playhead + time label style), remainder in progress.
2. Key Technical Concepts:
- **SQLite WAL mode**: db.sqlite-shm and db.sqlite-wal are WAL companion files; cleaned with `PRAGMA wal_checkpoint(TRUNCATE)`.
- **SQLite FTS5**: Space-separated terms = AND; `MATCH 'term1 term2'` requires both; OR requires explicit `OR` keyword.
- **FastAPI**: Python backend with route handlers in main.py, consumers pattern for DB queries.
- **Docker Compose**: App image is built (code baked in), not volume-mounted → requires `build` + `up -d` for code changes. `restart` doesn't re-read compose file — need `up -d`.
- **sqlite-web**: Read-only flag `-r`, pre-built image, no rebuild needed for config changes.
- **Video playback**: screenpipe records at 0.1–0.3 fps (timelapse). `seek = offset_index / fps` gives seconds into video chunk. ~245 chunks/day across 2 monitors. Videos may be encoded at standard fps making them very short at native speed.
- **Timeline rendering**: App-colored segments built by merging consecutive frames with same `app_name`. Percentage positions: `((ts - dayStart) / span * 100)%`.
- **Zoom/scroll**: Inner div width = `zoom × 100%`, outer wrapper has `overflow-x:auto`. Playhead position stays as % of inner div, which is correct at all zoom levels.
- **Timer-based speed**: For speed > 2×, browser `playbackRate` is unreliable on low-FPS video; correct approach is `setInterval` advancing `video.currentTime` by `speed * interval_ms / 1000` seconds per tick.
- **UTC vs local time**: Backend treats `time_from`/`time_to` as UTC. Frontend converts with `localTimeToUtc()` before sending.
- **Git**: `#recycle/` in .gitignore treated as comment — must escape as `\#recycle/`.
3. Files and Code Sections:
- **`/volume1/screenpipe/app/main.py`**
- Added `/api/apps` endpoint (all unique app names from frames table)
- Added `/api/timetable` endpoint (frames + video URLs + screenshot URLs per device per date)
- `/api/timetable` response structure: `{frames: [{ts, app, win, video_url, seek, screenshot_url}], devices: [...], device: "..."}`
- Key snippet:
```python
@app.get("/api/timetable"
)
async def timetable_data(d: str | None = Query(None), device: str | None = Query(None)):
...
rows = conn.execute(f"""
SELECT f.timestamp AS ts, f.app_name AS app, f.window_name AS win,
f.offset_index, f.snapshot_path,
vc.file_path AS video_path, vc.fps AS video_fps
FROM frames f
JOIN video_chunks vc ON f.video_chunk_id = vc.id
WHERE f.timestamp >= ? AND f.timestamp < ?
AND f.video_chunk_id IS NOT NULL {dev_clause}
ORDER BY f.timestamp
""", params).fetchall()
# seek = offset_index / fps, screenshot_url from _snapshot_to_url(snapshot_path)
```
- **`/volume1/screenpipe/app/docker-compose.yml`**
- Changed sqlite-web service name to `sqlite-web-archive` → port 8767 → `/data/archive.db`
- Added `sqlite-web-live` → port 8768 → `/data/db.sqlite`
- screenpipe-app: port 8766, `DB_PATH: /data/db.sqlite`, `TZ: Europe/Sofia`
- **`/volume1/screenpipe/app/static/index.html`** (single large file with all CSS/HTML/JS)
- **Search enhancements**:
- Added `id="sq2"` "AND also" input between search-row1 and search-row2
- Replaced `sOnlyApps`/`sSkipApps` text inputs with custom multiselect components (`id="msOnlyApps"`, `id="msSkipApps"`)
- Updated `buildUrl()` to combine `q + " " + q2` and convert times with `localTimeToUtc()`
- Added `fmtDateTime(ts)` showing "Apr 20 14:08" format
- Added `localTimeToUtc(timeStr)` converting local HH:MM to UTC
- Multiselect state: `const _msState = { msOnlyApps: new Set(), msSkipApps: new Set() }`
- **Timetable tab** (new page):
- Tab button added between Work Report and AI Summary
- `showPage` array updated: `['activity','search','audio','report','timetable','summary']`
- `refresh()` calls `loadTimetable()` when on timetable page
- **Timetable CSS** (key styles):
```css
.tt-scroll-wrap { overflow-x:auto; ... scrollbar-width:thin; }
.tt-inner { position:relative; height:52px; } /* width set dynamically */
.tt-playhead { position:absolute; top:0; width:3px; height:36px; background:white; box-shadow:0 0 8px rgba(255,255,255,.9); z-index:10; pointer-events:none; display:none; }
.tt-playhead-time { position:absolute; top:2px; font-size:9px; font-weight:600; color:white; background:rgba(0,0,0,.75); padding:1px 4px; border-radius:2px; white-space:nowrap; transform:translateX(-50%); z-index:12; pointer-events:none; display:none; }
.tt-overview-wrap { position:relative; height:14px; ... cursor:pointer; }
.tt-overview-vp { position:absolute; background:rgba(255,255,255,0.12); border:1px solid rgba(255,255,255,0.4); }
```
- **Timetable JS state variables**:
```javascript
let _ttFrames = [], _ttChunks = [], _ttCurChunk = -1;
let _ttDayStart = 0, _ttDayEnd = 0, _ttZoom = 1;
const _ttAppColors = {};
const TT_ZOOMS = [1, 2, 4, 8, 16, 32];
const TT_TICK_MIN = {1:30, 2:15, 4:10, 8:5, 16:2, 32:1};
```
- **Key JS functions**:
- `loadTimetable()` — fetches `/api/timetable`, groups chunks, renders
- `ttZoom(dir)` — changes zoom level, updates inner width, re-renders ticks, scrolls to playhead
- `ttTimelineClick(e)` — uses `inner.getBoundingClientRect()` (works correctly when scrolled)
- `ttOverviewClick(e)` — scrolls timeline + seeks video
- `ttUpdateOverviewVp()` — updates white viewport rect using `wrap.scrollLeft / inner.scrollWidth`
- `ttJumpToTime()` — parses time input, converts to ms, calls `ttSeekToMs`
- `ttSeekToMs(tsMs)` — binary-searches nearest frame, loads chunk, seeks video
- `_ttScrollToPlayhead(force)` — scrolls wrap so playhead stays at ~35% from left when Follow is checked
- `_ttMovePlayhead(tsMs)` — sets `ph.style.left` as percentage, calls `_ttScrollToPlayhead`
- `_ttShowNow(f)` — updates screenshot thumbnail + now-text div
- `ttSyncBtn()` — syncs play/pause button text
- Keyboard: Space=play/pause, ←/→=±10s, Ctrl+←/→=±30s, +/-=zoom
- **`/volume1/screenpipe/.gitignore`**
```
*.db, *.sqlite, *.sqlite-shm, *.sqlite-wal
data/, \#recycle/,
@eaDir/
app_settings.json, app/.env
__pycache__/, *.pyc, .DS_Store
```
4. Errors and Fixes:
- **`#recycle/` in .gitignore treated as comment**: `#` starts a comment in .gitignore. Fixed by escaping: `\#recycle/`. Also had to `git rm --cached "#recycle/desktop.ini"` to unstage it.
- **`sudo docker compose restart sqlite-web` didn't apply config change**: `restart` reuses existing container config, doesn't re-read compose file. Fix: `sudo docker compose up -d` recreates containers with new config.
- **Orphan container holding port 8767**: Old `screenpipe-sqlweb` container still running after rename. Fix: `sudo docker compose up -d --remove-orphans`.
- **`sudo docker` not accessible from Claude Code**: Interactive sudo required. User runs commands in NAS terminal.
- **`git config --global --add safe.directory /volume1/screenpipe`**: Required due to dubious ownership of NAS volume directory.
5. Problem Solving:
- **Time zone confusion in search**: Backend uses UTC for time_from/time_to; frontend displays local time. Solved by `localTimeToUtc()` converting before API call, and showing date+time in results.
- **sqlite-web not showing April 17–21 data**: Container was pointing at db.sqlite (old config), not archive.db. Fixed by updating docker-compose.yml + `up -d`.
- **Video playback speed**: Browser `video.playbackRate` is capped (~16× max in Chrome) and performs poorly for very low FPS (0.1–0.3 fps) screenpipe videos. Each chunk may only be 1–2 seconds of wall-clock encoded video, playing through instantly. Solution: implement timer-based frame-jumping for speed > 2× (in progress).
- **Playhead visibility**: White 2px line was hard to see. Fixed CSS to 3px width + stronger box-shadow + added `.tt-playhead-time` overlay label style.
6. All User Messages:
- "do we use db.sqlite-shm and db.sqlite-wal for anything right now? [image of search UI] Lets add ability to search with combination... Explain how does the search work time seems to work in utc maybe display date next to the time in results. Make only apps and skip apps multiselect with all available apps."
- "doi I need to restart?"
- "there is sudo docker compose"
- "no still the same"
- "add git. I have created gitea repo https://gitea.com/lakylak/screenpipe.git"
- "just do it" (re: git push)
- "how to make sure data in :8767 are accurate and point to archive.db"
- "I can't see older than 16th there should 21st of april. In http://[IP_ADDRESS]:8766/ I can see all but not on sqlite viewer http://[IP_ADDRESS]:8767"
- "ok lets add additional port to read db.sqlite, I would like to see the structure of official db that reads db.sqlite db and one for archive"
- [docker compose output showing orphan container error]
- "looks great. I want to have ability to scroll left and right and also to jump to specific time. I want to be more aware to what I see. Still it should be fast"
- "lets make the playing speed more than 8x"
- "still playing speed is not showing properly still just in one second. also I want to see in timeline where I am"
7. Pending Tasks:
- **Playback speed fix** (in progress, partially done):
- Add `<div class="tt-playhead-time" id="ttPlayheadTime"></div>` inside `ttInner` HTML
- Implement `_ttStartSpeedTimer(speed)` / `_ttStopSpeedTimer()` / `ttSetSpeed(speed)` functions
- Update speed select `onchange` to call `ttSetSpeed(+this.value)`
- Add 64× option to speed select
- Update `_ttMovePlayhead` to also update `ttPlayheadTime` label
- Update `ttSyncBtn` to start/stop timer based on play state + speed
- Update `ttNextChunk` and `ttSeekToMs` to stop timer (restarted by onplay → ttSyncBtn)
- Rebuild Docker image after changes
8. Current Work:
Working on fixing two issues with the Timetable tab:
1. **Playback speed**: `video.playbackRate` doesn't work well for low-FPS screenpipe videos. The plan is to implement a `setInterval`-based frame-jumper for speed > 2× that advances `video.currentTime` by `speed * intervalMs / 1000` every 100–200ms, bypassing browser playbackRate limits.
2. **Timeline position indicator**: Playhead not prominent enough.
**CSS already changed** in `/volume1/screenpipe/app/static/index.html`:
```css
.tt-playhead { position:absolute; top:0; width:3px; height:36px; background:white; box-shadow:0 0 8px rgba(255,255,255,.9); z-index:10; pointer-events:none; display:none; }
.tt-playhead-time { position:absolute; top:2px; font-size:9px; font-weight:600; color:white; background:rgba(0,0,0,.75); padding:1px 4px; border-radius:2px; white-space:nowrap; transform:translateX(-50%); z-index:12; pointer-events:none; display:none; }
```
Session was interrupted by summary request after this CSS edit, mid-implementation.
9. Optional Next Step:
Continuing the fix for: "still playing speed is not showing properly still just in one second. also I want to see in timeline where I am"
The next steps in order are:
1. Add `<div class="tt-playhead-time" id="ttPlayheadTime"></div>` to the HTML inside `#ttInner` (after the existing `.tt-playhead` div)
2. Update `_ttMovePlayhead` to set `ttPlayheadTime` position and text content with `fmtTime()`
3. Add timer-based speed system to JS (new functions `_ttStartSpeedTimer`, `_ttStopSpeedTimer`, `ttSetSpeed`)
4. Update speed select's `onchange` to `ttSetSpeed(+this.value)` and add 64× option
5. Update `ttSyncBtn`, `ttNextChunk`, `ttSeekToMs` to integrate with timer
6. Rebuild: `sudo docker compose build screenpipe-app && sudo docker compose up -d screenpipe-app`
If you need specific details from before compaction (like exact code snippets, error messages, or content you generated), read the full transcript at: /home/Adm1n/.claude/projects/-volume1-screenpipe/7777f46e-1e40-4051-b4bb-f43aedd59556.jsonl
Continue the conversation from where it left off without asking the user any further questions. Resume directly — do not acknowledge the summary, do not recap what was happening, do not preface with "I'll continue" or similar. Pick up the last task as if the break never happened.
Thinking
Thinking
Bash
Find timetable speed and playhead related code
IN
grep -n "tt-playhead\|ttPlayhead\|ttInner\|_ttMovePlayhead\|ttSetSpeed\|_ttStartSpeed\|_ttStopSpeed\|ttSyncBtn\|playbackRate\|speed.*select\|spdSel\|ttSpeed" /volume1/screenpipe/app/static/index.html | head -80
Copy code to clipboard
OUT
207:.tt-playhead { position:absolute; top:0; width:3px; height:36px; background:white; box-shadow:0 0 8px rgba(255,255,255,.9); z-index:10; pointer-events:none; display:none; }
208:.tt-playhead-time { position:absolute; top:2px; font-size:9px; font-weight:600; color:white; background:rgba(0,0,0,.75); padding:1px 4px; border-radius:2px; white-space:nowrap; transform:translateX(-50%); z-index:12; pointer-events:none; display:none; }
580: <div class="tt-inner" id="ttInner" onclick="ttTimelineClick(event)">
583: <div class="tt-playhead" id="ttPlayhead"></div>
598: onpause="ttSyncBtn()"
599: onplay="ttSyncBtn()">
607: <select id="ttSpeed" onchange="document.getElementById('ttVideo').playbackRate=+this.value">
1624: document.getElementById('ttInner').style.width = '100%';
1632: document.getElementById('ttPlayhead').style.display = 'none';
1694: document.getElementById('ttInner').style.width = (_ttZoom * 100) + '%';
1700: const inner = document.getElementById('ttInner');
1710: const inner = document.getElementById('ttInner');
1718: const inner = document.getElementById('ttInner');
1750: _ttMovePlayhead(new Date(best.ts).getTime());
1772: _ttMovePlayhead(new Date(best.ts).getTime());
1791:function _ttMovePlayhead(tsMs) {
1792: const ph = document.getElementById('ttPlayhead');
1802: const ph = document.getElementById('ttPlayhead');
1805: const inner = document.getElementById('ttInner');
1819:function ttSyncBtn() {
Read
index.html
index.html
(lines 576-625)
Read
index.html
index.html
(lines 1786-1865)
Thinking
Thinking
Bash
Find chunk loading and playhead update functions
IN
grep -n "ttUpdatePlayhead\|ttNextChunk\|ttLoadChunk\|_ttCurChunk\|_ttChunks\|_ttFrames" /volume1/screenpipe/app/static/index.html | head -50
Copy code to clipboard
OUT
596: onended="ttNextChunk()"
597: ontimeupdate="ttUpdatePlayhead()"
1569:let _ttFrames = [];
1570:let _ttChunks = [];
1571:let _ttCurChunk = -1;
1607: _ttFrames = data.frames;
1609: for (const f of _ttFrames) {
1613: _ttChunks = [...chunkMap.values()];
1614: _ttCurChunk = -1;
1616: _ttDayStart = new Date(_ttFrames[0].ts).getTime();
1617: _ttDayEnd = new Date(_ttFrames[_ttFrames.length - 1].ts).getTime();
1620: for (const f of _ttFrames) _ttColor(f.app);
1640: for (const f of _ttFrames) {
1736: if (!_ttFrames.length) return;
1737: let best = _ttFrames[0], minDiff = Infinity;
1738: for (const f of _ttFrames) {
1742: const ci = _ttChunks.findIndex(ch => ch[0].video_url === best.video_url);
1744: _ttCurChunk = ci;
1753:function ttNextChunk() {
1754: if (_ttCurChunk + 1 >= _ttChunks.length) return;
1755: _ttCurChunk++;
1757: video.src = _ttChunks[_ttCurChunk][0].video_url;
1762:function ttUpdatePlayhead() {
1764: if (_ttCurChunk < 0 || _ttCurChunk >= _ttChunks.length) return;
1765: const chunk = _ttChunks[_ttCurChunk];
Read
index.html
index.html
(lines 1754-1793)
Thinking
Thinking
Read
index.html
index.html
(lines 1701-1760)
Thinking
Thinking
Read
index.html
index.html
(lines 1561-1640)
Thinking
Thinking
Bash
Find time formatting functions
IN
grep -n "function fmtTime\|function fmtDate\|function _fmt\|localTimeToUtc\|fmtDateTime" /volume1/screenpipe/app/static/index.html | head -20
Copy code to clipboard
OUT
1088: if (tf) url += `&time_from=${localTimeToUtc(tf)}`;
1089: if (tt) url += `&time_to=${localTimeToUtc(tt)}`;
1153: let meta = `<span style="color:var(--muted)">${fmtDateTime(r.timestamp)}</span>${srcBadge}`;
1166: meta = `<span style="color:var(--muted)">${fmtDateTime(r.timestamp)}</span>${srcBadge} <span class="badge ${r.is_input_device?'mic':'sys'}">${r.is_input_device?'MIC':'SYS'}</span>`;
1307:function fmtTime(ts) {
1312:function fmtDateTime(ts) {
1320:function localTimeToUtc(timeStr) {
1778:function _fmtSec(s) {
1788: `${fmtDateTime(f.ts)} · ${f.app}${f.win ? ' / ' + f.win : ''}`;
Read
index.html
index.html
(lines 1308-1327)
Thinking
Thinking
Now I have everything I need. I'll implement the frame-by-frame timer system that replaces
video.playbackRate
with wall-clock accurate playback, plus add the playhead time label. Let me make the changes:
Edit
index.html
index.html
Added 1 line...
|
81022
|
|
81023
|
2156
|
7
|
2026-04-25T15:56:19.227318+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-25/1777 /Users/lukas/.screenpipe/data/data/2026-04-25/1777132579227_m1.jpg...
|
Code
|
screenpipe_sync.sh — screenpipe [SSH: nas]
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 2 pending changes
2
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update, 1 requires restart
3
Claude Code
Containers
EXPLORER
EXPLORER
Explorer Section: screenpipe [SSH: nas]
Explorer Section: screenpipe [SSH: nas]
SCREENPIPE [SSH: NAS]
#recycle
app
data
pipes
.gitignore
app_settings.json
archive.db
db.sqlite
screenpipe_sync.sh
screenpipe.db
Outline Section
OUTLINE
OUTLINE
Timeline Section
TIMELINE
TIMELINE
app_settings.json, Editor Group 1
screenpipe_sync.sh, Editor Group 1
db.sqlite-shm, preview, Editor Group 1
#!/bin/bash
# screenpipe_sync.sh
# Syncs Screenpipe SQLite data to a NAS archive database (append-only, no deletions).
# Also copies the day's video/frame data folder to the NAS.
#
# Usage:
# ./screenpipe_sync.sh # syncs yesterday (default)
# ./screenpipe_sync.sh 2026-04-15 # syncs a specific date
# ./screenpipe_sync.sh today # syncs today so far
#
# Cron example (runs at 3am daily):
# 0 3 * * * /Users/lukas/.screenpipe/screenpipe_sync.sh >> /Users/lukas/.screenpipe/sync.log 2>&1
set -euo pipefail
# ─── CONFIG ───────────────────────────────────────────────────────────────────
DB_SRC="${SCREENPIPE_DB:-$HOME/.screenpipe/db.sqlite}"
NAS_MOUNT="${NAS_MOUNT:-/Volumes/Test/screenpipe}"
NAS_DB="$NAS_MOUNT/archive.db"
NAS_DATA="$NAS_MOUNT/data"
LOG_FILE="$HOME/.screenpipe/sync.log"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
SCRIPT_START=$(date +%s)
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# ─── DATE ARGUMENT ────────────────────────────────────────────────────────────
if [ "${1:-}" = "today" ]; then
TARGET_DATE=$(date +%Y-%m-%d)
elif [ -n "${1:-}" ]; then
TARGET_DATE="$1"
if ! [[ "$TARGET_DATE" =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]]; then
echo "ERROR: Invalid date format. Use YYYY-MM-DD, 'today', or no argument for yesterday."
exit 1
fi
else
TARGET_DATE=$(date -v-1d +%Y-%m-%d)
fi
log "========================================"
log "Screenpipe sync starting for: $TARGET_DATE"
log "========================================"
# ─── PREFLIGHT ────────────────────────────────────────────────────────────────
step "Preflight checks"
if [ ! -f "$DB_SRC" ]; then
log "ERROR: Source DB not found at $DB_SRC"; exit 1
fi
printf " %-20s %s (%s)\n" "Source DB:" "OK" "$(du -sh "$DB_SRC" | cut -f1)"
if [ ! -d "$NAS_MOUNT" ]; then
log "ERROR: NAS not mounted at $NAS_MOUNT"; exit 1
fi
printf " %-20s %s\n" "NAS mount:" "OK $NAS_MOUNT"
# Check if DB already synced for this date
DB_ALREADY_SYNCED=false
if [ -f "$NAS_DB" ]; then
EXISTING=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';" 2>/dev/null || echo "0")
if [ "$EXISTING" -gt "0" ]; then
log "Date $TARGET_DATE already has $EXISTING frames in archive — skipping DB sync"
DB_ALREADY_SYNCED=true
else
printf " %-20s %s (%s)\n" "Archive DB:" "exists" "$(du -sh "$NAS_DB" | cut -f1)"
fi
else
printf " %-20s %s\n" "Archive DB:" "will be created"
fi
# Source data dir for this date
DATA_SRC="$HOME/.screenpipe/data/data/$TARGET_DATE"
if [ -d "$DATA_SRC" ]; then
DATA_SIZE=$(du -sh "$DATA_SRC" | cut -f1)
DATA_FILES=$(ls "$DATA_SRC" | wc -l | tr -d ' ')
printf " %-20s %s (%s files, %s)\n" "Data dir:" "OK" "$DATA_FILES" "$DATA_SIZE"
else
printf " %-20s %s\n" "Data dir:" "not found — skipping file copy"
fi
# ─── DB SYNC ──────────────────────────────────────────────────────────────────
if [ "$DB_ALREADY_SYNCED" = false ]; then
# ─── COUNT SOURCE ROWS ────────────────────────────────────────────────────
step "Counting source rows for $TARGET_DATE"
SRC_FRAMES=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';")
SRC_ELEMENTS=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
SRC_UI=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';")
SRC_OCR=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
SRC_MEETINGS=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM meetings WHERE date(meeting_start) = '$TARGET_DATE';")
printf " %-20s %s\n" "frames:" "$SRC_FRAMES"
printf " %-20s %s\n" "elements:" "$SRC_ELEMENTS"
printf " %-20s %s\n" "ui_events:" "$SRC_UI"
printf " %-20s %s\n" "ocr_text:" "$SRC_OCR"
printf " %-20s %s\n" "meetings:" "$SRC_MEETINGS"
if [ "$SRC_FRAMES" -eq "0" ]; then
log "No frames found for $TARGET_DATE — skipping DB sync"
DB_ALREADY_SYNCED=true
fi
fi
if [ "$DB_ALREADY_SYNCED" = false ]; then
# ─── INIT TABLES ──────────────────────────────────────────────────────────
step "Initialising tables, indexes, FTS"
run_sqlite_heredoc "creating tables" "
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
DETACH nas;
"
run_sqlite_heredoc "creating indexes" "
ATTACH '$NAS_DB' AS nas;
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
CREATE INDEX IF NOT EXISTS nas.idx_elements_frame_id ON elements(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_elements_frame_src_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_timestamp ON ui_events(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_app_name ON ui_events(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_frame_id ON ui_events(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_ocr_text_frame_id ON ocr_text(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_meetings_start ON meetings(meeting_start);
CREATE INDEX IF NOT EXISTS nas.idx_video_chunks_device ON video_chunks(device_name);
DETACH nas;
"
run_sqlite_heredoc "creating FTS tables" "
ATTACH '$NAS_DB' AS nas;
CREATE VIRTUAL TABLE IF NOT EXISTS nas.elements_fts USING fts5(
text, role, frame_id UNINDEXED,
content='elements', content_rowid='id', tokenize='unicode61'
);
CREATE VIRTUAL TABLE IF NOT EXISTS nas.frames_fts USING fts5(
full_text, app_name, window_name, browser_url, id UNINDEXED,
tokenize='unicode61'
);
CREATE VIRTUAL TABLE IF NOT EXISTS nas.ui_events_fts USING fts5(
text_content,
app_name,
window_title,
element_name,
content='ui_events',
content_rowid='id',
tokenize='unicode61'
);
DETACH nas;
"
# ─── SYNC DATA ────────────────────────────────────────────────────────────
step "Syncing data for $TARGET_DATE"
run_sqlite_heredoc "video_chunks" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.video_chunks
SELECT * FROM main.video_chunks
WHERE id IN (
SELECT DISTINCT video_chunk_id FROM main.frames
WHERE date(timestamp) = '$TARGET_DATE' AND video_chunk_id IS NOT NULL
);
DETACH nas;
"
run_sqlite_heredoc "frames ($SRC_FRAMES rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "ocr_text ($SRC_OCR rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.ocr_text
SELECT o.* FROM main.ocr_text o
JOIN main.frames f ON o.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "ui_events ($SRC_UI rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.ui_events
SELECT * FROM main.ui_events WHERE date(timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "elements ($SRC_ELEMENTS rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "meetings ($SRC_MEETINGS rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.meetings
SELECT * FROM main.meetings WHERE date(meeting_start) = '$TARGET_DATE';
DETACH nas;
"
# ─── FTS UPDATE ───────────────────────────────────────────────────────────
step "Updating FTS indexes"
run_sqlite_heredoc "elements_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.elements_fts(rowid, text, role)
SELECT e.id, e.text, e.role
FROM nas.elements e
JOIN nas.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE'
AND e.text IS NOT NULL;
DETACH nas;
"
run_sqlite_heredoc "frames_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.frames_fts(rowid, full_text, app_name, window_name, browser_url, id)
SELECT id, full_text, app_name, window_name, browser_url, id
FROM nas.frames
WHERE date(timestamp) = '$TARGET_DATE'
AND full_text IS NOT NULL;
DETACH nas;
"
run_sqlite_heredoc "ui_events_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.ui_events_fts(rowid, text_content, app_name, window_title, element_name)
SELECT id, text_content, app_name, window_title, element_name
FROM nas.ui_events
WHERE date(timestamp) = '$TARGET_DATE'
AND text_content IS NOT NULL;
DETACH nas;
"
# ─── VERIFY DB ────────────────────────────────────────────────────────────
step "Verifying DB"
V_FRAMES=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';")
V_ELEMENTS=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
V_UI=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';")
V_OCR=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
V_MEETINGS=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM meetings WHERE date(meeting_start)= '$TARGET_DATE';")
check "frames" "$V_FRAMES" "$SRC_FRAMES"
check "elements" "$V_ELEMENTS" "$SRC_ELEMENTS"
check "ui_events" "$V_UI" "$SRC_UI"
check "ocr_text" "$V_OCR" "$SRC_OCR"
check "meetings" "$V_MEETINGS" "$SRC_MEETINGS"
fi
# ─── COPY DATA FOLDER ─────────────────────────────────────────────────────────
# Always runs regardless of DB sync status
step "Copying data folder for $TARGET_DATE"
if [ -d "$DATA_SRC" ]; then
mkdir -p "$NAS_DATA/$TARGET_DATE"
RSYNC_START=$(date +%s)
printf " %-36s " "rsync $TARGET_DATE/ → NAS"
rsync -a --ignore-existing \
"$DATA_SRC/" \
"$NAS_DATA/$TARGET_DATE/" \
2>>"$LOG_FILE"
RSYNC_DUR=$(( $(date +%s) - RSYNC_START ))
COPIED_FILES=$(ls "$NAS_DATA/$TARGET_DATE" | wc -l | tr -d ' ')
SRC_FILES=$(ls "$DATA_SRC" | wc -l | tr -d ' ')
COPIED_SIZE=$(du -sh "$NAS_DATA/$TARGET_DATE" | cut -f1)
if [ "$COPIED_FILES" -eq "$SRC_FILES" ]; then
printf "\r %-36s ✓ %dm%02ds (%s files, %s)\n" \
"rsync $TARGET_DATE/ → NAS" \
"$(( RSYNC_DUR / 60 ))" "$(( RSYNC_DUR % 60 ))" \
"$COPIED_FILES" "$COPIED_SIZE" | tee -a "$LOG_FILE"
else
printf "\r %-36s ✗ %s / %s files\n" \
"rsync $TARGET_DATE/ → NAS" "$COPIED_FILES" "$SRC_FILES" | tee -a "$LOG_FILE"
fi
else
printf " %-36s %s\n" "rsync $TARGET_DATE/ → NAS" "skipped (no source dir)"
fi
# ─── SUMMARY ──────────────────────────────────────────────────────────────────
TOTAL_ELAPSED=$(( $(date +%s) - SCRIPT_START ))
DB_SIZE=$(du -sh "$NAS_DB" | cut -f1)
echo ""
log "Archive DB size: $DB_SIZE"
log "Total time: $(( TOTAL_ELAPSED / 60 ))m$(( TOTAL_ELAPSED % 60 ))s"
log "Sync complete for $TARGET_DATE"
log "========================================"
#!/bin/bash
# screenpipe_sync.sh
# Syncs Screenpipe SQLite data to a NAS archive database (append-only, no deletions).
# Also copies the day's video/frame data folder to the NAS.
#
# Usage:
# ./screenpipe_sync.sh # syncs yesterday (default)
# ./screenpipe_sync.sh 2026-04-15 # syncs a specific date
# ./screenpipe_sync.sh today # syncs today so far
#
# Cron example (runs at 3am daily):
# 0 3 * * * /Users/lukas/.screenpipe/screenpipe_sync.sh >> /Users/lukas/.screenpipe/sync.log 2>&1
set -euo pipefail
# ─── CONFIG ───────────────────────────────────────────────────────────────────
DB_SRC="${SCREENPIPE_DB:-$HOME/.screenpipe/db.sqlite}"
NAS_MOUNT="${NAS_MOUNT:-/Volumes/Test/screenpipe}"
NAS_DB="$NAS_MOUNT/archive.db"
NAS_DATA="$NAS_MOUNT/data"
LOG_FILE="$HOME/.screenpipe/sync.log"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
SCRIPT_START=$(date +%s)
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# ─── DATE ARGUMENT ────────────────────────────────────────────────────────────
if [ "${1:-}" = "today" ]; then
TARGET_DATE=$(date +%Y-%m-%d)
elif [ -n "${1:-}" ]; then
TARGET_DATE="$1"
if ! [[ "$TARGET_DATE" =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]]; then
echo "ERROR: Invalid date format. Use YYYY-MM-DD, 'today', or no argument for yesterday."
exit 1
fi
else
TARGET_DATE=$(date -v-1d +%Y-%m-%d)
fi
log "========================================"
log "Screenpipe sync starting for: $TARGET_DATE"
log "========================================"
# ─── PREFLIGHT ────────────────────────────────────────────────────────────────
step "Preflight checks"
if [ ! -f "$DB_SRC" ]; then
log "ERROR: Source DB not found at $DB_SRC"; exit 1
fi
printf " %-20s %s (%s)\n" "Source DB:" "OK" "$(du -sh "$DB_SRC" | cut -f1)"
if [ ! -d "$NAS_MOUNT" ]; then
log "ERROR: NAS not mounted at $NAS_MOUNT"; exit 1
fi
printf " %-20s %s\n" "NAS mount:" "OK $NAS_MOUNT"
# Check if DB already synced for this date
DB_ALREADY_SYNCED=false
if [ -f "$NAS_DB" ]; then
EXISTING=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';" 2>/dev/null || echo "0")
if [ "$EXISTING" -gt "0" ]; then
log "Date $TARGET_DATE already has $EXISTING frames in archive — skipping DB sync"
DB_ALREADY_SYNCED=true
else
printf " %-20s %s (%s)\n" "Archive DB:" "exists" "$(du -sh "$NAS_DB" | cut -f1)"
fi
else
printf " %-20s %s\n" "Archive DB:" "will be created"
fi
# Source data dir for this date
DATA_SRC="$HOME/.screenpipe/data/data/$TARGET_DATE"
if [ -d "$DATA_SRC" ]; then
DATA_SIZE=$(du -sh "$DATA_SRC" | cut -f1)
DATA_FILES=$(ls "$DATA_SRC" | wc -l | tr -d ' ')
printf " %-20s %s (%s files, %s)\n" "Data dir:" "OK" "$DATA_FILES" "$DATA_SIZE"
else
printf " %-20s %s\n" "Data dir:" "not found — skipping file copy"
fi
# ─── DB SYNC ──────────────────────────────────────────────────────────────────
if [ "$DB_ALREADY_SYNCED" = false ]; then
# ─── COUNT SOURCE ROWS ────────────────────────────────────────────────────
step "Counting source rows for $TARGET_DATE"
SRC_FRAMES=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';")
SRC_ELEMENTS=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
SRC_UI=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';")
SRC_OCR=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
SRC_MEETINGS=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM meetings WHERE date(meeting_start) = '$TARGET_DATE';")
printf " %-20s %s\n" "frames:" "$SRC_FRAMES"
printf " %-20s %s\n" "elements:" "$SRC_ELEMENTS"
printf " %-20s %s\n" "ui_events:" "$SRC_UI"
printf " %-20s %s\n" "ocr_text:" "$SRC_OCR"
printf " %-20s %s\n" "meetings:" "$SRC_MEETINGS"
if [ "$SRC_FRAMES" -eq "0" ]; then
log "No frames found for $TARGET_DATE — skipping DB sync"
DB_ALREADY_SYNCED=true
fi
fi
if [ "$DB_ALREADY_SYNCED" = false ]; then
# ─── INIT TABLES ──────────────────────────────────────────────────────────
step "Initialising tables, indexes, FTS"
run_sqlite_heredoc "creating tables" "
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
DETACH nas;
"
run_sqlite_heredoc "creating indexes" "
ATTACH '$NAS_DB' AS nas;
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
CREATE INDEX IF NOT EXISTS nas.idx_elements_frame_id ON elements(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_elements_frame_src_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_timestamp ON ui_events(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_app_name ON ui_events(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_frame_id ON ui_events(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_ocr_text_frame_id ON ocr_text(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_meetings_start ON meetings(meeting_start);
CREATE INDEX IF NOT EXISTS nas.idx_video_chunks_device ON video_chunks(device_name);
DETACH nas;
"
run_sqlite_heredoc "creating FTS tables" "
ATTACH '$NAS_DB' AS nas;
CREATE VIRTUAL TABLE IF NOT EXISTS nas.elements_fts USING fts5(
text, role, frame_id UNINDEXED,
content='elements', content_rowid='id', tokenize='unicode61'
);
CREATE VIRTUAL TABLE IF NOT EXISTS nas.frames_fts USING fts5(
full_text, app_name, window_name, browser_url, id UNINDEXED,
tokenize='unicode61'
);
CREATE VIRTUAL TABLE IF NOT EXISTS nas.ui_events_fts USING fts5(
text_content,
app_name,
window_title,
element_name,
content='ui_events',
content_rowid='id',
tokenize='unicode61'
);
DETACH nas;
"
# ─── SYNC DATA ────────────────────────────────────────────────────────────
step "Syncing data for $TARGET_DATE"
run_sqlite_heredoc "video_chunks" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.video_chunks
SELECT * FROM main.video_chunks
WHERE id IN (
SELECT DISTINCT video_chunk_id FROM main.frames
WHERE date(timestamp) = '$TARGET_DATE' AND video_chunk_id IS NOT NULL
);
DETACH nas;
"
run_sqlite_heredoc "frames ($SRC_FRAMES rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "ocr_text ($SRC_OCR rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.ocr_text
SELECT o.* FROM main.ocr_text o
JOIN main.frames f ON o.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "ui_events ($SRC_UI rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.ui_events
SELECT * FROM main.ui_events WHERE date(timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "elements ($SRC_ELEMENTS rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "meetings ($SRC_MEETINGS rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.meetings
SELECT * FROM main.meetings WHERE date(meeting_start) = '$TARGET_DATE';
DETACH nas;
"
# ─── FTS UPDATE ───────────────────────────────────────────────────────────
step "Updating FTS indexes"
run_sqlite_heredoc "elements_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.elements_fts(rowid, text, role)
SELECT e.id, e.text, e.role
FROM nas.elements e
JOIN nas.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE'
AND e.text IS NOT NULL;
DETACH nas;
"
run_sqlite_heredoc "frames_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.frames_fts(rowid, full_text, app_name, window_name, browser_url, id)
SELECT id, full_text, app_name, window_name, browser_url, id
FROM nas.frames
WHERE date(timestamp) = '$TARGET_DATE'
AND full_text IS NOT NULL;
DETACH nas;
"
run_sqlite_heredoc "ui_events_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.ui_events_fts(rowid, text_content, app_name, window_title, element_name)
SELECT id, text_content, app_name, window_title, element_name
FROM nas.ui_events
WHERE date(timestamp) = '$TARGET_DATE'
AND text_content IS NOT NULL;
DETACH nas;
"
# ─── VERIFY DB ────────────────────────────────────────────────────────────
step "Verifying DB"
V_FRAMES=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';")
V_ELEMENTS=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
V_UI=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';")
V_OCR=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
V_MEETINGS=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM meetings WHERE date(meeting_start)= '$TARGET_DATE';")
check "frames" "$V_FRAMES" "$SRC_FRAMES"
check "elements" "$V_ELEMENTS" "$SRC_ELEMENTS"
check "ui_events" "$V_UI" "$SRC_UI"
check "ocr_text" "$V_OCR" "$SRC_OCR"
check "meetings" "$V_MEETINGS" "$SRC_MEETINGS"
fi
# ─── COPY DATA FOLDER ─────────────────────────────────────────────────────────
# Always runs regardless of DB sync status
step "Copying data folder for $TARGET_DATE"
if [ -d "$DATA_SRC" ]; then
mkdir -p "$NAS_DATA/$TARGET_DATE"
RSYNC_START=$(date +%s)
printf " %-36s " "rsync $TARGET_DATE/ → NAS"
rsync -a --ignore-existing \
"$DATA_SRC/" \
"$NAS_DATA/$TARGET_DATE/" \
2>>"$LOG_FILE"
RSYNC_DUR=$(( $(date +%s) - RSYNC_START ))
COPIED_FILES=$(ls "$NAS_DATA/$TARGET_DATE" | wc -l | tr -d ' ')
SRC_FILES=$(ls "$DATA_SRC" | wc -l | tr -d ' ')
COPIED_SIZE=$(du -sh "$NAS_DATA/$TARGET_DATE" | cut -f1)
if [ "$COPIED_FILES" -eq "$SRC_FILES" ]; then
printf "\r %-36s ✓ %dm%02ds (%s files, %s)\n" \
"rsync $TARGET_DATE/ → NAS" \
"$(( RSYNC_DUR / 60 ))" "$(( RSYNC_DUR % 60 ))" \
"$COPIED_FILES" "$COPIED_SIZE" | tee -a "$LOG_FILE"
else
printf "\r %-36s ✗ %s / %s files\n" \
"rsync $TARGET_DATE/ → NAS" "$COPIED_FILES" "$SRC_FILES" | tee -a "$LOG_FILE"
fi
else
printf " %-36s %s\n" "rsync $TARGET_DATE/ → NAS" "skipped (no source dir)"
fi
# ─── SUMMARY ──────────────────────────────────────────────────────────────────
TOTAL_ELAPSED=$(( $(date +%s) - SCRIPT_START ))
DB_SIZE=$(du -sh "$NAS_DB" | cut -f1)
echo ""
log "Archive DB size: $DB_SIZE"
log "Total time: $(( TOTAL_ELAPSED / 60 ))m$(( TOTAL_ELAPSED % 60 ))s"
log "Sync complete for $TARGET_DATE"
log "========================================"
lets add ability to jump…, Editor Group 2
Problems (⇧⌘M)
PROBLEMS
Output (⇧⌘U)
OUTPUT
Debug Console (⇧⌘Y)
DEBUG CONSOLE
Terminal (⌃`)
TERMINAL
Ports
PORTS
remote SSH: nas
SSH: nas
screenpipe (Git) - master*, Checkout Branch/Tag...
master*
screenpipe (Git) - Synchronize Changes
No Problems
0
0
No Ports Forwarded
0
Notifications
Signed out
Signed out
Shell Script
Editor Language Status: $(copilot) No inline suggestion available, Inline suggestions
LF
UTF-8
Spaces: 2
Ln 331, Col 48
Screen Reader Optimized
git-commit Lukas Kovalik (23 hours ago)
Lukas Kovalik (23 hours ago)
Info: Downloading VS Code Server...
lets add ability to jump fro,m search to timeline so we can see the exact screen (also based on monitor and time
Session history
New session
Message actions
This session is being continued from a previous conversation that ran out of context. The summary below covers the earlier portion of the conversation.
Summary:
1. Primary Request and Intent:
The user has been developing a Screenpipe dashboard on a Synology NAS. Requests in chronological order:
- **Q1**: Are db.sqlite-shm and db.sqlite-wal used? → Explained WAL mode; cleaned up files.
- **Q2**: AND combination search (term1 + term2 must both appear) → Added "AND also" input field.
- **Q3**: Explain UTC time issue, show date in results, make Only/Skip apps use multiselect → Implemented all three.
- **Q4**: Point sqlite-web at archive.db, add second sqlite-web for db.sqlite → Updated docker-compose.yml, added two services on ports 8767/8768.
- **Q5**: "still the same" (container not picking up config) → Explained `up -d` vs `restart`.
- **Q6**: Add git, push to gitea.com/lakylak/screenpipe.git → Initialized repo, committed, pushed.
- **Q7**: Add Timetable tab with video playback and timeline → Full implementation with click-to-seek, auto-advancing chunks, legend.
- **Q8**: Add scroll/zoom on timeline, jump to specific time, better awareness → Implemented zoom (1×–32×), scrollable timeline, overview minimap, viewport indicator, Jump-to-time input, screenshot thumbnail.
- **Q9 (most recent)**: Make playing speed more than 8×, fix speed not working, show position on timeline → CSS fix done (wider playhead + time label style), remainder in progress.
2. Key Technical Concepts:
- **SQLite WAL mode**: db.sqlite-shm and db.sqlite-wal are WAL companion files; cleaned with `PRAGMA wal_checkpoint(TRUNCATE)`.
- **SQLite FTS5**: Space-separated terms = AND; `MATCH 'term1 term2'` requires both; OR requires explicit `OR` keyword.
- **FastAPI**: Python backend with route handlers in main.py, consumers pattern for DB queries.
- **Docker Compose**: App image is built (code baked in), not volume-mounted → requires `build` + `up -d` for code changes. `restart` doesn't re-read compose file — need `up -d`.
- **sqlite-web**: Read-only flag `-r`, pre-built image, no rebuild needed for config changes.
- **Video playback**: screenpipe records at 0.1–0.3 fps (timelapse). `seek = offset_index / fps` gives seconds into video chunk. ~245 chunks/day across 2 monitors. Videos may be encoded at standard fps making them very short at native speed.
- **Timeline rendering**: App-colored segments built by merging consecutive frames with same `app_name`. Percentage positions: `((ts - dayStart) / span * 100)%`.
- **Zoom/scroll**: Inner div width = `zoom × 100%`, outer wrapper has `overflow-x:auto`. Playhead position stays as % of inner div, which is correct at all zoom levels.
- **Timer-based speed**: For speed > 2×, browser `playbackRate` is unreliable on low-FPS video; correct approach is `setInterval` advancing `video.currentTime` by `speed * interval_ms / 1000` seconds per tick.
- **UTC vs local time**: Backend treats `time_from`/`time_to` as UTC. Frontend converts with `localTimeToUtc()` before sending.
- **Git**: `#recycle/` in .gitignore treated as comment — must escape as `\#recycle/`.
3. Files and Code Sections:
- **`/volume1/screenpipe/app/main.py`**
- Added `/api/apps` endpoint (all unique app names from frames table)
- Added `/api/timetable` endpoint (frames + video URLs + screenshot URLs per device per date)
- `/api/timetable` response structure: `{frames: [{ts, app, win, video_url, seek, screenshot_url}], devices: [...], device: "..."}`
- Key snippet:
```python
@app.get("/api/timetable"
)
async def timetable_data(d: str | None = Query(None), device: str | None = Query(None)):
...
rows = conn.execute(f"""
SELECT f.timestamp AS ts, f.app_name AS app, f.window_name AS win,
f.offset_index, f.snapshot_path,
vc.file_path AS video_path, vc.fps AS video_fps
FROM frames f
JOIN video_chunks vc ON f.video_chunk_id = vc.id
WHERE f.timestamp >= ? AND f.timestamp < ?
AND f.video_chunk_id IS NOT NULL {dev_clause}
ORDER BY f.timestamp
""", params).fetchall()
# seek = offset_index / fps, screenshot_url from _snapshot_to_url(snapshot_path)
```
- **`/volume1/screenpipe/app/docker-compose.yml`**
- Changed sqlite-web service name to `sqlite-web-archive` → port 8767 → `/data/archive.db`
- Added `sqlite-web-live` → port 8768 → `/data/db.sqlite`
- screenpipe-app: port 8766, `DB_PATH: /data/db.sqlite`, `TZ: Europe/Sofia`
- **`/volume1/screenpipe/app/static/index.html`** (single large file with all CSS/HTML/JS)
- **Search enhancements**:
- Added `id="sq2"` "AND also" input between search-row1 and search-row2
- Replaced `sOnlyApps`/`sSkipApps` text inputs with custom multiselect components (`id="msOnlyApps"`, `id="msSkipApps"`)
- Updated `buildUrl()` to combine `q + " " + q2` and convert times with `localTimeToUtc()`
- Added `fmtDateTime(ts)` showing "Apr 20 14:08" format
- Added `localTimeToUtc(timeStr)` converting local HH:MM to UTC
- Multiselect state: `const _msState = { msOnlyApps: new Set(), msSkipApps: new Set() }`
- **Timetable tab** (new page):
- Tab button added between Work Report and AI Summary
- `showPage` array updated: `['activity','search','audio','report','timetable','summary']`
- `refresh()` calls `loadTimetable()` when on timetable page
- **Timetable CSS** (key styles):
```css
.tt-scroll-wrap { overflow-x:auto; ... scrollbar-width:thin; }
.tt-inner { position:relative; height:52px; } /* width set dynamically */
.tt-playhead { position:absolute; top:0; width:3px; height:36px; background:white; box-shadow:0 0 8px rgba(255,255,255,.9); z-index:10; pointer-events:none; display:none; }
.tt-playhead-time { position:absolute; top:2px; font-size:9px; font-weight:600; color:white; background:rgba(0,0,0,.75); padding:1px 4px; border-radius:2px; white-space:nowrap; transform:translateX(-50%); z-index:12; pointer-events:none; display:none; }
.tt-overview-wrap { position:relative; height:14px; ... cursor:pointer; }
.tt-overview-vp { position:absolute; background:rgba(255,255,255,0.12); border:1px solid rgba(255,255,255,0.4); }
```
- **Timetable JS state variables**:
```javascript
let _ttFrames = [], _ttChunks = [], _ttCurChunk = -1;
let _ttDayStart = 0, _ttDayEnd = 0, _ttZoom = 1;
const _ttAppColors = {};
const TT_ZOOMS = [1, 2, 4, 8, 16, 32];
const TT_TICK_MIN = {1:30, 2:15, 4:10, 8:5, 16:2, 32:1};
```
- **Key JS functions**:
- `loadTimetable()` — fetches `/api/timetable`, groups chunks, renders
- `ttZoom(dir)` — changes zoom level, updates inner width, re-renders ticks, scrolls to playhead
- `ttTimelineClick(e)` — uses `inner.getBoundingClientRect()` (works correctly when scrolled)
- `ttOverviewClick(e)` — scrolls timeline + seeks video
- `ttUpdateOverviewVp()` — updates white viewport rect using `wrap.scrollLeft / inner.scrollWidth`
- `ttJumpToTime()` — parses time input, converts to ms, calls `ttSeekToMs`
- `ttSeekToMs(tsMs)` — binary-searches nearest frame, loads chunk, seeks video
- `_ttScrollToPlayhead(force)` — scrolls wrap so playhead stays at ~35% from left when Follow is checked
- `_ttMovePlayhead(tsMs)` — sets `ph.style.left` as percentage, calls `_ttScrollToPlayhead`
- `_ttShowNow(f)` — updates screenshot thumbnail + now-text div
- `ttSyncBtn()` — syncs play/pause button text
- Keyboard: Space=play/pause, ←/→=±10s, Ctrl+←/→=±30s, +/-=zoom
- **`/volume1/screenpipe/.gitignore`**
```
*.db, *.sqlite, *.sqlite-shm, *.sqlite-wal
data/, \#recycle/,
@eaDir/
app_settings.json, app/.env
__pycache__/, *.pyc, .DS_Store
```
4. Errors and Fixes:
- **`#recycle/` in .gitignore treated as comment**: `#` starts a comment in .gitignore. Fixed by escaping: `\#recycle/`. Also had to `git rm --cached "#recycle/desktop.ini"` to unstage it.
- **`sudo docker compose restart sqlite-web` didn't apply config change**: `restart` reuses existing container config, doesn't re-read compose file. Fix: `sudo docker compose up -d` recreates containers with new config.
- **Orphan container holding port 8767**: Old `screenpipe-sqlweb` container still running after rename. Fix: `sudo docker compose up -d --remove-orphans`.
- **`sudo docker` not accessible from Claude Code**: Interactive sudo required. User runs commands in NAS terminal.
- **`git config --global --add safe.directory /volume1/screenpipe`**: Required due to dubious ownership of NAS volume directory.
5. Problem Solving:
- **Time zone confusion in search**: Backend uses UTC for time_from/time_to; frontend displays local time. Solved by `localTimeToUtc()` converting before API call, and showing date+time in results.
- **sqlite-web not showing April 17–21 data**: Container was pointing at db.sqlite (old config), not archive.db. Fixed by updating docker-compose.yml + `up -d`.
- **Video playback speed**: Browser `video.playbackRate` is capped (~16× max in Chrome) and performs poorly for very low FPS (0.1–0.3 fps) screenpipe videos. Each chunk may only be 1–2 seconds of wall-clock encoded video, playing through instantly. Solution: implement timer-based frame-jumping for speed > 2× (in progress).
- **Playhead visibility**: White 2px line was hard to see. Fixed CSS to 3px width + stronger box-shadow + added `.tt-playhead-time` overlay label style.
6. All User Messages:
- "do we use db.sqlite-shm and db.sqlite-wal for anything right now? [image of search UI] Lets add ability to search with combination... Explain how does the search work time seems to work in utc maybe display date next to the time in results. Make only apps and skip apps multiselect with all available apps."
- "doi I need to restart?"
- "there is sudo docker compose"
- "no still the same"
- "add git. I have created gitea repo https://gitea.com/lakylak/screenpipe.git"
- "just do it" (re: git push)
- "how to make sure data in :8767 are accurate and point to archive.db"
- "I can't see older than 16th there should 21st of april. In http://[IP_ADDRESS]:8766/ I can see all but not on sqlite viewer http://[IP_ADDRESS]:8767"
- "ok lets add additional port to read db.sqlite, I would like to see the structure of official db that reads db.sqlite db and one for archive"
- [docker compose output showing orphan container error]
- "looks great. I want to have ability to scroll left and right and also to jump to specific time. I want to be more aware to what I see. Still it should be fast"
- "lets make the playing speed more than 8x"
- "still playing speed is not showing properly still just in one second. also I want to see in timeline where I am"
7. Pending Tasks:
- **Playback speed fix** (in progress, partially done):
- Add `<div class="tt-playhead-time" id="ttPlayheadTime"></div>` inside `ttInner` HTML
- Implement `_ttStartSpeedTimer(speed)` / `_ttStopSpeedTimer()` / `ttSetSpeed(speed)` functions
- Update speed select `onchange` to call `ttSetSpeed(+this.value)`
- Add 64× option to speed select
- Update `_ttMovePlayhead` to also update `ttPlayheadTime` label
- Update `ttSyncBtn` to start/stop timer based on play state + speed
- Update `ttNextChunk` and `ttSeekToMs` to stop timer (restarted by onplay → ttSyncBtn)
- Rebuild Docker image after changes
8. Current Work:
Working on fixing two issues with the Timetable tab:
1. **Playback speed**: `video.playbackRate` doesn't work well for low-FPS screenpipe videos. The plan is to implement a `setInterval`-based frame-jumper for speed > 2× that advances `video.currentTime` by `speed * intervalMs / 1000` every 100–200ms, bypassing browser playbackRate limits.
2. **Timeline position indicator**: Playhead not prominent enough.
**CSS already changed** in `/volume1/screenpipe/app/static/index.html`:
```css
.tt-playhead { position:absolute; top:0; width:3px; height:36px; background:white; box-shadow:0 0 8px rgba(255,255,255,.9); z-index:10; pointer-events:none; display:none; }
.tt-playhead-time { position:absolute; top:2px; font-size:9px; font-weight:600; color:white; background:rgba(0,0,0,.75); padding:1px 4px; border-radius:2px; white-space:nowrap; transform:translateX(-50%); z-index:12; pointer-events:none; display:none; }
```
Session was interrupted by summary request after this CSS edit, mid-implementation.
9. Optional Next Step:
Continuing the fix for: "still playing speed is not showing properly still just in one second. also I want to see in timeline where I am"
The next steps in order are:
1. Add `<div class="tt-playhead-time" id="ttPlayheadTime"></div>` to the HTML inside `#ttInner` (after the existing `.tt-playhead` div)
2. Update `_ttMovePlayhead` to set `ttPlayheadTime` position and text content with `fmtTime()`
3. Add timer-based speed system to JS (new functions `_ttStartSpeedTimer`, `_ttStopSpeedTimer`, `ttSetSpeed`)
4. Update speed select's `onchange` to `ttSetSpeed(+this.value)` and add 64× option
5. Update `ttSyncBtn`, `ttNextChunk`, `ttSeekToMs` to integrate with timer
6. Rebuild: `sudo docker compose build screenpipe-app && sudo docker compose up -d screenpipe-app`
If you need specific details from before compaction (like exact code snippets, error messages, or content you generated), read the full transcript at: /home/Adm1n/.claude/projects/-volume1-screenpipe/7777f46e-1e40-4051-b4bb-f43aedd59556.jsonl
Continue the conversation from where it left off without asking the user any further questions. Resume directly — do not acknowledge the summary, do not recap what was happening, do not preface with "I'll continue" or similar. Pick up the last task as if the break never happened.
Thinking
Thinking
Bash
Find timetable speed and playhead related code
IN
grep -n "tt-playhead\|ttPlayhead\|ttInner\|_ttMovePlayhead\|ttSetSpeed\|_ttStartSpeed\|_ttStopSpeed\|ttSyncBtn\|playbackRate\|speed.*select\|spdSel\|ttSpeed" /volume1/screenpipe/app/static/index.html | head -80
Copy code to clipboard
OUT
207:.tt-playhead { position:absolute; top:0; width:3px; height:36px; background:white; box-shadow:0 0 8px rgba(255,255,255,.9); z-index:10; pointer-events:none; display:none; }
208:.tt-playhead-time { position:absolute; top:2px; font-size:9px; font-weight:600; color:white; background:rgba(0,0,0,.75); padding:1px 4px; border-radius:2px; white-space:nowrap; transform:translateX(-50%); z-index:12; pointer-events:none; display:none; }
580: <div class="tt-inner" id="ttInner" onclick="ttTimelineClick(event)">
583: <div class="tt-playhead" id="ttPlayhead"></div>
598: onpause="ttSyncBtn()"
599: onplay="ttSyncBtn()">
607: <select id="ttSpeed" onchange="document.getElementById('ttVideo').playbackRate=+this.value">
1624: document.getElementById('ttInner').style.width = '100%';
1632: document.getElementById('ttPlayhead').style.display = 'none';
1694: document.getElementById('ttInner').style.width = (_ttZoom * 100) + '%';
1700: const inner = document.getElementById('ttInner');
1710: const inner = document.getElementById('ttInner');
1718: const inner = document.getElementById('ttInner');
1750: _ttMovePlayhead(new Date(best.ts).getTime());
1772: _ttMovePlayhead(new Date(best.ts).getTime());
1791:function _ttMovePlayhead(tsMs) {
1792: const ph = document.getElementById('ttPlayhead');
1802: const ph = document.getElementById('ttPlayhead');
1805: const inner = document.getElementById('ttInner');
1819:function ttSyncBtn() {
Read
index.html
index.html
(lines 576-625)
Read
index.html
index.html
(lines 1786-1865)
Thinking
Thinking
Bash
Find chunk loading and playhead update functions
IN
grep -n "ttUpdatePlayhead\|ttNextChunk\|ttLoadChunk\|_ttCurChunk\|_ttChunks\|_ttFrames" /volume1/screenpipe/app/static/index.html | head -50
Copy code to clipboard
OUT
596: onended="ttNextChunk()"
597: ontimeupdate="ttUpdatePlayhead()"
1569:let _ttFrames = [];
1570:let _ttChunks = [];
1571:let _ttCurChunk = -1;
1607: _ttFrames = data.frames;
1609: for (const f of _ttFrames) {
1613: _ttChunks = [...chunkMap.values()];
1614: _ttCurChunk = -1;
1616: _ttDayStart = new Date(_ttFrames[0].ts).getTime();
1617: _ttDayEnd = new Date(_ttFrames[_ttFrames.length - 1].ts).getTime();
1620: for (const f of _ttFrames) _ttColor(f.app);
1640: for (const f of _ttFrames) {
1736: if (!_ttFrames.length) return;
1737: let best = _ttFrames[0], minDiff = Infinity;
1738: for (const f of _ttFrames) {
1742: const ci = _ttChunks.findIndex(ch => ch[0].video_url === best.video_url);
1744: _ttCurChunk = ci;
1753:function ttNextChunk() {
1754: if (_ttCurChunk + 1 >= _ttChunks.length) return;
1755: _ttCurChunk++;
1757: video.src = _ttChunks[_ttCurChunk][0].video_url;
1762:function ttUpdatePlayhead() {
1764: if (_ttCurChunk < 0 || _ttCurChunk >= _ttChunks.length) return;
1765: const chunk = _ttChunks[_ttCurChunk];
Read
index.html
index.html
(lines 1754-1793)
Thinking
Thinking
Read
index.html
index.html
(lines 1701-1760)
Thinking
Thinking
Read
index.html
index.html
(lines 1561-1640)
Thinking
Thinking
Bash
Find time formatting functions
IN
grep -n "function fmtTime\|function fmtDate\|function _fmt\|localTimeToUtc\|fmtDateTime" /volume1/screenpipe/app/static/index.html | head -20
Copy code to clipboard
OUT
1088: if (tf) url += `&time_from=${localTimeToUtc(tf)}`;
1089: if (tt) url += `&time_to=${localTimeToUtc(tt)}`;
1153: let meta = `<span style="color:var(--muted)">${fmtDateTime(r.timestamp)}</span>${srcBadge}`;
1166: meta = `<span style="color:var(--muted)">${fmtDateTime(r.timestamp)}</span>${srcBadge} <span class="badge ${r.is_input_device?'mic':'sys'}">${r.is_input_device?'MIC':'SYS'}</span>`;
1307:function fmtTime(ts) {
1312:function fmtDateTime(ts) {
1320:function localTimeToUtc(timeStr) {
1778:function _fmtSec(s) {
1788: `${fmtDateTime(f.ts)} · ${f.app}${f.win ? ' / ' + f.win : ''}`;
Read
index.html
index.html
(lines 1308-1327)
Thinking
Thinking
Now I have everything I need. I'll implement the frame-by-frame timer system that replaces
video.playbackRate
with wall-clock accurate playback, plus add the playhead time label. Let me make the changes:
Edit
index.html
index.html
Added 1 line...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Explorer (⇧⌘E)","depth":19,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":true},{"role":"AXStaticText","text":"","depth":22,"role_description":"text"},{"role":"AXRadioButton","text":"Search (⇧⌘F)","depth":19,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"role_description":"text"},{"role":"AXRadioButton","text":"Source Control (⌃⇧G) - 2 pending changes","depth":19,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":22,"role_description":"text"},{"role":"AXRadioButton","text":"Run and Debug (⇧⌘D)","depth":19,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"role_description":"text"},{"role":"AXRadioButton","text":"Remote Explorer","depth":19,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"role_description":"text"},{"role":"AXRadioButton","text":"Extensions (⇧⌘X) - 2 require update, 1 requires restart","depth":19,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"role_description":"text"},{"role":"AXStaticText","text":"3","depth":22,"role_description":"text"},{"role":"AXRadioButton","text":"Claude Code","depth":19,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Containers","depth":19,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"EXPLORER","depth":17,"role_description":"heading"},{"role":"AXStaticText","text":"EXPLORER","depth":18,"role_description":"text"},{"role":"AXButton","text":"Explorer Section: screenpipe [SSH: nas]","depth":21,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXStaticText","text":"","depth":23,"role_description":"text"},{"role":"AXHeading","text":"Explorer Section: screenpipe [SSH: nas]","depth":22,"role_description":"heading"},{"role":"AXStaticText","text":"SCREENPIPE [SSH: NAS]","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"#recycle","depth":27,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"app","depth":27,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"data","depth":27,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"role_description":"text"},{"role":"AXStaticText","text":"pipes","depth":27,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"role_description":"text"},{"role":"AXStaticText","text":".gitignore","depth":27,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"role_description":"text"},{"role":"AXStaticText","text":"app_settings.json","depth":27,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"role_description":"text"},{"role":"AXStaticText","text":"archive.db","depth":27,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"role_description":"text"},{"role":"AXStaticText","text":"db.sqlite","depth":27,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"role_description":"text"},{"role":"AXStaticText","text":"screenpipe_sync.sh","depth":27,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"role_description":"text"},{"role":"AXStaticText","text":"screenpipe.db","depth":27,"role_description":"text"},{"role":"AXButton","text":"Outline Section","depth":21,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"role_description":"text"},{"role":"AXHeading","text":"OUTLINE","depth":22,"role_description":"heading"},{"role":"AXStaticText","text":"OUTLINE","depth":23,"role_description":"text"},{"role":"AXButton","text":"Timeline Section","depth":21,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"role_description":"text"},{"role":"AXHeading","text":"TIMELINE","depth":22,"role_description":"heading"},{"role":"AXStaticText","text":"TIMELINE","depth":23,"role_description":"text"},{"role":"AXRadioButton","text":"app_settings.json, Editor Group 1","depth":28,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe_sync.sh, Editor Group 1","depth":28,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXRadioButton","text":"db.sqlite-shm, preview, Editor Group 1","depth":28,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"#!/bin/bash\n# screenpipe_sync.sh\n# Syncs Screenpipe SQLite data to a NAS archive database (append-only, no deletions).\n# Also copies the day's video/frame data folder to the NAS.\n#\n# Usage:\n# ./screenpipe_sync.sh # syncs yesterday (default)\n# ./screenpipe_sync.sh 2026-04-15 # syncs a specific date\n# ./screenpipe_sync.sh today # syncs today so far\n#\n# Cron example (runs at 3am daily):\n# 0 3 * * * /Users/lukas/.screenpipe/screenpipe_sync.sh >> /Users/lukas/.screenpipe/sync.log 2>&1\n\nset -euo pipefail\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\nDB_SRC=\"${SCREENPIPE_DB:-$HOME/.screenpipe/db.sqlite}\"\nNAS_MOUNT=\"${NAS_MOUNT:-/Volumes/Test/screenpipe}\"\nNAS_DB=\"$NAS_MOUNT/archive.db\"\nNAS_DATA=\"$NAS_MOUNT/data\"\nLOG_FILE=\"$HOME/.screenpipe/sync.log\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\nSCRIPT_START=$(date +%s)\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── DATE ARGUMENT ────────────────────────────────────────────────────────────\nif [ \"${1:-}\" = \"today\" ]; then\n TARGET_DATE=$(date +%Y-%m-%d)\nelif [ -n \"${1:-}\" ]; then\n TARGET_DATE=\"$1\"\n if ! [[ \"$TARGET_DATE\" =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]]; then\n echo \"ERROR: Invalid date format. Use YYYY-MM-DD, 'today', or no argument for yesterday.\"\n exit 1\n fi\nelse\n TARGET_DATE=$(date -v-1d +%Y-%m-%d)\nfi\n\nlog \"========================================\"\nlog \"Screenpipe sync starting for: $TARGET_DATE\"\nlog \"========================================\"\n\n# ─── PREFLIGHT ────────────────────────────────────────────────────────────────\nstep \"Preflight checks\"\n\nif [ ! -f \"$DB_SRC\" ]; then\n log \"ERROR: Source DB not found at $DB_SRC\"; exit 1\nfi\nprintf \" %-20s %s (%s)\\n\" \"Source DB:\" \"OK\" \"$(du -sh \"$DB_SRC\" | cut -f1)\"\n\nif [ ! -d \"$NAS_MOUNT\" ]; then\n log \"ERROR: NAS not mounted at $NAS_MOUNT\"; exit 1\nfi\nprintf \" %-20s %s\\n\" \"NAS mount:\" \"OK $NAS_MOUNT\"\n\n# Check if DB already synced for this date\nDB_ALREADY_SYNCED=false\nif [ -f \"$NAS_DB\" ]; then\n EXISTING=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';\" 2>/dev/null || echo \"0\")\n if [ \"$EXISTING\" -gt \"0\" ]; then\n log \"Date $TARGET_DATE already has $EXISTING frames in archive — skipping DB sync\"\n DB_ALREADY_SYNCED=true\n else\n printf \" %-20s %s (%s)\\n\" \"Archive DB:\" \"exists\" \"$(du -sh \"$NAS_DB\" | cut -f1)\"\n fi\nelse\n printf \" %-20s %s\\n\" \"Archive DB:\" \"will be created\"\nfi\n\n# Source data dir for this date\nDATA_SRC=\"$HOME/.screenpipe/data/data/$TARGET_DATE\"\nif [ -d \"$DATA_SRC\" ]; then\n DATA_SIZE=$(du -sh \"$DATA_SRC\" | cut -f1)\n DATA_FILES=$(ls \"$DATA_SRC\" | wc -l | tr -d ' ')\n printf \" %-20s %s (%s files, %s)\\n\" \"Data dir:\" \"OK\" \"$DATA_FILES\" \"$DATA_SIZE\"\nelse\n printf \" %-20s %s\\n\" \"Data dir:\" \"not found — skipping file copy\"\nfi\n\n# ─── DB SYNC ──────────────────────────────────────────────────────────────────\nif [ \"$DB_ALREADY_SYNCED\" = false ]; then\n\n # ─── COUNT SOURCE ROWS ────────────────────────────────────────────────────\n step \"Counting source rows for $TARGET_DATE\"\n\n SRC_FRAMES=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';\")\n SRC_ELEMENTS=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');\")\n SRC_UI=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';\")\n SRC_OCR=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');\")\n SRC_MEETINGS=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM meetings WHERE date(meeting_start) = '$TARGET_DATE';\")\n\n printf \" %-20s %s\\n\" \"frames:\" \"$SRC_FRAMES\"\n printf \" %-20s %s\\n\" \"elements:\" \"$SRC_ELEMENTS\"\n printf \" %-20s %s\\n\" \"ui_events:\" \"$SRC_UI\"\n printf \" %-20s %s\\n\" \"ocr_text:\" \"$SRC_OCR\"\n printf \" %-20s %s\\n\" \"meetings:\" \"$SRC_MEETINGS\"\n\n if [ \"$SRC_FRAMES\" -eq \"0\" ]; then\n log \"No frames found for $TARGET_DATE — skipping DB sync\"\n DB_ALREADY_SYNCED=true\n fi\n\nfi\n\nif [ \"$DB_ALREADY_SYNCED\" = false ]; then\n\n # ─── INIT TABLES ──────────────────────────────────────────────────────────\n step \"Initialising tables, indexes, FTS\"\n\n run_sqlite_heredoc \"creating tables\" \"\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"creating indexes\" \"\nATTACH '$NAS_DB' AS nas;\nCREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);\nCREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);\nCREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);\nCREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);\nCREATE INDEX IF NOT EXISTS nas.idx_elements_frame_id ON elements(frame_id);\nCREATE INDEX IF NOT EXISTS nas.idx_elements_frame_src_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;\nCREATE INDEX IF NOT EXISTS nas.idx_ui_events_timestamp ON ui_events(timestamp);\nCREATE INDEX IF NOT EXISTS nas.idx_ui_events_app_name ON ui_events(app_name);\nCREATE INDEX IF NOT EXISTS nas.idx_ui_events_frame_id ON ui_events(frame_id);\nCREATE INDEX IF NOT EXISTS nas.idx_ocr_text_frame_id ON ocr_text(frame_id);\nCREATE INDEX IF NOT EXISTS nas.idx_meetings_start ON meetings(meeting_start);\nCREATE INDEX IF NOT EXISTS nas.idx_video_chunks_device ON video_chunks(device_name);\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"creating FTS tables\" \"\nATTACH '$NAS_DB' AS nas;\nCREATE VIRTUAL TABLE IF NOT EXISTS nas.elements_fts USING fts5(\n text, role, frame_id UNINDEXED,\n content='elements', content_rowid='id', tokenize='unicode61'\n);\nCREATE VIRTUAL TABLE IF NOT EXISTS nas.frames_fts USING fts5(\n full_text, app_name, window_name, browser_url, id UNINDEXED,\n tokenize='unicode61'\n);\nCREATE VIRTUAL TABLE IF NOT EXISTS nas.ui_events_fts USING fts5(\n text_content,\n app_name,\n window_title,\n element_name,\n content='ui_events',\n content_rowid='id',\n tokenize='unicode61'\n);\nDETACH nas;\n\"\n\n # ─── SYNC DATA ────────────────────────────────────────────────────────────\n step \"Syncing data for $TARGET_DATE\"\n\n run_sqlite_heredoc \"video_chunks\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.video_chunks\n SELECT * FROM main.video_chunks\n WHERE id IN (\n SELECT DISTINCT video_chunk_id FROM main.frames\n WHERE date(timestamp) = '$TARGET_DATE' AND video_chunk_id IS NOT NULL\n );\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"frames ($SRC_FRAMES rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.frames\n SELECT * FROM main.frames WHERE date(timestamp) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"ocr_text ($SRC_OCR rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.ocr_text\n SELECT o.* FROM main.ocr_text o\n JOIN main.frames f ON o.frame_id = f.id\n WHERE date(f.timestamp) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"ui_events ($SRC_UI rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.ui_events\n SELECT * FROM main.ui_events WHERE date(timestamp) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"elements ($SRC_ELEMENTS rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.elements\n SELECT e.* FROM main.elements e\n JOIN main.frames f ON e.frame_id = f.id\n WHERE date(f.timestamp) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"meetings ($SRC_MEETINGS rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.meetings\n SELECT * FROM main.meetings WHERE date(meeting_start) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n # ─── FTS UPDATE ───────────────────────────────────────────────────────────\n step \"Updating FTS indexes\"\n\n run_sqlite_heredoc \"elements_fts\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT INTO nas.elements_fts(rowid, text, role)\n SELECT e.id, e.text, e.role\n FROM nas.elements e\n JOIN nas.frames f ON e.frame_id = f.id\n WHERE date(f.timestamp) = '$TARGET_DATE'\n AND e.text IS NOT NULL;\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"frames_fts\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT INTO nas.frames_fts(rowid, full_text, app_name, window_name, browser_url, id)\n SELECT id, full_text, app_name, window_name, browser_url, id\n FROM nas.frames\n WHERE date(timestamp) = '$TARGET_DATE'\n AND full_text IS NOT NULL;\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"ui_events_fts\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT INTO nas.ui_events_fts(rowid, text_content, app_name, window_title, element_name)\n SELECT id, text_content, app_name, window_title, element_name\n FROM nas.ui_events\n WHERE date(timestamp) = '$TARGET_DATE'\n AND text_content IS NOT NULL;\nDETACH nas;\n\"\n\n # ─── VERIFY DB ────────────────────────────────────────────────────────────\n step \"Verifying DB\"\n\n V_FRAMES=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';\")\n V_ELEMENTS=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');\")\n V_UI=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';\")\n V_OCR=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');\")\n V_MEETINGS=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM meetings WHERE date(meeting_start)= '$TARGET_DATE';\")\n\n check \"frames\" \"$V_FRAMES\" \"$SRC_FRAMES\"\n check \"elements\" \"$V_ELEMENTS\" \"$SRC_ELEMENTS\"\n check \"ui_events\" \"$V_UI\" \"$SRC_UI\"\n check \"ocr_text\" \"$V_OCR\" \"$SRC_OCR\"\n check \"meetings\" \"$V_MEETINGS\" \"$SRC_MEETINGS\"\n\nfi\n\n# ─── COPY DATA FOLDER ─────────────────────────────────────────────────────────\n# Always runs regardless of DB sync status\nstep \"Copying data folder for $TARGET_DATE\"\n\nif [ -d \"$DATA_SRC\" ]; then\n mkdir -p \"$NAS_DATA/$TARGET_DATE\"\n RSYNC_START=$(date +%s)\n printf \" %-36s \" \"rsync $TARGET_DATE/ → NAS\"\n rsync -a --ignore-existing \\\n \"$DATA_SRC/\" \\\n \"$NAS_DATA/$TARGET_DATE/\" \\\n 2>>\"$LOG_FILE\"\n RSYNC_DUR=$(( $(date +%s) - RSYNC_START ))\n COPIED_FILES=$(ls \"$NAS_DATA/$TARGET_DATE\" | wc -l | tr -d ' ')\n SRC_FILES=$(ls \"$DATA_SRC\" | wc -l | tr -d ' ')\n COPIED_SIZE=$(du -sh \"$NAS_DATA/$TARGET_DATE\" | cut -f1)\n if [ \"$COPIED_FILES\" -eq \"$SRC_FILES\" ]; then\n printf \"\\r %-36s ✓ %dm%02ds (%s files, %s)\\n\" \\\n \"rsync $TARGET_DATE/ → NAS\" \\\n \"$(( RSYNC_DUR / 60 ))\" \"$(( RSYNC_DUR % 60 ))\" \\\n \"$COPIED_FILES\" \"$COPIED_SIZE\" | tee -a \"$LOG_FILE\"\n else\n printf \"\\r %-36s ✗ %s / %s files\\n\" \\\n \"rsync $TARGET_DATE/ → NAS\" \"$COPIED_FILES\" \"$SRC_FILES\" | tee -a \"$LOG_FILE\"\n fi\nelse\n printf \" %-36s %s\\n\" \"rsync $TARGET_DATE/ → NAS\" \"skipped (no source dir)\"\nfi\n\n# ─── SUMMARY ──────────────────────────────────────────────────────────────────\nTOTAL_ELAPSED=$(( $(date +%s) - SCRIPT_START ))\nDB_SIZE=$(du -sh \"$NAS_DB\" | cut -f1)\n\necho \"\"\nlog \"Archive DB size: $DB_SIZE\"\nlog \"Total time: $(( TOTAL_ELAPSED / 60 ))m$(( TOTAL_ELAPSED % 60 ))s\"\nlog \"Sync complete for $TARGET_DATE\"\nlog \"========================================\"","depth":28,"value":"#!/bin/bash\n# screenpipe_sync.sh\n# Syncs Screenpipe SQLite data to a NAS archive database (append-only, no deletions).\n# Also copies the day's video/frame data folder to the NAS.\n#\n# Usage:\n# ./screenpipe_sync.sh # syncs yesterday (default)\n# ./screenpipe_sync.sh 2026-04-15 # syncs a specific date\n# ./screenpipe_sync.sh today # syncs today so far\n#\n# Cron example (runs at 3am daily):\n# 0 3 * * * /Users/lukas/.screenpipe/screenpipe_sync.sh >> /Users/lukas/.screenpipe/sync.log 2>&1\n\nset -euo pipefail\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\nDB_SRC=\"${SCREENPIPE_DB:-$HOME/.screenpipe/db.sqlite}\"\nNAS_MOUNT=\"${NAS_MOUNT:-/Volumes/Test/screenpipe}\"\nNAS_DB=\"$NAS_MOUNT/archive.db\"\nNAS_DATA=\"$NAS_MOUNT/data\"\nLOG_FILE=\"$HOME/.screenpipe/sync.log\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\nSCRIPT_START=$(date +%s)\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── DATE ARGUMENT ────────────────────────────────────────────────────────────\nif [ \"${1:-}\" = \"today\" ]; then\n TARGET_DATE=$(date +%Y-%m-%d)\nelif [ -n \"${1:-}\" ]; then\n TARGET_DATE=\"$1\"\n if ! [[ \"$TARGET_DATE\" =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]]; then\n echo \"ERROR: Invalid date format. Use YYYY-MM-DD, 'today', or no argument for yesterday.\"\n exit 1\n fi\nelse\n TARGET_DATE=$(date -v-1d +%Y-%m-%d)\nfi\n\nlog \"========================================\"\nlog \"Screenpipe sync starting for: $TARGET_DATE\"\nlog \"========================================\"\n\n# ─── PREFLIGHT ────────────────────────────────────────────────────────────────\nstep \"Preflight checks\"\n\nif [ ! -f \"$DB_SRC\" ]; then\n log \"ERROR: Source DB not found at $DB_SRC\"; exit 1\nfi\nprintf \" %-20s %s (%s)\\n\" \"Source DB:\" \"OK\" \"$(du -sh \"$DB_SRC\" | cut -f1)\"\n\nif [ ! -d \"$NAS_MOUNT\" ]; then\n log \"ERROR: NAS not mounted at $NAS_MOUNT\"; exit 1\nfi\nprintf \" %-20s %s\\n\" \"NAS mount:\" \"OK $NAS_MOUNT\"\n\n# Check if DB already synced for this date\nDB_ALREADY_SYNCED=false\nif [ -f \"$NAS_DB\" ]; then\n EXISTING=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';\" 2>/dev/null || echo \"0\")\n if [ \"$EXISTING\" -gt \"0\" ]; then\n log \"Date $TARGET_DATE already has $EXISTING frames in archive — skipping DB sync\"\n DB_ALREADY_SYNCED=true\n else\n printf \" %-20s %s (%s)\\n\" \"Archive DB:\" \"exists\" \"$(du -sh \"$NAS_DB\" | cut -f1)\"\n fi\nelse\n printf \" %-20s %s\\n\" \"Archive DB:\" \"will be created\"\nfi\n\n# Source data dir for this date\nDATA_SRC=\"$HOME/.screenpipe/data/data/$TARGET_DATE\"\nif [ -d \"$DATA_SRC\" ]; then\n DATA_SIZE=$(du -sh \"$DATA_SRC\" | cut -f1)\n DATA_FILES=$(ls \"$DATA_SRC\" | wc -l | tr -d ' ')\n printf \" %-20s %s (%s files, %s)\\n\" \"Data dir:\" \"OK\" \"$DATA_FILES\" \"$DATA_SIZE\"\nelse\n printf \" %-20s %s\\n\" \"Data dir:\" \"not found — skipping file copy\"\nfi\n\n# ─── DB SYNC ──────────────────────────────────────────────────────────────────\nif [ \"$DB_ALREADY_SYNCED\" = false ]; then\n\n # ─── COUNT SOURCE ROWS ────────────────────────────────────────────────────\n step \"Counting source rows for $TARGET_DATE\"\n\n SRC_FRAMES=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';\")\n SRC_ELEMENTS=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');\")\n SRC_UI=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';\")\n SRC_OCR=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');\")\n SRC_MEETINGS=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM meetings WHERE date(meeting_start) = '$TARGET_DATE';\")\n\n printf \" %-20s %s\\n\" \"frames:\" \"$SRC_FRAMES\"\n printf \" %-20s %s\\n\" \"elements:\" \"$SRC_ELEMENTS\"\n printf \" %-20s %s\\n\" \"ui_events:\" \"$SRC_UI\"\n printf \" %-20s %s\\n\" \"ocr_text:\" \"$SRC_OCR\"\n printf \" %-20s %s\\n\" \"meetings:\" \"$SRC_MEETINGS\"\n\n if [ \"$SRC_FRAMES\" -eq \"0\" ]; then\n log \"No frames found for $TARGET_DATE — skipping DB sync\"\n DB_ALREADY_SYNCED=true\n fi\n\nfi\n\nif [ \"$DB_ALREADY_SYNCED\" = false ]; then\n\n # ─── INIT TABLES ──────────────────────────────────────────────────────────\n step \"Initialising tables, indexes, FTS\"\n\n run_sqlite_heredoc \"creating tables\" \"\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"creating indexes\" \"\nATTACH '$NAS_DB' AS nas;\nCREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);\nCREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);\nCREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);\nCREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);\nCREATE INDEX IF NOT EXISTS nas.idx_elements_frame_id ON elements(frame_id);\nCREATE INDEX IF NOT EXISTS nas.idx_elements_frame_src_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;\nCREATE INDEX IF NOT EXISTS nas.idx_ui_events_timestamp ON ui_events(timestamp);\nCREATE INDEX IF NOT EXISTS nas.idx_ui_events_app_name ON ui_events(app_name);\nCREATE INDEX IF NOT EXISTS nas.idx_ui_events_frame_id ON ui_events(frame_id);\nCREATE INDEX IF NOT EXISTS nas.idx_ocr_text_frame_id ON ocr_text(frame_id);\nCREATE INDEX IF NOT EXISTS nas.idx_meetings_start ON meetings(meeting_start);\nCREATE INDEX IF NOT EXISTS nas.idx_video_chunks_device ON video_chunks(device_name);\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"creating FTS tables\" \"\nATTACH '$NAS_DB' AS nas;\nCREATE VIRTUAL TABLE IF NOT EXISTS nas.elements_fts USING fts5(\n text, role, frame_id UNINDEXED,\n content='elements', content_rowid='id', tokenize='unicode61'\n);\nCREATE VIRTUAL TABLE IF NOT EXISTS nas.frames_fts USING fts5(\n full_text, app_name, window_name, browser_url, id UNINDEXED,\n tokenize='unicode61'\n);\nCREATE VIRTUAL TABLE IF NOT EXISTS nas.ui_events_fts USING fts5(\n text_content,\n app_name,\n window_title,\n element_name,\n content='ui_events',\n content_rowid='id',\n tokenize='unicode61'\n);\nDETACH nas;\n\"\n\n # ─── SYNC DATA ────────────────────────────────────────────────────────────\n step \"Syncing data for $TARGET_DATE\"\n\n run_sqlite_heredoc \"video_chunks\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.video_chunks\n SELECT * FROM main.video_chunks\n WHERE id IN (\n SELECT DISTINCT video_chunk_id FROM main.frames\n WHERE date(timestamp) = '$TARGET_DATE' AND video_chunk_id IS NOT NULL\n );\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"frames ($SRC_FRAMES rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.frames\n SELECT * FROM main.frames WHERE date(timestamp) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"ocr_text ($SRC_OCR rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.ocr_text\n SELECT o.* FROM main.ocr_text o\n JOIN main.frames f ON o.frame_id = f.id\n WHERE date(f.timestamp) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"ui_events ($SRC_UI rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.ui_events\n SELECT * FROM main.ui_events WHERE date(timestamp) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"elements ($SRC_ELEMENTS rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.elements\n SELECT e.* FROM main.elements e\n JOIN main.frames f ON e.frame_id = f.id\n WHERE date(f.timestamp) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"meetings ($SRC_MEETINGS rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.meetings\n SELECT * FROM main.meetings WHERE date(meeting_start) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n # ─── FTS UPDATE ───────────────────────────────────────────────────────────\n step \"Updating FTS indexes\"\n\n run_sqlite_heredoc \"elements_fts\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT INTO nas.elements_fts(rowid, text, role)\n SELECT e.id, e.text, e.role\n FROM nas.elements e\n JOIN nas.frames f ON e.frame_id = f.id\n WHERE date(f.timestamp) = '$TARGET_DATE'\n AND e.text IS NOT NULL;\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"frames_fts\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT INTO nas.frames_fts(rowid, full_text, app_name, window_name, browser_url, id)\n SELECT id, full_text, app_name, window_name, browser_url, id\n FROM nas.frames\n WHERE date(timestamp) = '$TARGET_DATE'\n AND full_text IS NOT NULL;\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"ui_events_fts\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT INTO nas.ui_events_fts(rowid, text_content, app_name, window_title, element_name)\n SELECT id, text_content, app_name, window_title, element_name\n FROM nas.ui_events\n WHERE date(timestamp) = '$TARGET_DATE'\n AND text_content IS NOT NULL;\nDETACH nas;\n\"\n\n # ─── VERIFY DB ────────────────────────────────────────────────────────────\n step \"Verifying DB\"\n\n V_FRAMES=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';\")\n V_ELEMENTS=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');\")\n V_UI=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';\")\n V_OCR=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');\")\n V_MEETINGS=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM meetings WHERE date(meeting_start)= '$TARGET_DATE';\")\n\n check \"frames\" \"$V_FRAMES\" \"$SRC_FRAMES\"\n check \"elements\" \"$V_ELEMENTS\" \"$SRC_ELEMENTS\"\n check \"ui_events\" \"$V_UI\" \"$SRC_UI\"\n check \"ocr_text\" \"$V_OCR\" \"$SRC_OCR\"\n check \"meetings\" \"$V_MEETINGS\" \"$SRC_MEETINGS\"\n\nfi\n\n# ─── COPY DATA FOLDER ─────────────────────────────────────────────────────────\n# Always runs regardless of DB sync status\nstep \"Copying data folder for $TARGET_DATE\"\n\nif [ -d \"$DATA_SRC\" ]; then\n mkdir -p \"$NAS_DATA/$TARGET_DATE\"\n RSYNC_START=$(date +%s)\n printf \" %-36s \" \"rsync $TARGET_DATE/ → NAS\"\n rsync -a --ignore-existing \\\n \"$DATA_SRC/\" \\\n \"$NAS_DATA/$TARGET_DATE/\" \\\n 2>>\"$LOG_FILE\"\n RSYNC_DUR=$(( $(date +%s) - RSYNC_START ))\n COPIED_FILES=$(ls \"$NAS_DATA/$TARGET_DATE\" | wc -l | tr -d ' ')\n SRC_FILES=$(ls \"$DATA_SRC\" | wc -l | tr -d ' ')\n COPIED_SIZE=$(du -sh \"$NAS_DATA/$TARGET_DATE\" | cut -f1)\n if [ \"$COPIED_FILES\" -eq \"$SRC_FILES\" ]; then\n printf \"\\r %-36s ✓ %dm%02ds (%s files, %s)\\n\" \\\n \"rsync $TARGET_DATE/ → NAS\" \\\n \"$(( RSYNC_DUR / 60 ))\" \"$(( RSYNC_DUR % 60 ))\" \\\n \"$COPIED_FILES\" \"$COPIED_SIZE\" | tee -a \"$LOG_FILE\"\n else\n printf \"\\r %-36s ✗ %s / %s files\\n\" \\\n \"rsync $TARGET_DATE/ → NAS\" \"$COPIED_FILES\" \"$SRC_FILES\" | tee -a \"$LOG_FILE\"\n fi\nelse\n printf \" %-36s %s\\n\" \"rsync $TARGET_DATE/ → NAS\" \"skipped (no source dir)\"\nfi\n\n# ─── SUMMARY ──────────────────────────────────────────────────────────────────\nTOTAL_ELAPSED=$(( $(date +%s) - SCRIPT_START ))\nDB_SIZE=$(du -sh \"$NAS_DB\" | cut -f1)\n\necho \"\"\nlog \"Archive DB size: $DB_SIZE\"\nlog \"Total time: $(( TOTAL_ELAPSED / 60 ))m$(( TOTAL_ELAPSED % 60 ))s\"\nlog \"Sync complete for $TARGET_DATE\"\nlog \"========================================\"","role_description":"editor","is_enabled":true,"is_focused":true,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"#!/bin/bash\n# screenpipe_sync.sh\n# Syncs Screenpipe SQLite data to a NAS archive database (append-only, no deletions).\n# Also copies the day's video/frame data folder to the NAS.\n#\n# Usage:\n# ./screenpipe_sync.sh # syncs yesterday (default)\n# ./screenpipe_sync.sh 2026-04-15 # syncs a specific date\n# ./screenpipe_sync.sh today # syncs today so far\n#\n# Cron example (runs at 3am daily):\n# 0 3 * * * /Users/lukas/.screenpipe/screenpipe_sync.sh >> /Users/lukas/.screenpipe/sync.log 2>&1\n\nset -euo pipefail\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\nDB_SRC=\"${SCREENPIPE_DB:-$HOME/.screenpipe/db.sqlite}\"\nNAS_MOUNT=\"${NAS_MOUNT:-/Volumes/Test/screenpipe}\"\nNAS_DB=\"$NAS_MOUNT/archive.db\"\nNAS_DATA=\"$NAS_MOUNT/data\"\nLOG_FILE=\"$HOME/.screenpipe/sync.log\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\nSCRIPT_START=$(date +%s)\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── DATE ARGUMENT ────────────────────────────────────────────────────────────\nif [ \"${1:-}\" = \"today\" ]; then\n TARGET_DATE=$(date +%Y-%m-%d)\nelif [ -n \"${1:-}\" ]; then\n TARGET_DATE=\"$1\"\n if ! [[ \"$TARGET_DATE\" =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]]; then\n echo \"ERROR: Invalid date format. Use YYYY-MM-DD, 'today', or no argument for yesterday.\"\n exit 1\n fi\nelse\n TARGET_DATE=$(date -v-1d +%Y-%m-%d)\nfi\n\nlog \"========================================\"\nlog \"Screenpipe sync starting for: $TARGET_DATE\"\nlog \"========================================\"\n\n# ─── PREFLIGHT ────────────────────────────────────────────────────────────────\nstep \"Preflight checks\"\n\nif [ ! -f \"$DB_SRC\" ]; then\n log \"ERROR: Source DB not found at $DB_SRC\"; exit 1\nfi\nprintf \" %-20s %s (%s)\\n\" \"Source DB:\" \"OK\" \"$(du -sh \"$DB_SRC\" | cut -f1)\"\n\nif [ ! -d \"$NAS_MOUNT\" ]; then\n log \"ERROR: NAS not mounted at $NAS_MOUNT\"; exit 1\nfi\nprintf \" %-20s %s\\n\" \"NAS mount:\" \"OK $NAS_MOUNT\"\n\n# Check if DB already synced for this date\nDB_ALREADY_SYNCED=false\nif [ -f \"$NAS_DB\" ]; then\n EXISTING=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';\" 2>/dev/null || echo \"0\")\n if [ \"$EXISTING\" -gt \"0\" ]; then\n log \"Date $TARGET_DATE already has $EXISTING frames in archive — skipping DB sync\"\n DB_ALREADY_SYNCED=true\n else\n printf \" %-20s %s (%s)\\n\" \"Archive DB:\" \"exists\" \"$(du -sh \"$NAS_DB\" | cut -f1)\"\n fi\nelse\n printf \" %-20s %s\\n\" \"Archive DB:\" \"will be created\"\nfi\n\n# Source data dir for this date\nDATA_SRC=\"$HOME/.screenpipe/data/data/$TARGET_DATE\"\nif [ -d \"$DATA_SRC\" ]; then\n DATA_SIZE=$(du -sh \"$DATA_SRC\" | cut -f1)\n DATA_FILES=$(ls \"$DATA_SRC\" | wc -l | tr -d ' ')\n printf \" %-20s %s (%s files, %s)\\n\" \"Data dir:\" \"OK\" \"$DATA_FILES\" \"$DATA_SIZE\"\nelse\n printf \" %-20s %s\\n\" \"Data dir:\" \"not found — skipping file copy\"\nfi\n\n# ─── DB SYNC ──────────────────────────────────────────────────────────────────\nif [ \"$DB_ALREADY_SYNCED\" = false ]; then\n\n # ─── COUNT SOURCE ROWS ────────────────────────────────────────────────────\n step \"Counting source rows for $TARGET_DATE\"\n\n SRC_FRAMES=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';\")\n SRC_ELEMENTS=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');\")\n SRC_UI=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';\")\n SRC_OCR=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');\")\n SRC_MEETINGS=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM meetings WHERE date(meeting_start) = '$TARGET_DATE';\")\n\n printf \" %-20s %s\\n\" \"frames:\" \"$SRC_FRAMES\"\n printf \" %-20s %s\\n\" \"elements:\" \"$SRC_ELEMENTS\"\n printf \" %-20s %s\\n\" \"ui_events:\" \"$SRC_UI\"\n printf \" %-20s %s\\n\" \"ocr_text:\" \"$SRC_OCR\"\n printf \" %-20s %s\\n\" \"meetings:\" \"$SRC_MEETINGS\"\n\n if [ \"$SRC_FRAMES\" -eq \"0\" ]; then\n log \"No frames found for $TARGET_DATE — skipping DB sync\"\n DB_ALREADY_SYNCED=true\n fi\n\nfi\n\nif [ \"$DB_ALREADY_SYNCED\" = false ]; then\n\n # ─── INIT TABLES ──────────────────────────────────────────────────────────\n step \"Initialising tables, indexes, FTS\"\n\n run_sqlite_heredoc \"creating tables\" \"\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"creating indexes\" \"\nATTACH '$NAS_DB' AS nas;\nCREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);\nCREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);\nCREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);\nCREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);\nCREATE INDEX IF NOT EXISTS nas.idx_elements_frame_id ON elements(frame_id);\nCREATE INDEX IF NOT EXISTS nas.idx_elements_frame_src_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;\nCREATE INDEX IF NOT EXISTS nas.idx_ui_events_timestamp ON ui_events(timestamp);\nCREATE INDEX IF NOT EXISTS nas.idx_ui_events_app_name ON ui_events(app_name);\nCREATE INDEX IF NOT EXISTS nas.idx_ui_events_frame_id ON ui_events(frame_id);\nCREATE INDEX IF NOT EXISTS nas.idx_ocr_text_frame_id ON ocr_text(frame_id);\nCREATE INDEX IF NOT EXISTS nas.idx_meetings_start ON meetings(meeting_start);\nCREATE INDEX IF NOT EXISTS nas.idx_video_chunks_device ON video_chunks(device_name);\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"creating FTS tables\" \"\nATTACH '$NAS_DB' AS nas;\nCREATE VIRTUAL TABLE IF NOT EXISTS nas.elements_fts USING fts5(\n text, role, frame_id UNINDEXED,\n content='elements', content_rowid='id', tokenize='unicode61'\n);\nCREATE VIRTUAL TABLE IF NOT EXISTS nas.frames_fts USING fts5(\n full_text, app_name, window_name, browser_url, id UNINDEXED,\n tokenize='unicode61'\n);\nCREATE VIRTUAL TABLE IF NOT EXISTS nas.ui_events_fts USING fts5(\n text_content,\n app_name,\n window_title,\n element_name,\n content='ui_events',\n content_rowid='id',\n tokenize='unicode61'\n);\nDETACH nas;\n\"\n\n # ─── SYNC DATA ────────────────────────────────────────────────────────────\n step \"Syncing data for $TARGET_DATE\"\n\n run_sqlite_heredoc \"video_chunks\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.video_chunks\n SELECT * FROM main.video_chunks\n WHERE id IN (\n SELECT DISTINCT video_chunk_id FROM main.frames\n WHERE date(timestamp) = '$TARGET_DATE' AND video_chunk_id IS NOT NULL\n );\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"frames ($SRC_FRAMES rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.frames\n SELECT * FROM main.frames WHERE date(timestamp) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"ocr_text ($SRC_OCR rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.ocr_text\n SELECT o.* FROM main.ocr_text o\n JOIN main.frames f ON o.frame_id = f.id\n WHERE date(f.timestamp) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"ui_events ($SRC_UI rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.ui_events\n SELECT * FROM main.ui_events WHERE date(timestamp) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"elements ($SRC_ELEMENTS rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.elements\n SELECT e.* FROM main.elements e\n JOIN main.frames f ON e.frame_id = f.id\n WHERE date(f.timestamp) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"meetings ($SRC_MEETINGS rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.meetings\n SELECT * FROM main.meetings WHERE date(meeting_start) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n # ─── FTS UPDATE ───────────────────────────────────────────────────────────\n step \"Updating FTS indexes\"\n\n run_sqlite_heredoc \"elements_fts\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT INTO nas.elements_fts(rowid, text, role)\n SELECT e.id, e.text, e.role\n FROM nas.elements e\n JOIN nas.frames f ON e.frame_id = f.id\n WHERE date(f.timestamp) = '$TARGET_DATE'\n AND e.text IS NOT NULL;\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"frames_fts\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT INTO nas.frames_fts(rowid, full_text, app_name, window_name, browser_url, id)\n SELECT id, full_text, app_name, window_name, browser_url, id\n FROM nas.frames\n WHERE date(timestamp) = '$TARGET_DATE'\n AND full_text IS NOT NULL;\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"ui_events_fts\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT INTO nas.ui_events_fts(rowid, text_content, app_name, window_title, element_name)\n SELECT id, text_content, app_name, window_title, element_name\n FROM nas.ui_events\n WHERE date(timestamp) = '$TARGET_DATE'\n AND text_content IS NOT NULL;\nDETACH nas;\n\"\n\n # ─── VERIFY DB ────────────────────────────────────────────────────────────\n step \"Verifying DB\"\n\n V_FRAMES=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';\")\n V_ELEMENTS=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');\")\n V_UI=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';\")\n V_OCR=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');\")\n V_MEETINGS=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM meetings WHERE date(meeting_start)= '$TARGET_DATE';\")\n\n check \"frames\" \"$V_FRAMES\" \"$SRC_FRAMES\"\n check \"elements\" \"$V_ELEMENTS\" \"$SRC_ELEMENTS\"\n check \"ui_events\" \"$V_UI\" \"$SRC_UI\"\n check \"ocr_text\" \"$V_OCR\" \"$SRC_OCR\"\n check \"meetings\" \"$V_MEETINGS\" \"$SRC_MEETINGS\"\n\nfi\n\n# ─── COPY DATA FOLDER ─────────────────────────────────────────────────────────\n# Always runs regardless of DB sync status\nstep \"Copying data folder for $TARGET_DATE\"\n\nif [ -d \"$DATA_SRC\" ]; then\n mkdir -p \"$NAS_DATA/$TARGET_DATE\"\n RSYNC_START=$(date +%s)\n printf \" %-36s \" \"rsync $TARGET_DATE/ → NAS\"\n rsync -a --ignore-existing \\\n \"$DATA_SRC/\" \\\n \"$NAS_DATA/$TARGET_DATE/\" \\\n 2>>\"$LOG_FILE\"\n RSYNC_DUR=$(( $(date +%s) - RSYNC_START ))\n COPIED_FILES=$(ls \"$NAS_DATA/$TARGET_DATE\" | wc -l | tr -d ' ')\n SRC_FILES=$(ls \"$DATA_SRC\" | wc -l | tr -d ' ')\n COPIED_SIZE=$(du -sh \"$NAS_DATA/$TARGET_DATE\" | cut -f1)\n if [ \"$COPIED_FILES\" -eq \"$SRC_FILES\" ]; then\n printf \"\\r %-36s ✓ %dm%02ds (%s files, %s)\\n\" \\\n \"rsync $TARGET_DATE/ → NAS\" \\\n \"$(( RSYNC_DUR / 60 ))\" \"$(( RSYNC_DUR % 60 ))\" \\\n \"$COPIED_FILES\" \"$COPIED_SIZE\" | tee -a \"$LOG_FILE\"\n else\n printf \"\\r %-36s ✗ %s / %s files\\n\" \\\n \"rsync $TARGET_DATE/ → NAS\" \"$COPIED_FILES\" \"$SRC_FILES\" | tee -a \"$LOG_FILE\"\n fi\nelse\n printf \" %-36s %s\\n\" \"rsync $TARGET_DATE/ → NAS\" \"skipped (no source dir)\"\nfi\n\n# ─── SUMMARY ──────────────────────────────────────────────────────────────────\nTOTAL_ELAPSED=$(( $(date +%s) - SCRIPT_START ))\nDB_SIZE=$(du -sh \"$NAS_DB\" | cut -f1)\n\necho \"\"\nlog \"Archive DB size: $DB_SIZE\"\nlog \"Total time: $(( TOTAL_ELAPSED / 60 ))m$(( TOTAL_ELAPSED % 60 ))s\"\nlog \"Sync complete for $TARGET_DATE\"\nlog \"========================================\"","depth":29,"role_description":"text"},{"role":"AXRadioButton","text":"lets add ability to jump…, Editor Group 2","depth":28,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXRadioButton","text":"Problems (⇧⌘M)","depth":22,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"PROBLEMS","depth":24,"role_description":"text"},{"role":"AXRadioButton","text":"Output (⇧⌘U)","depth":22,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUTPUT","depth":24,"role_description":"text"},{"role":"AXRadioButton","text":"Debug Console (⇧⌘Y)","depth":22,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"DEBUG CONSOLE","depth":24,"role_description":"text"},{"role":"AXRadioButton","text":"Terminal (⌃`)","depth":22,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":true},{"role":"AXStaticText","text":"TERMINAL","depth":24,"role_description":"text"},{"role":"AXRadioButton","text":"Ports","depth":22,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"PORTS","depth":24,"role_description":"text"},{"role":"AXButton","text":"remote SSH: nas","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"role_description":"text"},{"role":"AXStaticText","text":"SSH: nas","depth":17,"role_description":"text"},{"role":"AXButton","text":"screenpipe (Git) - master*, Checkout Branch/Tag...","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"role_description":"text"},{"role":"AXStaticText","text":"master*","depth":17,"role_description":"text"},{"role":"AXButton","text":"screenpipe (Git) - Synchronize Changes","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"No Problems","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"role_description":"text"},{"role":"AXStaticText","text":"0","depth":17,"role_description":"text"},{"role":"AXStaticText","text":"","depth":17,"role_description":"text"},{"role":"AXStaticText","text":"0","depth":17,"role_description":"text"},{"role":"AXButton","text":"No Ports Forwarded","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"role_description":"text"},{"role":"AXStaticText","text":"0","depth":17,"role_description":"text"},{"role":"AXButton","text":"Notifications","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Signed out","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"role_description":"text"},{"role":"AXStaticText","text":"Signed out","depth":17,"role_description":"text"},{"role":"AXButton","text":"Shell Script","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Editor Language Status: $(copilot) No inline suggestion available, Inline suggestions","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"LF","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"UTF-8","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Spaces: 2","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Ln 331, Col 48","depth":16,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Screen Reader Optimized","depth":16,"bounds":{"left":1.0,"top":0.0,"width":-0.07500005,"height":0.024444444},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"git-commit Lukas Kovalik (23 hours ago)","depth":16,"bounds":{"left":0.9388889,"top":0.0,"width":0.061111093,"height":0.024444444},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.9423611,"top":0.0,"width":0.011805556,"height":0.017777778},"role_description":"text"},{"role":"AXStaticText","text":"Lukas Kovalik (23 hours ago)","depth":17,"bounds":{"left":0.9534722,"top":0.0,"width":0.046527803,"height":0.015555556},"role_description":"text"},{"role":"AXStaticText","text":"Info: Downloading VS Code Server...","depth":12,"role_description":"text"},{"role":"AXButton","text":"lets add ability to jump fro,m search to timeline so we can see the exact screen (also based on monitor and time","depth":19,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Session history","depth":19,"help_text":"Session history","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"New session","depth":19,"help_text":"New session","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Message actions","depth":24,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"This session is being continued from a previous conversation that ran out of context. The summary below covers the earlier portion of the conversation.\n\nSummary:\n1. Primary Request and Intent:\n\nThe user has been developing a Screenpipe dashboard on a Synology NAS. Requests in chronological order:\n- **Q1**: Are db.sqlite-shm and db.sqlite-wal used? → Explained WAL mode; cleaned up files.\n- **Q2**: AND combination search (term1 + term2 must both appear) → Added \"AND also\" input field.\n- **Q3**: Explain UTC time issue, show date in results, make Only/Skip apps use multiselect → Implemented all three.\n- **Q4**: Point sqlite-web at archive.db, add second sqlite-web for db.sqlite → Updated docker-compose.yml, added two services on ports 8767/8768.\n- **Q5**: \"still the same\" (container not picking up config) → Explained `up -d` vs `restart`.\n- **Q6**: Add git, push to gitea.com/lakylak/screenpipe.git → Initialized repo, committed, pushed.\n- **Q7**: Add Timetable tab with video playback and timeline → Full implementation with click-to-seek, auto-advancing chunks, legend.\n- **Q8**: Add scroll/zoom on timeline, jump to specific time, better awareness → Implemented zoom (1×–32×), scrollable timeline, overview minimap, viewport indicator, Jump-to-time input, screenshot thumbnail.\n- **Q9 (most recent)**: Make playing speed more than 8×, fix speed not working, show position on timeline → CSS fix done (wider playhead + time label style), remainder in progress.\n\n2. Key Technical Concepts:\n\n- **SQLite WAL mode**: db.sqlite-shm and db.sqlite-wal are WAL companion files; cleaned with `PRAGMA wal_checkpoint(TRUNCATE)`.\n- **SQLite FTS5**: Space-separated terms = AND; `MATCH 'term1 term2'` requires both; OR requires explicit `OR` keyword.\n- **FastAPI**: Python backend with route handlers in main.py, consumers pattern for DB queries.\n- **Docker Compose**: App image is built (code baked in), not volume-mounted → requires `build` + `up -d` for code changes. `restart` doesn't re-read compose file — need `up -d`.\n- **sqlite-web**: Read-only flag `-r`, pre-built image, no rebuild needed for config changes.\n- **Video playback**: screenpipe records at 0.1–0.3 fps (timelapse). `seek = offset_index / fps` gives seconds into video chunk. ~245 chunks/day across 2 monitors. Videos may be encoded at standard fps making them very short at native speed.\n- **Timeline rendering**: App-colored segments built by merging consecutive frames with same `app_name`. Percentage positions: `((ts - dayStart) / span * 100)%`.\n- **Zoom/scroll**: Inner div width = `zoom × 100%`, outer wrapper has `overflow-x:auto`. Playhead position stays as % of inner div, which is correct at all zoom levels.\n- **Timer-based speed**: For speed > 2×, browser `playbackRate` is unreliable on low-FPS video; correct approach is `setInterval` advancing `video.currentTime` by `speed * interval_ms / 1000` seconds per tick.\n- **UTC vs local time**: Backend treats `time_from`/`time_to` as UTC. Frontend converts with `localTimeToUtc()` before sending.\n- **Git**: `#recycle/` in .gitignore treated as comment — must escape as `\\#recycle/`.\n\n3. Files and Code Sections:\n\n- **`/volume1/screenpipe/app/main.py`**\n - Added `/api/apps` endpoint (all unique app names from frames table)\n - Added `/api/timetable` endpoint (frames + video URLs + screenshot URLs per device per date)\n - `/api/timetable` response structure: `{frames: [{ts, app, win, video_url, seek, screenshot_url}], devices: [...], device: \"...\"}`\n - Key snippet:\n ```python","depth":26,"role_description":"text"},{"role":"AXButton","text":"@app.get(\"/api/timetable\"","depth":26,"help_text":"Open app.get(\"/api/timetable\"","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":")\n async def timetable_data(d: str | None = Query(None), device: str | None = Query(None)):\n ...\n rows = conn.execute(f\"\"\"\n SELECT f.timestamp AS ts, f.app_name AS app, f.window_name AS win,\n f.offset_index, f.snapshot_path,\n vc.file_path AS video_path, vc.fps AS video_fps\n FROM frames f\n JOIN video_chunks vc ON f.video_chunk_id = vc.id\n WHERE f.timestamp >= ? AND f.timestamp < ?\n AND f.video_chunk_id IS NOT NULL {dev_clause}\n ORDER BY f.timestamp\n \"\"\", params).fetchall()\n # seek = offset_index / fps, screenshot_url from _snapshot_to_url(snapshot_path)\n ```\n\n- **`/volume1/screenpipe/app/docker-compose.yml`**\n - Changed sqlite-web service name to `sqlite-web-archive` → port 8767 → `/data/archive.db`\n - Added `sqlite-web-live` → port 8768 → `/data/db.sqlite`\n - screenpipe-app: port 8766, `DB_PATH: /data/db.sqlite`, `TZ: Europe/Sofia`\n\n- **`/volume1/screenpipe/app/static/index.html`** (single large file with all CSS/HTML/JS)\n - **Search enhancements**:\n - Added `id=\"sq2\"` \"AND also\" input between search-row1 and search-row2\n - Replaced `sOnlyApps`/`sSkipApps` text inputs with custom multiselect components (`id=\"msOnlyApps\"`, `id=\"msSkipApps\"`)\n - Updated `buildUrl()` to combine `q + \" \" + q2` and convert times with `localTimeToUtc()`\n - Added `fmtDateTime(ts)` showing \"Apr 20 14:08\" format\n - Added `localTimeToUtc(timeStr)` converting local HH:MM to UTC\n - Multiselect state: `const _msState = { msOnlyApps: new Set(), msSkipApps: new Set() }`\n - **Timetable tab** (new page):\n - Tab button added between Work Report and AI Summary\n - `showPage` array updated: `['activity','search','audio','report','timetable','summary']`\n - `refresh()` calls `loadTimetable()` when on timetable page\n - **Timetable CSS** (key styles):\n ```css\n .tt-scroll-wrap { overflow-x:auto; ... scrollbar-width:thin; }\n .tt-inner { position:relative; height:52px; } /* width set dynamically */\n .tt-playhead { position:absolute; top:0; width:3px; height:36px; background:white; box-shadow:0 0 8px rgba(255,255,255,.9); z-index:10; pointer-events:none; display:none; }\n .tt-playhead-time { position:absolute; top:2px; font-size:9px; font-weight:600; color:white; background:rgba(0,0,0,.75); padding:1px 4px; border-radius:2px; white-space:nowrap; transform:translateX(-50%); z-index:12; pointer-events:none; display:none; }\n .tt-overview-wrap { position:relative; height:14px; ... cursor:pointer; }\n .tt-overview-vp { position:absolute; background:rgba(255,255,255,0.12); border:1px solid rgba(255,255,255,0.4); }\n ```\n - **Timetable JS state variables**:\n ```javascript\n let _ttFrames = [], _ttChunks = [], _ttCurChunk = -1;\n let _ttDayStart = 0, _ttDayEnd = 0, _ttZoom = 1;\n const _ttAppColors = {};\n const TT_ZOOMS = [1, 2, 4, 8, 16, 32];\n const TT_TICK_MIN = {1:30, 2:15, 4:10, 8:5, 16:2, 32:1};\n ```\n - **Key JS functions**:\n - `loadTimetable()` — fetches `/api/timetable`, groups chunks, renders\n - `ttZoom(dir)` — changes zoom level, updates inner width, re-renders ticks, scrolls to playhead\n - `ttTimelineClick(e)` — uses `inner.getBoundingClientRect()` (works correctly when scrolled)\n - `ttOverviewClick(e)` — scrolls timeline + seeks video\n - `ttUpdateOverviewVp()` — updates white viewport rect using `wrap.scrollLeft / inner.scrollWidth`\n - `ttJumpToTime()` — parses time input, converts to ms, calls `ttSeekToMs`\n - `ttSeekToMs(tsMs)` — binary-searches nearest frame, loads chunk, seeks video\n - `_ttScrollToPlayhead(force)` — scrolls wrap so playhead stays at ~35% from left when Follow is checked\n - `_ttMovePlayhead(tsMs)` — sets `ph.style.left` as percentage, calls `_ttScrollToPlayhead`\n - `_ttShowNow(f)` — updates screenshot thumbnail + now-text div\n - `ttSyncBtn()` — syncs play/pause button text\n - Keyboard: Space=play/pause, ←/→=±10s, Ctrl+←/→=±30s, +/-=zoom\n\n- **`/volume1/screenpipe/.gitignore`**\n ```\n *.db, *.sqlite, *.sqlite-shm, *.sqlite-wal\n data/, \\#recycle/,","depth":26,"role_description":"text"},{"role":"AXButton","text":"@eaDir/","depth":26,"help_text":"Open eaDir/","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"app_settings.json, app/.env\n __pycache__/, *.pyc, .DS_Store\n ```\n\n4. Errors and Fixes:\n\n- **`#recycle/` in .gitignore treated as comment**: `#` starts a comment in .gitignore. Fixed by escaping: `\\#recycle/`. Also had to `git rm --cached \"#recycle/desktop.ini\"` to unstage it.\n- **`sudo docker compose restart sqlite-web` didn't apply config change**: `restart` reuses existing container config, doesn't re-read compose file. Fix: `sudo docker compose up -d` recreates containers with new config.\n- **Orphan container holding port 8767**: Old `screenpipe-sqlweb` container still running after rename. Fix: `sudo docker compose up -d --remove-orphans`.\n- **`sudo docker` not accessible from Claude Code**: Interactive sudo required. User runs commands in NAS terminal.\n- **`git config --global --add safe.directory /volume1/screenpipe`**: Required due to dubious ownership of NAS volume directory.\n\n5. Problem Solving:\n\n- **Time zone confusion in search**: Backend uses UTC for time_from/time_to; frontend displays local time. Solved by `localTimeToUtc()` converting before API call, and showing date+time in results.\n- **sqlite-web not showing April 17–21 data**: Container was pointing at db.sqlite (old config), not archive.db. Fixed by updating docker-compose.yml + `up -d`.\n- **Video playback speed**: Browser `video.playbackRate` is capped (~16× max in Chrome) and performs poorly for very low FPS (0.1–0.3 fps) screenpipe videos. Each chunk may only be 1–2 seconds of wall-clock encoded video, playing through instantly. Solution: implement timer-based frame-jumping for speed > 2× (in progress).\n- **Playhead visibility**: White 2px line was hard to see. Fixed CSS to 3px width + stronger box-shadow + added `.tt-playhead-time` overlay label style.\n\n6. All User Messages:\n\n- \"do we use db.sqlite-shm and db.sqlite-wal for anything right now? [image of search UI] Lets add ability to search with combination... Explain how does the search work time seems to work in utc maybe display date next to the time in results. Make only apps and skip apps multiselect with all available apps.\"\n- \"doi I need to restart?\"\n- \"there is sudo docker compose\"\n- \"no still the same\"\n- \"add git. I have created gitea repo https://gitea.com/lakylak/screenpipe.git\"\n- \"just do it\" (re: git push)\n- \"how to make sure data in :8767 are accurate and point to archive.db\"\n- \"I can't see older than 16th there should 21st of april. In http://192.168.0.242:8766/ I can see all but not on sqlite viewer http://192.168.0.242:8767\"\n- \"ok lets add additional port to read db.sqlite, I would like to see the structure of official db that reads db.sqlite db and one for archive\"\n- [docker compose output showing orphan container error]\n- \"looks great. I want to have ability to scroll left and right and also to jump to specific time. I want to be more aware to what I see. Still it should be fast\"\n- \"lets make the playing speed more than 8x\"\n- \"still playing speed is not showing properly still just in one second. also I want to see in timeline where I am\"\n\n7. Pending Tasks:\n\n- **Playback speed fix** (in progress, partially done):\n - Add `<div class=\"tt-playhead-time\" id=\"ttPlayheadTime\"></div>` inside `ttInner` HTML\n - Implement `_ttStartSpeedTimer(speed)` / `_ttStopSpeedTimer()` / `ttSetSpeed(speed)` functions\n - Update speed select `onchange` to call `ttSetSpeed(+this.value)`\n - Add 64× option to speed select\n - Update `_ttMovePlayhead` to also update `ttPlayheadTime` label\n - Update `ttSyncBtn` to start/stop timer based on play state + speed\n - Update `ttNextChunk` and `ttSeekToMs` to stop timer (restarted by onplay → ttSyncBtn)\n - Rebuild Docker image after changes\n\n8. Current Work:\n\nWorking on fixing two issues with the Timetable tab:\n1. **Playback speed**: `video.playbackRate` doesn't work well for low-FPS screenpipe videos. The plan is to implement a `setInterval`-based frame-jumper for speed > 2× that advances `video.currentTime` by `speed * intervalMs / 1000` every 100–200ms, bypassing browser playbackRate limits.\n2. **Timeline position indicator**: Playhead not prominent enough. \n\n**CSS already changed** in `/volume1/screenpipe/app/static/index.html`:\n```css\n.tt-playhead { position:absolute; top:0; width:3px; height:36px; background:white; box-shadow:0 0 8px rgba(255,255,255,.9); z-index:10; pointer-events:none; display:none; }\n.tt-playhead-time { position:absolute; top:2px; font-size:9px; font-weight:600; color:white; background:rgba(0,0,0,.75); padding:1px 4px; border-radius:2px; white-space:nowrap; transform:translateX(-50%); z-index:12; pointer-events:none; display:none; }\n```\n\nSession was interrupted by summary request after this CSS edit, mid-implementation.\n\n9. Optional Next Step:\n\nContinuing the fix for: \"still playing speed is not showing properly still just in one second. also I want to see in timeline where I am\"\n\nThe next steps in order are:\n1. Add `<div class=\"tt-playhead-time\" id=\"ttPlayheadTime\"></div>` to the HTML inside `#ttInner` (after the existing `.tt-playhead` div)\n2. Update `_ttMovePlayhead` to set `ttPlayheadTime` position and text content with `fmtTime()`\n3. Add timer-based speed system to JS (new functions `_ttStartSpeedTimer`, `_ttStopSpeedTimer`, `ttSetSpeed`)\n4. Update speed select's `onchange` to `ttSetSpeed(+this.value)` and add 64× option\n5. Update `ttSyncBtn`, `ttNextChunk`, `ttSeekToMs` to integrate with timer\n6. Rebuild: `sudo docker compose build screenpipe-app && sudo docker compose up -d screenpipe-app`\n\nIf you need specific details from before compaction (like exact code snippets, error messages, or content you generated), read the full transcript at: /home/Adm1n/.claude/projects/-volume1-screenpipe/7777f46e-1e40-4051-b4bb-f43aedd59556.jsonl\nContinue the conversation from where it left off without asking the user any further questions. Resume directly — do not acknowledge the summary, do not recap what was happening, do not preface with \"I'll continue\" or similar. Pick up the last task as if the break never happened.","depth":26,"role_description":"text"},{"role":"AXButton","text":"Thinking","depth":23,"role_description":"disclosure triangle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Thinking","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Find timetable speed and playhead related code","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"tt-playhead\\|ttPlayhead\\|ttInner\\|_ttMovePlayhead\\|ttSetSpeed\\|_ttStartSpeed\\|_ttStopSpeed\\|ttSyncBtn\\|playbackRate\\|speed.*select\\|spdSel\\|ttSpeed\" /volume1/screenpipe/app/static/index.html | head -80","depth":25,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"207:.tt-playhead { position:absolute; top:0; width:3px; height:36px; background:white; box-shadow:0 0 8px rgba(255,255,255,.9); z-index:10; pointer-events:none; display:none; }\n208:.tt-playhead-time { position:absolute; top:2px; font-size:9px; font-weight:600; color:white; background:rgba(0,0,0,.75); padding:1px 4px; border-radius:2px; white-space:nowrap; transform:translateX(-50%); z-index:12; pointer-events:none; display:none; }\n580: <div class=\"tt-inner\" id=\"ttInner\" onclick=\"ttTimelineClick(event)\">\n583: <div class=\"tt-playhead\" id=\"ttPlayhead\"></div>\n598: onpause=\"ttSyncBtn()\"\n599: onplay=\"ttSyncBtn()\">\n607: <select id=\"ttSpeed\" onchange=\"document.getElementById('ttVideo').playbackRate=+this.value\">\n1624: document.getElementById('ttInner').style.width = '100%';\n1632: document.getElementById('ttPlayhead').style.display = 'none';\n1694: document.getElementById('ttInner').style.width = (_ttZoom * 100) + '%';\n1700: const inner = document.getElementById('ttInner');\n1710: const inner = document.getElementById('ttInner');\n1718: const inner = document.getElementById('ttInner');\n1750: _ttMovePlayhead(new Date(best.ts).getTime());\n1772: _ttMovePlayhead(new Date(best.ts).getTime());\n1791:function _ttMovePlayhead(tsMs) {\n1792: const ph = document.getElementById('ttPlayhead');\n1802: const ph = document.getElementById('ttPlayhead');\n1805: const inner = document.getElementById('ttInner');\n1819:function ttSyncBtn() {","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"role_description":"text"},{"role":"AXLink","text":"index.html","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"index.html","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"(lines 576-625)","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"role_description":"text"},{"role":"AXLink","text":"index.html","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"index.html","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"(lines 1786-1865)","depth":24,"role_description":"text"},{"role":"AXButton","text":"Thinking","depth":23,"role_description":"disclosure triangle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Thinking","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Find chunk loading and playhead update functions","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"ttUpdatePlayhead\\|ttNextChunk\\|ttLoadChunk\\|_ttCurChunk\\|_ttChunks\\|_ttFrames\" /volume1/screenpipe/app/static/index.html | head -50","depth":25,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"596: onended=\"ttNextChunk()\"\n597: ontimeupdate=\"ttUpdatePlayhead()\"\n1569:let _ttFrames = [];\n1570:let _ttChunks = [];\n1571:let _ttCurChunk = -1;\n1607: _ttFrames = data.frames;\n1609: for (const f of _ttFrames) {\n1613: _ttChunks = [...chunkMap.values()];\n1614: _ttCurChunk = -1;\n1616: _ttDayStart = new Date(_ttFrames[0].ts).getTime();\n1617: _ttDayEnd = new Date(_ttFrames[_ttFrames.length - 1].ts).getTime();\n1620: for (const f of _ttFrames) _ttColor(f.app);\n1640: for (const f of _ttFrames) {\n1736: if (!_ttFrames.length) return;\n1737: let best = _ttFrames[0], minDiff = Infinity;\n1738: for (const f of _ttFrames) {\n1742: const ci = _ttChunks.findIndex(ch => ch[0].video_url === best.video_url);\n1744: _ttCurChunk = ci;\n1753:function ttNextChunk() {\n1754: if (_ttCurChunk + 1 >= _ttChunks.length) return;\n1755: _ttCurChunk++;\n1757: video.src = _ttChunks[_ttCurChunk][0].video_url;\n1762:function ttUpdatePlayhead() {\n1764: if (_ttCurChunk < 0 || _ttCurChunk >= _ttChunks.length) return;\n1765: const chunk = _ttChunks[_ttCurChunk];","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"role_description":"text"},{"role":"AXLink","text":"index.html","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"index.html","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"(lines 1754-1793)","depth":24,"role_description":"text"},{"role":"AXButton","text":"Thinking","depth":23,"role_description":"disclosure triangle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Thinking","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"role_description":"text"},{"role":"AXLink","text":"index.html","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"index.html","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"(lines 1701-1760)","depth":24,"role_description":"text"},{"role":"AXButton","text":"Thinking","depth":23,"role_description":"disclosure triangle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Thinking","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"role_description":"text"},{"role":"AXLink","text":"index.html","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"index.html","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"(lines 1561-1640)","depth":24,"role_description":"text"},{"role":"AXButton","text":"Thinking","depth":23,"role_description":"disclosure triangle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Thinking","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Find time formatting functions","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"function fmtTime\\|function fmtDate\\|function _fmt\\|localTimeToUtc\\|fmtDateTime\" /volume1/screenpipe/app/static/index.html | head -20","depth":25,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"1088: if (tf) url += `&time_from=${localTimeToUtc(tf)}`;\n1089: if (tt) url += `&time_to=${localTimeToUtc(tt)}`;\n1153: let meta = `<span style=\"color:var(--muted)\">${fmtDateTime(r.timestamp)}</span>${srcBadge}`;\n1166: meta = `<span style=\"color:var(--muted)\">${fmtDateTime(r.timestamp)}</span>${srcBadge} <span class=\"badge ${r.is_input_device?'mic':'sys'}\">${r.is_input_device?'MIC':'SYS'}</span>`;\n1307:function fmtTime(ts) {\n1312:function fmtDateTime(ts) {\n1320:function localTimeToUtc(timeStr) {\n1778:function _fmtSec(s) {\n1788: `${fmtDateTime(f.ts)} · ${f.app}${f.win ? ' / ' + f.win : ''}`;","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"role_description":"text"},{"role":"AXLink","text":"index.html","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"index.html","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"(lines 1308-1327)","depth":24,"role_description":"text"},{"role":"AXButton","text":"Thinking","depth":23,"role_description":"disclosure triangle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Thinking","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Now I have everything I need. I'll implement the frame-by-frame timer system that replaces","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"video.playbackRate","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"with wall-clock accurate playback, plus add the playhead time label. Let me make the changes:","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Edit","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"","depth":24,"role_description":"text"},{"role":"AXLink","text":"index.html","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"index.html","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"Added 1 line","depth":24,"role_description":"text"}]...
|
7813567583120146056
|
4474475550963076503
|
click
|
accessibility
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 2 pending changes
2
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update, 1 requires restart
3
Claude Code
Containers
EXPLORER
EXPLORER
Explorer Section: screenpipe [SSH: nas]
Explorer Section: screenpipe [SSH: nas]
SCREENPIPE [SSH: NAS]
#recycle
app
data
pipes
.gitignore
app_settings.json
archive.db
db.sqlite
screenpipe_sync.sh
screenpipe.db
Outline Section
OUTLINE
OUTLINE
Timeline Section
TIMELINE
TIMELINE
app_settings.json, Editor Group 1
screenpipe_sync.sh, Editor Group 1
db.sqlite-shm, preview, Editor Group 1
#!/bin/bash
# screenpipe_sync.sh
# Syncs Screenpipe SQLite data to a NAS archive database (append-only, no deletions).
# Also copies the day's video/frame data folder to the NAS.
#
# Usage:
# ./screenpipe_sync.sh # syncs yesterday (default)
# ./screenpipe_sync.sh 2026-04-15 # syncs a specific date
# ./screenpipe_sync.sh today # syncs today so far
#
# Cron example (runs at 3am daily):
# 0 3 * * * /Users/lukas/.screenpipe/screenpipe_sync.sh >> /Users/lukas/.screenpipe/sync.log 2>&1
set -euo pipefail
# ─── CONFIG ───────────────────────────────────────────────────────────────────
DB_SRC="${SCREENPIPE_DB:-$HOME/.screenpipe/db.sqlite}"
NAS_MOUNT="${NAS_MOUNT:-/Volumes/Test/screenpipe}"
NAS_DB="$NAS_MOUNT/archive.db"
NAS_DATA="$NAS_MOUNT/data"
LOG_FILE="$HOME/.screenpipe/sync.log"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
SCRIPT_START=$(date +%s)
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# ─── DATE ARGUMENT ────────────────────────────────────────────────────────────
if [ "${1:-}" = "today" ]; then
TARGET_DATE=$(date +%Y-%m-%d)
elif [ -n "${1:-}" ]; then
TARGET_DATE="$1"
if ! [[ "$TARGET_DATE" =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]]; then
echo "ERROR: Invalid date format. Use YYYY-MM-DD, 'today', or no argument for yesterday."
exit 1
fi
else
TARGET_DATE=$(date -v-1d +%Y-%m-%d)
fi
log "========================================"
log "Screenpipe sync starting for: $TARGET_DATE"
log "========================================"
# ─── PREFLIGHT ────────────────────────────────────────────────────────────────
step "Preflight checks"
if [ ! -f "$DB_SRC" ]; then
log "ERROR: Source DB not found at $DB_SRC"; exit 1
fi
printf " %-20s %s (%s)\n" "Source DB:" "OK" "$(du -sh "$DB_SRC" | cut -f1)"
if [ ! -d "$NAS_MOUNT" ]; then
log "ERROR: NAS not mounted at $NAS_MOUNT"; exit 1
fi
printf " %-20s %s\n" "NAS mount:" "OK $NAS_MOUNT"
# Check if DB already synced for this date
DB_ALREADY_SYNCED=false
if [ -f "$NAS_DB" ]; then
EXISTING=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';" 2>/dev/null || echo "0")
if [ "$EXISTING" -gt "0" ]; then
log "Date $TARGET_DATE already has $EXISTING frames in archive — skipping DB sync"
DB_ALREADY_SYNCED=true
else
printf " %-20s %s (%s)\n" "Archive DB:" "exists" "$(du -sh "$NAS_DB" | cut -f1)"
fi
else
printf " %-20s %s\n" "Archive DB:" "will be created"
fi
# Source data dir for this date
DATA_SRC="$HOME/.screenpipe/data/data/$TARGET_DATE"
if [ -d "$DATA_SRC" ]; then
DATA_SIZE=$(du -sh "$DATA_SRC" | cut -f1)
DATA_FILES=$(ls "$DATA_SRC" | wc -l | tr -d ' ')
printf " %-20s %s (%s files, %s)\n" "Data dir:" "OK" "$DATA_FILES" "$DATA_SIZE"
else
printf " %-20s %s\n" "Data dir:" "not found — skipping file copy"
fi
# ─── DB SYNC ──────────────────────────────────────────────────────────────────
if [ "$DB_ALREADY_SYNCED" = false ]; then
# ─── COUNT SOURCE ROWS ────────────────────────────────────────────────────
step "Counting source rows for $TARGET_DATE"
SRC_FRAMES=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';")
SRC_ELEMENTS=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
SRC_UI=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';")
SRC_OCR=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
SRC_MEETINGS=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM meetings WHERE date(meeting_start) = '$TARGET_DATE';")
printf " %-20s %s\n" "frames:" "$SRC_FRAMES"
printf " %-20s %s\n" "elements:" "$SRC_ELEMENTS"
printf " %-20s %s\n" "ui_events:" "$SRC_UI"
printf " %-20s %s\n" "ocr_text:" "$SRC_OCR"
printf " %-20s %s\n" "meetings:" "$SRC_MEETINGS"
if [ "$SRC_FRAMES" -eq "0" ]; then
log "No frames found for $TARGET_DATE — skipping DB sync"
DB_ALREADY_SYNCED=true
fi
fi
if [ "$DB_ALREADY_SYNCED" = false ]; then
# ─── INIT TABLES ──────────────────────────────────────────────────────────
step "Initialising tables, indexes, FTS"
run_sqlite_heredoc "creating tables" "
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
DETACH nas;
"
run_sqlite_heredoc "creating indexes" "
ATTACH '$NAS_DB' AS nas;
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
CREATE INDEX IF NOT EXISTS nas.idx_elements_frame_id ON elements(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_elements_frame_src_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_timestamp ON ui_events(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_app_name ON ui_events(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_frame_id ON ui_events(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_ocr_text_frame_id ON ocr_text(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_meetings_start ON meetings(meeting_start);
CREATE INDEX IF NOT EXISTS nas.idx_video_chunks_device ON video_chunks(device_name);
DETACH nas;
"
run_sqlite_heredoc "creating FTS tables" "
ATTACH '$NAS_DB' AS nas;
CREATE VIRTUAL TABLE IF NOT EXISTS nas.elements_fts USING fts5(
text, role, frame_id UNINDEXED,
content='elements', content_rowid='id', tokenize='unicode61'
);
CREATE VIRTUAL TABLE IF NOT EXISTS nas.frames_fts USING fts5(
full_text, app_name, window_name, browser_url, id UNINDEXED,
tokenize='unicode61'
);
CREATE VIRTUAL TABLE IF NOT EXISTS nas.ui_events_fts USING fts5(
text_content,
app_name,
window_title,
element_name,
content='ui_events',
content_rowid='id',
tokenize='unicode61'
);
DETACH nas;
"
# ─── SYNC DATA ────────────────────────────────────────────────────────────
step "Syncing data for $TARGET_DATE"
run_sqlite_heredoc "video_chunks" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.video_chunks
SELECT * FROM main.video_chunks
WHERE id IN (
SELECT DISTINCT video_chunk_id FROM main.frames
WHERE date(timestamp) = '$TARGET_DATE' AND video_chunk_id IS NOT NULL
);
DETACH nas;
"
run_sqlite_heredoc "frames ($SRC_FRAMES rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "ocr_text ($SRC_OCR rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.ocr_text
SELECT o.* FROM main.ocr_text o
JOIN main.frames f ON o.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "ui_events ($SRC_UI rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.ui_events
SELECT * FROM main.ui_events WHERE date(timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "elements ($SRC_ELEMENTS rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "meetings ($SRC_MEETINGS rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.meetings
SELECT * FROM main.meetings WHERE date(meeting_start) = '$TARGET_DATE';
DETACH nas;
"
# ─── FTS UPDATE ───────────────────────────────────────────────────────────
step "Updating FTS indexes"
run_sqlite_heredoc "elements_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.elements_fts(rowid, text, role)
SELECT e.id, e.text, e.role
FROM nas.elements e
JOIN nas.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE'
AND e.text IS NOT NULL;
DETACH nas;
"
run_sqlite_heredoc "frames_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.frames_fts(rowid, full_text, app_name, window_name, browser_url, id)
SELECT id, full_text, app_name, window_name, browser_url, id
FROM nas.frames
WHERE date(timestamp) = '$TARGET_DATE'
AND full_text IS NOT NULL;
DETACH nas;
"
run_sqlite_heredoc "ui_events_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.ui_events_fts(rowid, text_content, app_name, window_title, element_name)
SELECT id, text_content, app_name, window_title, element_name
FROM nas.ui_events
WHERE date(timestamp) = '$TARGET_DATE'
AND text_content IS NOT NULL;
DETACH nas;
"
# ─── VERIFY DB ────────────────────────────────────────────────────────────
step "Verifying DB"
V_FRAMES=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';")
V_ELEMENTS=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
V_UI=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';")
V_OCR=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
V_MEETINGS=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM meetings WHERE date(meeting_start)= '$TARGET_DATE';")
check "frames" "$V_FRAMES" "$SRC_FRAMES"
check "elements" "$V_ELEMENTS" "$SRC_ELEMENTS"
check "ui_events" "$V_UI" "$SRC_UI"
check "ocr_text" "$V_OCR" "$SRC_OCR"
check "meetings" "$V_MEETINGS" "$SRC_MEETINGS"
fi
# ─── COPY DATA FOLDER ─────────────────────────────────────────────────────────
# Always runs regardless of DB sync status
step "Copying data folder for $TARGET_DATE"
if [ -d "$DATA_SRC" ]; then
mkdir -p "$NAS_DATA/$TARGET_DATE"
RSYNC_START=$(date +%s)
printf " %-36s " "rsync $TARGET_DATE/ → NAS"
rsync -a --ignore-existing \
"$DATA_SRC/" \
"$NAS_DATA/$TARGET_DATE/" \
2>>"$LOG_FILE"
RSYNC_DUR=$(( $(date +%s) - RSYNC_START ))
COPIED_FILES=$(ls "$NAS_DATA/$TARGET_DATE" | wc -l | tr -d ' ')
SRC_FILES=$(ls "$DATA_SRC" | wc -l | tr -d ' ')
COPIED_SIZE=$(du -sh "$NAS_DATA/$TARGET_DATE" | cut -f1)
if [ "$COPIED_FILES" -eq "$SRC_FILES" ]; then
printf "\r %-36s ✓ %dm%02ds (%s files, %s)\n" \
"rsync $TARGET_DATE/ → NAS" \
"$(( RSYNC_DUR / 60 ))" "$(( RSYNC_DUR % 60 ))" \
"$COPIED_FILES" "$COPIED_SIZE" | tee -a "$LOG_FILE"
else
printf "\r %-36s ✗ %s / %s files\n" \
"rsync $TARGET_DATE/ → NAS" "$COPIED_FILES" "$SRC_FILES" | tee -a "$LOG_FILE"
fi
else
printf " %-36s %s\n" "rsync $TARGET_DATE/ → NAS" "skipped (no source dir)"
fi
# ─── SUMMARY ──────────────────────────────────────────────────────────────────
TOTAL_ELAPSED=$(( $(date +%s) - SCRIPT_START ))
DB_SIZE=$(du -sh "$NAS_DB" | cut -f1)
echo ""
log "Archive DB size: $DB_SIZE"
log "Total time: $(( TOTAL_ELAPSED / 60 ))m$(( TOTAL_ELAPSED % 60 ))s"
log "Sync complete for $TARGET_DATE"
log "========================================"
#!/bin/bash
# screenpipe_sync.sh
# Syncs Screenpipe SQLite data to a NAS archive database (append-only, no deletions).
# Also copies the day's video/frame data folder to the NAS.
#
# Usage:
# ./screenpipe_sync.sh # syncs yesterday (default)
# ./screenpipe_sync.sh 2026-04-15 # syncs a specific date
# ./screenpipe_sync.sh today # syncs today so far
#
# Cron example (runs at 3am daily):
# 0 3 * * * /Users/lukas/.screenpipe/screenpipe_sync.sh >> /Users/lukas/.screenpipe/sync.log 2>&1
set -euo pipefail
# ─── CONFIG ───────────────────────────────────────────────────────────────────
DB_SRC="${SCREENPIPE_DB:-$HOME/.screenpipe/db.sqlite}"
NAS_MOUNT="${NAS_MOUNT:-/Volumes/Test/screenpipe}"
NAS_DB="$NAS_MOUNT/archive.db"
NAS_DATA="$NAS_MOUNT/data"
LOG_FILE="$HOME/.screenpipe/sync.log"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
SCRIPT_START=$(date +%s)
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# ─── DATE ARGUMENT ────────────────────────────────────────────────────────────
if [ "${1:-}" = "today" ]; then
TARGET_DATE=$(date +%Y-%m-%d)
elif [ -n "${1:-}" ]; then
TARGET_DATE="$1"
if ! [[ "$TARGET_DATE" =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]]; then
echo "ERROR: Invalid date format. Use YYYY-MM-DD, 'today', or no argument for yesterday."
exit 1
fi
else
TARGET_DATE=$(date -v-1d +%Y-%m-%d)
fi
log "========================================"
log "Screenpipe sync starting for: $TARGET_DATE"
log "========================================"
# ─── PREFLIGHT ────────────────────────────────────────────────────────────────
step "Preflight checks"
if [ ! -f "$DB_SRC" ]; then
log "ERROR: Source DB not found at $DB_SRC"; exit 1
fi
printf " %-20s %s (%s)\n" "Source DB:" "OK" "$(du -sh "$DB_SRC" | cut -f1)"
if [ ! -d "$NAS_MOUNT" ]; then
log "ERROR: NAS not mounted at $NAS_MOUNT"; exit 1
fi
printf " %-20s %s\n" "NAS mount:" "OK $NAS_MOUNT"
# Check if DB already synced for this date
DB_ALREADY_SYNCED=false
if [ -f "$NAS_DB" ]; then
EXISTING=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';" 2>/dev/null || echo "0")
if [ "$EXISTING" -gt "0" ]; then
log "Date $TARGET_DATE already has $EXISTING frames in archive — skipping DB sync"
DB_ALREADY_SYNCED=true
else
printf " %-20s %s (%s)\n" "Archive DB:" "exists" "$(du -sh "$NAS_DB" | cut -f1)"
fi
else
printf " %-20s %s\n" "Archive DB:" "will be created"
fi
# Source data dir for this date
DATA_SRC="$HOME/.screenpipe/data/data/$TARGET_DATE"
if [ -d "$DATA_SRC" ]; then
DATA_SIZE=$(du -sh "$DATA_SRC" | cut -f1)
DATA_FILES=$(ls "$DATA_SRC" | wc -l | tr -d ' ')
printf " %-20s %s (%s files, %s)\n" "Data dir:" "OK" "$DATA_FILES" "$DATA_SIZE"
else
printf " %-20s %s\n" "Data dir:" "not found — skipping file copy"
fi
# ─── DB SYNC ──────────────────────────────────────────────────────────────────
if [ "$DB_ALREADY_SYNCED" = false ]; then
# ─── COUNT SOURCE ROWS ────────────────────────────────────────────────────
step "Counting source rows for $TARGET_DATE"
SRC_FRAMES=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';")
SRC_ELEMENTS=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
SRC_UI=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';")
SRC_OCR=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
SRC_MEETINGS=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM meetings WHERE date(meeting_start) = '$TARGET_DATE';")
printf " %-20s %s\n" "frames:" "$SRC_FRAMES"
printf " %-20s %s\n" "elements:" "$SRC_ELEMENTS"
printf " %-20s %s\n" "ui_events:" "$SRC_UI"
printf " %-20s %s\n" "ocr_text:" "$SRC_OCR"
printf " %-20s %s\n" "meetings:" "$SRC_MEETINGS"
if [ "$SRC_FRAMES" -eq "0" ]; then
log "No frames found for $TARGET_DATE — skipping DB sync"
DB_ALREADY_SYNCED=true
fi
fi
if [ "$DB_ALREADY_SYNCED" = false ]; then
# ─── INIT TABLES ──────────────────────────────────────────────────────────
step "Initialising tables, indexes, FTS"
run_sqlite_heredoc "creating tables" "
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
DETACH nas;
"
run_sqlite_heredoc "creating indexes" "
ATTACH '$NAS_DB' AS nas;
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
CREATE INDEX IF NOT EXISTS nas.idx_elements_frame_id ON elements(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_elements_frame_src_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_timestamp ON ui_events(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_app_name ON ui_events(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_frame_id ON ui_events(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_ocr_text_frame_id ON ocr_text(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_meetings_start ON meetings(meeting_start);
CREATE INDEX IF NOT EXISTS nas.idx_video_chunks_device ON video_chunks(device_name);
DETACH nas;
"
run_sqlite_heredoc "creating FTS tables" "
ATTACH '$NAS_DB' AS nas;
CREATE VIRTUAL TABLE IF NOT EXISTS nas.elements_fts USING fts5(
text, role, frame_id UNINDEXED,
content='elements', content_rowid='id', tokenize='unicode61'
);
CREATE VIRTUAL TABLE IF NOT EXISTS nas.frames_fts USING fts5(
full_text, app_name, window_name, browser_url, id UNINDEXED,
tokenize='unicode61'
);
CREATE VIRTUAL TABLE IF NOT EXISTS nas.ui_events_fts USING fts5(
text_content,
app_name,
window_title,
element_name,
content='ui_events',
content_rowid='id',
tokenize='unicode61'
);
DETACH nas;
"
# ─── SYNC DATA ────────────────────────────────────────────────────────────
step "Syncing data for $TARGET_DATE"
run_sqlite_heredoc "video_chunks" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.video_chunks
SELECT * FROM main.video_chunks
WHERE id IN (
SELECT DISTINCT video_chunk_id FROM main.frames
WHERE date(timestamp) = '$TARGET_DATE' AND video_chunk_id IS NOT NULL
);
DETACH nas;
"
run_sqlite_heredoc "frames ($SRC_FRAMES rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "ocr_text ($SRC_OCR rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.ocr_text
SELECT o.* FROM main.ocr_text o
JOIN main.frames f ON o.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "ui_events ($SRC_UI rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.ui_events
SELECT * FROM main.ui_events WHERE date(timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "elements ($SRC_ELEMENTS rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "meetings ($SRC_MEETINGS rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.meetings
SELECT * FROM main.meetings WHERE date(meeting_start) = '$TARGET_DATE';
DETACH nas;
"
# ─── FTS UPDATE ───────────────────────────────────────────────────────────
step "Updating FTS indexes"
run_sqlite_heredoc "elements_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.elements_fts(rowid, text, role)
SELECT e.id, e.text, e.role
FROM nas.elements e
JOIN nas.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE'
AND e.text IS NOT NULL;
DETACH nas;
"
run_sqlite_heredoc "frames_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.frames_fts(rowid, full_text, app_name, window_name, browser_url, id)
SELECT id, full_text, app_name, window_name, browser_url, id
FROM nas.frames
WHERE date(timestamp) = '$TARGET_DATE'
AND full_text IS NOT NULL;
DETACH nas;
"
run_sqlite_heredoc "ui_events_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.ui_events_fts(rowid, text_content, app_name, window_title, element_name)
SELECT id, text_content, app_name, window_title, element_name
FROM nas.ui_events
WHERE date(timestamp) = '$TARGET_DATE'
AND text_content IS NOT NULL;
DETACH nas;
"
# ─── VERIFY DB ────────────────────────────────────────────────────────────
step "Verifying DB"
V_FRAMES=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';")
V_ELEMENTS=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
V_UI=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';")
V_OCR=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
V_MEETINGS=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM meetings WHERE date(meeting_start)= '$TARGET_DATE';")
check "frames" "$V_FRAMES" "$SRC_FRAMES"
check "elements" "$V_ELEMENTS" "$SRC_ELEMENTS"
check "ui_events" "$V_UI" "$SRC_UI"
check "ocr_text" "$V_OCR" "$SRC_OCR"
check "meetings" "$V_MEETINGS" "$SRC_MEETINGS"
fi
# ─── COPY DATA FOLDER ─────────────────────────────────────────────────────────
# Always runs regardless of DB sync status
step "Copying data folder for $TARGET_DATE"
if [ -d "$DATA_SRC" ]; then
mkdir -p "$NAS_DATA/$TARGET_DATE"
RSYNC_START=$(date +%s)
printf " %-36s " "rsync $TARGET_DATE/ → NAS"
rsync -a --ignore-existing \
"$DATA_SRC/" \
"$NAS_DATA/$TARGET_DATE/" \
2>>"$LOG_FILE"
RSYNC_DUR=$(( $(date +%s) - RSYNC_START ))
COPIED_FILES=$(ls "$NAS_DATA/$TARGET_DATE" | wc -l | tr -d ' ')
SRC_FILES=$(ls "$DATA_SRC" | wc -l | tr -d ' ')
COPIED_SIZE=$(du -sh "$NAS_DATA/$TARGET_DATE" | cut -f1)
if [ "$COPIED_FILES" -eq "$SRC_FILES" ]; then
printf "\r %-36s ✓ %dm%02ds (%s files, %s)\n" \
"rsync $TARGET_DATE/ → NAS" \
"$(( RSYNC_DUR / 60 ))" "$(( RSYNC_DUR % 60 ))" \
"$COPIED_FILES" "$COPIED_SIZE" | tee -a "$LOG_FILE"
else
printf "\r %-36s ✗ %s / %s files\n" \
"rsync $TARGET_DATE/ → NAS" "$COPIED_FILES" "$SRC_FILES" | tee -a "$LOG_FILE"
fi
else
printf " %-36s %s\n" "rsync $TARGET_DATE/ → NAS" "skipped (no source dir)"
fi
# ─── SUMMARY ──────────────────────────────────────────────────────────────────
TOTAL_ELAPSED=$(( $(date +%s) - SCRIPT_START ))
DB_SIZE=$(du -sh "$NAS_DB" | cut -f1)
echo ""
log "Archive DB size: $DB_SIZE"
log "Total time: $(( TOTAL_ELAPSED / 60 ))m$(( TOTAL_ELAPSED % 60 ))s"
log "Sync complete for $TARGET_DATE"
log "========================================"
lets add ability to jump…, Editor Group 2
Problems (⇧⌘M)
PROBLEMS
Output (⇧⌘U)
OUTPUT
Debug Console (⇧⌘Y)
DEBUG CONSOLE
Terminal (⌃`)
TERMINAL
Ports
PORTS
remote SSH: nas
SSH: nas
screenpipe (Git) - master*, Checkout Branch/Tag...
master*
screenpipe (Git) - Synchronize Changes
No Problems
0
0
No Ports Forwarded
0
Notifications
Signed out
Signed out
Shell Script
Editor Language Status: $(copilot) No inline suggestion available, Inline suggestions
LF
UTF-8
Spaces: 2
Ln 331, Col 48
Screen Reader Optimized
git-commit Lukas Kovalik (23 hours ago)
Lukas Kovalik (23 hours ago)
Info: Downloading VS Code Server...
lets add ability to jump fro,m search to timeline so we can see the exact screen (also based on monitor and time
Session history
New session
Message actions
This session is being continued from a previous conversation that ran out of context. The summary below covers the earlier portion of the conversation.
Summary:
1. Primary Request and Intent:
The user has been developing a Screenpipe dashboard on a Synology NAS. Requests in chronological order:
- **Q1**: Are db.sqlite-shm and db.sqlite-wal used? → Explained WAL mode; cleaned up files.
- **Q2**: AND combination search (term1 + term2 must both appear) → Added "AND also" input field.
- **Q3**: Explain UTC time issue, show date in results, make Only/Skip apps use multiselect → Implemented all three.
- **Q4**: Point sqlite-web at archive.db, add second sqlite-web for db.sqlite → Updated docker-compose.yml, added two services on ports 8767/8768.
- **Q5**: "still the same" (container not picking up config) → Explained `up -d` vs `restart`.
- **Q6**: Add git, push to gitea.com/lakylak/screenpipe.git → Initialized repo, committed, pushed.
- **Q7**: Add Timetable tab with video playback and timeline → Full implementation with click-to-seek, auto-advancing chunks, legend.
- **Q8**: Add scroll/zoom on timeline, jump to specific time, better awareness → Implemented zoom (1×–32×), scrollable timeline, overview minimap, viewport indicator, Jump-to-time input, screenshot thumbnail.
- **Q9 (most recent)**: Make playing speed more than 8×, fix speed not working, show position on timeline → CSS fix done (wider playhead + time label style), remainder in progress.
2. Key Technical Concepts:
- **SQLite WAL mode**: db.sqlite-shm and db.sqlite-wal are WAL companion files; cleaned with `PRAGMA wal_checkpoint(TRUNCATE)`.
- **SQLite FTS5**: Space-separated terms = AND; `MATCH 'term1 term2'` requires both; OR requires explicit `OR` keyword.
- **FastAPI**: Python backend with route handlers in main.py, consumers pattern for DB queries.
- **Docker Compose**: App image is built (code baked in), not volume-mounted → requires `build` + `up -d` for code changes. `restart` doesn't re-read compose file — need `up -d`.
- **sqlite-web**: Read-only flag `-r`, pre-built image, no rebuild needed for config changes.
- **Video playback**: screenpipe records at 0.1–0.3 fps (timelapse). `seek = offset_index / fps` gives seconds into video chunk. ~245 chunks/day across 2 monitors. Videos may be encoded at standard fps making them very short at native speed.
- **Timeline rendering**: App-colored segments built by merging consecutive frames with same `app_name`. Percentage positions: `((ts - dayStart) / span * 100)%`.
- **Zoom/scroll**: Inner div width = `zoom × 100%`, outer wrapper has `overflow-x:auto`. Playhead position stays as % of inner div, which is correct at all zoom levels.
- **Timer-based speed**: For speed > 2×, browser `playbackRate` is unreliable on low-FPS video; correct approach is `setInterval` advancing `video.currentTime` by `speed * interval_ms / 1000` seconds per tick.
- **UTC vs local time**: Backend treats `time_from`/`time_to` as UTC. Frontend converts with `localTimeToUtc()` before sending.
- **Git**: `#recycle/` in .gitignore treated as comment — must escape as `\#recycle/`.
3. Files and Code Sections:
- **`/volume1/screenpipe/app/main.py`**
- Added `/api/apps` endpoint (all unique app names from frames table)
- Added `/api/timetable` endpoint (frames + video URLs + screenshot URLs per device per date)
- `/api/timetable` response structure: `{frames: [{ts, app, win, video_url, seek, screenshot_url}], devices: [...], device: "..."}`
- Key snippet:
```python
@app.get("/api/timetable"
)
async def timetable_data(d: str | None = Query(None), device: str | None = Query(None)):
...
rows = conn.execute(f"""
SELECT f.timestamp AS ts, f.app_name AS app, f.window_name AS win,
f.offset_index, f.snapshot_path,
vc.file_path AS video_path, vc.fps AS video_fps
FROM frames f
JOIN video_chunks vc ON f.video_chunk_id = vc.id
WHERE f.timestamp >= ? AND f.timestamp < ?
AND f.video_chunk_id IS NOT NULL {dev_clause}
ORDER BY f.timestamp
""", params).fetchall()
# seek = offset_index / fps, screenshot_url from _snapshot_to_url(snapshot_path)
```
- **`/volume1/screenpipe/app/docker-compose.yml`**
- Changed sqlite-web service name to `sqlite-web-archive` → port 8767 → `/data/archive.db`
- Added `sqlite-web-live` → port 8768 → `/data/db.sqlite`
- screenpipe-app: port 8766, `DB_PATH: /data/db.sqlite`, `TZ: Europe/Sofia`
- **`/volume1/screenpipe/app/static/index.html`** (single large file with all CSS/HTML/JS)
- **Search enhancements**:
- Added `id="sq2"` "AND also" input between search-row1 and search-row2
- Replaced `sOnlyApps`/`sSkipApps` text inputs with custom multiselect components (`id="msOnlyApps"`, `id="msSkipApps"`)
- Updated `buildUrl()` to combine `q + " " + q2` and convert times with `localTimeToUtc()`
- Added `fmtDateTime(ts)` showing "Apr 20 14:08" format
- Added `localTimeToUtc(timeStr)` converting local HH:MM to UTC
- Multiselect state: `const _msState = { msOnlyApps: new Set(), msSkipApps: new Set() }`
- **Timetable tab** (new page):
- Tab button added between Work Report and AI Summary
- `showPage` array updated: `['activity','search','audio','report','timetable','summary']`
- `refresh()` calls `loadTimetable()` when on timetable page
- **Timetable CSS** (key styles):
```css
.tt-scroll-wrap { overflow-x:auto; ... scrollbar-width:thin; }
.tt-inner { position:relative; height:52px; } /* width set dynamically */
.tt-playhead { position:absolute; top:0; width:3px; height:36px; background:white; box-shadow:0 0 8px rgba(255,255,255,.9); z-index:10; pointer-events:none; display:none; }
.tt-playhead-time { position:absolute; top:2px; font-size:9px; font-weight:600; color:white; background:rgba(0,0,0,.75); padding:1px 4px; border-radius:2px; white-space:nowrap; transform:translateX(-50%); z-index:12; pointer-events:none; display:none; }
.tt-overview-wrap { position:relative; height:14px; ... cursor:pointer; }
.tt-overview-vp { position:absolute; background:rgba(255,255,255,0.12); border:1px solid rgba(255,255,255,0.4); }
```
- **Timetable JS state variables**:
```javascript
let _ttFrames = [], _ttChunks = [], _ttCurChunk = -1;
let _ttDayStart = 0, _ttDayEnd = 0, _ttZoom = 1;
const _ttAppColors = {};
const TT_ZOOMS = [1, 2, 4, 8, 16, 32];
const TT_TICK_MIN = {1:30, 2:15, 4:10, 8:5, 16:2, 32:1};
```
- **Key JS functions**:
- `loadTimetable()` — fetches `/api/timetable`, groups chunks, renders
- `ttZoom(dir)` — changes zoom level, updates inner width, re-renders ticks, scrolls to playhead
- `ttTimelineClick(e)` — uses `inner.getBoundingClientRect()` (works correctly when scrolled)
- `ttOverviewClick(e)` — scrolls timeline + seeks video
- `ttUpdateOverviewVp()` — updates white viewport rect using `wrap.scrollLeft / inner.scrollWidth`
- `ttJumpToTime()` — parses time input, converts to ms, calls `ttSeekToMs`
- `ttSeekToMs(tsMs)` — binary-searches nearest frame, loads chunk, seeks video
- `_ttScrollToPlayhead(force)` — scrolls wrap so playhead stays at ~35% from left when Follow is checked
- `_ttMovePlayhead(tsMs)` — sets `ph.style.left` as percentage, calls `_ttScrollToPlayhead`
- `_ttShowNow(f)` — updates screenshot thumbnail + now-text div
- `ttSyncBtn()` — syncs play/pause button text
- Keyboard: Space=play/pause, ←/→=±10s, Ctrl+←/→=±30s, +/-=zoom
- **`/volume1/screenpipe/.gitignore`**
```
*.db, *.sqlite, *.sqlite-shm, *.sqlite-wal
data/, \#recycle/,
@eaDir/
app_settings.json, app/.env
__pycache__/, *.pyc, .DS_Store
```
4. Errors and Fixes:
- **`#recycle/` in .gitignore treated as comment**: `#` starts a comment in .gitignore. Fixed by escaping: `\#recycle/`. Also had to `git rm --cached "#recycle/desktop.ini"` to unstage it.
- **`sudo docker compose restart sqlite-web` didn't apply config change**: `restart` reuses existing container config, doesn't re-read compose file. Fix: `sudo docker compose up -d` recreates containers with new config.
- **Orphan container holding port 8767**: Old `screenpipe-sqlweb` container still running after rename. Fix: `sudo docker compose up -d --remove-orphans`.
- **`sudo docker` not accessible from Claude Code**: Interactive sudo required. User runs commands in NAS terminal.
- **`git config --global --add safe.directory /volume1/screenpipe`**: Required due to dubious ownership of NAS volume directory.
5. Problem Solving:
- **Time zone confusion in search**: Backend uses UTC for time_from/time_to; frontend displays local time. Solved by `localTimeToUtc()` converting before API call, and showing date+time in results.
- **sqlite-web not showing April 17–21 data**: Container was pointing at db.sqlite (old config), not archive.db. Fixed by updating docker-compose.yml + `up -d`.
- **Video playback speed**: Browser `video.playbackRate` is capped (~16× max in Chrome) and performs poorly for very low FPS (0.1–0.3 fps) screenpipe videos. Each chunk may only be 1–2 seconds of wall-clock encoded video, playing through instantly. Solution: implement timer-based frame-jumping for speed > 2× (in progress).
- **Playhead visibility**: White 2px line was hard to see. Fixed CSS to 3px width + stronger box-shadow + added `.tt-playhead-time` overlay label style.
6. All User Messages:
- "do we use db.sqlite-shm and db.sqlite-wal for anything right now? [image of search UI] Lets add ability to search with combination... Explain how does the search work time seems to work in utc maybe display date next to the time in results. Make only apps and skip apps multiselect with all available apps."
- "doi I need to restart?"
- "there is sudo docker compose"
- "no still the same"
- "add git. I have created gitea repo https://gitea.com/lakylak/screenpipe.git"
- "just do it" (re: git push)
- "how to make sure data in :8767 are accurate and point to archive.db"
- "I can't see older than 16th there should 21st of april. In http://[IP_ADDRESS]:8766/ I can see all but not on sqlite viewer http://[IP_ADDRESS]:8767"
- "ok lets add additional port to read db.sqlite, I would like to see the structure of official db that reads db.sqlite db and one for archive"
- [docker compose output showing orphan container error]
- "looks great. I want to have ability to scroll left and right and also to jump to specific time. I want to be more aware to what I see. Still it should be fast"
- "lets make the playing speed more than 8x"
- "still playing speed is not showing properly still just in one second. also I want to see in timeline where I am"
7. Pending Tasks:
- **Playback speed fix** (in progress, partially done):
- Add `<div class="tt-playhead-time" id="ttPlayheadTime"></div>` inside `ttInner` HTML
- Implement `_ttStartSpeedTimer(speed)` / `_ttStopSpeedTimer()` / `ttSetSpeed(speed)` functions
- Update speed select `onchange` to call `ttSetSpeed(+this.value)`
- Add 64× option to speed select
- Update `_ttMovePlayhead` to also update `ttPlayheadTime` label
- Update `ttSyncBtn` to start/stop timer based on play state + speed
- Update `ttNextChunk` and `ttSeekToMs` to stop timer (restarted by onplay → ttSyncBtn)
- Rebuild Docker image after changes
8. Current Work:
Working on fixing two issues with the Timetable tab:
1. **Playback speed**: `video.playbackRate` doesn't work well for low-FPS screenpipe videos. The plan is to implement a `setInterval`-based frame-jumper for speed > 2× that advances `video.currentTime` by `speed * intervalMs / 1000` every 100–200ms, bypassing browser playbackRate limits.
2. **Timeline position indicator**: Playhead not prominent enough.
**CSS already changed** in `/volume1/screenpipe/app/static/index.html`:
```css
.tt-playhead { position:absolute; top:0; width:3px; height:36px; background:white; box-shadow:0 0 8px rgba(255,255,255,.9); z-index:10; pointer-events:none; display:none; }
.tt-playhead-time { position:absolute; top:2px; font-size:9px; font-weight:600; color:white; background:rgba(0,0,0,.75); padding:1px 4px; border-radius:2px; white-space:nowrap; transform:translateX(-50%); z-index:12; pointer-events:none; display:none; }
```
Session was interrupted by summary request after this CSS edit, mid-implementation.
9. Optional Next Step:
Continuing the fix for: "still playing speed is not showing properly still just in one second. also I want to see in timeline where I am"
The next steps in order are:
1. Add `<div class="tt-playhead-time" id="ttPlayheadTime"></div>` to the HTML inside `#ttInner` (after the existing `.tt-playhead` div)
2. Update `_ttMovePlayhead` to set `ttPlayheadTime` position and text content with `fmtTime()`
3. Add timer-based speed system to JS (new functions `_ttStartSpeedTimer`, `_ttStopSpeedTimer`, `ttSetSpeed`)
4. Update speed select's `onchange` to `ttSetSpeed(+this.value)` and add 64× option
5. Update `ttSyncBtn`, `ttNextChunk`, `ttSeekToMs` to integrate with timer
6. Rebuild: `sudo docker compose build screenpipe-app && sudo docker compose up -d screenpipe-app`
If you need specific details from before compaction (like exact code snippets, error messages, or content you generated), read the full transcript at: /home/Adm1n/.claude/projects/-volume1-screenpipe/7777f46e-1e40-4051-b4bb-f43aedd59556.jsonl
Continue the conversation from where it left off without asking the user any further questions. Resume directly — do not acknowledge the summary, do not recap what was happening, do not preface with "I'll continue" or similar. Pick up the last task as if the break never happened.
Thinking
Thinking
Bash
Find timetable speed and playhead related code
IN
grep -n "tt-playhead\|ttPlayhead\|ttInner\|_ttMovePlayhead\|ttSetSpeed\|_ttStartSpeed\|_ttStopSpeed\|ttSyncBtn\|playbackRate\|speed.*select\|spdSel\|ttSpeed" /volume1/screenpipe/app/static/index.html | head -80
Copy code to clipboard
OUT
207:.tt-playhead { position:absolute; top:0; width:3px; height:36px; background:white; box-shadow:0 0 8px rgba(255,255,255,.9); z-index:10; pointer-events:none; display:none; }
208:.tt-playhead-time { position:absolute; top:2px; font-size:9px; font-weight:600; color:white; background:rgba(0,0,0,.75); padding:1px 4px; border-radius:2px; white-space:nowrap; transform:translateX(-50%); z-index:12; pointer-events:none; display:none; }
580: <div class="tt-inner" id="ttInner" onclick="ttTimelineClick(event)">
583: <div class="tt-playhead" id="ttPlayhead"></div>
598: onpause="ttSyncBtn()"
599: onplay="ttSyncBtn()">
607: <select id="ttSpeed" onchange="document.getElementById('ttVideo').playbackRate=+this.value">
1624: document.getElementById('ttInner').style.width = '100%';
1632: document.getElementById('ttPlayhead').style.display = 'none';
1694: document.getElementById('ttInner').style.width = (_ttZoom * 100) + '%';
1700: const inner = document.getElementById('ttInner');
1710: const inner = document.getElementById('ttInner');
1718: const inner = document.getElementById('ttInner');
1750: _ttMovePlayhead(new Date(best.ts).getTime());
1772: _ttMovePlayhead(new Date(best.ts).getTime());
1791:function _ttMovePlayhead(tsMs) {
1792: const ph = document.getElementById('ttPlayhead');
1802: const ph = document.getElementById('ttPlayhead');
1805: const inner = document.getElementById('ttInner');
1819:function ttSyncBtn() {
Read
index.html
index.html
(lines 576-625)
Read
index.html
index.html
(lines 1786-1865)
Thinking
Thinking
Bash
Find chunk loading and playhead update functions
IN
grep -n "ttUpdatePlayhead\|ttNextChunk\|ttLoadChunk\|_ttCurChunk\|_ttChunks\|_ttFrames" /volume1/screenpipe/app/static/index.html | head -50
Copy code to clipboard
OUT
596: onended="ttNextChunk()"
597: ontimeupdate="ttUpdatePlayhead()"
1569:let _ttFrames = [];
1570:let _ttChunks = [];
1571:let _ttCurChunk = -1;
1607: _ttFrames = data.frames;
1609: for (const f of _ttFrames) {
1613: _ttChunks = [...chunkMap.values()];
1614: _ttCurChunk = -1;
1616: _ttDayStart = new Date(_ttFrames[0].ts).getTime();
1617: _ttDayEnd = new Date(_ttFrames[_ttFrames.length - 1].ts).getTime();
1620: for (const f of _ttFrames) _ttColor(f.app);
1640: for (const f of _ttFrames) {
1736: if (!_ttFrames.length) return;
1737: let best = _ttFrames[0], minDiff = Infinity;
1738: for (const f of _ttFrames) {
1742: const ci = _ttChunks.findIndex(ch => ch[0].video_url === best.video_url);
1744: _ttCurChunk = ci;
1753:function ttNextChunk() {
1754: if (_ttCurChunk + 1 >= _ttChunks.length) return;
1755: _ttCurChunk++;
1757: video.src = _ttChunks[_ttCurChunk][0].video_url;
1762:function ttUpdatePlayhead() {
1764: if (_ttCurChunk < 0 || _ttCurChunk >= _ttChunks.length) return;
1765: const chunk = _ttChunks[_ttCurChunk];
Read
index.html
index.html
(lines 1754-1793)
Thinking
Thinking
Read
index.html
index.html
(lines 1701-1760)
Thinking
Thinking
Read
index.html
index.html
(lines 1561-1640)
Thinking
Thinking
Bash
Find time formatting functions
IN
grep -n "function fmtTime\|function fmtDate\|function _fmt\|localTimeToUtc\|fmtDateTime" /volume1/screenpipe/app/static/index.html | head -20
Copy code to clipboard
OUT
1088: if (tf) url += `&time_from=${localTimeToUtc(tf)}`;
1089: if (tt) url += `&time_to=${localTimeToUtc(tt)}`;
1153: let meta = `<span style="color:var(--muted)">${fmtDateTime(r.timestamp)}</span>${srcBadge}`;
1166: meta = `<span style="color:var(--muted)">${fmtDateTime(r.timestamp)}</span>${srcBadge} <span class="badge ${r.is_input_device?'mic':'sys'}">${r.is_input_device?'MIC':'SYS'}</span>`;
1307:function fmtTime(ts) {
1312:function fmtDateTime(ts) {
1320:function localTimeToUtc(timeStr) {
1778:function _fmtSec(s) {
1788: `${fmtDateTime(f.ts)} · ${f.app}${f.win ? ' / ' + f.win : ''}`;
Read
index.html
index.html
(lines 1308-1327)
Thinking
Thinking
Now I have everything I need. I'll implement the frame-by-frame timer system that replaces
video.playbackRate
with wall-clock accurate playback, plus add the playhead time label. Let me make the changes:
Edit
index.html
index.html
Added 1 line...
|
NULL
|
|
81022
|
2157
|
10
|
2026-04-25T15:56:19.134482+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-25/1777 /Users/lukas/.screenpipe/data/data/2026-04-25/1777132579134_m2.jpg...
|
Code
|
screenpipe_sync.sh — screenpipe [SSH: nas]
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 2 pending changes
2
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update, 1 requires restart
3
Claude Code
Containers
EXPLORER
EXPLORER
Explorer Section: screenpipe [SSH: nas]
Explorer Section: screenpipe [SSH: nas]
SCREENPIPE [SSH: NAS]
#recycle
app
data
pipes
.gitignore
app_settings.json
archive.db
db.sqlite
screenpipe_sync.sh
screenpipe.db
Outline Section
OUTLINE
OUTLINE
Timeline Section
TIMELINE
TIMELINE
app_settings.json, Editor Group 1
screenpipe_sync.sh, Editor Group 1
db.sqlite-shm, preview, Editor Group 1
#!/bin/bash
# screenpipe_sync.sh
# Syncs Screenpipe SQLite data to a NAS archive database (append-only, no deletions).
# Also copies the day's video/frame data folder to the NAS.
#
# Usage:
# ./screenpipe_sync.sh # syncs yesterday (default)
# ./screenpipe_sync.sh 2026-04-15 # syncs a specific date
# ./screenpipe_sync.sh today # syncs today so far
#
# Cron example (runs at 3am daily):
# 0 3 * * * /Users/lukas/.screenpipe/screenpipe_sync.sh >> /Users/lukas/.screenpipe/sync.log 2>&1
set -euo pipefail
# ─── CONFIG ───────────────────────────────────────────────────────────────────
DB_SRC="${SCREENPIPE_DB:-$HOME/.screenpipe/db.sqlite}"
NAS_MOUNT="${NAS_MOUNT:-/Volumes/Test/screenpipe}"
NAS_DB="$NAS_MOUNT/archive.db"
NAS_DATA="$NAS_MOUNT/data"
LOG_FILE="$HOME/.screenpipe/sync.log"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
SCRIPT_START=$(date +%s)
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# ─── DATE ARGUMENT ────────────────────────────────────────────────────────────
if [ "${1:-}" = "today" ]; then
TARGET_DATE=$(date +%Y-%m-%d)
elif [ -n "${1:-}" ]; then
TARGET_DATE="$1"
if ! [[ "$TARGET_DATE" =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]]; then
echo "ERROR: Invalid date format. Use YYYY-MM-DD, 'today', or no argument for yesterday."
exit 1
fi
else
TARGET_DATE=$(date -v-1d +%Y-%m-%d)
fi
log "========================================"
log "Screenpipe sync starting for: $TARGET_DATE"
log "========================================"
# ─── PREFLIGHT ────────────────────────────────────────────────────────────────
step "Preflight checks"
if [ ! -f "$DB_SRC" ]; then
log "ERROR: Source DB not found at $DB_SRC"; exit 1
fi
printf " %-20s %s (%s)\n" "Source DB:" "OK" "$(du -sh "$DB_SRC" | cut -f1)"
if [ ! -d "$NAS_MOUNT" ]; then
log "ERROR: NAS not mounted at $NAS_MOUNT"; exit 1
fi
printf " %-20s %s\n" "NAS mount:" "OK $NAS_MOUNT"
# Check if DB already synced for this date
DB_ALREADY_SYNCED=false
if [ -f "$NAS_DB" ]; then
EXISTING=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';" 2>/dev/null || echo "0")
if [ "$EXISTING" -gt "0" ]; then
log "Date $TARGET_DATE already has $EXISTING frames in archive — skipping DB sync"
DB_ALREADY_SYNCED=true
else
printf " %-20s %s (%s)\n" "Archive DB:" "exists" "$(du -sh "$NAS_DB" | cut -f1)"
fi
else
printf " %-20s %s\n" "Archive DB:" "will be created"
fi
# Source data dir for this date
DATA_SRC="$HOME/.screenpipe/data/data/$TARGET_DATE"
if [ -d "$DATA_SRC" ]; then
DATA_SIZE=$(du -sh "$DATA_SRC" | cut -f1)
DATA_FILES=$(ls "$DATA_SRC" | wc -l | tr -d ' ')
printf " %-20s %s (%s files, %s)\n" "Data dir:" "OK" "$DATA_FILES" "$DATA_SIZE"
else
printf " %-20s %s\n" "Data dir:" "not found — skipping file copy"
fi
# ─── DB SYNC ──────────────────────────────────────────────────────────────────
if [ "$DB_ALREADY_SYNCED" = false ]; then
# ─── COUNT SOURCE ROWS ────────────────────────────────────────────────────
step "Counting source rows for $TARGET_DATE"
SRC_FRAMES=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';")
SRC_ELEMENTS=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
SRC_UI=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';")
SRC_OCR=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
SRC_MEETINGS=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM meetings WHERE date(meeting_start) = '$TARGET_DATE';")
printf " %-20s %s\n" "frames:" "$SRC_FRAMES"
printf " %-20s %s\n" "elements:" "$SRC_ELEMENTS"
printf " %-20s %s\n" "ui_events:" "$SRC_UI"
printf " %-20s %s\n" "ocr_text:" "$SRC_OCR"
printf " %-20s %s\n" "meetings:" "$SRC_MEETINGS"
if [ "$SRC_FRAMES" -eq "0" ]; then
log "No frames found for $TARGET_DATE — skipping DB sync"
DB_ALREADY_SYNCED=true
fi
fi
if [ "$DB_ALREADY_SYNCED" = false ]; then
# ─── INIT TABLES ──────────────────────────────────────────────────────────
step "Initialising tables, indexes, FTS"
run_sqlite_heredoc "creating tables" "
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
DETACH nas;
"
run_sqlite_heredoc "creating indexes" "
ATTACH '$NAS_DB' AS nas;
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
CREATE INDEX IF NOT EXISTS nas.idx_elements_frame_id ON elements(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_elements_frame_src_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_timestamp ON ui_events(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_app_name ON ui_events(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_frame_id ON ui_events(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_ocr_text_frame_id ON ocr_text(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_meetings_start ON meetings(meeting_start);
CREATE INDEX IF NOT EXISTS nas.idx_video_chunks_device ON video_chunks(device_name);
DETACH nas;
"
run_sqlite_heredoc "creating FTS tables" "
ATTACH '$NAS_DB' AS nas;
CREATE VIRTUAL TABLE IF NOT EXISTS nas.elements_fts USING fts5(
text, role, frame_id UNINDEXED,
content='elements', content_rowid='id', tokenize='unicode61'
);
CREATE VIRTUAL TABLE IF NOT EXISTS nas.frames_fts USING fts5(
full_text, app_name, window_name, browser_url, id UNINDEXED,
tokenize='unicode61'
);
CREATE VIRTUAL TABLE IF NOT EXISTS nas.ui_events_fts USING fts5(
text_content,
app_name,
window_title,
element_name,
content='ui_events',
content_rowid='id',
tokenize='unicode61'
);
DETACH nas;
"
# ─── SYNC DATA ────────────────────────────────────────────────────────────
step "Syncing data for $TARGET_DATE"
run_sqlite_heredoc "video_chunks" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.video_chunks
SELECT * FROM main.video_chunks
WHERE id IN (
SELECT DISTINCT video_chunk_id FROM main.frames
WHERE date(timestamp) = '$TARGET_DATE' AND video_chunk_id IS NOT NULL
);
DETACH nas;
"
run_sqlite_heredoc "frames ($SRC_FRAMES rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "ocr_text ($SRC_OCR rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.ocr_text
SELECT o.* FROM main.ocr_text o
JOIN main.frames f ON o.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "ui_events ($SRC_UI rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.ui_events
SELECT * FROM main.ui_events WHERE date(timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "elements ($SRC_ELEMENTS rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "meetings ($SRC_MEETINGS rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.meetings
SELECT * FROM main.meetings WHERE date(meeting_start) = '$TARGET_DATE';
DETACH nas;
"
# ─── FTS UPDATE ───────────────────────────────────────────────────────────
step "Updating FTS indexes"
run_sqlite_heredoc "elements_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.elements_fts(rowid, text, role)
SELECT e.id, e.text, e.role
FROM nas.elements e
JOIN nas.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE'
AND e.text IS NOT NULL;
DETACH nas;
"
run_sqlite_heredoc "frames_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.frames_fts(rowid, full_text, app_name, window_name, browser_url, id)
SELECT id, full_text, app_name, window_name, browser_url, id
FROM nas.frames
WHERE date(timestamp) = '$TARGET_DATE'
AND full_text IS NOT NULL;
DETACH nas;
"
run_sqlite_heredoc "ui_events_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.ui_events_fts(rowid, text_content, app_name, window_title, element_name)
SELECT id, text_content, app_name, window_title, element_name
FROM nas.ui_events
WHERE date(timestamp) = '$TARGET_DATE'
AND text_content IS NOT NULL;
DETACH nas;
"
# ─── VERIFY DB ────────────────────────────────────────────────────────────
step "Verifying DB"
V_FRAMES=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';")
V_ELEMENTS=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
V_UI=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';")
V_OCR=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
V_MEETINGS=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM meetings WHERE date(meeting_start)= '$TARGET_DATE';")
check "frames" "$V_FRAMES" "$SRC_FRAMES"
check "elements" "$V_ELEMENTS" "$SRC_ELEMENTS"
check "ui_events" "$V_UI" "$SRC_UI"
check "ocr_text" "$V_OCR" "$SRC_OCR"
check "meetings" "$V_MEETINGS" "$SRC_MEETINGS"
fi
# ─── COPY DATA FOLDER ─────────────────────────────────────────────────────────
# Always runs regardless of DB sync status
step "Copying data folder for $TARGET_DATE"
if [ -d "$DATA_SRC" ]; then
mkdir -p "$NAS_DATA/$TARGET_DATE"
RSYNC_START=$(date +%s)
printf " %-36s " "rsync $TARGET_DATE/ → NAS"
rsync -a --ignore-existing \
"$DATA_SRC/" \
"$NAS_DATA/$TARGET_DATE/" \
2>>"$LOG_FILE"
RSYNC_DUR=$(( $(date +%s) - RSYNC_START ))
COPIED_FILES=$(ls "$NAS_DATA/$TARGET_DATE" | wc -l | tr -d ' ')
SRC_FILES=$(ls "$DATA_SRC" | wc -l | tr -d ' ')
COPIED_SIZE=$(du -sh "$NAS_DATA/$TARGET_DATE" | cut -f1)
if [ "$COPIED_FILES" -eq "$SRC_FILES" ]; then
printf "\r %-36s ✓ %dm%02ds (%s files, %s)\n" \
"rsync $TARGET_DATE/ → NAS" \
"$(( RSYNC_DUR / 60 ))" "$(( RSYNC_DUR % 60 ))" \
"$COPIED_FILES" "$COPIED_SIZE" | tee -a "$LOG_FILE"
else
printf "\r %-36s ✗ %s / %s files\n" \
"rsync $TARGET_DATE/ → NAS" "$COPIED_FILES" "$SRC_FILES" | tee -a "$LOG_FILE"
fi
else
printf " %-36s %s\n" "rsync $TARGET_DATE/ → NAS" "skipped (no source dir)"
fi
# ─── SUMMARY ──────────────────────────────────────────────────────────────────
TOTAL_ELAPSED=$(( $(date +%s) - SCRIPT_START ))
DB_SIZE=$(du -sh "$NAS_DB" | cut -f1)
echo ""
log "Archive DB size: $DB_SIZE"
log "Total time: $(( TOTAL_ELAPSED / 60 ))m$(( TOTAL_ELAPSED % 60 ))s"
log "Sync complete for $TARGET_DATE"
log "========================================"
#!/bin/bash
# screenpipe_sync.sh
# Syncs Screenpipe SQLite data to a NAS archive database (append-only, no deletions).
# Also copies the day's video/frame data folder to the NAS.
#
# Usage:
# ./screenpipe_sync.sh # syncs yesterday (default)
# ./screenpipe_sync.sh 2026-04-15 # syncs a specific date
# ./screenpipe_sync.sh today # syncs today so far
#
# Cron example (runs at 3am daily):
# 0 3 * * * /Users/lukas/.screenpipe/screenpipe_sync.sh >> /Users/lukas/.screenpipe/sync.log 2>&1
set -euo pipefail
# ─── CONFIG ───────────────────────────────────────────────────────────────────
DB_SRC="${SCREENPIPE_DB:-$HOME/.screenpipe/db.sqlite}"
NAS_MOUNT="${NAS_MOUNT:-/Volumes/Test/screenpipe}"
NAS_DB="$NAS_MOUNT/archive.db"
NAS_DATA="$NAS_MOUNT/data"
LOG_FILE="$HOME/.screenpipe/sync.log"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
SCRIPT_START=$(date +%s)
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# ─── DATE ARGUMENT ────────────────────────────────────────────────────────────
if [ "${1:-}" = "today" ]; then
TARGET_DATE=$(date +%Y-%m-%d)
elif [ -n "${1:-}" ]; then
TARGET_DATE="$1"
if ! [[ "$TARGET_DATE" =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]]; then
echo "ERROR: Invalid date format. Use YYYY-MM-DD, 'today', or no argument for yesterday."
exit 1
fi
else
TARGET_DATE=$(date -v-1d +%Y-%m-%d)
fi
log "========================================"
log "Screenpipe sync starting for: $TARGET_DATE"
log "========================================"
# ─── PREFLIGHT ────────────────────────────────────────────────────────────────
step "Preflight checks"
if [ ! -f "$DB_SRC" ]; then
log "ERROR: Source DB not found at $DB_SRC"; exit 1
fi
printf " %-20s %s (%s)\n" "Source DB:" "OK" "$(du -sh "$DB_SRC" | cut -f1)"
if [ ! -d "$NAS_MOUNT" ]; then
log "ERROR: NAS not mounted at $NAS_MOUNT"; exit 1
fi
printf " %-20s %s\n" "NAS mount:" "OK $NAS_MOUNT"
# Check if DB already synced for this date
DB_ALREADY_SYNCED=false
if [ -f "$NAS_DB" ]; then
EXISTING=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';" 2>/dev/null || echo "0")
if [ "$EXISTING" -gt "0" ]; then
log "Date $TARGET_DATE already has $EXISTING frames in archive — skipping DB sync"
DB_ALREADY_SYNCED=true
else
printf " %-20s %s (%s)\n" "Archive DB:" "exists" "$(du -sh "$NAS_DB" | cut -f1)"
fi
else
printf " %-20s %s\n" "Archive DB:" "will be created"
fi
# Source data dir for this date
DATA_SRC="$HOME/.screenpipe/data/data/$TARGET_DATE"
if [ -d "$DATA_SRC" ]; then
DATA_SIZE=$(du -sh "$DATA_SRC" | cut -f1)
DATA_FILES=$(ls "$DATA_SRC" | wc -l | tr -d ' ')
printf " %-20s %s (%s files, %s)\n" "Data dir:" "OK" "$DATA_FILES" "$DATA_SIZE"
else
printf " %-20s %s\n" "Data dir:" "not found — skipping file copy"
fi
# ─── DB SYNC ──────────────────────────────────────────────────────────────────
if [ "$DB_ALREADY_SYNCED" = false ]; then
# ─── COUNT SOURCE ROWS ────────────────────────────────────────────────────
step "Counting source rows for $TARGET_DATE"
SRC_FRAMES=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';")
SRC_ELEMENTS=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
SRC_UI=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';")
SRC_OCR=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
SRC_MEETINGS=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM meetings WHERE date(meeting_start) = '$TARGET_DATE';")
printf " %-20s %s\n" "frames:" "$SRC_FRAMES"
printf " %-20s %s\n" "elements:" "$SRC_ELEMENTS"
printf " %-20s %s\n" "ui_events:" "$SRC_UI"
printf " %-20s %s\n" "ocr_text:" "$SRC_OCR"
printf " %-20s %s\n" "meetings:" "$SRC_MEETINGS"
if [ "$SRC_FRAMES" -eq "0" ]; then
log "No frames found for $TARGET_DATE — skipping DB sync"
DB_ALREADY_SYNCED=true
fi
fi
if [ "$DB_ALREADY_SYNCED" = false ]; then
# ─── INIT TABLES ──────────────────────────────────────────────────────────
step "Initialising tables, indexes, FTS"
run_sqlite_heredoc "creating tables" "
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
DETACH nas;
"
run_sqlite_heredoc "creating indexes" "
ATTACH '$NAS_DB' AS nas;
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
CREATE INDEX IF NOT EXISTS nas.idx_elements_frame_id ON elements(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_elements_frame_src_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_timestamp ON ui_events(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_app_name ON ui_events(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_frame_id ON ui_events(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_ocr_text_frame_id ON ocr_text(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_meetings_start ON meetings(meeting_start);
CREATE INDEX IF NOT EXISTS nas.idx_video_chunks_device ON video_chunks(device_name);
DETACH nas;
"
run_sqlite_heredoc "creating FTS tables" "
ATTACH '$NAS_DB' AS nas;
CREATE VIRTUAL TABLE IF NOT EXISTS nas.elements_fts USING fts5(
text, role, frame_id UNINDEXED,
content='elements', content_rowid='id', tokenize='unicode61'
);
CREATE VIRTUAL TABLE IF NOT EXISTS nas.frames_fts USING fts5(
full_text, app_name, window_name, browser_url, id UNINDEXED,
tokenize='unicode61'
);
CREATE VIRTUAL TABLE IF NOT EXISTS nas.ui_events_fts USING fts5(
text_content,
app_name,
window_title,
element_name,
content='ui_events',
content_rowid='id',
tokenize='unicode61'
);
DETACH nas;
"
# ─── SYNC DATA ────────────────────────────────────────────────────────────
step "Syncing data for $TARGET_DATE"
run_sqlite_heredoc "video_chunks" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.video_chunks
SELECT * FROM main.video_chunks
WHERE id IN (
SELECT DISTINCT video_chunk_id FROM main.frames
WHERE date(timestamp) = '$TARGET_DATE' AND video_chunk_id IS NOT NULL
);
DETACH nas;
"
run_sqlite_heredoc "frames ($SRC_FRAMES rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "ocr_text ($SRC_OCR rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.ocr_text
SELECT o.* FROM main.ocr_text o
JOIN main.frames f ON o.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "ui_events ($SRC_UI rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.ui_events
SELECT * FROM main.ui_events WHERE date(timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "elements ($SRC_ELEMENTS rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "meetings ($SRC_MEETINGS rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.meetings
SELECT * FROM main.meetings WHERE date(meeting_start) = '$TARGET_DATE';
DETACH nas;
"
# ─── FTS UPDATE ───────────────────────────────────────────────────────────
step "Updating FTS indexes"
run_sqlite_heredoc "elements_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.elements_fts(rowid, text, role)
SELECT e.id, e.text, e.role
FROM nas.elements e
JOIN nas.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE'
AND e.text IS NOT NULL;
DETACH nas;
"
run_sqlite_heredoc "frames_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.frames_fts(rowid, full_text, app_name, window_name, browser_url, id)
SELECT id, full_text, app_name, window_name, browser_url, id
FROM nas.frames
WHERE date(timestamp) = '$TARGET_DATE'
AND full_text IS NOT NULL;
DETACH nas;
"
run_sqlite_heredoc "ui_events_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.ui_events_fts(rowid, text_content, app_name, window_title, element_name)
SELECT id, text_content, app_name, window_title, element_name
FROM nas.ui_events
WHERE date(timestamp) = '$TARGET_DATE'
AND text_content IS NOT NULL;
DETACH nas;
"
# ─── VERIFY DB ────────────────────────────────────────────────────────────
step "Verifying DB"
V_FRAMES=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';")
V_ELEMENTS=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
V_UI=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';")
V_OCR=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
V_MEETINGS=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM meetings WHERE date(meeting_start)= '$TARGET_DATE';")
check "frames" "$V_FRAMES" "$SRC_FRAMES"
check "elements" "$V_ELEMENTS" "$SRC_ELEMENTS"
check "ui_events" "$V_UI" "$SRC_UI"
check "ocr_text" "$V_OCR" "$SRC_OCR"
check "meetings" "$V_MEETINGS" "$SRC_MEETINGS"
fi
# ─── COPY DATA FOLDER ─────────────────────────────────────────────────────────
# Always runs regardless of DB sync status
step "Copying data folder for $TARGET_DATE"
if [ -d "$DATA_SRC" ]; then
mkdir -p "$NAS_DATA/$TARGET_DATE"
RSYNC_START=$(date +%s)
printf " %-36s " "rsync $TARGET_DATE/ → NAS"
rsync -a --ignore-existing \
"$DATA_SRC/" \
"$NAS_DATA/$TARGET_DATE/" \
2>>"$LOG_FILE"
RSYNC_DUR=$(( $(date +%s) - RSYNC_START ))
COPIED_FILES=$(ls "$NAS_DATA/$TARGET_DATE" | wc -l | tr -d ' ')
SRC_FILES=$(ls "$DATA_SRC" | wc -l | tr -d ' ')
COPIED_SIZE=$(du -sh "$NAS_DATA/$TARGET_DATE" | cut -f1)
if [ "$COPIED_FILES" -eq "$SRC_FILES" ]; then
printf "\r %-36s ✓ %dm%02ds (%s files, %s)\n" \
"rsync $TARGET_DATE/ → NAS" \
"$(( RSYNC_DUR / 60 ))" "$(( RSYNC_DUR % 60 ))" \
"$COPIED_FILES" "$COPIED_SIZE" | tee -a "$LOG_FILE"
else
printf "\r %-36s ✗ %s / %s files\n" \
"rsync $TARGET_DATE/ → NAS" "$COPIED_FILES" "$SRC_FILES" | tee -a "$LOG_FILE"
fi
else
printf " %-36s %s\n" "rsync $TARGET_DATE/ → NAS" "skipped (no source dir)"
fi
# ─── SUMMARY ──────────────────────────────────────────────────────────────────
TOTAL_ELAPSED=$(( $(date +%s) - SCRIPT_START ))
DB_SIZE=$(du -sh "$NAS_DB" | cut -f1)
echo ""
log "Archive DB size: $DB_SIZE"
log "Total time: $(( TOTAL_ELAPSED / 60 ))m$(( TOTAL_ELAPSED % 60 ))s"
log "Sync complete for $TARGET_DATE"
log "========================================"
lets add ability to jump…, Editor Group 2
Problems (⇧⌘M)
PROBLEMS
Output (⇧⌘U)
OUTPUT
Debug Console (⇧⌘Y)
DEBUG CONSOLE
Terminal (⌃`)
TERMINAL
Ports
PORTS
remote SSH: nas
SSH: nas
screenpipe (Git) - master*, Checkout Branch/Tag...
master*
screenpipe (Git) - Synchronize Changes
No Problems
0
0
No Ports Forwarded
0
Notifications
Signed out
Signed out
Shell Script
Editor Language Status: $(copilot) No inline suggestion available, Inline suggestions
LF
UTF-8
Spaces: 2
Ln 331, Col 48
Screen Reader Optimized
git-commit Lukas Kovalik (23 hours ago)
Lukas Kovalik (23 hours ago)
Info: Downloading VS Code Server...
lets add ability to jump fro,m search to timeline so we can see the exact screen (also based on monitor and time
Session history
New session
Message actions
This session is being continued from a previous conversation that ran out of context. The summary below covers the earlier portion of the conversation.
Summary:
1. Primary Request and Intent:
The user has been developing a Screenpipe dashboard on a Synology NAS. Requests in chronological order:
- **Q1**: Are db.sqlite-shm and db.sqlite-wal used? → Explained WAL mode; cleaned up files.
- **Q2**: AND combination search (term1 + term2 must both appear) → Added "AND also" input field.
- **Q3**: Explain UTC time issue, show date in results, make Only/Skip apps use multiselect → Implemented all three.
- **Q4**: Point sqlite-web at archive.db, add second sqlite-web for db.sqlite → Updated docker-compose.yml, added two services on ports 8767/8768.
- **Q5**: "still the same" (container not picking up config) → Explained `up -d` vs `restart`.
- **Q6**: Add git, push to gitea.com/lakylak/screenpipe.git → Initialized repo, committed, pushed.
- **Q7**: Add Timetable tab with video playback and timeline → Full implementation with click-to-seek, auto-advancing chunks, legend.
- **Q8**: Add scroll/zoom on timeline, jump to specific time, better awareness → Implemented zoom (1×–32×), scrollable timeline, overview minimap, viewport indicator, Jump-to-time input, screenshot thumbnail.
- **Q9 (most recent)**: Make playing speed more than 8×, fix speed not working, show position on timeline → CSS fix done (wider playhead + time label style), remainder in progress.
2. Key Technical Concepts:
- **SQLite WAL mode**: db.sqlite-shm and db.sqlite-wal are WAL companion files; cleaned with `PRAGMA wal_checkpoint(TRUNCATE)`.
- **SQLite FTS5**: Space-separated terms = AND; `MATCH 'term1 term2'` requires both; OR requires explicit `OR` keyword.
- **FastAPI**: Python backend with route handlers in main.py, consumers pattern for DB queries.
- **Docker Compose**: App image is built (code baked in), not volume-mounted → requires `build` + `up -d` for code changes. `restart` doesn't re-read compose file — need `up -d`.
- **sqlite-web**: Read-only flag `-r`, pre-built image, no rebuild needed for config changes.
- **Video playback**: screenpipe records at 0.1–0.3 fps (timelapse). `seek = offset_index / fps` gives seconds into video chunk. ~245 chunks/day across 2 monitors. Videos may be encoded at standard fps making them very short at native speed.
- **Timeline rendering**: App-colored segments built by merging consecutive frames with same `app_name`. Percentage positions: `((ts - dayStart) / span * 100)%`.
- **Zoom/scroll**: Inner div width = `zoom × 100%`, outer wrapper has `overflow-x:auto`. Playhead position stays as % of inner div, which is correct at all zoom levels.
- **Timer-based speed**: For speed > 2×, browser `playbackRate` is unreliable on low-FPS video; correct approach is `setInterval` advancing `video.currentTime` by `speed * interval_ms / 1000` seconds per tick.
- **UTC vs local time**: Backend treats `time_from`/`time_to` as UTC. Frontend converts with `localTimeToUtc()` before sending.
- **Git**: `#recycle/` in .gitignore treated as comment — must escape as `\#recycle/`.
3. Files and Code Sections:
- **`/volume1/screenpipe/app/main.py`**
- Added `/api/apps` endpoint (all unique app names from frames table)
- Added `/api/timetable` endpoint (frames + video URLs + screenshot URLs per device per date)
- `/api/timetable` response structure: `{frames: [{ts, app, win, video_url, seek, screenshot_url}], devices: [...], device: "..."}`
- Key snippet:
```python
@app.get("/api/timetable"
)
async def timetable_data(d: str | None = Query(None), device: str | None = Query(None)):
...
rows = conn.execute(f"""
SELECT f.timestamp AS ts, f.app_name AS app, f.window_name AS win,
f.offset_index, f.snapshot_path,
vc.file_path AS video_path, vc.fps AS video_fps
FROM frames f
JOIN video_chunks vc ON f.video_chunk_id = vc.id
WHERE f.timestamp >= ? AND f.timestamp < ?
AND f.video_chunk_id IS NOT NULL {dev_clause}
ORDER BY f.timestamp
""", params).fetchall()
# seek = offset_index / fps, screenshot_url from _snapshot_to_url(snapshot_path)
```
- **`/volume1/screenpipe/app/docker-compose.yml`**
- Changed sqlite-web service name to `sqlite-web-archive` → port 8767 → `/data/archive.db`
- Added `sqlite-web-live` → port 8768 → `/data/db.sqlite`
- screenpipe-app: port 8766, `DB_PATH: /data/db.sqlite`, `TZ: Europe/Sofia`
- **`/volume1/screenpipe/app/static/index.html`** (single large file with all CSS/HTML/JS)
- **Search enhancements**:
- Added `id="sq2"` "AND also" input between search-row1 and search-row2
- Replaced `sOnlyApps`/`sSkipApps` text inputs with custom multiselect components (`id="msOnlyApps"`, `id="msSkipApps"`)
- Updated `buildUrl()` to combine `q + " " + q2` and convert times with `localTimeToUtc()`
- Added `fmtDateTime(ts)` showing "Apr 20 14:08" format
- Added `localTimeToUtc(timeStr)` converting local HH:MM to UTC
- Multiselect state: `const _msState = { msOnlyApps: new Set(), msSkipApps: new Set() }`
- **Timetable tab** (new page):
- Tab button added between Work Report and AI Summary
- `showPage` array updated: `['activity','search','audio','report','timetable','summary']`
- `refresh()` calls `loadTimetable()` when on timetable page
- **Timetable CSS** (key styles):
```css
.tt-scroll-wrap { overflow-x:auto; ... scrollbar-width:thin; }
.tt-inner { position:relative; height:52px; } /* width set dynamically */
.tt-playhead { position:absolute; top:0; width:3px; height:36px; background:white; box-shadow:0 0 8px rgba(255,255,255,.9); z-index:10; pointer-events:none; display:none; }
.tt-playhead-time { position:absolute; top:2px; font-size:9px; font-weight:600; color:white; background:rgba(0,0,0,.75); padding:1px 4px; border-radius:2px; white-space:nowrap; transform:translateX(-50%); z-index:12; pointer-events:none; display:none; }
.tt-overview-wrap { position:relative; height:14px; ... cursor:pointer; }
.tt-overview-vp { position:absolute; background:rgba(255,255,255,0.12); border:1px solid rgba(255,255,255,0.4); }
```
- **Timetable JS state variables**:
```javascript
let _ttFrames = [], _ttChunks = [], _ttCurChunk = -1;
let _ttDayStart = 0, _ttDayEnd = 0, _ttZoom = 1;
const _ttAppColors = {};
const TT_ZOOMS = [1, 2, 4, 8, 16, 32];
const TT_TICK_MIN = {1:30, 2:15, 4:10, 8:5, 16:2, 32:1};
```
- **Key JS functions**:
- `loadTimetable()` — fetches `/api/timetable`, groups chunks, renders
- `ttZoom(dir)` — changes zoom level, updates inner width, re-renders ticks, scrolls to playhead
- `ttTimelineClick(e)` — uses `inner.getBoundingClientRect()` (works correctly when scrolled)
- `ttOverviewClick(e)` — scrolls timeline + seeks video
- `ttUpdateOverviewVp()` — updates white viewport rect using `wrap.scrollLeft / inner.scrollWidth`
- `ttJumpToTime()` — parses time input, converts to ms, calls `ttSeekToMs`
- `ttSeekToMs(tsMs)` — binary-searches nearest frame, loads chunk, seeks video
- `_ttScrollToPlayhead(force)` — scrolls wrap so playhead stays at ~35% from left when Follow is checked
- `_ttMovePlayhead(tsMs)` — sets `ph.style.left` as percentage, calls `_ttScrollToPlayhead`
- `_ttShowNow(f)` — updates screenshot thumbnail + now-text div
- `ttSyncBtn()` — syncs play/pause button text
- Keyboard: Space=play/pause, ←/→=±10s, Ctrl+←/→=±30s, +/-=zoom
- **`/volume1/screenpipe/.gitignore`**
```
*.db, *.sqlite, *.sqlite-shm, *.sqlite-wal
data/, \#recycle/,
@eaDir/
app_settings.json, app/.env
__pycache__/, *.pyc, .DS_Store
```
4. Errors and Fixes:
- **`#recycle/` in .gitignore treated as comment**: `#` starts a comment in .gitignore. Fixed by escaping: `\#recycle/`. Also had to `git rm --cached "#recycle/desktop.ini"` to unstage it.
- **`sudo docker compose restart sqlite-web` didn't apply config change**: `restart` reuses existing container config, doesn't re-read compose file. Fix: `sudo docker compose up -d` recreates containers with new config.
- **Orphan container holding port 8767**: Old `screenpipe-sqlweb` container still running after rename. Fix: `sudo docker compose up -d --remove-orphans`.
- **`sudo docker` not accessible from Claude Code**: Interactive sudo required. User runs commands in NAS terminal.
- **`git config --global --add safe.directory /volume1/screenpipe`**: Required due to dubious ownership of NAS volume directory.
5. Problem Solving:
- **Time zone confusion in search**: Backend uses UTC for time_from/time_to; frontend displays local time. Solved by `localTimeToUtc()` converting before API call, and showing date+time in results.
- **sqlite-web not showing April 17–21 data**: Container was pointing at db.sqlite (old config), not archive.db. Fixed by updating docker-compose.yml + `up -d`.
- **Video playback speed**: Browser `video.playbackRate` is capped (~16× max in Chrome) and performs poorly for very low FPS (0.1–0.3 fps) screenpipe videos. Each chunk may only be 1–2 seconds of wall-clock encoded video, playing through instantly. Solution: implement timer-based frame-jumping for speed > 2× (in progress).
- **Playhead visibility**: White 2px line was hard to see. Fixed CSS to 3px width + stronger box-shadow + added `.tt-playhead-time` overlay label style.
6. All User Messages:
- "do we use db.sqlite-shm and db.sqlite-wal for anything right now? [image of search UI] Lets add ability to search with combination... Explain how does the search work time seems to work in utc maybe display date next to the time in results. Make only apps and skip apps multiselect with all available apps."
- "doi I need to restart?"
- "there is sudo docker compose"
- "no still the same"
- "add git. I have created gitea repo https://gitea.com/lakylak/screenpipe.git"
- "just do it" (re: git push)
- "how to make sure data in :8767 are accurate and point to archive.db"
- "I can't see older than 16th there should 21st of april. In http://[IP_ADDRESS]:8766/ I can see all but not on sqlite viewer http://[IP_ADDRESS]:8767"
- "ok lets add additional port to read db.sqlite, I would like to see the structure of official db that reads db.sqlite db and one for archive"
- [docker compose output showing orphan container error]
- "looks great. I want to have ability to scroll left and right and also to jump to specific time. I want to be more aware to what I see. Still it should be fast"
- "lets make the playing speed more than 8x"
- "still playing speed is not showing properly still just in one second. also I want to see in timeline where I am"
7. Pending Tasks:
- **Playback speed fix** (in progress, partially done):
- Add `<div class="tt-playhead-time" id="ttPlayheadTime"></div>` inside `ttInner` HTML
- Implement `_ttStartSpeedTimer(speed)` / `_ttStopSpeedTimer()` / `ttSetSpeed(speed)` functions
- Update speed select `onchange` to call `ttSetSpeed(+this.value)`
- Add 64× option to speed select
- Update `_ttMovePlayhead` to also update `ttPlayheadTime` label
- Update `ttSyncBtn` to start/stop timer based on play state + speed
- Update `ttNextChunk` and `ttSeekToMs` to stop timer (restarted by onplay → ttSyncBtn)
- Rebuild Docker image after changes
8. Current Work:
Working on fixing two issues with the Timetable tab:
1. **Playback speed**: `video.playbackRate` doesn't work well for low-FPS screenpipe videos. The plan is to implement a `setInterval`-based frame-jumper for speed > 2× that advances `video.currentTime` by `speed * intervalMs / 1000` every 100–200ms, bypassing browser playbackRate limits.
2. **Timeline position indicator**: Playhead not prominent enough.
**CSS already changed** in `/volume1/screenpipe/app/static/index.html`:
```css
.tt-playhead { position:absolute; top:0; width:3px; height:36px; background:white; box-shadow:0 0 8px rgba(255,255,255,.9); z-index:10; pointer-events:none; display:none; }
.tt-playhead-time { position:absolute; top:2px; font-size:9px; font-weight:600; color:white; background:rgba(0,0,0,.75); padding:1px 4px; border-radius:2px; white-space:nowrap; transform:translateX(-50%); z-index:12; pointer-events:none; display:none; }
```
Session was interrupted by summary request after this CSS edit, mid-implementation.
9. Optional Next Step:
Continuing the fix for: "still playing speed is not showing properly still just in one second. also I want to see in timeline where I am"
The next steps in order are:
1. Add `<div class="tt-playhead-time" id="ttPlayheadTime"></div>` to the HTML inside `#ttInner` (after the existing `.tt-playhead` div)
2. Update `_ttMovePlayhead` to set `ttPlayheadTime` position and text content with `fmtTime()`
3. Add timer-based speed system to JS (new functions `_ttStartSpeedTimer`, `_ttStopSpeedTimer`, `ttSetSpeed`)
4. Update speed select's `onchange` to `ttSetSpeed(+this.value)` and add 64× option
5. Update `ttSyncBtn`, `ttNextChunk`, `ttSeekToMs` to integrate with timer
6. Rebuild: `sudo docker compose build screenpipe-app && sudo docker compose up -d screenpipe-app`
If you need specific details from before compaction (like exact code snippets, error messages, or content you generated), read the full transcript at: /home/Adm1n/.claude/projects/-volume1-screenpipe/7777f46e-1e40-4051-b4bb-f43aedd59556.jsonl
Continue the conversation from where it left off without asking the user any further questions. Resume directly — do not acknowledge the summary, do not recap what was happening, do not preface with "I'll continue" or similar. Pick up the last task as if the break never happened.
Thinking
Thinking
Bash
Find timetable speed and playhead related code
IN
grep -n "tt-playhead\|ttPlayhead\|ttInner\|_ttMovePlayhead\|ttSetSpeed\|_ttStartSpeed\|_ttStopSpeed\|ttSyncBtn\|playbackRate\|speed.*select\|spdSel\|ttSpeed" /volume1/screenpipe/app/static/index.html | head -80
Copy code to clipboard
OUT
207:.tt-playhead { position:absolute; top:0; width:3px; height:36px; background:white; box-shadow:0 0 8px rgba(255,255,255,.9); z-index:10; pointer-events:none; display:none; }
208:.tt-playhead-time { position:absolute; top:2px; font-size:9px; font-weight:600; color:white; background:rgba(0,0,0,.75); padding:1px 4px; border-radius:2px; white-space:nowrap; transform:translateX(-50%); z-index:12; pointer-events:none; display:none; }
580: <div class="tt-inner" id="ttInner" onclick="ttTimelineClick(event)">
583: <div class="tt-playhead" id="ttPlayhead"></div>
598: onpause="ttSyncBtn()"
599: onplay="ttSyncBtn()">
607: <select id="ttSpeed" onchange="document.getElementById('ttVideo').playbackRate=+this.value">
1624: document.getElementById('ttInner').style.width = '100%';
1632: document.getElementById('ttPlayhead').style.display = 'none';
1694: document.getElementById('ttInner').style.width = (_ttZoom * 100) + '%';
1700: const inner = document.getElementById('ttInner');
1710: const inner = document.getElementById('ttInner');
1718: const inner = document.getElementById('ttInner');
1750: _ttMovePlayhead(new Date(best.ts).getTime());
1772: _ttMovePlayhead(new Date(best.ts).getTime());
1791:function _ttMovePlayhead(tsMs) {
1792: const ph = document.getElementById('ttPlayhead');
1802: const ph = document.getElementById('ttPlayhead');
1805: const inner = document.getElementById('ttInner');
1819:function ttSyncBtn() {
Read
index.html
index.html
(lines 576-625)
Read
index.html
index.html
(lines 1786-1865)
Thinking
Thinking
Bash
Find chunk loading and playhead update functions
IN
grep -n "ttUpdatePlayhead\|ttNextChunk\|ttLoadChunk\|_ttCurChunk\|_ttChunks\|_ttFrames" /volume1/screenpipe/app/static/index.html | head -50
Copy code to clipboard
OUT
596: onended="ttNextChunk()"
597: ontimeupdate="ttUpdatePlayhead()"
1569:let _ttFrames = [];
1570:let _ttChunks = [];
1571:let _ttCurChunk = -1;
1607: _ttFrames = data.frames;
1609: for (const f of _ttFrames) {
1613: _ttChunks = [...chunkMap.values()];
1614: _ttCurChunk = -1;
1616: _ttDayStart = new Date(_ttFrames[0].ts).getTime();
1617: _ttDayEnd = new Date(_ttFrames[_ttFrames.length - 1].ts).getTime();
1620: for (const f of _ttFrames) _ttColor(f.app);
1640: for (const f of _ttFrames) {
1736: if (!_ttFrames.length) return;
1737: let best = _ttFrames[0], minDiff = Infinity;
1738: for (const f of _ttFrames) {
1742: const ci = _ttChunks.findIndex(ch => ch[0].video_url === best.video_url);
1744: _ttCurChunk = ci;
1753:function ttNextChunk() {
1754: if (_ttCurChunk + 1 >= _ttChunks.length) return;
1755: _ttCurChunk++;
1757: video.src = _ttChunks[_ttCurChunk][0].video_url;
1762:function ttUpdatePlayhead() {
1764: if (_ttCurChunk < 0 || _ttCurChunk >= _ttChunks.length) return;
1765: const chunk = _ttChunks[_ttCurChunk];
Read
index.html
index.html
(lines 1754-1793)
Thinking
Thinking
Read
index.html
index.html
(lines 1701-1760)
Thinking
Thinking
Read
index.html
index.html
(lines 1561-1640)
Thinking
Thinking
Bash
Find time formatting functions
IN
grep -n "function fmtTime\|function fmtDate\|function _fmt\|localTimeToUtc\|fmtDateTime" /volume1/screenpipe/app/static/index.html | head -20
Copy code to clipboard
OUT
1088: if (tf) url += `&time_from=${localTimeToUtc(tf)}`;
1089: if (tt) url += `&time_to=${localTimeToUtc(tt)}`;
1153: let meta = `<span style="color:var(--muted)">${fmtDateTime(r.timestamp)}</span>${srcBadge}`;
1166: meta = `<span style="color:var(--muted)">${fmtDateTime(r.timestamp)}</span>${srcBadge} <span class="badge ${r.is_input_device?'mic':'sys'}">${r.is_input_device?'MIC':'SYS'}</span>`;
1307:function fmtTime(ts) {
1312:function fmtDateTime(ts) {
1320:function localTimeToUtc(timeStr) {
1778:function _fmtSec(s) {
1788: `${fmtDateTime(f.ts)} · ${f.app}${f.win ? ' / ' + f.win : ''}`;
Read
index.html
index.html
(lines 1308-1327)
Thinking
Thinking
Now I have everything I need. I'll implement the frame-by-frame timer system that replaces
video.playbackRate
with wall-clock accurate playback, plus add the playhead time label. Let me make the changes:
Edit
index.html
index.html
Added 1 line...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Explorer (⇧⌘E)","depth":19,"bounds":{"left":0.0,"top":0.047885075,"width":0.015957447,"height":0.03830806},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":true},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.057462092,"width":0.007978723,"height":0.01915403},"role_description":"text"},{"role":"AXRadioButton","text":"Search (⇧⌘F)","depth":19,"bounds":{"left":0.0,"top":0.08619314,"width":0.015957447,"height":0.03830806},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.09577015,"width":0.007978723,"height":0.01915403},"role_description":"text"},{"role":"AXRadioButton","text":"Source Control (⌃⇧G) - 2 pending changes","depth":19,"bounds":{"left":0.0,"top":0.1245012,"width":0.015957447,"height":0.03830806},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.13407822,"width":0.007978723,"height":0.01915403},"role_description":"text"},{"role":"AXStaticText","text":"2","depth":22,"bounds":{"left":0.009640957,"top":0.1452514,"width":0.0019946808,"height":0.008778931},"role_description":"text"},{"role":"AXRadioButton","text":"Run and Debug (⇧⌘D)","depth":19,"bounds":{"left":0.0,"top":0.16280925,"width":0.015957447,"height":0.03830806},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.17238627,"width":0.007978723,"height":0.01915403},"role_description":"text"},{"role":"AXRadioButton","text":"Remote Explorer","depth":19,"bounds":{"left":0.0,"top":0.20111732,"width":0.015957447,"height":0.03830806},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.21069433,"width":0.007978723,"height":0.01915403},"role_description":"text"},{"role":"AXRadioButton","text":"Extensions (⇧⌘X) - 2 require update, 1 requires restart","depth":19,"bounds":{"left":0.0,"top":0.23942538,"width":0.015957447,"height":0.03830806},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.2490024,"width":0.007978723,"height":0.01915403},"role_description":"text"},{"role":"AXStaticText","text":"3","depth":22,"bounds":{"left":0.00930851,"top":0.2601756,"width":0.0023271276,"height":0.008778931},"role_description":"text"},{"role":"AXRadioButton","text":"Claude Code","depth":19,"bounds":{"left":0.0,"top":0.27773345,"width":0.015957447,"height":0.03830806},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Containers","depth":19,"bounds":{"left":0.0,"top":0.3160415,"width":0.015957447,"height":0.03830806},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"EXPLORER","depth":17,"bounds":{"left":0.022606382,"top":0.047885075,"width":0.018949468,"height":0.02793296},"role_description":"heading"},{"role":"AXStaticText","text":"EXPLORER","depth":18,"bounds":{"left":0.022606382,"top":0.056664005,"width":0.018949468,"height":0.0103751},"role_description":"text"},{"role":"AXButton","text":"Explorer Section: screenpipe [SSH: nas]","depth":21,"bounds":{"left":0.015957447,"top":0.07581804,"width":0.09940159,"height":0.017557861},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.01662234,"top":0.07821229,"width":0.005319149,"height":0.012769354},"role_description":"text"},{"role":"AXHeading","text":"Explorer Section: screenpipe [SSH: nas]","depth":22,"bounds":{"left":0.022606382,"top":0.07581804,"width":0.045877658,"height":0.017557861},"role_description":"heading"},{"role":"AXStaticText","text":"SCREENPIPE [SSH: NAS]","depth":23,"bounds":{"left":0.022606382,"top":0.079010375,"width":0.045877658,"height":0.0103751},"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.019614361,"top":0.09577015,"width":0.005319149,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"#recycle","depth":27,"bounds":{"left":0.025930852,"top":0.09577015,"width":0.017287234,"height":0.011971269},"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.019614361,"top":0.11332801,"width":0.005319149,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"app","depth":27,"bounds":{"left":0.025930852,"top":0.11332801,"width":0.0076462766,"height":0.011971269},"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.10605053,"top":0.11412609,"width":0.004654255,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.019614361,"top":0.13088587,"width":0.005319149,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"data","depth":27,"bounds":{"left":0.025930852,"top":0.13088587,"width":0.008976064,"height":0.011971269},"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.019614361,"top":0.14844373,"width":0.005319149,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"pipes","depth":27,"bounds":{"left":0.025930852,"top":0.14844373,"width":0.010970744,"height":0.011971269},"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.01861702,"top":0.16440542,"width":0.0063164895,"height":0.015163607},"role_description":"text"},{"role":"AXStaticText","text":".gitignore","depth":27,"bounds":{"left":0.025930852,"top":0.1660016,"width":0.018949468,"height":0.011971269},"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.01861702,"top":0.1819633,"width":0.0063164895,"height":0.015163607},"role_description":"text"},{"role":"AXStaticText","text":"app_settings.json","depth":27,"bounds":{"left":0.025930852,"top":0.18355946,"width":0.03557181,"height":0.011971269},"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.01861702,"top":0.19952115,"width":0.0076462766,"height":0.015163607},"role_description":"text"},{"role":"AXStaticText","text":"archive.db","depth":27,"bounds":{"left":0.025930852,"top":0.20111732,"width":0.020944148,"height":0.011971269},"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.01861702,"top":0.21707901,"width":0.0076462766,"height":0.015163607},"role_description":"text"},{"role":"AXStaticText","text":"db.sqlite","depth":27,"bounds":{"left":0.025930852,"top":0.21867518,"width":0.017287234,"height":0.011971269},"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.01861702,"top":0.23463687,"width":0.0063164895,"height":0.015163607},"role_description":"text"},{"role":"AXStaticText","text":"screenpipe_sync.sh","depth":27,"bounds":{"left":0.025930852,"top":0.23623304,"width":0.039893616,"height":0.011971269},"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.01861702,"top":0.25219473,"width":0.0076462766,"height":0.015163607},"role_description":"text"},{"role":"AXStaticText","text":"screenpipe.db","depth":27,"bounds":{"left":0.025930852,"top":0.25379092,"width":0.028590426,"height":0.011971269},"role_description":"text"},{"role":"AXButton","text":"Outline Section","depth":21,"bounds":{"left":0.015957447,"top":0.9473264,"width":0.09940159,"height":0.017557861},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.01662234,"top":0.9497207,"width":0.005319149,"height":0.012769354},"role_description":"text"},{"role":"AXHeading","text":"OUTLINE","depth":22,"bounds":{"left":0.022606382,"top":0.9473264,"width":0.01662234,"height":0.017557861},"role_description":"heading"},{"role":"AXStaticText","text":"OUTLINE","depth":23,"bounds":{"left":0.022606382,"top":0.95131683,"width":0.01662234,"height":0.0103751},"role_description":"text"},{"role":"AXButton","text":"Timeline Section","depth":21,"bounds":{"left":0.015957447,"top":0.9648843,"width":0.09940159,"height":0.017557861},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.01662234,"top":0.96727854,"width":0.005319149,"height":0.012769354},"role_description":"text"},{"role":"AXHeading","text":"TIMELINE","depth":22,"bounds":{"left":0.022606382,"top":0.9648843,"width":0.01761968,"height":0.017557861},"role_description":"heading"},{"role":"AXStaticText","text":"TIMELINE","depth":23,"bounds":{"left":0.022606382,"top":0.9688747,"width":0.01761968,"height":0.0103751},"role_description":"text"},{"role":"AXRadioButton","text":"app_settings.json, Editor Group 1","depth":28,"bounds":{"left":0.11569149,"top":0.047885075,"width":0.055851065,"height":0.02793296},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe_sync.sh, Editor Group 1","depth":28,"bounds":{"left":0.17154256,"top":0.047885075,"width":0.06050532,"height":0.02793296},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXRadioButton","text":"db.sqlite-shm, preview, Editor Group 1","depth":28,"bounds":{"left":0.23171543,"top":0.047885075,"width":0.04886968,"height":0.02793296},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"#!/bin/bash\n# screenpipe_sync.sh\n# Syncs Screenpipe SQLite data to a NAS archive database (append-only, no deletions).\n# Also copies the day's video/frame data folder to the NAS.\n#\n# Usage:\n# ./screenpipe_sync.sh # syncs yesterday (default)\n# ./screenpipe_sync.sh 2026-04-15 # syncs a specific date\n# ./screenpipe_sync.sh today # syncs today so far\n#\n# Cron example (runs at 3am daily):\n# 0 3 * * * /Users/lukas/.screenpipe/screenpipe_sync.sh >> /Users/lukas/.screenpipe/sync.log 2>&1\n\nset -euo pipefail\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\nDB_SRC=\"${SCREENPIPE_DB:-$HOME/.screenpipe/db.sqlite}\"\nNAS_MOUNT=\"${NAS_MOUNT:-/Volumes/Test/screenpipe}\"\nNAS_DB=\"$NAS_MOUNT/archive.db\"\nNAS_DATA=\"$NAS_MOUNT/data\"\nLOG_FILE=\"$HOME/.screenpipe/sync.log\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\nSCRIPT_START=$(date +%s)\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── DATE ARGUMENT ────────────────────────────────────────────────────────────\nif [ \"${1:-}\" = \"today\" ]; then\n TARGET_DATE=$(date +%Y-%m-%d)\nelif [ -n \"${1:-}\" ]; then\n TARGET_DATE=\"$1\"\n if ! [[ \"$TARGET_DATE\" =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]]; then\n echo \"ERROR: Invalid date format. Use YYYY-MM-DD, 'today', or no argument for yesterday.\"\n exit 1\n fi\nelse\n TARGET_DATE=$(date -v-1d +%Y-%m-%d)\nfi\n\nlog \"========================================\"\nlog \"Screenpipe sync starting for: $TARGET_DATE\"\nlog \"========================================\"\n\n# ─── PREFLIGHT ────────────────────────────────────────────────────────────────\nstep \"Preflight checks\"\n\nif [ ! -f \"$DB_SRC\" ]; then\n log \"ERROR: Source DB not found at $DB_SRC\"; exit 1\nfi\nprintf \" %-20s %s (%s)\\n\" \"Source DB:\" \"OK\" \"$(du -sh \"$DB_SRC\" | cut -f1)\"\n\nif [ ! -d \"$NAS_MOUNT\" ]; then\n log \"ERROR: NAS not mounted at $NAS_MOUNT\"; exit 1\nfi\nprintf \" %-20s %s\\n\" \"NAS mount:\" \"OK $NAS_MOUNT\"\n\n# Check if DB already synced for this date\nDB_ALREADY_SYNCED=false\nif [ -f \"$NAS_DB\" ]; then\n EXISTING=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';\" 2>/dev/null || echo \"0\")\n if [ \"$EXISTING\" -gt \"0\" ]; then\n log \"Date $TARGET_DATE already has $EXISTING frames in archive — skipping DB sync\"\n DB_ALREADY_SYNCED=true\n else\n printf \" %-20s %s (%s)\\n\" \"Archive DB:\" \"exists\" \"$(du -sh \"$NAS_DB\" | cut -f1)\"\n fi\nelse\n printf \" %-20s %s\\n\" \"Archive DB:\" \"will be created\"\nfi\n\n# Source data dir for this date\nDATA_SRC=\"$HOME/.screenpipe/data/data/$TARGET_DATE\"\nif [ -d \"$DATA_SRC\" ]; then\n DATA_SIZE=$(du -sh \"$DATA_SRC\" | cut -f1)\n DATA_FILES=$(ls \"$DATA_SRC\" | wc -l | tr -d ' ')\n printf \" %-20s %s (%s files, %s)\\n\" \"Data dir:\" \"OK\" \"$DATA_FILES\" \"$DATA_SIZE\"\nelse\n printf \" %-20s %s\\n\" \"Data dir:\" \"not found — skipping file copy\"\nfi\n\n# ─── DB SYNC ──────────────────────────────────────────────────────────────────\nif [ \"$DB_ALREADY_SYNCED\" = false ]; then\n\n # ─── COUNT SOURCE ROWS ────────────────────────────────────────────────────\n step \"Counting source rows for $TARGET_DATE\"\n\n SRC_FRAMES=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';\")\n SRC_ELEMENTS=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');\")\n SRC_UI=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';\")\n SRC_OCR=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');\")\n SRC_MEETINGS=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM meetings WHERE date(meeting_start) = '$TARGET_DATE';\")\n\n printf \" %-20s %s\\n\" \"frames:\" \"$SRC_FRAMES\"\n printf \" %-20s %s\\n\" \"elements:\" \"$SRC_ELEMENTS\"\n printf \" %-20s %s\\n\" \"ui_events:\" \"$SRC_UI\"\n printf \" %-20s %s\\n\" \"ocr_text:\" \"$SRC_OCR\"\n printf \" %-20s %s\\n\" \"meetings:\" \"$SRC_MEETINGS\"\n\n if [ \"$SRC_FRAMES\" -eq \"0\" ]; then\n log \"No frames found for $TARGET_DATE — skipping DB sync\"\n DB_ALREADY_SYNCED=true\n fi\n\nfi\n\nif [ \"$DB_ALREADY_SYNCED\" = false ]; then\n\n # ─── INIT TABLES ──────────────────────────────────────────────────────────\n step \"Initialising tables, indexes, FTS\"\n\n run_sqlite_heredoc \"creating tables\" \"\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"creating indexes\" \"\nATTACH '$NAS_DB' AS nas;\nCREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);\nCREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);\nCREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);\nCREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);\nCREATE INDEX IF NOT EXISTS nas.idx_elements_frame_id ON elements(frame_id);\nCREATE INDEX IF NOT EXISTS nas.idx_elements_frame_src_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;\nCREATE INDEX IF NOT EXISTS nas.idx_ui_events_timestamp ON ui_events(timestamp);\nCREATE INDEX IF NOT EXISTS nas.idx_ui_events_app_name ON ui_events(app_name);\nCREATE INDEX IF NOT EXISTS nas.idx_ui_events_frame_id ON ui_events(frame_id);\nCREATE INDEX IF NOT EXISTS nas.idx_ocr_text_frame_id ON ocr_text(frame_id);\nCREATE INDEX IF NOT EXISTS nas.idx_meetings_start ON meetings(meeting_start);\nCREATE INDEX IF NOT EXISTS nas.idx_video_chunks_device ON video_chunks(device_name);\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"creating FTS tables\" \"\nATTACH '$NAS_DB' AS nas;\nCREATE VIRTUAL TABLE IF NOT EXISTS nas.elements_fts USING fts5(\n text, role, frame_id UNINDEXED,\n content='elements', content_rowid='id', tokenize='unicode61'\n);\nCREATE VIRTUAL TABLE IF NOT EXISTS nas.frames_fts USING fts5(\n full_text, app_name, window_name, browser_url, id UNINDEXED,\n tokenize='unicode61'\n);\nCREATE VIRTUAL TABLE IF NOT EXISTS nas.ui_events_fts USING fts5(\n text_content,\n app_name,\n window_title,\n element_name,\n content='ui_events',\n content_rowid='id',\n tokenize='unicode61'\n);\nDETACH nas;\n\"\n\n # ─── SYNC DATA ────────────────────────────────────────────────────────────\n step \"Syncing data for $TARGET_DATE\"\n\n run_sqlite_heredoc \"video_chunks\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.video_chunks\n SELECT * FROM main.video_chunks\n WHERE id IN (\n SELECT DISTINCT video_chunk_id FROM main.frames\n WHERE date(timestamp) = '$TARGET_DATE' AND video_chunk_id IS NOT NULL\n );\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"frames ($SRC_FRAMES rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.frames\n SELECT * FROM main.frames WHERE date(timestamp) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"ocr_text ($SRC_OCR rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.ocr_text\n SELECT o.* FROM main.ocr_text o\n JOIN main.frames f ON o.frame_id = f.id\n WHERE date(f.timestamp) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"ui_events ($SRC_UI rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.ui_events\n SELECT * FROM main.ui_events WHERE date(timestamp) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"elements ($SRC_ELEMENTS rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.elements\n SELECT e.* FROM main.elements e\n JOIN main.frames f ON e.frame_id = f.id\n WHERE date(f.timestamp) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"meetings ($SRC_MEETINGS rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.meetings\n SELECT * FROM main.meetings WHERE date(meeting_start) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n # ─── FTS UPDATE ───────────────────────────────────────────────────────────\n step \"Updating FTS indexes\"\n\n run_sqlite_heredoc \"elements_fts\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT INTO nas.elements_fts(rowid, text, role)\n SELECT e.id, e.text, e.role\n FROM nas.elements e\n JOIN nas.frames f ON e.frame_id = f.id\n WHERE date(f.timestamp) = '$TARGET_DATE'\n AND e.text IS NOT NULL;\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"frames_fts\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT INTO nas.frames_fts(rowid, full_text, app_name, window_name, browser_url, id)\n SELECT id, full_text, app_name, window_name, browser_url, id\n FROM nas.frames\n WHERE date(timestamp) = '$TARGET_DATE'\n AND full_text IS NOT NULL;\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"ui_events_fts\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT INTO nas.ui_events_fts(rowid, text_content, app_name, window_title, element_name)\n SELECT id, text_content, app_name, window_title, element_name\n FROM nas.ui_events\n WHERE date(timestamp) = '$TARGET_DATE'\n AND text_content IS NOT NULL;\nDETACH nas;\n\"\n\n # ─── VERIFY DB ────────────────────────────────────────────────────────────\n step \"Verifying DB\"\n\n V_FRAMES=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';\")\n V_ELEMENTS=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');\")\n V_UI=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';\")\n V_OCR=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');\")\n V_MEETINGS=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM meetings WHERE date(meeting_start)= '$TARGET_DATE';\")\n\n check \"frames\" \"$V_FRAMES\" \"$SRC_FRAMES\"\n check \"elements\" \"$V_ELEMENTS\" \"$SRC_ELEMENTS\"\n check \"ui_events\" \"$V_UI\" \"$SRC_UI\"\n check \"ocr_text\" \"$V_OCR\" \"$SRC_OCR\"\n check \"meetings\" \"$V_MEETINGS\" \"$SRC_MEETINGS\"\n\nfi\n\n# ─── COPY DATA FOLDER ─────────────────────────────────────────────────────────\n# Always runs regardless of DB sync status\nstep \"Copying data folder for $TARGET_DATE\"\n\nif [ -d \"$DATA_SRC\" ]; then\n mkdir -p \"$NAS_DATA/$TARGET_DATE\"\n RSYNC_START=$(date +%s)\n printf \" %-36s \" \"rsync $TARGET_DATE/ → NAS\"\n rsync -a --ignore-existing \\\n \"$DATA_SRC/\" \\\n \"$NAS_DATA/$TARGET_DATE/\" \\\n 2>>\"$LOG_FILE\"\n RSYNC_DUR=$(( $(date +%s) - RSYNC_START ))\n COPIED_FILES=$(ls \"$NAS_DATA/$TARGET_DATE\" | wc -l | tr -d ' ')\n SRC_FILES=$(ls \"$DATA_SRC\" | wc -l | tr -d ' ')\n COPIED_SIZE=$(du -sh \"$NAS_DATA/$TARGET_DATE\" | cut -f1)\n if [ \"$COPIED_FILES\" -eq \"$SRC_FILES\" ]; then\n printf \"\\r %-36s ✓ %dm%02ds (%s files, %s)\\n\" \\\n \"rsync $TARGET_DATE/ → NAS\" \\\n \"$(( RSYNC_DUR / 60 ))\" \"$(( RSYNC_DUR % 60 ))\" \\\n \"$COPIED_FILES\" \"$COPIED_SIZE\" | tee -a \"$LOG_FILE\"\n else\n printf \"\\r %-36s ✗ %s / %s files\\n\" \\\n \"rsync $TARGET_DATE/ → NAS\" \"$COPIED_FILES\" \"$SRC_FILES\" | tee -a \"$LOG_FILE\"\n fi\nelse\n printf \" %-36s %s\\n\" \"rsync $TARGET_DATE/ → NAS\" \"skipped (no source dir)\"\nfi\n\n# ─── SUMMARY ──────────────────────────────────────────────────────────────────\nTOTAL_ELAPSED=$(( $(date +%s) - SCRIPT_START ))\nDB_SIZE=$(du -sh \"$NAS_DB\" | cut -f1)\n\necho \"\"\nlog \"Archive DB size: $DB_SIZE\"\nlog \"Total time: $(( TOTAL_ELAPSED / 60 ))m$(( TOTAL_ELAPSED % 60 ))s\"\nlog \"Sync complete for $TARGET_DATE\"\nlog \"========================================\"","depth":28,"bounds":{"left":0.13763298,"top":0.42617717,"width":0.35804522,"height":0.014365523},"value":"#!/bin/bash\n# screenpipe_sync.sh\n# Syncs Screenpipe SQLite data to a NAS archive database (append-only, no deletions).\n# Also copies the day's video/frame data folder to the NAS.\n#\n# Usage:\n# ./screenpipe_sync.sh # syncs yesterday (default)\n# ./screenpipe_sync.sh 2026-04-15 # syncs a specific date\n# ./screenpipe_sync.sh today # syncs today so far\n#\n# Cron example (runs at 3am daily):\n# 0 3 * * * /Users/lukas/.screenpipe/screenpipe_sync.sh >> /Users/lukas/.screenpipe/sync.log 2>&1\n\nset -euo pipefail\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\nDB_SRC=\"${SCREENPIPE_DB:-$HOME/.screenpipe/db.sqlite}\"\nNAS_MOUNT=\"${NAS_MOUNT:-/Volumes/Test/screenpipe}\"\nNAS_DB=\"$NAS_MOUNT/archive.db\"\nNAS_DATA=\"$NAS_MOUNT/data\"\nLOG_FILE=\"$HOME/.screenpipe/sync.log\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\nSCRIPT_START=$(date +%s)\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── DATE ARGUMENT ────────────────────────────────────────────────────────────\nif [ \"${1:-}\" = \"today\" ]; then\n TARGET_DATE=$(date +%Y-%m-%d)\nelif [ -n \"${1:-}\" ]; then\n TARGET_DATE=\"$1\"\n if ! [[ \"$TARGET_DATE\" =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]]; then\n echo \"ERROR: Invalid date format. Use YYYY-MM-DD, 'today', or no argument for yesterday.\"\n exit 1\n fi\nelse\n TARGET_DATE=$(date -v-1d +%Y-%m-%d)\nfi\n\nlog \"========================================\"\nlog \"Screenpipe sync starting for: $TARGET_DATE\"\nlog \"========================================\"\n\n# ─── PREFLIGHT ────────────────────────────────────────────────────────────────\nstep \"Preflight checks\"\n\nif [ ! -f \"$DB_SRC\" ]; then\n log \"ERROR: Source DB not found at $DB_SRC\"; exit 1\nfi\nprintf \" %-20s %s (%s)\\n\" \"Source DB:\" \"OK\" \"$(du -sh \"$DB_SRC\" | cut -f1)\"\n\nif [ ! -d \"$NAS_MOUNT\" ]; then\n log \"ERROR: NAS not mounted at $NAS_MOUNT\"; exit 1\nfi\nprintf \" %-20s %s\\n\" \"NAS mount:\" \"OK $NAS_MOUNT\"\n\n# Check if DB already synced for this date\nDB_ALREADY_SYNCED=false\nif [ -f \"$NAS_DB\" ]; then\n EXISTING=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';\" 2>/dev/null || echo \"0\")\n if [ \"$EXISTING\" -gt \"0\" ]; then\n log \"Date $TARGET_DATE already has $EXISTING frames in archive — skipping DB sync\"\n DB_ALREADY_SYNCED=true\n else\n printf \" %-20s %s (%s)\\n\" \"Archive DB:\" \"exists\" \"$(du -sh \"$NAS_DB\" | cut -f1)\"\n fi\nelse\n printf \" %-20s %s\\n\" \"Archive DB:\" \"will be created\"\nfi\n\n# Source data dir for this date\nDATA_SRC=\"$HOME/.screenpipe/data/data/$TARGET_DATE\"\nif [ -d \"$DATA_SRC\" ]; then\n DATA_SIZE=$(du -sh \"$DATA_SRC\" | cut -f1)\n DATA_FILES=$(ls \"$DATA_SRC\" | wc -l | tr -d ' ')\n printf \" %-20s %s (%s files, %s)\\n\" \"Data dir:\" \"OK\" \"$DATA_FILES\" \"$DATA_SIZE\"\nelse\n printf \" %-20s %s\\n\" \"Data dir:\" \"not found — skipping file copy\"\nfi\n\n# ─── DB SYNC ──────────────────────────────────────────────────────────────────\nif [ \"$DB_ALREADY_SYNCED\" = false ]; then\n\n # ─── COUNT SOURCE ROWS ────────────────────────────────────────────────────\n step \"Counting source rows for $TARGET_DATE\"\n\n SRC_FRAMES=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';\")\n SRC_ELEMENTS=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');\")\n SRC_UI=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';\")\n SRC_OCR=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');\")\n SRC_MEETINGS=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM meetings WHERE date(meeting_start) = '$TARGET_DATE';\")\n\n printf \" %-20s %s\\n\" \"frames:\" \"$SRC_FRAMES\"\n printf \" %-20s %s\\n\" \"elements:\" \"$SRC_ELEMENTS\"\n printf \" %-20s %s\\n\" \"ui_events:\" \"$SRC_UI\"\n printf \" %-20s %s\\n\" \"ocr_text:\" \"$SRC_OCR\"\n printf \" %-20s %s\\n\" \"meetings:\" \"$SRC_MEETINGS\"\n\n if [ \"$SRC_FRAMES\" -eq \"0\" ]; then\n log \"No frames found for $TARGET_DATE — skipping DB sync\"\n DB_ALREADY_SYNCED=true\n fi\n\nfi\n\nif [ \"$DB_ALREADY_SYNCED\" = false ]; then\n\n # ─── INIT TABLES ──────────────────────────────────────────────────────────\n step \"Initialising tables, indexes, FTS\"\n\n run_sqlite_heredoc \"creating tables\" \"\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"creating indexes\" \"\nATTACH '$NAS_DB' AS nas;\nCREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);\nCREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);\nCREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);\nCREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);\nCREATE INDEX IF NOT EXISTS nas.idx_elements_frame_id ON elements(frame_id);\nCREATE INDEX IF NOT EXISTS nas.idx_elements_frame_src_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;\nCREATE INDEX IF NOT EXISTS nas.idx_ui_events_timestamp ON ui_events(timestamp);\nCREATE INDEX IF NOT EXISTS nas.idx_ui_events_app_name ON ui_events(app_name);\nCREATE INDEX IF NOT EXISTS nas.idx_ui_events_frame_id ON ui_events(frame_id);\nCREATE INDEX IF NOT EXISTS nas.idx_ocr_text_frame_id ON ocr_text(frame_id);\nCREATE INDEX IF NOT EXISTS nas.idx_meetings_start ON meetings(meeting_start);\nCREATE INDEX IF NOT EXISTS nas.idx_video_chunks_device ON video_chunks(device_name);\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"creating FTS tables\" \"\nATTACH '$NAS_DB' AS nas;\nCREATE VIRTUAL TABLE IF NOT EXISTS nas.elements_fts USING fts5(\n text, role, frame_id UNINDEXED,\n content='elements', content_rowid='id', tokenize='unicode61'\n);\nCREATE VIRTUAL TABLE IF NOT EXISTS nas.frames_fts USING fts5(\n full_text, app_name, window_name, browser_url, id UNINDEXED,\n tokenize='unicode61'\n);\nCREATE VIRTUAL TABLE IF NOT EXISTS nas.ui_events_fts USING fts5(\n text_content,\n app_name,\n window_title,\n element_name,\n content='ui_events',\n content_rowid='id',\n tokenize='unicode61'\n);\nDETACH nas;\n\"\n\n # ─── SYNC DATA ────────────────────────────────────────────────────────────\n step \"Syncing data for $TARGET_DATE\"\n\n run_sqlite_heredoc \"video_chunks\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.video_chunks\n SELECT * FROM main.video_chunks\n WHERE id IN (\n SELECT DISTINCT video_chunk_id FROM main.frames\n WHERE date(timestamp) = '$TARGET_DATE' AND video_chunk_id IS NOT NULL\n );\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"frames ($SRC_FRAMES rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.frames\n SELECT * FROM main.frames WHERE date(timestamp) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"ocr_text ($SRC_OCR rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.ocr_text\n SELECT o.* FROM main.ocr_text o\n JOIN main.frames f ON o.frame_id = f.id\n WHERE date(f.timestamp) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"ui_events ($SRC_UI rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.ui_events\n SELECT * FROM main.ui_events WHERE date(timestamp) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"elements ($SRC_ELEMENTS rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.elements\n SELECT e.* FROM main.elements e\n JOIN main.frames f ON e.frame_id = f.id\n WHERE date(f.timestamp) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"meetings ($SRC_MEETINGS rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.meetings\n SELECT * FROM main.meetings WHERE date(meeting_start) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n # ─── FTS UPDATE ───────────────────────────────────────────────────────────\n step \"Updating FTS indexes\"\n\n run_sqlite_heredoc \"elements_fts\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT INTO nas.elements_fts(rowid, text, role)\n SELECT e.id, e.text, e.role\n FROM nas.elements e\n JOIN nas.frames f ON e.frame_id = f.id\n WHERE date(f.timestamp) = '$TARGET_DATE'\n AND e.text IS NOT NULL;\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"frames_fts\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT INTO nas.frames_fts(rowid, full_text, app_name, window_name, browser_url, id)\n SELECT id, full_text, app_name, window_name, browser_url, id\n FROM nas.frames\n WHERE date(timestamp) = '$TARGET_DATE'\n AND full_text IS NOT NULL;\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"ui_events_fts\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT INTO nas.ui_events_fts(rowid, text_content, app_name, window_title, element_name)\n SELECT id, text_content, app_name, window_title, element_name\n FROM nas.ui_events\n WHERE date(timestamp) = '$TARGET_DATE'\n AND text_content IS NOT NULL;\nDETACH nas;\n\"\n\n # ─── VERIFY DB ────────────────────────────────────────────────────────────\n step \"Verifying DB\"\n\n V_FRAMES=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';\")\n V_ELEMENTS=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');\")\n V_UI=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';\")\n V_OCR=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');\")\n V_MEETINGS=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM meetings WHERE date(meeting_start)= '$TARGET_DATE';\")\n\n check \"frames\" \"$V_FRAMES\" \"$SRC_FRAMES\"\n check \"elements\" \"$V_ELEMENTS\" \"$SRC_ELEMENTS\"\n check \"ui_events\" \"$V_UI\" \"$SRC_UI\"\n check \"ocr_text\" \"$V_OCR\" \"$SRC_OCR\"\n check \"meetings\" \"$V_MEETINGS\" \"$SRC_MEETINGS\"\n\nfi\n\n# ─── COPY DATA FOLDER ─────────────────────────────────────────────────────────\n# Always runs regardless of DB sync status\nstep \"Copying data folder for $TARGET_DATE\"\n\nif [ -d \"$DATA_SRC\" ]; then\n mkdir -p \"$NAS_DATA/$TARGET_DATE\"\n RSYNC_START=$(date +%s)\n printf \" %-36s \" \"rsync $TARGET_DATE/ → NAS\"\n rsync -a --ignore-existing \\\n \"$DATA_SRC/\" \\\n \"$NAS_DATA/$TARGET_DATE/\" \\\n 2>>\"$LOG_FILE\"\n RSYNC_DUR=$(( $(date +%s) - RSYNC_START ))\n COPIED_FILES=$(ls \"$NAS_DATA/$TARGET_DATE\" | wc -l | tr -d ' ')\n SRC_FILES=$(ls \"$DATA_SRC\" | wc -l | tr -d ' ')\n COPIED_SIZE=$(du -sh \"$NAS_DATA/$TARGET_DATE\" | cut -f1)\n if [ \"$COPIED_FILES\" -eq \"$SRC_FILES\" ]; then\n printf \"\\r %-36s ✓ %dm%02ds (%s files, %s)\\n\" \\\n \"rsync $TARGET_DATE/ → NAS\" \\\n \"$(( RSYNC_DUR / 60 ))\" \"$(( RSYNC_DUR % 60 ))\" \\\n \"$COPIED_FILES\" \"$COPIED_SIZE\" | tee -a \"$LOG_FILE\"\n else\n printf \"\\r %-36s ✗ %s / %s files\\n\" \\\n \"rsync $TARGET_DATE/ → NAS\" \"$COPIED_FILES\" \"$SRC_FILES\" | tee -a \"$LOG_FILE\"\n fi\nelse\n printf \" %-36s %s\\n\" \"rsync $TARGET_DATE/ → NAS\" \"skipped (no source dir)\"\nfi\n\n# ─── SUMMARY ──────────────────────────────────────────────────────────────────\nTOTAL_ELAPSED=$(( $(date +%s) - SCRIPT_START ))\nDB_SIZE=$(du -sh \"$NAS_DB\" | cut -f1)\n\necho \"\"\nlog \"Archive DB size: $DB_SIZE\"\nlog \"Total time: $(( TOTAL_ELAPSED / 60 ))m$(( TOTAL_ELAPSED % 60 ))s\"\nlog \"Sync complete for $TARGET_DATE\"\nlog \"========================================\"","role_description":"editor","is_enabled":true,"is_focused":true,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"#!/bin/bash\n# screenpipe_sync.sh\n# Syncs Screenpipe SQLite data to a NAS archive database (append-only, no deletions).\n# Also copies the day's video/frame data folder to the NAS.\n#\n# Usage:\n# ./screenpipe_sync.sh # syncs yesterday (default)\n# ./screenpipe_sync.sh 2026-04-15 # syncs a specific date\n# ./screenpipe_sync.sh today # syncs today so far\n#\n# Cron example (runs at 3am daily):\n# 0 3 * * * /Users/lukas/.screenpipe/screenpipe_sync.sh >> /Users/lukas/.screenpipe/sync.log 2>&1\n\nset -euo pipefail\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\nDB_SRC=\"${SCREENPIPE_DB:-$HOME/.screenpipe/db.sqlite}\"\nNAS_MOUNT=\"${NAS_MOUNT:-/Volumes/Test/screenpipe}\"\nNAS_DB=\"$NAS_MOUNT/archive.db\"\nNAS_DATA=\"$NAS_MOUNT/data\"\nLOG_FILE=\"$HOME/.screenpipe/sync.log\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\nSCRIPT_START=$(date +%s)\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── DATE ARGUMENT ────────────────────────────────────────────────────────────\nif [ \"${1:-}\" = \"today\" ]; then\n TARGET_DATE=$(date +%Y-%m-%d)\nelif [ -n \"${1:-}\" ]; then\n TARGET_DATE=\"$1\"\n if ! [[ \"$TARGET_DATE\" =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]]; then\n echo \"ERROR: Invalid date format. Use YYYY-MM-DD, 'today', or no argument for yesterday.\"\n exit 1\n fi\nelse\n TARGET_DATE=$(date -v-1d +%Y-%m-%d)\nfi\n\nlog \"========================================\"\nlog \"Screenpipe sync starting for: $TARGET_DATE\"\nlog \"========================================\"\n\n# ─── PREFLIGHT ────────────────────────────────────────────────────────────────\nstep \"Preflight checks\"\n\nif [ ! -f \"$DB_SRC\" ]; then\n log \"ERROR: Source DB not found at $DB_SRC\"; exit 1\nfi\nprintf \" %-20s %s (%s)\\n\" \"Source DB:\" \"OK\" \"$(du -sh \"$DB_SRC\" | cut -f1)\"\n\nif [ ! -d \"$NAS_MOUNT\" ]; then\n log \"ERROR: NAS not mounted at $NAS_MOUNT\"; exit 1\nfi\nprintf \" %-20s %s\\n\" \"NAS mount:\" \"OK $NAS_MOUNT\"\n\n# Check if DB already synced for this date\nDB_ALREADY_SYNCED=false\nif [ -f \"$NAS_DB\" ]; then\n EXISTING=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';\" 2>/dev/null || echo \"0\")\n if [ \"$EXISTING\" -gt \"0\" ]; then\n log \"Date $TARGET_DATE already has $EXISTING frames in archive — skipping DB sync\"\n DB_ALREADY_SYNCED=true\n else\n printf \" %-20s %s (%s)\\n\" \"Archive DB:\" \"exists\" \"$(du -sh \"$NAS_DB\" | cut -f1)\"\n fi\nelse\n printf \" %-20s %s\\n\" \"Archive DB:\" \"will be created\"\nfi\n\n# Source data dir for this date\nDATA_SRC=\"$HOME/.screenpipe/data/data/$TARGET_DATE\"\nif [ -d \"$DATA_SRC\" ]; then\n DATA_SIZE=$(du -sh \"$DATA_SRC\" | cut -f1)\n DATA_FILES=$(ls \"$DATA_SRC\" | wc -l | tr -d ' ')\n printf \" %-20s %s (%s files, %s)\\n\" \"Data dir:\" \"OK\" \"$DATA_FILES\" \"$DATA_SIZE\"\nelse\n printf \" %-20s %s\\n\" \"Data dir:\" \"not found — skipping file copy\"\nfi\n\n# ─── DB SYNC ──────────────────────────────────────────────────────────────────\nif [ \"$DB_ALREADY_SYNCED\" = false ]; then\n\n # ─── COUNT SOURCE ROWS ────────────────────────────────────────────────────\n step \"Counting source rows for $TARGET_DATE\"\n\n SRC_FRAMES=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';\")\n SRC_ELEMENTS=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');\")\n SRC_UI=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';\")\n SRC_OCR=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');\")\n SRC_MEETINGS=$(sqlite3 \"$DB_SRC\" \"SELECT COUNT(*) FROM meetings WHERE date(meeting_start) = '$TARGET_DATE';\")\n\n printf \" %-20s %s\\n\" \"frames:\" \"$SRC_FRAMES\"\n printf \" %-20s %s\\n\" \"elements:\" \"$SRC_ELEMENTS\"\n printf \" %-20s %s\\n\" \"ui_events:\" \"$SRC_UI\"\n printf \" %-20s %s\\n\" \"ocr_text:\" \"$SRC_OCR\"\n printf \" %-20s %s\\n\" \"meetings:\" \"$SRC_MEETINGS\"\n\n if [ \"$SRC_FRAMES\" -eq \"0\" ]; then\n log \"No frames found for $TARGET_DATE — skipping DB sync\"\n DB_ALREADY_SYNCED=true\n fi\n\nfi\n\nif [ \"$DB_ALREADY_SYNCED\" = false ]; then\n\n # ─── INIT TABLES ──────────────────────────────────────────────────────────\n step \"Initialising tables, indexes, FTS\"\n\n run_sqlite_heredoc \"creating tables\" \"\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"creating indexes\" \"\nATTACH '$NAS_DB' AS nas;\nCREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);\nCREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);\nCREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);\nCREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);\nCREATE INDEX IF NOT EXISTS nas.idx_elements_frame_id ON elements(frame_id);\nCREATE INDEX IF NOT EXISTS nas.idx_elements_frame_src_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;\nCREATE INDEX IF NOT EXISTS nas.idx_ui_events_timestamp ON ui_events(timestamp);\nCREATE INDEX IF NOT EXISTS nas.idx_ui_events_app_name ON ui_events(app_name);\nCREATE INDEX IF NOT EXISTS nas.idx_ui_events_frame_id ON ui_events(frame_id);\nCREATE INDEX IF NOT EXISTS nas.idx_ocr_text_frame_id ON ocr_text(frame_id);\nCREATE INDEX IF NOT EXISTS nas.idx_meetings_start ON meetings(meeting_start);\nCREATE INDEX IF NOT EXISTS nas.idx_video_chunks_device ON video_chunks(device_name);\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"creating FTS tables\" \"\nATTACH '$NAS_DB' AS nas;\nCREATE VIRTUAL TABLE IF NOT EXISTS nas.elements_fts USING fts5(\n text, role, frame_id UNINDEXED,\n content='elements', content_rowid='id', tokenize='unicode61'\n);\nCREATE VIRTUAL TABLE IF NOT EXISTS nas.frames_fts USING fts5(\n full_text, app_name, window_name, browser_url, id UNINDEXED,\n tokenize='unicode61'\n);\nCREATE VIRTUAL TABLE IF NOT EXISTS nas.ui_events_fts USING fts5(\n text_content,\n app_name,\n window_title,\n element_name,\n content='ui_events',\n content_rowid='id',\n tokenize='unicode61'\n);\nDETACH nas;\n\"\n\n # ─── SYNC DATA ────────────────────────────────────────────────────────────\n step \"Syncing data for $TARGET_DATE\"\n\n run_sqlite_heredoc \"video_chunks\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.video_chunks\n SELECT * FROM main.video_chunks\n WHERE id IN (\n SELECT DISTINCT video_chunk_id FROM main.frames\n WHERE date(timestamp) = '$TARGET_DATE' AND video_chunk_id IS NOT NULL\n );\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"frames ($SRC_FRAMES rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.frames\n SELECT * FROM main.frames WHERE date(timestamp) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"ocr_text ($SRC_OCR rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.ocr_text\n SELECT o.* FROM main.ocr_text o\n JOIN main.frames f ON o.frame_id = f.id\n WHERE date(f.timestamp) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"ui_events ($SRC_UI rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.ui_events\n SELECT * FROM main.ui_events WHERE date(timestamp) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"elements ($SRC_ELEMENTS rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.elements\n SELECT e.* FROM main.elements e\n JOIN main.frames f ON e.frame_id = f.id\n WHERE date(f.timestamp) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"meetings ($SRC_MEETINGS rows)\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT OR IGNORE INTO nas.meetings\n SELECT * FROM main.meetings WHERE date(meeting_start) = '$TARGET_DATE';\nDETACH nas;\n\"\n\n # ─── FTS UPDATE ───────────────────────────────────────────────────────────\n step \"Updating FTS indexes\"\n\n run_sqlite_heredoc \"elements_fts\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT INTO nas.elements_fts(rowid, text, role)\n SELECT e.id, e.text, e.role\n FROM nas.elements e\n JOIN nas.frames f ON e.frame_id = f.id\n WHERE date(f.timestamp) = '$TARGET_DATE'\n AND e.text IS NOT NULL;\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"frames_fts\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT INTO nas.frames_fts(rowid, full_text, app_name, window_name, browser_url, id)\n SELECT id, full_text, app_name, window_name, browser_url, id\n FROM nas.frames\n WHERE date(timestamp) = '$TARGET_DATE'\n AND full_text IS NOT NULL;\nDETACH nas;\n\"\n\n run_sqlite_heredoc \"ui_events_fts\" \"\nATTACH '$NAS_DB' AS nas;\nINSERT INTO nas.ui_events_fts(rowid, text_content, app_name, window_title, element_name)\n SELECT id, text_content, app_name, window_title, element_name\n FROM nas.ui_events\n WHERE date(timestamp) = '$TARGET_DATE'\n AND text_content IS NOT NULL;\nDETACH nas;\n\"\n\n # ─── VERIFY DB ────────────────────────────────────────────────────────────\n step \"Verifying DB\"\n\n V_FRAMES=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';\")\n V_ELEMENTS=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');\")\n V_UI=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';\")\n V_OCR=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');\")\n V_MEETINGS=$(sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) FROM meetings WHERE date(meeting_start)= '$TARGET_DATE';\")\n\n check \"frames\" \"$V_FRAMES\" \"$SRC_FRAMES\"\n check \"elements\" \"$V_ELEMENTS\" \"$SRC_ELEMENTS\"\n check \"ui_events\" \"$V_UI\" \"$SRC_UI\"\n check \"ocr_text\" \"$V_OCR\" \"$SRC_OCR\"\n check \"meetings\" \"$V_MEETINGS\" \"$SRC_MEETINGS\"\n\nfi\n\n# ─── COPY DATA FOLDER ─────────────────────────────────────────────────────────\n# Always runs regardless of DB sync status\nstep \"Copying data folder for $TARGET_DATE\"\n\nif [ -d \"$DATA_SRC\" ]; then\n mkdir -p \"$NAS_DATA/$TARGET_DATE\"\n RSYNC_START=$(date +%s)\n printf \" %-36s \" \"rsync $TARGET_DATE/ → NAS\"\n rsync -a --ignore-existing \\\n \"$DATA_SRC/\" \\\n \"$NAS_DATA/$TARGET_DATE/\" \\\n 2>>\"$LOG_FILE\"\n RSYNC_DUR=$(( $(date +%s) - RSYNC_START ))\n COPIED_FILES=$(ls \"$NAS_DATA/$TARGET_DATE\" | wc -l | tr -d ' ')\n SRC_FILES=$(ls \"$DATA_SRC\" | wc -l | tr -d ' ')\n COPIED_SIZE=$(du -sh \"$NAS_DATA/$TARGET_DATE\" | cut -f1)\n if [ \"$COPIED_FILES\" -eq \"$SRC_FILES\" ]; then\n printf \"\\r %-36s ✓ %dm%02ds (%s files, %s)\\n\" \\\n \"rsync $TARGET_DATE/ → NAS\" \\\n \"$(( RSYNC_DUR / 60 ))\" \"$(( RSYNC_DUR % 60 ))\" \\\n \"$COPIED_FILES\" \"$COPIED_SIZE\" | tee -a \"$LOG_FILE\"\n else\n printf \"\\r %-36s ✗ %s / %s files\\n\" \\\n \"rsync $TARGET_DATE/ → NAS\" \"$COPIED_FILES\" \"$SRC_FILES\" | tee -a \"$LOG_FILE\"\n fi\nelse\n printf \" %-36s %s\\n\" \"rsync $TARGET_DATE/ → NAS\" \"skipped (no source dir)\"\nfi\n\n# ─── SUMMARY ──────────────────────────────────────────────────────────────────\nTOTAL_ELAPSED=$(( $(date +%s) - SCRIPT_START ))\nDB_SIZE=$(du -sh \"$NAS_DB\" | cut -f1)\n\necho \"\"\nlog \"Archive DB size: $DB_SIZE\"\nlog \"Total time: $(( TOTAL_ELAPSED / 60 ))m$(( TOTAL_ELAPSED % 60 ))s\"\nlog \"Sync complete for $TARGET_DATE\"\nlog \"========================================\"","depth":29,"bounds":{"left":0.13763298,"top":0.42617717,"width":0.35804522,"height":0.014365523},"role_description":"text"},{"role":"AXRadioButton","text":"lets add ability to jump…, Editor Group 2","depth":28,"bounds":{"left":0.5578458,"top":0.047885075,"width":0.06948138,"height":0.02793296},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXRadioButton","text":"Problems (⇧⌘M)","depth":22,"bounds":{"left":0.118351065,"top":0.59936154,"width":0.027925532,"height":0.02793296},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"PROBLEMS","depth":24,"bounds":{"left":0.122340426,"top":0.60814047,"width":0.019946808,"height":0.0103751},"role_description":"text"},{"role":"AXRadioButton","text":"Output (⇧⌘U)","depth":22,"bounds":{"left":0.14594415,"top":0.59936154,"width":0.023603724,"height":0.02793296},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUTPUT","depth":24,"bounds":{"left":0.14993352,"top":0.60814047,"width":0.015625,"height":0.0103751},"role_description":"text"},{"role":"AXRadioButton","text":"Debug Console (⇧⌘Y)","depth":22,"bounds":{"left":0.16921543,"top":0.59936154,"width":0.039893616,"height":0.02793296},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"DEBUG CONSOLE","depth":24,"bounds":{"left":0.1732048,"top":0.60814047,"width":0.031914894,"height":0.0103751},"role_description":"text"},{"role":"AXRadioButton","text":"Terminal (⌃`)","depth":22,"bounds":{"left":0.2087766,"top":0.59936154,"width":0.026595745,"height":0.02793296},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":true},{"role":"AXStaticText","text":"TERMINAL","depth":24,"bounds":{"left":0.21276596,"top":0.60814047,"width":0.01861702,"height":0.0103751},"role_description":"text"},{"role":"AXRadioButton","text":"Ports","depth":22,"bounds":{"left":0.23537233,"top":0.59936154,"width":0.020279255,"height":0.02793296},"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"PORTS","depth":24,"bounds":{"left":0.2393617,"top":0.60814047,"width":0.012300532,"height":0.0103751},"role_description":"text"},{"role":"AXButton","text":"remote SSH: nas","depth":16,"bounds":{"left":0.0006648936,"top":0.98244214,"width":0.028590426,"height":0.01755786},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.0033244682,"top":0.9848364,"width":0.005319149,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"SSH: nas","depth":17,"bounds":{"left":0.008643617,"top":0.9856345,"width":0.017952127,"height":0.011173184},"role_description":"text"},{"role":"AXButton","text":"screenpipe (Git) - master*, Checkout Branch/Tag...","depth":16,"bounds":{"left":0.030917553,"top":0.98244214,"width":0.023271276,"height":0.01755786},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.031914894,"top":0.9848364,"width":0.005319149,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"master*","depth":17,"bounds":{"left":0.03723404,"top":0.9856345,"width":0.015957447,"height":0.011173184},"role_description":"text"},{"role":"AXButton","text":"screenpipe (Git) - Synchronize Changes","depth":16,"bounds":{"left":0.05418883,"top":0.98244214,"width":0.00731383,"height":0.01755786},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"No Problems","depth":16,"bounds":{"left":0.06416223,"top":0.98244214,"width":0.022606382,"height":0.01755786},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.06582447,"top":0.9848364,"width":0.005319149,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"0","depth":17,"bounds":{"left":0.07114362,"top":0.9856345,"width":0.004986702,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.07579787,"top":0.9848364,"width":0.0056515955,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"0","depth":17,"bounds":{"left":0.08111702,"top":0.9856345,"width":0.0039893617,"height":0.011173184},"role_description":"text"},{"role":"AXButton","text":"No Ports Forwarded","depth":16,"bounds":{"left":0.08843085,"top":0.98244214,"width":0.012632979,"height":0.01755786},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.09009308,"top":0.9848364,"width":0.0056515955,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"0","depth":17,"bounds":{"left":0.09541223,"top":0.9856345,"width":0.0039893617,"height":0.011173184},"role_description":"text"},{"role":"AXButton","text":"Notifications","depth":16,"bounds":{"left":0.9886968,"top":0.98244214,"width":0.010638298,"height":0.01755786},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Signed out","depth":16,"bounds":{"left":0.9567819,"top":0.98244214,"width":0.031914894,"height":0.01755786},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.9594415,"top":0.9848364,"width":0.005319149,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Signed out","depth":17,"bounds":{"left":0.96476066,"top":0.9856345,"width":0.021276595,"height":0.011173184},"role_description":"text"},{"role":"AXButton","text":"Shell Script","depth":16,"bounds":{"left":0.93151593,"top":0.98244214,"width":0.023603724,"height":0.01755786},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Editor Language Status: $(copilot) No inline suggestion available, Inline suggestions","depth":16,"bounds":{"left":0.92420214,"top":0.98244214,"width":0.0076462766,"height":0.01755786},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"LF","depth":16,"bounds":{"left":0.91356385,"top":0.98244214,"width":0.00831117,"height":0.01755786},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"UTF-8","depth":16,"bounds":{"left":0.8962766,"top":0.98244214,"width":0.015625,"height":0.01755786},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Spaces: 2","depth":16,"bounds":{"left":0.87234044,"top":0.98244214,"width":0.021941489,"height":0.01755786},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Ln 331, Col 48","depth":16,"bounds":{"left":0.8390958,"top":0.98244214,"width":0.03125,"height":0.01755786},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Screen Reader Optimized","depth":16,"bounds":{"left":0.7849069,"top":0.98244214,"width":0.05319149,"height":0.01755786},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"git-commit Lukas Kovalik (23 hours ago)","depth":16,"bounds":{"left":0.71974736,"top":0.98244214,"width":0.06416223,"height":0.01755786},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.72140956,"top":0.9848364,"width":0.0056515955,"height":0.012769354},"role_description":"text"},{"role":"AXStaticText","text":"Lukas Kovalik (23 hours ago)","depth":17,"bounds":{"left":0.72672874,"top":0.9856345,"width":0.055518616,"height":0.011173184},"role_description":"text"},{"role":"AXStaticText","text":"Info: Downloading VS Code Server...","depth":12,"role_description":"text"},{"role":"AXButton","text":"lets add ability to jump fro,m search to timeline so we can see the exact screen (also based on monitor and time","depth":19,"bounds":{"left":0.56017286,"top":0.08060654,"width":0.099734046,"height":0.022346368},"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Session history","depth":19,"bounds":{"left":0.9780585,"top":0.08060654,"width":0.00930851,"height":0.022346368},"help_text":"Session history","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"New session","depth":19,"bounds":{"left":0.9886968,"top":0.08060654,"width":0.00930851,"height":0.022346368},"help_text":"New session","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Message actions","depth":24,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"This session is being continued from a previous conversation that ran out of context. The summary below covers the earlier portion of the conversation.\n\nSummary:\n1. Primary Request and Intent:\n\nThe user has been developing a Screenpipe dashboard on a Synology NAS. Requests in chronological order:\n- **Q1**: Are db.sqlite-shm and db.sqlite-wal used? → Explained WAL mode; cleaned up files.\n- **Q2**: AND combination search (term1 + term2 must both appear) → Added \"AND also\" input field.\n- **Q3**: Explain UTC time issue, show date in results, make Only/Skip apps use multiselect → Implemented all three.\n- **Q4**: Point sqlite-web at archive.db, add second sqlite-web for db.sqlite → Updated docker-compose.yml, added two services on ports 8767/8768.\n- **Q5**: \"still the same\" (container not picking up config) → Explained `up -d` vs `restart`.\n- **Q6**: Add git, push to gitea.com/lakylak/screenpipe.git → Initialized repo, committed, pushed.\n- **Q7**: Add Timetable tab with video playback and timeline → Full implementation with click-to-seek, auto-advancing chunks, legend.\n- **Q8**: Add scroll/zoom on timeline, jump to specific time, better awareness → Implemented zoom (1×–32×), scrollable timeline, overview minimap, viewport indicator, Jump-to-time input, screenshot thumbnail.\n- **Q9 (most recent)**: Make playing speed more than 8×, fix speed not working, show position on timeline → CSS fix done (wider playhead + time label style), remainder in progress.\n\n2. Key Technical Concepts:\n\n- **SQLite WAL mode**: db.sqlite-shm and db.sqlite-wal are WAL companion files; cleaned with `PRAGMA wal_checkpoint(TRUNCATE)`.\n- **SQLite FTS5**: Space-separated terms = AND; `MATCH 'term1 term2'` requires both; OR requires explicit `OR` keyword.\n- **FastAPI**: Python backend with route handlers in main.py, consumers pattern for DB queries.\n- **Docker Compose**: App image is built (code baked in), not volume-mounted → requires `build` + `up -d` for code changes. `restart` doesn't re-read compose file — need `up -d`.\n- **sqlite-web**: Read-only flag `-r`, pre-built image, no rebuild needed for config changes.\n- **Video playback**: screenpipe records at 0.1–0.3 fps (timelapse). `seek = offset_index / fps` gives seconds into video chunk. ~245 chunks/day across 2 monitors. Videos may be encoded at standard fps making them very short at native speed.\n- **Timeline rendering**: App-colored segments built by merging consecutive frames with same `app_name`. Percentage positions: `((ts - dayStart) / span * 100)%`.\n- **Zoom/scroll**: Inner div width = `zoom × 100%`, outer wrapper has `overflow-x:auto`. Playhead position stays as % of inner div, which is correct at all zoom levels.\n- **Timer-based speed**: For speed > 2×, browser `playbackRate` is unreliable on low-FPS video; correct approach is `setInterval` advancing `video.currentTime` by `speed * interval_ms / 1000` seconds per tick.\n- **UTC vs local time**: Backend treats `time_from`/`time_to` as UTC. Frontend converts with `localTimeToUtc()` before sending.\n- **Git**: `#recycle/` in .gitignore treated as comment — must escape as `\\#recycle/`.\n\n3. Files and Code Sections:\n\n- **`/volume1/screenpipe/app/main.py`**\n - Added `/api/apps` endpoint (all unique app names from frames table)\n - Added `/api/timetable` endpoint (frames + video URLs + screenshot URLs per device per date)\n - `/api/timetable` response structure: `{frames: [{ts, app, win, video_url, seek, screenshot_url}], devices: [...], device: \"...\"}`\n - Key snippet:\n ```python","depth":26,"role_description":"text"},{"role":"AXButton","text":"@app.get(\"/api/timetable\"","depth":26,"help_text":"Open app.get(\"/api/timetable\"","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":")\n async def timetable_data(d: str | None = Query(None), device: str | None = Query(None)):\n ...\n rows = conn.execute(f\"\"\"\n SELECT f.timestamp AS ts, f.app_name AS app, f.window_name AS win,\n f.offset_index, f.snapshot_path,\n vc.file_path AS video_path, vc.fps AS video_fps\n FROM frames f\n JOIN video_chunks vc ON f.video_chunk_id = vc.id\n WHERE f.timestamp >= ? AND f.timestamp < ?\n AND f.video_chunk_id IS NOT NULL {dev_clause}\n ORDER BY f.timestamp\n \"\"\", params).fetchall()\n # seek = offset_index / fps, screenshot_url from _snapshot_to_url(snapshot_path)\n ```\n\n- **`/volume1/screenpipe/app/docker-compose.yml`**\n - Changed sqlite-web service name to `sqlite-web-archive` → port 8767 → `/data/archive.db`\n - Added `sqlite-web-live` → port 8768 → `/data/db.sqlite`\n - screenpipe-app: port 8766, `DB_PATH: /data/db.sqlite`, `TZ: Europe/Sofia`\n\n- **`/volume1/screenpipe/app/static/index.html`** (single large file with all CSS/HTML/JS)\n - **Search enhancements**:\n - Added `id=\"sq2\"` \"AND also\" input between search-row1 and search-row2\n - Replaced `sOnlyApps`/`sSkipApps` text inputs with custom multiselect components (`id=\"msOnlyApps\"`, `id=\"msSkipApps\"`)\n - Updated `buildUrl()` to combine `q + \" \" + q2` and convert times with `localTimeToUtc()`\n - Added `fmtDateTime(ts)` showing \"Apr 20 14:08\" format\n - Added `localTimeToUtc(timeStr)` converting local HH:MM to UTC\n - Multiselect state: `const _msState = { msOnlyApps: new Set(), msSkipApps: new Set() }`\n - **Timetable tab** (new page):\n - Tab button added between Work Report and AI Summary\n - `showPage` array updated: `['activity','search','audio','report','timetable','summary']`\n - `refresh()` calls `loadTimetable()` when on timetable page\n - **Timetable CSS** (key styles):\n ```css\n .tt-scroll-wrap { overflow-x:auto; ... scrollbar-width:thin; }\n .tt-inner { position:relative; height:52px; } /* width set dynamically */\n .tt-playhead { position:absolute; top:0; width:3px; height:36px; background:white; box-shadow:0 0 8px rgba(255,255,255,.9); z-index:10; pointer-events:none; display:none; }\n .tt-playhead-time { position:absolute; top:2px; font-size:9px; font-weight:600; color:white; background:rgba(0,0,0,.75); padding:1px 4px; border-radius:2px; white-space:nowrap; transform:translateX(-50%); z-index:12; pointer-events:none; display:none; }\n .tt-overview-wrap { position:relative; height:14px; ... cursor:pointer; }\n .tt-overview-vp { position:absolute; background:rgba(255,255,255,0.12); border:1px solid rgba(255,255,255,0.4); }\n ```\n - **Timetable JS state variables**:\n ```javascript\n let _ttFrames = [], _ttChunks = [], _ttCurChunk = -1;\n let _ttDayStart = 0, _ttDayEnd = 0, _ttZoom = 1;\n const _ttAppColors = {};\n const TT_ZOOMS = [1, 2, 4, 8, 16, 32];\n const TT_TICK_MIN = {1:30, 2:15, 4:10, 8:5, 16:2, 32:1};\n ```\n - **Key JS functions**:\n - `loadTimetable()` — fetches `/api/timetable`, groups chunks, renders\n - `ttZoom(dir)` — changes zoom level, updates inner width, re-renders ticks, scrolls to playhead\n - `ttTimelineClick(e)` — uses `inner.getBoundingClientRect()` (works correctly when scrolled)\n - `ttOverviewClick(e)` — scrolls timeline + seeks video\n - `ttUpdateOverviewVp()` — updates white viewport rect using `wrap.scrollLeft / inner.scrollWidth`\n - `ttJumpToTime()` — parses time input, converts to ms, calls `ttSeekToMs`\n - `ttSeekToMs(tsMs)` — binary-searches nearest frame, loads chunk, seeks video\n - `_ttScrollToPlayhead(force)` — scrolls wrap so playhead stays at ~35% from left when Follow is checked\n - `_ttMovePlayhead(tsMs)` — sets `ph.style.left` as percentage, calls `_ttScrollToPlayhead`\n - `_ttShowNow(f)` — updates screenshot thumbnail + now-text div\n - `ttSyncBtn()` — syncs play/pause button text\n - Keyboard: Space=play/pause, ←/→=±10s, Ctrl+←/→=±30s, +/-=zoom\n\n- **`/volume1/screenpipe/.gitignore`**\n ```\n *.db, *.sqlite, *.sqlite-shm, *.sqlite-wal\n data/, \\#recycle/,","depth":26,"role_description":"text"},{"role":"AXButton","text":"@eaDir/","depth":26,"help_text":"Open eaDir/","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"app_settings.json, app/.env\n __pycache__/, *.pyc, .DS_Store\n ```\n\n4. Errors and Fixes:\n\n- **`#recycle/` in .gitignore treated as comment**: `#` starts a comment in .gitignore. Fixed by escaping: `\\#recycle/`. Also had to `git rm --cached \"#recycle/desktop.ini\"` to unstage it.\n- **`sudo docker compose restart sqlite-web` didn't apply config change**: `restart` reuses existing container config, doesn't re-read compose file. Fix: `sudo docker compose up -d` recreates containers with new config.\n- **Orphan container holding port 8767**: Old `screenpipe-sqlweb` container still running after rename. Fix: `sudo docker compose up -d --remove-orphans`.\n- **`sudo docker` not accessible from Claude Code**: Interactive sudo required. User runs commands in NAS terminal.\n- **`git config --global --add safe.directory /volume1/screenpipe`**: Required due to dubious ownership of NAS volume directory.\n\n5. Problem Solving:\n\n- **Time zone confusion in search**: Backend uses UTC for time_from/time_to; frontend displays local time. Solved by `localTimeToUtc()` converting before API call, and showing date+time in results.\n- **sqlite-web not showing April 17–21 data**: Container was pointing at db.sqlite (old config), not archive.db. Fixed by updating docker-compose.yml + `up -d`.\n- **Video playback speed**: Browser `video.playbackRate` is capped (~16× max in Chrome) and performs poorly for very low FPS (0.1–0.3 fps) screenpipe videos. Each chunk may only be 1–2 seconds of wall-clock encoded video, playing through instantly. Solution: implement timer-based frame-jumping for speed > 2× (in progress).\n- **Playhead visibility**: White 2px line was hard to see. Fixed CSS to 3px width + stronger box-shadow + added `.tt-playhead-time` overlay label style.\n\n6. All User Messages:\n\n- \"do we use db.sqlite-shm and db.sqlite-wal for anything right now? [image of search UI] Lets add ability to search with combination... Explain how does the search work time seems to work in utc maybe display date next to the time in results. Make only apps and skip apps multiselect with all available apps.\"\n- \"doi I need to restart?\"\n- \"there is sudo docker compose\"\n- \"no still the same\"\n- \"add git. I have created gitea repo https://gitea.com/lakylak/screenpipe.git\"\n- \"just do it\" (re: git push)\n- \"how to make sure data in :8767 are accurate and point to archive.db\"\n- \"I can't see older than 16th there should 21st of april. In http://192.168.0.242:8766/ I can see all but not on sqlite viewer http://192.168.0.242:8767\"\n- \"ok lets add additional port to read db.sqlite, I would like to see the structure of official db that reads db.sqlite db and one for archive\"\n- [docker compose output showing orphan container error]\n- \"looks great. I want to have ability to scroll left and right and also to jump to specific time. I want to be more aware to what I see. Still it should be fast\"\n- \"lets make the playing speed more than 8x\"\n- \"still playing speed is not showing properly still just in one second. also I want to see in timeline where I am\"\n\n7. Pending Tasks:\n\n- **Playback speed fix** (in progress, partially done):\n - Add `<div class=\"tt-playhead-time\" id=\"ttPlayheadTime\"></div>` inside `ttInner` HTML\n - Implement `_ttStartSpeedTimer(speed)` / `_ttStopSpeedTimer()` / `ttSetSpeed(speed)` functions\n - Update speed select `onchange` to call `ttSetSpeed(+this.value)`\n - Add 64× option to speed select\n - Update `_ttMovePlayhead` to also update `ttPlayheadTime` label\n - Update `ttSyncBtn` to start/stop timer based on play state + speed\n - Update `ttNextChunk` and `ttSeekToMs` to stop timer (restarted by onplay → ttSyncBtn)\n - Rebuild Docker image after changes\n\n8. Current Work:\n\nWorking on fixing two issues with the Timetable tab:\n1. **Playback speed**: `video.playbackRate` doesn't work well for low-FPS screenpipe videos. The plan is to implement a `setInterval`-based frame-jumper for speed > 2× that advances `video.currentTime` by `speed * intervalMs / 1000` every 100–200ms, bypassing browser playbackRate limits.\n2. **Timeline position indicator**: Playhead not prominent enough. \n\n**CSS already changed** in `/volume1/screenpipe/app/static/index.html`:\n```css\n.tt-playhead { position:absolute; top:0; width:3px; height:36px; background:white; box-shadow:0 0 8px rgba(255,255,255,.9); z-index:10; pointer-events:none; display:none; }\n.tt-playhead-time { position:absolute; top:2px; font-size:9px; font-weight:600; color:white; background:rgba(0,0,0,.75); padding:1px 4px; border-radius:2px; white-space:nowrap; transform:translateX(-50%); z-index:12; pointer-events:none; display:none; }\n```\n\nSession was interrupted by summary request after this CSS edit, mid-implementation.\n\n9. Optional Next Step:\n\nContinuing the fix for: \"still playing speed is not showing properly still just in one second. also I want to see in timeline where I am\"\n\nThe next steps in order are:\n1. Add `<div class=\"tt-playhead-time\" id=\"ttPlayheadTime\"></div>` to the HTML inside `#ttInner` (after the existing `.tt-playhead` div)\n2. Update `_ttMovePlayhead` to set `ttPlayheadTime` position and text content with `fmtTime()`\n3. Add timer-based speed system to JS (new functions `_ttStartSpeedTimer`, `_ttStopSpeedTimer`, `ttSetSpeed`)\n4. Update speed select's `onchange` to `ttSetSpeed(+this.value)` and add 64× option\n5. Update `ttSyncBtn`, `ttNextChunk`, `ttSeekToMs` to integrate with timer\n6. Rebuild: `sudo docker compose build screenpipe-app && sudo docker compose up -d screenpipe-app`\n\nIf you need specific details from before compaction (like exact code snippets, error messages, or content you generated), read the full transcript at: /home/Adm1n/.claude/projects/-volume1-screenpipe/7777f46e-1e40-4051-b4bb-f43aedd59556.jsonl\nContinue the conversation from where it left off without asking the user any further questions. Resume directly — do not acknowledge the summary, do not recap what was happening, do not preface with \"I'll continue\" or similar. Pick up the last task as if the break never happened.","depth":26,"role_description":"text"},{"role":"AXButton","text":"Thinking","depth":23,"role_description":"disclosure triangle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Thinking","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Find timetable speed and playhead related code","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"tt-playhead\\|ttPlayhead\\|ttInner\\|_ttMovePlayhead\\|ttSetSpeed\\|_ttStartSpeed\\|_ttStopSpeed\\|ttSyncBtn\\|playbackRate\\|speed.*select\\|spdSel\\|ttSpeed\" /volume1/screenpipe/app/static/index.html | head -80","depth":25,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"207:.tt-playhead { position:absolute; top:0; width:3px; height:36px; background:white; box-shadow:0 0 8px rgba(255,255,255,.9); z-index:10; pointer-events:none; display:none; }\n208:.tt-playhead-time { position:absolute; top:2px; font-size:9px; font-weight:600; color:white; background:rgba(0,0,0,.75); padding:1px 4px; border-radius:2px; white-space:nowrap; transform:translateX(-50%); z-index:12; pointer-events:none; display:none; }\n580: <div class=\"tt-inner\" id=\"ttInner\" onclick=\"ttTimelineClick(event)\">\n583: <div class=\"tt-playhead\" id=\"ttPlayhead\"></div>\n598: onpause=\"ttSyncBtn()\"\n599: onplay=\"ttSyncBtn()\">\n607: <select id=\"ttSpeed\" onchange=\"document.getElementById('ttVideo').playbackRate=+this.value\">\n1624: document.getElementById('ttInner').style.width = '100%';\n1632: document.getElementById('ttPlayhead').style.display = 'none';\n1694: document.getElementById('ttInner').style.width = (_ttZoom * 100) + '%';\n1700: const inner = document.getElementById('ttInner');\n1710: const inner = document.getElementById('ttInner');\n1718: const inner = document.getElementById('ttInner');\n1750: _ttMovePlayhead(new Date(best.ts).getTime());\n1772: _ttMovePlayhead(new Date(best.ts).getTime());\n1791:function _ttMovePlayhead(tsMs) {\n1792: const ph = document.getElementById('ttPlayhead');\n1802: const ph = document.getElementById('ttPlayhead');\n1805: const inner = document.getElementById('ttInner');\n1819:function ttSyncBtn() {","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"role_description":"text"},{"role":"AXLink","text":"index.html","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"index.html","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"(lines 576-625)","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"role_description":"text"},{"role":"AXLink","text":"index.html","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"index.html","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"(lines 1786-1865)","depth":24,"role_description":"text"},{"role":"AXButton","text":"Thinking","depth":23,"role_description":"disclosure triangle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Thinking","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Find chunk loading and playhead update functions","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"ttUpdatePlayhead\\|ttNextChunk\\|ttLoadChunk\\|_ttCurChunk\\|_ttChunks\\|_ttFrames\" /volume1/screenpipe/app/static/index.html | head -50","depth":25,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"596: onended=\"ttNextChunk()\"\n597: ontimeupdate=\"ttUpdatePlayhead()\"\n1569:let _ttFrames = [];\n1570:let _ttChunks = [];\n1571:let _ttCurChunk = -1;\n1607: _ttFrames = data.frames;\n1609: for (const f of _ttFrames) {\n1613: _ttChunks = [...chunkMap.values()];\n1614: _ttCurChunk = -1;\n1616: _ttDayStart = new Date(_ttFrames[0].ts).getTime();\n1617: _ttDayEnd = new Date(_ttFrames[_ttFrames.length - 1].ts).getTime();\n1620: for (const f of _ttFrames) _ttColor(f.app);\n1640: for (const f of _ttFrames) {\n1736: if (!_ttFrames.length) return;\n1737: let best = _ttFrames[0], minDiff = Infinity;\n1738: for (const f of _ttFrames) {\n1742: const ci = _ttChunks.findIndex(ch => ch[0].video_url === best.video_url);\n1744: _ttCurChunk = ci;\n1753:function ttNextChunk() {\n1754: if (_ttCurChunk + 1 >= _ttChunks.length) return;\n1755: _ttCurChunk++;\n1757: video.src = _ttChunks[_ttCurChunk][0].video_url;\n1762:function ttUpdatePlayhead() {\n1764: if (_ttCurChunk < 0 || _ttCurChunk >= _ttChunks.length) return;\n1765: const chunk = _ttChunks[_ttCurChunk];","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"role_description":"text"},{"role":"AXLink","text":"index.html","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"index.html","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"(lines 1754-1793)","depth":24,"role_description":"text"},{"role":"AXButton","text":"Thinking","depth":23,"role_description":"disclosure triangle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Thinking","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"role_description":"text"},{"role":"AXLink","text":"index.html","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"index.html","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"(lines 1701-1760)","depth":24,"role_description":"text"},{"role":"AXButton","text":"Thinking","depth":23,"role_description":"disclosure triangle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Thinking","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"role_description":"text"},{"role":"AXLink","text":"index.html","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"index.html","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"(lines 1561-1640)","depth":24,"role_description":"text"},{"role":"AXButton","text":"Thinking","depth":23,"role_description":"disclosure triangle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Thinking","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Find time formatting functions","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"function fmtTime\\|function fmtDate\\|function _fmt\\|localTimeToUtc\\|fmtDateTime\" /volume1/screenpipe/app/static/index.html | head -20","depth":25,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"1088: if (tf) url += `&time_from=${localTimeToUtc(tf)}`;\n1089: if (tt) url += `&time_to=${localTimeToUtc(tt)}`;\n1153: let meta = `<span style=\"color:var(--muted)\">${fmtDateTime(r.timestamp)}</span>${srcBadge}`;\n1166: meta = `<span style=\"color:var(--muted)\">${fmtDateTime(r.timestamp)}</span>${srcBadge} <span class=\"badge ${r.is_input_device?'mic':'sys'}\">${r.is_input_device?'MIC':'SYS'}</span>`;\n1307:function fmtTime(ts) {\n1312:function fmtDateTime(ts) {\n1320:function localTimeToUtc(timeStr) {\n1778:function _fmtSec(s) {\n1788: `${fmtDateTime(f.ts)} · ${f.app}${f.win ? ' / ' + f.win : ''}`;","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"role_description":"text"},{"role":"AXLink","text":"index.html","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"index.html","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"(lines 1308-1327)","depth":24,"role_description":"text"},{"role":"AXButton","text":"Thinking","depth":23,"role_description":"disclosure triangle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Thinking","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"Now I have everything I need. I'll implement the frame-by-frame timer system that replaces","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"video.playbackRate","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"with wall-clock accurate playback, plus add the playhead time label. Let me make the changes:","depth":23,"role_description":"text"},{"role":"AXStaticText","text":"Edit","depth":24,"role_description":"text"},{"role":"AXStaticText","text":"","depth":24,"role_description":"text"},{"role":"AXLink","text":"index.html","depth":24,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"index.html","depth":25,"role_description":"text"},{"role":"AXStaticText","text":"Added 1 line","depth":24,"role_description":"text"}]...
|
7813567583120146056
|
4474475550963076503
|
click
|
accessibility
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 2 pending changes
2
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update, 1 requires restart
3
Claude Code
Containers
EXPLORER
EXPLORER
Explorer Section: screenpipe [SSH: nas]
Explorer Section: screenpipe [SSH: nas]
SCREENPIPE [SSH: NAS]
#recycle
app
data
pipes
.gitignore
app_settings.json
archive.db
db.sqlite
screenpipe_sync.sh
screenpipe.db
Outline Section
OUTLINE
OUTLINE
Timeline Section
TIMELINE
TIMELINE
app_settings.json, Editor Group 1
screenpipe_sync.sh, Editor Group 1
db.sqlite-shm, preview, Editor Group 1
#!/bin/bash
# screenpipe_sync.sh
# Syncs Screenpipe SQLite data to a NAS archive database (append-only, no deletions).
# Also copies the day's video/frame data folder to the NAS.
#
# Usage:
# ./screenpipe_sync.sh # syncs yesterday (default)
# ./screenpipe_sync.sh 2026-04-15 # syncs a specific date
# ./screenpipe_sync.sh today # syncs today so far
#
# Cron example (runs at 3am daily):
# 0 3 * * * /Users/lukas/.screenpipe/screenpipe_sync.sh >> /Users/lukas/.screenpipe/sync.log 2>&1
set -euo pipefail
# ─── CONFIG ───────────────────────────────────────────────────────────────────
DB_SRC="${SCREENPIPE_DB:-$HOME/.screenpipe/db.sqlite}"
NAS_MOUNT="${NAS_MOUNT:-/Volumes/Test/screenpipe}"
NAS_DB="$NAS_MOUNT/archive.db"
NAS_DATA="$NAS_MOUNT/data"
LOG_FILE="$HOME/.screenpipe/sync.log"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
SCRIPT_START=$(date +%s)
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# ─── DATE ARGUMENT ────────────────────────────────────────────────────────────
if [ "${1:-}" = "today" ]; then
TARGET_DATE=$(date +%Y-%m-%d)
elif [ -n "${1:-}" ]; then
TARGET_DATE="$1"
if ! [[ "$TARGET_DATE" =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]]; then
echo "ERROR: Invalid date format. Use YYYY-MM-DD, 'today', or no argument for yesterday."
exit 1
fi
else
TARGET_DATE=$(date -v-1d +%Y-%m-%d)
fi
log "========================================"
log "Screenpipe sync starting for: $TARGET_DATE"
log "========================================"
# ─── PREFLIGHT ────────────────────────────────────────────────────────────────
step "Preflight checks"
if [ ! -f "$DB_SRC" ]; then
log "ERROR: Source DB not found at $DB_SRC"; exit 1
fi
printf " %-20s %s (%s)\n" "Source DB:" "OK" "$(du -sh "$DB_SRC" | cut -f1)"
if [ ! -d "$NAS_MOUNT" ]; then
log "ERROR: NAS not mounted at $NAS_MOUNT"; exit 1
fi
printf " %-20s %s\n" "NAS mount:" "OK $NAS_MOUNT"
# Check if DB already synced for this date
DB_ALREADY_SYNCED=false
if [ -f "$NAS_DB" ]; then
EXISTING=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';" 2>/dev/null || echo "0")
if [ "$EXISTING" -gt "0" ]; then
log "Date $TARGET_DATE already has $EXISTING frames in archive — skipping DB sync"
DB_ALREADY_SYNCED=true
else
printf " %-20s %s (%s)\n" "Archive DB:" "exists" "$(du -sh "$NAS_DB" | cut -f1)"
fi
else
printf " %-20s %s\n" "Archive DB:" "will be created"
fi
# Source data dir for this date
DATA_SRC="$HOME/.screenpipe/data/data/$TARGET_DATE"
if [ -d "$DATA_SRC" ]; then
DATA_SIZE=$(du -sh "$DATA_SRC" | cut -f1)
DATA_FILES=$(ls "$DATA_SRC" | wc -l | tr -d ' ')
printf " %-20s %s (%s files, %s)\n" "Data dir:" "OK" "$DATA_FILES" "$DATA_SIZE"
else
printf " %-20s %s\n" "Data dir:" "not found — skipping file copy"
fi
# ─── DB SYNC ──────────────────────────────────────────────────────────────────
if [ "$DB_ALREADY_SYNCED" = false ]; then
# ─── COUNT SOURCE ROWS ────────────────────────────────────────────────────
step "Counting source rows for $TARGET_DATE"
SRC_FRAMES=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';")
SRC_ELEMENTS=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
SRC_UI=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';")
SRC_OCR=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
SRC_MEETINGS=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM meetings WHERE date(meeting_start) = '$TARGET_DATE';")
printf " %-20s %s\n" "frames:" "$SRC_FRAMES"
printf " %-20s %s\n" "elements:" "$SRC_ELEMENTS"
printf " %-20s %s\n" "ui_events:" "$SRC_UI"
printf " %-20s %s\n" "ocr_text:" "$SRC_OCR"
printf " %-20s %s\n" "meetings:" "$SRC_MEETINGS"
if [ "$SRC_FRAMES" -eq "0" ]; then
log "No frames found for $TARGET_DATE — skipping DB sync"
DB_ALREADY_SYNCED=true
fi
fi
if [ "$DB_ALREADY_SYNCED" = false ]; then
# ─── INIT TABLES ──────────────────────────────────────────────────────────
step "Initialising tables, indexes, FTS"
run_sqlite_heredoc "creating tables" "
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
DETACH nas;
"
run_sqlite_heredoc "creating indexes" "
ATTACH '$NAS_DB' AS nas;
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
CREATE INDEX IF NOT EXISTS nas.idx_elements_frame_id ON elements(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_elements_frame_src_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_timestamp ON ui_events(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_app_name ON ui_events(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_frame_id ON ui_events(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_ocr_text_frame_id ON ocr_text(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_meetings_start ON meetings(meeting_start);
CREATE INDEX IF NOT EXISTS nas.idx_video_chunks_device ON video_chunks(device_name);
DETACH nas;
"
run_sqlite_heredoc "creating FTS tables" "
ATTACH '$NAS_DB' AS nas;
CREATE VIRTUAL TABLE IF NOT EXISTS nas.elements_fts USING fts5(
text, role, frame_id UNINDEXED,
content='elements', content_rowid='id', tokenize='unicode61'
);
CREATE VIRTUAL TABLE IF NOT EXISTS nas.frames_fts USING fts5(
full_text, app_name, window_name, browser_url, id UNINDEXED,
tokenize='unicode61'
);
CREATE VIRTUAL TABLE IF NOT EXISTS nas.ui_events_fts USING fts5(
text_content,
app_name,
window_title,
element_name,
content='ui_events',
content_rowid='id',
tokenize='unicode61'
);
DETACH nas;
"
# ─── SYNC DATA ────────────────────────────────────────────────────────────
step "Syncing data for $TARGET_DATE"
run_sqlite_heredoc "video_chunks" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.video_chunks
SELECT * FROM main.video_chunks
WHERE id IN (
SELECT DISTINCT video_chunk_id FROM main.frames
WHERE date(timestamp) = '$TARGET_DATE' AND video_chunk_id IS NOT NULL
);
DETACH nas;
"
run_sqlite_heredoc "frames ($SRC_FRAMES rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "ocr_text ($SRC_OCR rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.ocr_text
SELECT o.* FROM main.ocr_text o
JOIN main.frames f ON o.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "ui_events ($SRC_UI rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.ui_events
SELECT * FROM main.ui_events WHERE date(timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "elements ($SRC_ELEMENTS rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "meetings ($SRC_MEETINGS rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.meetings
SELECT * FROM main.meetings WHERE date(meeting_start) = '$TARGET_DATE';
DETACH nas;
"
# ─── FTS UPDATE ───────────────────────────────────────────────────────────
step "Updating FTS indexes"
run_sqlite_heredoc "elements_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.elements_fts(rowid, text, role)
SELECT e.id, e.text, e.role
FROM nas.elements e
JOIN nas.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE'
AND e.text IS NOT NULL;
DETACH nas;
"
run_sqlite_heredoc "frames_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.frames_fts(rowid, full_text, app_name, window_name, browser_url, id)
SELECT id, full_text, app_name, window_name, browser_url, id
FROM nas.frames
WHERE date(timestamp) = '$TARGET_DATE'
AND full_text IS NOT NULL;
DETACH nas;
"
run_sqlite_heredoc "ui_events_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.ui_events_fts(rowid, text_content, app_name, window_title, element_name)
SELECT id, text_content, app_name, window_title, element_name
FROM nas.ui_events
WHERE date(timestamp) = '$TARGET_DATE'
AND text_content IS NOT NULL;
DETACH nas;
"
# ─── VERIFY DB ────────────────────────────────────────────────────────────
step "Verifying DB"
V_FRAMES=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';")
V_ELEMENTS=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
V_UI=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';")
V_OCR=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
V_MEETINGS=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM meetings WHERE date(meeting_start)= '$TARGET_DATE';")
check "frames" "$V_FRAMES" "$SRC_FRAMES"
check "elements" "$V_ELEMENTS" "$SRC_ELEMENTS"
check "ui_events" "$V_UI" "$SRC_UI"
check "ocr_text" "$V_OCR" "$SRC_OCR"
check "meetings" "$V_MEETINGS" "$SRC_MEETINGS"
fi
# ─── COPY DATA FOLDER ─────────────────────────────────────────────────────────
# Always runs regardless of DB sync status
step "Copying data folder for $TARGET_DATE"
if [ -d "$DATA_SRC" ]; then
mkdir -p "$NAS_DATA/$TARGET_DATE"
RSYNC_START=$(date +%s)
printf " %-36s " "rsync $TARGET_DATE/ → NAS"
rsync -a --ignore-existing \
"$DATA_SRC/" \
"$NAS_DATA/$TARGET_DATE/" \
2>>"$LOG_FILE"
RSYNC_DUR=$(( $(date +%s) - RSYNC_START ))
COPIED_FILES=$(ls "$NAS_DATA/$TARGET_DATE" | wc -l | tr -d ' ')
SRC_FILES=$(ls "$DATA_SRC" | wc -l | tr -d ' ')
COPIED_SIZE=$(du -sh "$NAS_DATA/$TARGET_DATE" | cut -f1)
if [ "$COPIED_FILES" -eq "$SRC_FILES" ]; then
printf "\r %-36s ✓ %dm%02ds (%s files, %s)\n" \
"rsync $TARGET_DATE/ → NAS" \
"$(( RSYNC_DUR / 60 ))" "$(( RSYNC_DUR % 60 ))" \
"$COPIED_FILES" "$COPIED_SIZE" | tee -a "$LOG_FILE"
else
printf "\r %-36s ✗ %s / %s files\n" \
"rsync $TARGET_DATE/ → NAS" "$COPIED_FILES" "$SRC_FILES" | tee -a "$LOG_FILE"
fi
else
printf " %-36s %s\n" "rsync $TARGET_DATE/ → NAS" "skipped (no source dir)"
fi
# ─── SUMMARY ──────────────────────────────────────────────────────────────────
TOTAL_ELAPSED=$(( $(date +%s) - SCRIPT_START ))
DB_SIZE=$(du -sh "$NAS_DB" | cut -f1)
echo ""
log "Archive DB size: $DB_SIZE"
log "Total time: $(( TOTAL_ELAPSED / 60 ))m$(( TOTAL_ELAPSED % 60 ))s"
log "Sync complete for $TARGET_DATE"
log "========================================"
#!/bin/bash
# screenpipe_sync.sh
# Syncs Screenpipe SQLite data to a NAS archive database (append-only, no deletions).
# Also copies the day's video/frame data folder to the NAS.
#
# Usage:
# ./screenpipe_sync.sh # syncs yesterday (default)
# ./screenpipe_sync.sh 2026-04-15 # syncs a specific date
# ./screenpipe_sync.sh today # syncs today so far
#
# Cron example (runs at 3am daily):
# 0 3 * * * /Users/lukas/.screenpipe/screenpipe_sync.sh >> /Users/lukas/.screenpipe/sync.log 2>&1
set -euo pipefail
# ─── CONFIG ───────────────────────────────────────────────────────────────────
DB_SRC="${SCREENPIPE_DB:-$HOME/.screenpipe/db.sqlite}"
NAS_MOUNT="${NAS_MOUNT:-/Volumes/Test/screenpipe}"
NAS_DB="$NAS_MOUNT/archive.db"
NAS_DATA="$NAS_MOUNT/data"
LOG_FILE="$HOME/.screenpipe/sync.log"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
SCRIPT_START=$(date +%s)
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# ─── DATE ARGUMENT ────────────────────────────────────────────────────────────
if [ "${1:-}" = "today" ]; then
TARGET_DATE=$(date +%Y-%m-%d)
elif [ -n "${1:-}" ]; then
TARGET_DATE="$1"
if ! [[ "$TARGET_DATE" =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]]; then
echo "ERROR: Invalid date format. Use YYYY-MM-DD, 'today', or no argument for yesterday."
exit 1
fi
else
TARGET_DATE=$(date -v-1d +%Y-%m-%d)
fi
log "========================================"
log "Screenpipe sync starting for: $TARGET_DATE"
log "========================================"
# ─── PREFLIGHT ────────────────────────────────────────────────────────────────
step "Preflight checks"
if [ ! -f "$DB_SRC" ]; then
log "ERROR: Source DB not found at $DB_SRC"; exit 1
fi
printf " %-20s %s (%s)\n" "Source DB:" "OK" "$(du -sh "$DB_SRC" | cut -f1)"
if [ ! -d "$NAS_MOUNT" ]; then
log "ERROR: NAS not mounted at $NAS_MOUNT"; exit 1
fi
printf " %-20s %s\n" "NAS mount:" "OK $NAS_MOUNT"
# Check if DB already synced for this date
DB_ALREADY_SYNCED=false
if [ -f "$NAS_DB" ]; then
EXISTING=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';" 2>/dev/null || echo "0")
if [ "$EXISTING" -gt "0" ]; then
log "Date $TARGET_DATE already has $EXISTING frames in archive — skipping DB sync"
DB_ALREADY_SYNCED=true
else
printf " %-20s %s (%s)\n" "Archive DB:" "exists" "$(du -sh "$NAS_DB" | cut -f1)"
fi
else
printf " %-20s %s\n" "Archive DB:" "will be created"
fi
# Source data dir for this date
DATA_SRC="$HOME/.screenpipe/data/data/$TARGET_DATE"
if [ -d "$DATA_SRC" ]; then
DATA_SIZE=$(du -sh "$DATA_SRC" | cut -f1)
DATA_FILES=$(ls "$DATA_SRC" | wc -l | tr -d ' ')
printf " %-20s %s (%s files, %s)\n" "Data dir:" "OK" "$DATA_FILES" "$DATA_SIZE"
else
printf " %-20s %s\n" "Data dir:" "not found — skipping file copy"
fi
# ─── DB SYNC ──────────────────────────────────────────────────────────────────
if [ "$DB_ALREADY_SYNCED" = false ]; then
# ─── COUNT SOURCE ROWS ────────────────────────────────────────────────────
step "Counting source rows for $TARGET_DATE"
SRC_FRAMES=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';")
SRC_ELEMENTS=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
SRC_UI=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';")
SRC_OCR=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
SRC_MEETINGS=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM meetings WHERE date(meeting_start) = '$TARGET_DATE';")
printf " %-20s %s\n" "frames:" "$SRC_FRAMES"
printf " %-20s %s\n" "elements:" "$SRC_ELEMENTS"
printf " %-20s %s\n" "ui_events:" "$SRC_UI"
printf " %-20s %s\n" "ocr_text:" "$SRC_OCR"
printf " %-20s %s\n" "meetings:" "$SRC_MEETINGS"
if [ "$SRC_FRAMES" -eq "0" ]; then
log "No frames found for $TARGET_DATE — skipping DB sync"
DB_ALREADY_SYNCED=true
fi
fi
if [ "$DB_ALREADY_SYNCED" = false ]; then
# ─── INIT TABLES ──────────────────────────────────────────────────────────
step "Initialising tables, indexes, FTS"
run_sqlite_heredoc "creating tables" "
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
DETACH nas;
"
run_sqlite_heredoc "creating indexes" "
ATTACH '$NAS_DB' AS nas;
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
CREATE INDEX IF NOT EXISTS nas.idx_elements_frame_id ON elements(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_elements_frame_src_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_timestamp ON ui_events(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_app_name ON ui_events(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_frame_id ON ui_events(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_ocr_text_frame_id ON ocr_text(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_meetings_start ON meetings(meeting_start);
CREATE INDEX IF NOT EXISTS nas.idx_video_chunks_device ON video_chunks(device_name);
DETACH nas;
"
run_sqlite_heredoc "creating FTS tables" "
ATTACH '$NAS_DB' AS nas;
CREATE VIRTUAL TABLE IF NOT EXISTS nas.elements_fts USING fts5(
text, role, frame_id UNINDEXED,
content='elements', content_rowid='id', tokenize='unicode61'
);
CREATE VIRTUAL TABLE IF NOT EXISTS nas.frames_fts USING fts5(
full_text, app_name, window_name, browser_url, id UNINDEXED,
tokenize='unicode61'
);
CREATE VIRTUAL TABLE IF NOT EXISTS nas.ui_events_fts USING fts5(
text_content,
app_name,
window_title,
element_name,
content='ui_events',
content_rowid='id',
tokenize='unicode61'
);
DETACH nas;
"
# ─── SYNC DATA ────────────────────────────────────────────────────────────
step "Syncing data for $TARGET_DATE"
run_sqlite_heredoc "video_chunks" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.video_chunks
SELECT * FROM main.video_chunks
WHERE id IN (
SELECT DISTINCT video_chunk_id FROM main.frames
WHERE date(timestamp) = '$TARGET_DATE' AND video_chunk_id IS NOT NULL
);
DETACH nas;
"
run_sqlite_heredoc "frames ($SRC_FRAMES rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "ocr_text ($SRC_OCR rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.ocr_text
SELECT o.* FROM main.ocr_text o
JOIN main.frames f ON o.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "ui_events ($SRC_UI rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.ui_events
SELECT * FROM main.ui_events WHERE date(timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "elements ($SRC_ELEMENTS rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "meetings ($SRC_MEETINGS rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.meetings
SELECT * FROM main.meetings WHERE date(meeting_start) = '$TARGET_DATE';
DETACH nas;
"
# ─── FTS UPDATE ───────────────────────────────────────────────────────────
step "Updating FTS indexes"
run_sqlite_heredoc "elements_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.elements_fts(rowid, text, role)
SELECT e.id, e.text, e.role
FROM nas.elements e
JOIN nas.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE'
AND e.text IS NOT NULL;
DETACH nas;
"
run_sqlite_heredoc "frames_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.frames_fts(rowid, full_text, app_name, window_name, browser_url, id)
SELECT id, full_text, app_name, window_name, browser_url, id
FROM nas.frames
WHERE date(timestamp) = '$TARGET_DATE'
AND full_text IS NOT NULL;
DETACH nas;
"
run_sqlite_heredoc "ui_events_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.ui_events_fts(rowid, text_content, app_name, window_title, element_name)
SELECT id, text_content, app_name, window_title, element_name
FROM nas.ui_events
WHERE date(timestamp) = '$TARGET_DATE'
AND text_content IS NOT NULL;
DETACH nas;
"
# ─── VERIFY DB ────────────────────────────────────────────────────────────
step "Verifying DB"
V_FRAMES=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';")
V_ELEMENTS=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
V_UI=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';")
V_OCR=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
V_MEETINGS=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM meetings WHERE date(meeting_start)= '$TARGET_DATE';")
check "frames" "$V_FRAMES" "$SRC_FRAMES"
check "elements" "$V_ELEMENTS" "$SRC_ELEMENTS"
check "ui_events" "$V_UI" "$SRC_UI"
check "ocr_text" "$V_OCR" "$SRC_OCR"
check "meetings" "$V_MEETINGS" "$SRC_MEETINGS"
fi
# ─── COPY DATA FOLDER ─────────────────────────────────────────────────────────
# Always runs regardless of DB sync status
step "Copying data folder for $TARGET_DATE"
if [ -d "$DATA_SRC" ]; then
mkdir -p "$NAS_DATA/$TARGET_DATE"
RSYNC_START=$(date +%s)
printf " %-36s " "rsync $TARGET_DATE/ → NAS"
rsync -a --ignore-existing \
"$DATA_SRC/" \
"$NAS_DATA/$TARGET_DATE/" \
2>>"$LOG_FILE"
RSYNC_DUR=$(( $(date +%s) - RSYNC_START ))
COPIED_FILES=$(ls "$NAS_DATA/$TARGET_DATE" | wc -l | tr -d ' ')
SRC_FILES=$(ls "$DATA_SRC" | wc -l | tr -d ' ')
COPIED_SIZE=$(du -sh "$NAS_DATA/$TARGET_DATE" | cut -f1)
if [ "$COPIED_FILES" -eq "$SRC_FILES" ]; then
printf "\r %-36s ✓ %dm%02ds (%s files, %s)\n" \
"rsync $TARGET_DATE/ → NAS" \
"$(( RSYNC_DUR / 60 ))" "$(( RSYNC_DUR % 60 ))" \
"$COPIED_FILES" "$COPIED_SIZE" | tee -a "$LOG_FILE"
else
printf "\r %-36s ✗ %s / %s files\n" \
"rsync $TARGET_DATE/ → NAS" "$COPIED_FILES" "$SRC_FILES" | tee -a "$LOG_FILE"
fi
else
printf " %-36s %s\n" "rsync $TARGET_DATE/ → NAS" "skipped (no source dir)"
fi
# ─── SUMMARY ──────────────────────────────────────────────────────────────────
TOTAL_ELAPSED=$(( $(date +%s) - SCRIPT_START ))
DB_SIZE=$(du -sh "$NAS_DB" | cut -f1)
echo ""
log "Archive DB size: $DB_SIZE"
log "Total time: $(( TOTAL_ELAPSED / 60 ))m$(( TOTAL_ELAPSED % 60 ))s"
log "Sync complete for $TARGET_DATE"
log "========================================"
lets add ability to jump…, Editor Group 2
Problems (⇧⌘M)
PROBLEMS
Output (⇧⌘U)
OUTPUT
Debug Console (⇧⌘Y)
DEBUG CONSOLE
Terminal (⌃`)
TERMINAL
Ports
PORTS
remote SSH: nas
SSH: nas
screenpipe (Git) - master*, Checkout Branch/Tag...
master*
screenpipe (Git) - Synchronize Changes
No Problems
0
0
No Ports Forwarded
0
Notifications
Signed out
Signed out
Shell Script
Editor Language Status: $(copilot) No inline suggestion available, Inline suggestions
LF
UTF-8
Spaces: 2
Ln 331, Col 48
Screen Reader Optimized
git-commit Lukas Kovalik (23 hours ago)
Lukas Kovalik (23 hours ago)
Info: Downloading VS Code Server...
lets add ability to jump fro,m search to timeline so we can see the exact screen (also based on monitor and time
Session history
New session
Message actions
This session is being continued from a previous conversation that ran out of context. The summary below covers the earlier portion of the conversation.
Summary:
1. Primary Request and Intent:
The user has been developing a Screenpipe dashboard on a Synology NAS. Requests in chronological order:
- **Q1**: Are db.sqlite-shm and db.sqlite-wal used? → Explained WAL mode; cleaned up files.
- **Q2**: AND combination search (term1 + term2 must both appear) → Added "AND also" input field.
- **Q3**: Explain UTC time issue, show date in results, make Only/Skip apps use multiselect → Implemented all three.
- **Q4**: Point sqlite-web at archive.db, add second sqlite-web for db.sqlite → Updated docker-compose.yml, added two services on ports 8767/8768.
- **Q5**: "still the same" (container not picking up config) → Explained `up -d` vs `restart`.
- **Q6**: Add git, push to gitea.com/lakylak/screenpipe.git → Initialized repo, committed, pushed.
- **Q7**: Add Timetable tab with video playback and timeline → Full implementation with click-to-seek, auto-advancing chunks, legend.
- **Q8**: Add scroll/zoom on timeline, jump to specific time, better awareness → Implemented zoom (1×–32×), scrollable timeline, overview minimap, viewport indicator, Jump-to-time input, screenshot thumbnail.
- **Q9 (most recent)**: Make playing speed more than 8×, fix speed not working, show position on timeline → CSS fix done (wider playhead + time label style), remainder in progress.
2. Key Technical Concepts:
- **SQLite WAL mode**: db.sqlite-shm and db.sqlite-wal are WAL companion files; cleaned with `PRAGMA wal_checkpoint(TRUNCATE)`.
- **SQLite FTS5**: Space-separated terms = AND; `MATCH 'term1 term2'` requires both; OR requires explicit `OR` keyword.
- **FastAPI**: Python backend with route handlers in main.py, consumers pattern for DB queries.
- **Docker Compose**: App image is built (code baked in), not volume-mounted → requires `build` + `up -d` for code changes. `restart` doesn't re-read compose file — need `up -d`.
- **sqlite-web**: Read-only flag `-r`, pre-built image, no rebuild needed for config changes.
- **Video playback**: screenpipe records at 0.1–0.3 fps (timelapse). `seek = offset_index / fps` gives seconds into video chunk. ~245 chunks/day across 2 monitors. Videos may be encoded at standard fps making them very short at native speed.
- **Timeline rendering**: App-colored segments built by merging consecutive frames with same `app_name`. Percentage positions: `((ts - dayStart) / span * 100)%`.
- **Zoom/scroll**: Inner div width = `zoom × 100%`, outer wrapper has `overflow-x:auto`. Playhead position stays as % of inner div, which is correct at all zoom levels.
- **Timer-based speed**: For speed > 2×, browser `playbackRate` is unreliable on low-FPS video; correct approach is `setInterval` advancing `video.currentTime` by `speed * interval_ms / 1000` seconds per tick.
- **UTC vs local time**: Backend treats `time_from`/`time_to` as UTC. Frontend converts with `localTimeToUtc()` before sending.
- **Git**: `#recycle/` in .gitignore treated as comment — must escape as `\#recycle/`.
3. Files and Code Sections:
- **`/volume1/screenpipe/app/main.py`**
- Added `/api/apps` endpoint (all unique app names from frames table)
- Added `/api/timetable` endpoint (frames + video URLs + screenshot URLs per device per date)
- `/api/timetable` response structure: `{frames: [{ts, app, win, video_url, seek, screenshot_url}], devices: [...], device: "..."}`
- Key snippet:
```python
@app.get("/api/timetable"
)
async def timetable_data(d: str | None = Query(None), device: str | None = Query(None)):
...
rows = conn.execute(f"""
SELECT f.timestamp AS ts, f.app_name AS app, f.window_name AS win,
f.offset_index, f.snapshot_path,
vc.file_path AS video_path, vc.fps AS video_fps
FROM frames f
JOIN video_chunks vc ON f.video_chunk_id = vc.id
WHERE f.timestamp >= ? AND f.timestamp < ?
AND f.video_chunk_id IS NOT NULL {dev_clause}
ORDER BY f.timestamp
""", params).fetchall()
# seek = offset_index / fps, screenshot_url from _snapshot_to_url(snapshot_path)
```
- **`/volume1/screenpipe/app/docker-compose.yml`**
- Changed sqlite-web service name to `sqlite-web-archive` → port 8767 → `/data/archive.db`
- Added `sqlite-web-live` → port 8768 → `/data/db.sqlite`
- screenpipe-app: port 8766, `DB_PATH: /data/db.sqlite`, `TZ: Europe/Sofia`
- **`/volume1/screenpipe/app/static/index.html`** (single large file with all CSS/HTML/JS)
- **Search enhancements**:
- Added `id="sq2"` "AND also" input between search-row1 and search-row2
- Replaced `sOnlyApps`/`sSkipApps` text inputs with custom multiselect components (`id="msOnlyApps"`, `id="msSkipApps"`)
- Updated `buildUrl()` to combine `q + " " + q2` and convert times with `localTimeToUtc()`
- Added `fmtDateTime(ts)` showing "Apr 20 14:08" format
- Added `localTimeToUtc(timeStr)` converting local HH:MM to UTC
- Multiselect state: `const _msState = { msOnlyApps: new Set(), msSkipApps: new Set() }`
- **Timetable tab** (new page):
- Tab button added between Work Report and AI Summary
- `showPage` array updated: `['activity','search','audio','report','timetable','summary']`
- `refresh()` calls `loadTimetable()` when on timetable page
- **Timetable CSS** (key styles):
```css
.tt-scroll-wrap { overflow-x:auto; ... scrollbar-width:thin; }
.tt-inner { position:relative; height:52px; } /* width set dynamically */
.tt-playhead { position:absolute; top:0; width:3px; height:36px; background:white; box-shadow:0 0 8px rgba(255,255,255,.9); z-index:10; pointer-events:none; display:none; }
.tt-playhead-time { position:absolute; top:2px; font-size:9px; font-weight:600; color:white; background:rgba(0,0,0,.75); padding:1px 4px; border-radius:2px; white-space:nowrap; transform:translateX(-50%); z-index:12; pointer-events:none; display:none; }
.tt-overview-wrap { position:relative; height:14px; ... cursor:pointer; }
.tt-overview-vp { position:absolute; background:rgba(255,255,255,0.12); border:1px solid rgba(255,255,255,0.4); }
```
- **Timetable JS state variables**:
```javascript
let _ttFrames = [], _ttChunks = [], _ttCurChunk = -1;
let _ttDayStart = 0, _ttDayEnd = 0, _ttZoom = 1;
const _ttAppColors = {};
const TT_ZOOMS = [1, 2, 4, 8, 16, 32];
const TT_TICK_MIN = {1:30, 2:15, 4:10, 8:5, 16:2, 32:1};
```
- **Key JS functions**:
- `loadTimetable()` — fetches `/api/timetable`, groups chunks, renders
- `ttZoom(dir)` — changes zoom level, updates inner width, re-renders ticks, scrolls to playhead
- `ttTimelineClick(e)` — uses `inner.getBoundingClientRect()` (works correctly when scrolled)
- `ttOverviewClick(e)` — scrolls timeline + seeks video
- `ttUpdateOverviewVp()` — updates white viewport rect using `wrap.scrollLeft / inner.scrollWidth`
- `ttJumpToTime()` — parses time input, converts to ms, calls `ttSeekToMs`
- `ttSeekToMs(tsMs)` — binary-searches nearest frame, loads chunk, seeks video
- `_ttScrollToPlayhead(force)` — scrolls wrap so playhead stays at ~35% from left when Follow is checked
- `_ttMovePlayhead(tsMs)` — sets `ph.style.left` as percentage, calls `_ttScrollToPlayhead`
- `_ttShowNow(f)` — updates screenshot thumbnail + now-text div
- `ttSyncBtn()` — syncs play/pause button text
- Keyboard: Space=play/pause, ←/→=±10s, Ctrl+←/→=±30s, +/-=zoom
- **`/volume1/screenpipe/.gitignore`**
```
*.db, *.sqlite, *.sqlite-shm, *.sqlite-wal
data/, \#recycle/,
@eaDir/
app_settings.json, app/.env
__pycache__/, *.pyc, .DS_Store
```
4. Errors and Fixes:
- **`#recycle/` in .gitignore treated as comment**: `#` starts a comment in .gitignore. Fixed by escaping: `\#recycle/`. Also had to `git rm --cached "#recycle/desktop.ini"` to unstage it.
- **`sudo docker compose restart sqlite-web` didn't apply config change**: `restart` reuses existing container config, doesn't re-read compose file. Fix: `sudo docker compose up -d` recreates containers with new config.
- **Orphan container holding port 8767**: Old `screenpipe-sqlweb` container still running after rename. Fix: `sudo docker compose up -d --remove-orphans`.
- **`sudo docker` not accessible from Claude Code**: Interactive sudo required. User runs commands in NAS terminal.
- **`git config --global --add safe.directory /volume1/screenpipe`**: Required due to dubious ownership of NAS volume directory.
5. Problem Solving:
- **Time zone confusion in search**: Backend uses UTC for time_from/time_to; frontend displays local time. Solved by `localTimeToUtc()` converting before API call, and showing date+time in results.
- **sqlite-web not showing April 17–21 data**: Container was pointing at db.sqlite (old config), not archive.db. Fixed by updating docker-compose.yml + `up -d`.
- **Video playback speed**: Browser `video.playbackRate` is capped (~16× max in Chrome) and performs poorly for very low FPS (0.1–0.3 fps) screenpipe videos. Each chunk may only be 1–2 seconds of wall-clock encoded video, playing through instantly. Solution: implement timer-based frame-jumping for speed > 2× (in progress).
- **Playhead visibility**: White 2px line was hard to see. Fixed CSS to 3px width + stronger box-shadow + added `.tt-playhead-time` overlay label style.
6. All User Messages:
- "do we use db.sqlite-shm and db.sqlite-wal for anything right now? [image of search UI] Lets add ability to search with combination... Explain how does the search work time seems to work in utc maybe display date next to the time in results. Make only apps and skip apps multiselect with all available apps."
- "doi I need to restart?"
- "there is sudo docker compose"
- "no still the same"
- "add git. I have created gitea repo https://gitea.com/lakylak/screenpipe.git"
- "just do it" (re: git push)
- "how to make sure data in :8767 are accurate and point to archive.db"
- "I can't see older than 16th there should 21st of april. In http://[IP_ADDRESS]:8766/ I can see all but not on sqlite viewer http://[IP_ADDRESS]:8767"
- "ok lets add additional port to read db.sqlite, I would like to see the structure of official db that reads db.sqlite db and one for archive"
- [docker compose output showing orphan container error]
- "looks great. I want to have ability to scroll left and right and also to jump to specific time. I want to be more aware to what I see. Still it should be fast"
- "lets make the playing speed more than 8x"
- "still playing speed is not showing properly still just in one second. also I want to see in timeline where I am"
7. Pending Tasks:
- **Playback speed fix** (in progress, partially done):
- Add `<div class="tt-playhead-time" id="ttPlayheadTime"></div>` inside `ttInner` HTML
- Implement `_ttStartSpeedTimer(speed)` / `_ttStopSpeedTimer()` / `ttSetSpeed(speed)` functions
- Update speed select `onchange` to call `ttSetSpeed(+this.value)`
- Add 64× option to speed select
- Update `_ttMovePlayhead` to also update `ttPlayheadTime` label
- Update `ttSyncBtn` to start/stop timer based on play state + speed
- Update `ttNextChunk` and `ttSeekToMs` to stop timer (restarted by onplay → ttSyncBtn)
- Rebuild Docker image after changes
8. Current Work:
Working on fixing two issues with the Timetable tab:
1. **Playback speed**: `video.playbackRate` doesn't work well for low-FPS screenpipe videos. The plan is to implement a `setInterval`-based frame-jumper for speed > 2× that advances `video.currentTime` by `speed * intervalMs / 1000` every 100–200ms, bypassing browser playbackRate limits.
2. **Timeline position indicator**: Playhead not prominent enough.
**CSS already changed** in `/volume1/screenpipe/app/static/index.html`:
```css
.tt-playhead { position:absolute; top:0; width:3px; height:36px; background:white; box-shadow:0 0 8px rgba(255,255,255,.9); z-index:10; pointer-events:none; display:none; }
.tt-playhead-time { position:absolute; top:2px; font-size:9px; font-weight:600; color:white; background:rgba(0,0,0,.75); padding:1px 4px; border-radius:2px; white-space:nowrap; transform:translateX(-50%); z-index:12; pointer-events:none; display:none; }
```
Session was interrupted by summary request after this CSS edit, mid-implementation.
9. Optional Next Step:
Continuing the fix for: "still playing speed is not showing properly still just in one second. also I want to see in timeline where I am"
The next steps in order are:
1. Add `<div class="tt-playhead-time" id="ttPlayheadTime"></div>` to the HTML inside `#ttInner` (after the existing `.tt-playhead` div)
2. Update `_ttMovePlayhead` to set `ttPlayheadTime` position and text content with `fmtTime()`
3. Add timer-based speed system to JS (new functions `_ttStartSpeedTimer`, `_ttStopSpeedTimer`, `ttSetSpeed`)
4. Update speed select's `onchange` to `ttSetSpeed(+this.value)` and add 64× option
5. Update `ttSyncBtn`, `ttNextChunk`, `ttSeekToMs` to integrate with timer
6. Rebuild: `sudo docker compose build screenpipe-app && sudo docker compose up -d screenpipe-app`
If you need specific details from before compaction (like exact code snippets, error messages, or content you generated), read the full transcript at: /home/Adm1n/.claude/projects/-volume1-screenpipe/7777f46e-1e40-4051-b4bb-f43aedd59556.jsonl
Continue the conversation from where it left off without asking the user any further questions. Resume directly — do not acknowledge the summary, do not recap what was happening, do not preface with "I'll continue" or similar. Pick up the last task as if the break never happened.
Thinking
Thinking
Bash
Find timetable speed and playhead related code
IN
grep -n "tt-playhead\|ttPlayhead\|ttInner\|_ttMovePlayhead\|ttSetSpeed\|_ttStartSpeed\|_ttStopSpeed\|ttSyncBtn\|playbackRate\|speed.*select\|spdSel\|ttSpeed" /volume1/screenpipe/app/static/index.html | head -80
Copy code to clipboard
OUT
207:.tt-playhead { position:absolute; top:0; width:3px; height:36px; background:white; box-shadow:0 0 8px rgba(255,255,255,.9); z-index:10; pointer-events:none; display:none; }
208:.tt-playhead-time { position:absolute; top:2px; font-size:9px; font-weight:600; color:white; background:rgba(0,0,0,.75); padding:1px 4px; border-radius:2px; white-space:nowrap; transform:translateX(-50%); z-index:12; pointer-events:none; display:none; }
580: <div class="tt-inner" id="ttInner" onclick="ttTimelineClick(event)">
583: <div class="tt-playhead" id="ttPlayhead"></div>
598: onpause="ttSyncBtn()"
599: onplay="ttSyncBtn()">
607: <select id="ttSpeed" onchange="document.getElementById('ttVideo').playbackRate=+this.value">
1624: document.getElementById('ttInner').style.width = '100%';
1632: document.getElementById('ttPlayhead').style.display = 'none';
1694: document.getElementById('ttInner').style.width = (_ttZoom * 100) + '%';
1700: const inner = document.getElementById('ttInner');
1710: const inner = document.getElementById('ttInner');
1718: const inner = document.getElementById('ttInner');
1750: _ttMovePlayhead(new Date(best.ts).getTime());
1772: _ttMovePlayhead(new Date(best.ts).getTime());
1791:function _ttMovePlayhead(tsMs) {
1792: const ph = document.getElementById('ttPlayhead');
1802: const ph = document.getElementById('ttPlayhead');
1805: const inner = document.getElementById('ttInner');
1819:function ttSyncBtn() {
Read
index.html
index.html
(lines 576-625)
Read
index.html
index.html
(lines 1786-1865)
Thinking
Thinking
Bash
Find chunk loading and playhead update functions
IN
grep -n "ttUpdatePlayhead\|ttNextChunk\|ttLoadChunk\|_ttCurChunk\|_ttChunks\|_ttFrames" /volume1/screenpipe/app/static/index.html | head -50
Copy code to clipboard
OUT
596: onended="ttNextChunk()"
597: ontimeupdate="ttUpdatePlayhead()"
1569:let _ttFrames = [];
1570:let _ttChunks = [];
1571:let _ttCurChunk = -1;
1607: _ttFrames = data.frames;
1609: for (const f of _ttFrames) {
1613: _ttChunks = [...chunkMap.values()];
1614: _ttCurChunk = -1;
1616: _ttDayStart = new Date(_ttFrames[0].ts).getTime();
1617: _ttDayEnd = new Date(_ttFrames[_ttFrames.length - 1].ts).getTime();
1620: for (const f of _ttFrames) _ttColor(f.app);
1640: for (const f of _ttFrames) {
1736: if (!_ttFrames.length) return;
1737: let best = _ttFrames[0], minDiff = Infinity;
1738: for (const f of _ttFrames) {
1742: const ci = _ttChunks.findIndex(ch => ch[0].video_url === best.video_url);
1744: _ttCurChunk = ci;
1753:function ttNextChunk() {
1754: if (_ttCurChunk + 1 >= _ttChunks.length) return;
1755: _ttCurChunk++;
1757: video.src = _ttChunks[_ttCurChunk][0].video_url;
1762:function ttUpdatePlayhead() {
1764: if (_ttCurChunk < 0 || _ttCurChunk >= _ttChunks.length) return;
1765: const chunk = _ttChunks[_ttCurChunk];
Read
index.html
index.html
(lines 1754-1793)
Thinking
Thinking
Read
index.html
index.html
(lines 1701-1760)
Thinking
Thinking
Read
index.html
index.html
(lines 1561-1640)
Thinking
Thinking
Bash
Find time formatting functions
IN
grep -n "function fmtTime\|function fmtDate\|function _fmt\|localTimeToUtc\|fmtDateTime" /volume1/screenpipe/app/static/index.html | head -20
Copy code to clipboard
OUT
1088: if (tf) url += `&time_from=${localTimeToUtc(tf)}`;
1089: if (tt) url += `&time_to=${localTimeToUtc(tt)}`;
1153: let meta = `<span style="color:var(--muted)">${fmtDateTime(r.timestamp)}</span>${srcBadge}`;
1166: meta = `<span style="color:var(--muted)">${fmtDateTime(r.timestamp)}</span>${srcBadge} <span class="badge ${r.is_input_device?'mic':'sys'}">${r.is_input_device?'MIC':'SYS'}</span>`;
1307:function fmtTime(ts) {
1312:function fmtDateTime(ts) {
1320:function localTimeToUtc(timeStr) {
1778:function _fmtSec(s) {
1788: `${fmtDateTime(f.ts)} · ${f.app}${f.win ? ' / ' + f.win : ''}`;
Read
index.html
index.html
(lines 1308-1327)
Thinking
Thinking
Now I have everything I need. I'll implement the frame-by-frame timer system that replaces
video.playbackRate
with wall-clock accurate playback, plus add the playhead time label. Let me make the changes:
Edit
index.html
index.html
Added 1 line...
|
NULL
|
|
74140
|
NULL
|
0
|
2026-04-23T09:04:49.035193+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-23/1776 /Users/lukas/.screenpipe/data/data/2026-04-23/1776935089035_m2.jpg...
|
iTerm2
|
screenpipe" — 95✕45
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
2026-04-23T09:13:09.380863Z INFO sck_rs::stream_m 2026-04-23T09:13:09.380863Z INFO sck_rs::stream_manager: invalidated persistent stream for display 2
2026-04-23T09:13:32.742255Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)
2026-04-23T09:14:01.764079Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4702465002163205464, trigger=click)
2026-04-23T09:14:04.223149Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4702465002163205464, trigger=visual_change)
2026-04-23T09:14:06.953796Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=147 elapsed=6.3719465s
2026-04-23T09:14:06.954006Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 147 eligible frames
2026-04-23T09:14:12.566935Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 70 frames, 10.3MB → 2.7MB (3.8x), 70 JPEGs deleted
2026-04-23T09:14:17.358704Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 75 frames, 9.6MB → 3.0MB (3.2x), 75 JPEGs deleted
2026-04-23T09:15:47.544198Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3660881845293713510, trigger=visual_change)
2026-04-23T09:15:50.997492Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3660881845293713510, trigger=click)
2026-04-23T09:15:51.600725Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3660881845293713510, trigger=click)
2026-04-23T09:15:55.723800Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3660881845293713510, trigger=click)
2026-04-23T09:15:56.933987Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3660881845293713510, trigger=visual_change)
2026-04-23T09:15:59.012409Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3660881845293713510, trigger=visual_change)
2026-04-23T09:16:49.882963Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3759145274440377841, trigger=visual_change)
2026-04-23T09:16:51.405936Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3759145274440377841, trigger=click)
2026-04-23T09:16:52.823011Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3759145274440377841, trigger=click)
2026-04-23T09:16:54.220304Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3759145274440377841, trigger=click)
2026-04-23T09:16:54.887021Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3759145274440377841, trigger=click)
2026-04-23T09:16:58.589203Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3759145274440377841, trigger=visual_change)
2026-04-23T09:18:05.879649Z WARN screenpipe_db::db: wal checkpoint: busy (could not truncate), 5054 pages in WAL
2026-04-23T09:18:05.879619Z WARN sqlx::query: summary="PRAGMA wal_checkpoint(TRUNCATE)" db.statement="" rows_affected=0 rows_returned=1 elapsed=5.220339167s
2026-04-23T09:19:24.740122Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=2 elapsed=7.381061833s
2026-04-23T09:19:24.740850Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
2026-04-23T09:19:36.514406Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2079049776495123607, trigger=click)
2026-04-23T09:24:26.477446Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=11 elapsed=1.729545666s
2026-04-23T09:24:26.477540Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 11 eligible frames
2026-04-23T09:24:27.316363Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 5 frames, 1.4MB → 1.4MB (1.0x), 5 JPEGs deleted
2026-04-23T09:24:27.966623Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 6 frames, 0.6MB → 0.2MB (2.7x), 6 JPEGs deleted
2026-04-23T09:24:42.606557Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:26:03.160247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7786631749263421517, trigger=click)
2026-04-23T09:27:26.154494Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:27:34.433056Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:28:06.713361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:28:33.527151Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5209591986308457575, trigger=click)
2026-04-23T09:28:34.249353Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5209591986308457575, trigger=click)
2026-04-23T09:28:36.237199Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5209591986308457575, trigger=click)
2026-04-23T09:28:42.253183Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8747303508868961364, trigger=click)
2026-04-23T09:28:48.282686Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:28:50.613134Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:28:51.314522Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:29:31.961577Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=67 elapsed=3.996031s
2026-04-23T09:29:31.961670Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 67 eligible frames
2026-04-23T09:29:34.332658Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 5.8MB → 2.1MB (2.8x), 29 JPEGs deleted
2026-04-23T09:29:38.223511Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 7.4MB → 3.8MB (2.0x), 36 JPEGs deleted
2026-04-23T09:30:34.230785Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:30:39.665086Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:30:40.299751Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:30:45.663893Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:30:51.622228Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:30:52.321014Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:31:15.021588Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:31:15.691601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:31:17.946692Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:31:18.653547Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:32:17.960360Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:32:24.051490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:32:29.442560Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:32:30.131038Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:32:32.452540Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:32:36.585069Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:32:39.322258Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:33:18.072421Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:33:18.766929Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:33:22.098409Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:33:22.782084Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:34:27.313290Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:34:38.542722Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 89 eligible frames
2026-04-23T09:34:41.684595Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 38 frames, 5.6MB → 0.7MB (7.5x), 38 JPEGs deleted
2026-04-23T09:34:44.933963Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 10.6MB → 3.8MB (2.8x), 49 JPEGs deleted
2026-04-23T09:37:57.963204Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:37:58.697604Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:38:02.124214Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:38:53.190171Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:38:59.279885Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:39:02.308536Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:39:36.189861Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:39:49.122120Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=50 elapsed=4.188474542s
2026-04-23T09:39:49.122232Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 50 eligible frames
2026-04-23T09:39:51.115025Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 2.9MB → 0.3MB (9.4x), 24 JPEGs deleted
2026-04-23T09:39:53.096763Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 5.0MB → 2.3MB (2.2x), 24 JPEGs deleted
2026-04-23T09:40:57.095660Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:40:58.430714Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:41:01.130926Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:41:01.840278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:41:04.072034Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:41:09.252541Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:41:09.972092Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:41:12.313228Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:41:13.696141Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:41:15.723102Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:41:16.452657Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:42:46.382248Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:43:42.993741Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6469703639183038647, trigger=visual_change)
2026-04-23T09:44:17.245560Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7072623502562616708, trigger=visual_change)
2026-04-23T09:44:56.342637Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=21 elapsed=2.944921084s
2026-04-23T09:44:56.343212Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames
2026-04-23T09:44:57.216675Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.2MB → 0.2MB (6.9x), 10 JPEGs deleted
2026-04-23T09:44:58.298212Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 2.1MB → 0.7MB (2.8x), 9 JPEGs deleted
2026-04-23T09:45:10.982752Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Firefox, signals=2)
2026-04-23T09:45:16.376695Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Firefox, signals=2, browser=true)
2026-04-23T09:45:16.378791Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=9, app=Firefox, title=None)
2026-04-23T09:50:01.989691Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=23 elapsed=3.688976042s
2026-04-23T09:50:01.989962Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 23 eligible frames
2026-04-23T09:50:03.098505Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.3MB → 0.2MB (7.4x), 11 JPEGs deleted
2026-04-23T09:50:04.627741Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.4MB → 0.8MB (3.1x), 10 JPEGs deleted
2026-04-23T09:50:07.629323Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4672421675042950776, trigger=click)
2026-04-23T09:52:11.400798Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:52:15.346773Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:52:18.174934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:52:22.107623Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:52:32.020499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:53:33.890239Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:53:35.304629Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:53:58.176084Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:54:14.248454Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:54:18.287472Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:54:20.289467Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:54:24.904239Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:54:27.981243Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:54:29.172367Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:54:30.192245Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:54:31.161165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:55:11.821088Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=36 elapsed=7.192436875s
2026-04-23T09:55:11.821248Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 36 eligible frames
2026-04-23T09:55:13.532739Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 2.3MB → 0.5MB (5.0x), 19 JPEGs deleted
2026-04-23T09:55:16.625152Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 3.3MB → 1.4MB (2.4x), 15 JPEGs deleted
2026-04-23T09:56:01.584150Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:56:24.887186Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3078857793355977422, trigger=click)
2026-04-23T09:56:32.005363Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3078857793355977422, trigger=visual_change)
2026-04-23T09:56:41.374227Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3078857793355977422, trigger=visual_change)
2026-04-23T09:56:54.666839Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3078857793355977422, trigger=click)
2026-04-23T09:57:06.486753Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3593283938725328408, trigger=visual_change)
2026-04-23T09:57:14.384178Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5341343601501307187, trigger=visual_change)
2026-04-23T09:57:32.721765Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5341343601501307187, trigger=visual_change)
2026-04-23T09:59:03.111441Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:59:18.292184Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:59:24.203906Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:59:28.763273Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:59:36.189282Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T10:00:16.817081Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 72 eligible frames
2026-04-23T10:00:21.637421Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 45 frames, 7.5MB → 3.5MB (2.1x), 45 JPEGs deleted
2026-04-23T10:00:24.683587Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.4MB → 1.4MB (3.2x), 25 JPEGs deleted
2026-04-23T10:00:40.573974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6464745230001326344, trigger=visual_change)
2026-04-23T10:02:52.495992Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8171437999531431641, trigger=click)
2026-04-23T10:02:53.374393Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8171437999531431641, trigger=click)
2026-04-23T10:03:37.373391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1961095499263201650, trigger=click)
2026-04-23T10:04:58.338820Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T10:05:04.300061Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T10:05:10.114887Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T10:05:16.104422Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T10:05:20.754499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T10:05:25.933831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T10:05:30.717296Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=45 elapsed=5.043796209s
2026-04-23T10:05:30.717708Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 45 eligible frames
2026-04-23T10:05:33.129158Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.5MB → 1.3MB (2.8x), 21 JPEGs deleted
2026-04-23T10:05:35.719261Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 3.9MB → 1.6MB (2.5x), 22 JPEGs deleted
2026-04-23T10:06:54.427408Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T10:06:58.568476Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T10:07:35.294176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T10:07:36.671700Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T10:07:46.281682Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T10:10:42.001975Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=40 elapsed=6.278440792s
2026-04-23T10:10:42.002064Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames
2026-04-23T10:10:45.302375Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.7MB → 1.7MB (2.2x), 21 JPEGs deleted
2026-04-23T10:10:47.110830Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 4.4MB → 0.6MB (7.8x), 17 JPEGs deleted
2026-04-23T10:12:18.002465Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7144568667011834365, trigger=click)
2026-04-23T10:13:16.229637Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3362537224271461493, trigger=visual_change)
2026-04-23T10:13:20.127210Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3362537224271461493, trigger=visual_change)
2026-04-23T10:15:43.498044Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-602531024127880156, trigger=visual_change)
2026-04-23T10:15:46.873827Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-602531024127880156, trigger=visual_change)
2026-04-23T10:15:49.085137Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 32 eligible frames
2026-04-23T10:15:49.496235Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-602531024127880156, trigger=visual_change)
2026-04-23T10:15:50.519319Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.0MB → 0.9MB (3.3x), 17 JPEGs deleted
2026-04-23T10:15:51.657703Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 3.4MB → 0.5MB (6.7x), 13 JPEGs deleted
2026-04-23T10:15:53.186964Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-602531024127880156, trigger=visual_change)
2026-04-23T10:15:55.743993Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-602531024127880156, trigger=visual_change)
2026-04-23T10:16:10.260016Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7730332891388508974, trigger=visual_change)
2026-04-23T10:16:19.398464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5862100523266843105, trigger=visual_change)
2026-04-23T10:16:23.686689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5862100523266843105, trigger=visual_change)
2026-04-23T10:16:27.662719Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5862100523266843105, trigger=visual_change)
2026-04-23T10:16:34.159786Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5862100523266843105, trigger=visual_change)
2026-04-23T10:17:00.356336Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5862100523266843105, trigger=visual_change)
2026-04-23T10:17:22.481007Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3265723714621232205, trigger=visual_change)
2026-04-23T10:17:29.195939Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3265723714621232205, trigger=visual_change)
2026-04-23T10:17:47.685112Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)
2026-04-23T10:17:51.199158Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)
2026-04-23T10:17:58.199222Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)
2026-04-23T10:18:06.327777Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)
2026-04-23T10:18:13.175283Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)
2026-04-23T10:18:39.739176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)
2026-04-23T10:19:27.720698Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)
2026-04-23T10:19:31.148096Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)
2026-04-23T10:19:35.991910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)
2026-04-23T10:19:56.855761Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)
2026-04-23T10:20:03.521058Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)
2026-04-23T10:20:10.069690Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)
2026-04-23T10:20:18.117006Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)
2026-04-23T10:20:54.473088Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=27 elapsed=2.810096209s
2026-04-23T10:20:54.473356Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 27 eligible frames
2026-04-23T10:20:56.920972Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.2MB → 0.9MB (2.6x), 14 JPEGs deleted
2026-04-23T10:20:58.678464Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 2.5MB → 0.8MB (3.0x), 11 JPEGs deleted
2026-04-23T10:23:10.727426Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3844820439140861821, trigger=visual_change)
2026-04-23T10:25:16.468416Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T10:25:32.507777Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T10:26:05.910946Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=33 elapsed=7.132200208s
2026-04-23T10:26:05.912569Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 33 eligible frames
2026-04-23T10:26:09.921886Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.0MB → 1.2MB (2.5x), 18 JPEGs deleted
2026-04-23T10:26:13.670275Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.6MB → 0.9MB (3.0x), 13 JPEGs deleted
2026-04-23T10:26:20.034712Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=click)
2026-04-23T10:26:22.436991Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=click)
2026-04-23T10:26:25.816727Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)
2026-04-23T10:27:46.056157Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1615606372458852745, trigger=click)
2026-04-23T10:28:05.117587Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)
2026-04-23T10:28:16.307383Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)
2026-04-23T10:28:22.684004Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)
2026-04-23T10:28:39.022530Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)
2026-04-23T10:28:44.950116Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)
2026-04-23T10:28:50.090325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=visual_change)
2026-04-23T10:28:52.144212Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)
2026-04-23T10:28:55.229550Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=click)
2026-04-23T10:28:59.714370Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=click)
2026-04-23T10:29:08.010841Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=click)
2026-04-23T10:29:11.877274Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=click)
2026-04-23T10:29:15.515889Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=click)
2026-04-23T10:29:19.052095Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=click)
2026-04-23T10:29:21.109938Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=click)
2026-04-23T10:29:28.551159Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)
2026-04-23T10:29:30.947483Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=visual_change)
2026-04-23T10:29:38.350095Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)
2026-04-23T10:29:51.477755Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)
2026-04-23T10:29:56.846851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)
2026-04-23T10:30:02.584960Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)
2026-04-23T10:30:06.779849Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)
2026-04-23T10:30:18.311444Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)
2026-04-23T10:30:22.665242Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)
2026-04-23T10:30:29.333028Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)
2026-04-23T10:30:37.983139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)
2026-04-23T10:30:48.829636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=click)
2026-04-23T10:30:59.474314Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3712905987097609358, trigger=visual_change)
2026-04-23T10:31:16.115641Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=34 elapsed=1.523826083s
2026-04-23T10:31:16.115774Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 34 eligible frames
2026-04-23T10:31:19.674413Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 3.4MB → 2.0MB (1.7x), 19 JPEGs deleted
2026-04-23T10:31:20.281876Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)
2026-04-23T10:31:21.222414Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 3.4MB → 0.8MB (4.5x), 13 JPEGs deleted
2026-04-23T10:31:30.589390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=visual_change)
2026-04-23T10:31:31.649068Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)
2026-04-23T10:31:34.542890Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=visual_change)
2026-04-23T10:31:35.913592Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)
2026-04-23T10:31:42.222598Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)
2026-04-23T10:31:46.314096Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=visual_change)
2026-04-23T10:31:56.457995Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)
2026-04-23T10:32:02.440693Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=click)
2026-04-23T10:32:11.844302Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=9, grace=300s)
2026-04-23T10:36:21.778297Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 34 eligible frames
2026-04-23T10:36:23.408803Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 3.2MB → 1.6MB (2.1x), 19 JPEGs deleted
2026-04-23T10:36:24.427188Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 3.4MB → 0.7MB (4.8x), 13 JPEGs deleted
2026-04-23T10:37:15.245266Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Idle (timeout=300s, app=Firefox, id=9)
2026-04-23T10:37:15.499978Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting ended (id=9)
2026-04-23T10:39:08.136849Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7072094695368023128, trigger=visual_change)
2026-04-23T10:40:10.173692Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5626541066854626210, trigger=visual_change)
2026-04-23T10:41:03.187335Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6908211675272154683, trigger=visual_change)
2026-04-23T10:41:27.801144Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=32 elapsed=3.230263875s
2026-04-23T10:41:27.801229Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 32 eligible frames
2026-04-23T10:41:30.240257Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.7MB → 1.1MB (2.4x), 17 JPEGs deleted
2026-04-23T10:41:31.414104Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 3.3MB → 1.1MB (3.1x), 13 JPEGs deleted
2026-04-23T10:43:59.795473Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=click)
2026-04-23T10:44:00.574274Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)
2026-04-23T10:44:03.353223Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=visual_change)
2026-04-23T10:44:06.333413Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=visual_change)
2026-04-23T10:44:15.554031Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=click)
2026-04-23T10:44:16.272856Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)
2026-04-23T10:44:36.868831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=visual_change)
2026-04-23T10:44:52.509317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=visual_change)
2026-04-23T10:45:05.711036Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=visual_change)
2026-04-23T10:45:15.149681Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=click)
2026-04-23T10:45:15.874930Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)
2026-04-23T10:45:18.722067Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)
2026-04-23T10:45:27.888960Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=visual_change)
2026-04-23T10:45:32.102259Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)
2026-04-23T10:45:47.964284Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-250182447663358748, trigger=click)
2026-04-23T10:45:57.352178Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-250182447663358748, trigger=click)
2026-04-23T10:45:58.059330Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-250182447663358748, trigger=click)
2026-04-23T10:46:00.786122Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-250182447663358748, trigger=click)
2026-04-23T10:46:01.515587Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-250182447663358748, trigger=click)
2026-04-23T10:46:32.335524Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 34 eligible frames
2026-04-23T10:46:33.454412Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 1.3MB → 0.3MB (4.3x), 15 JPEGs deleted
2026-04-23T10:46:35.185172Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 4.4MB → 0.8MB (5.1x), 17 JPEGs deleted
2026-04-23T10:49:51.424053Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)
2026-04-23T10:49:52.278022Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=click)
2026-04-23T10:50:06.945403Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=visual_change)
2026-04-23T10:50:20.071306Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)
2026-04-23T10:50:27.322330Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)
2026-04-23T10:50:28.025501Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping captur...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"2026-04-23T09:13:09.380863Z INFO sck_rs::stream_manager: invalidated persistent stream for display 2\n2026-04-23T09:13:32.742255Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-23T09:14:01.764079Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4702465002163205464, trigger=click)\n2026-04-23T09:14:04.223149Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4702465002163205464, trigger=visual_change)\n2026-04-23T09:14:06.953796Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=147 elapsed=6.3719465s\n2026-04-23T09:14:06.954006Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 147 eligible frames\n2026-04-23T09:14:12.566935Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 70 frames, 10.3MB → 2.7MB (3.8x), 70 JPEGs deleted\n2026-04-23T09:14:17.358704Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 75 frames, 9.6MB → 3.0MB (3.2x), 75 JPEGs deleted\n2026-04-23T09:15:47.544198Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3660881845293713510, trigger=visual_change)\n2026-04-23T09:15:50.997492Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3660881845293713510, trigger=click)\n2026-04-23T09:15:51.600725Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3660881845293713510, trigger=click)\n2026-04-23T09:15:55.723800Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3660881845293713510, trigger=click)\n2026-04-23T09:15:56.933987Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3660881845293713510, trigger=visual_change)\n2026-04-23T09:15:59.012409Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3660881845293713510, trigger=visual_change)\n2026-04-23T09:16:49.882963Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3759145274440377841, trigger=visual_change)\n2026-04-23T09:16:51.405936Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3759145274440377841, trigger=click)\n2026-04-23T09:16:52.823011Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3759145274440377841, trigger=click)\n2026-04-23T09:16:54.220304Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3759145274440377841, trigger=click)\n2026-04-23T09:16:54.887021Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3759145274440377841, trigger=click)\n2026-04-23T09:16:58.589203Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3759145274440377841, trigger=visual_change)\n2026-04-23T09:18:05.879649Z WARN screenpipe_db::db: wal checkpoint: busy (could not truncate), 5054 pages in WAL\n2026-04-23T09:18:05.879619Z WARN sqlx::query: summary=\"PRAGMA wal_checkpoint(TRUNCATE)\" db.statement=\"\" rows_affected=0 rows_returned=1 elapsed=5.220339167s\n2026-04-23T09:19:24.740122Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=2 elapsed=7.381061833s\n2026-04-23T09:19:24.740850Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-23T09:19:36.514406Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2079049776495123607, trigger=click)\n2026-04-23T09:24:26.477446Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=11 elapsed=1.729545666s\n2026-04-23T09:24:26.477540Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 11 eligible frames\n2026-04-23T09:24:27.316363Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 5 frames, 1.4MB → 1.4MB (1.0x), 5 JPEGs deleted\n2026-04-23T09:24:27.966623Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 6 frames, 0.6MB → 0.2MB (2.7x), 6 JPEGs deleted\n2026-04-23T09:24:42.606557Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:26:03.160247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7786631749263421517, trigger=click)\n2026-04-23T09:27:26.154494Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:27:34.433056Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:28:06.713361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:28:33.527151Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5209591986308457575, trigger=click)\n2026-04-23T09:28:34.249353Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5209591986308457575, trigger=click)\n2026-04-23T09:28:36.237199Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5209591986308457575, trigger=click)\n2026-04-23T09:28:42.253183Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8747303508868961364, trigger=click)\n2026-04-23T09:28:48.282686Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:28:50.613134Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:28:51.314522Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:29:31.961577Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=67 elapsed=3.996031s\n2026-04-23T09:29:31.961670Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 67 eligible frames\n2026-04-23T09:29:34.332658Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 5.8MB → 2.1MB (2.8x), 29 JPEGs deleted\n2026-04-23T09:29:38.223511Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 7.4MB → 3.8MB (2.0x), 36 JPEGs deleted\n2026-04-23T09:30:34.230785Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:30:39.665086Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:30:40.299751Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:30:45.663893Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:30:51.622228Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:30:52.321014Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:31:15.021588Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:31:15.691601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:31:17.946692Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:31:18.653547Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:32:17.960360Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:32:24.051490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:32:29.442560Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:32:30.131038Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:32:32.452540Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:32:36.585069Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:32:39.322258Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:33:18.072421Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:33:18.766929Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:33:22.098409Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:33:22.782084Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:34:27.313290Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:34:38.542722Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 89 eligible frames\n2026-04-23T09:34:41.684595Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 38 frames, 5.6MB → 0.7MB (7.5x), 38 JPEGs deleted\n2026-04-23T09:34:44.933963Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 10.6MB → 3.8MB (2.8x), 49 JPEGs deleted\n2026-04-23T09:37:57.963204Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:37:58.697604Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:38:02.124214Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:38:53.190171Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:38:59.279885Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:39:02.308536Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:39:36.189861Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:39:49.122120Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=50 elapsed=4.188474542s\n2026-04-23T09:39:49.122232Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 50 eligible frames\n2026-04-23T09:39:51.115025Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 2.9MB → 0.3MB (9.4x), 24 JPEGs deleted\n2026-04-23T09:39:53.096763Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 5.0MB → 2.3MB (2.2x), 24 JPEGs deleted\n2026-04-23T09:40:57.095660Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:40:58.430714Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:41:01.130926Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:41:01.840278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:41:04.072034Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:41:09.252541Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:41:09.972092Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:41:12.313228Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:41:13.696141Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:41:15.723102Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:41:16.452657Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:42:46.382248Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:43:42.993741Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6469703639183038647, trigger=visual_change)\n2026-04-23T09:44:17.245560Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7072623502562616708, trigger=visual_change)\n2026-04-23T09:44:56.342637Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=21 elapsed=2.944921084s\n2026-04-23T09:44:56.343212Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames\n2026-04-23T09:44:57.216675Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.2MB → 0.2MB (6.9x), 10 JPEGs deleted\n2026-04-23T09:44:58.298212Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 2.1MB → 0.7MB (2.8x), 9 JPEGs deleted\n2026-04-23T09:45:10.982752Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Firefox, signals=2)\n2026-04-23T09:45:16.376695Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Firefox, signals=2, browser=true)\n2026-04-23T09:45:16.378791Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=9, app=Firefox, title=None)\n2026-04-23T09:50:01.989691Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=23 elapsed=3.688976042s\n2026-04-23T09:50:01.989962Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 23 eligible frames\n2026-04-23T09:50:03.098505Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.3MB → 0.2MB (7.4x), 11 JPEGs deleted\n2026-04-23T09:50:04.627741Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.4MB → 0.8MB (3.1x), 10 JPEGs deleted\n2026-04-23T09:50:07.629323Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4672421675042950776, trigger=click)\n2026-04-23T09:52:11.400798Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:52:15.346773Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:52:18.174934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:52:22.107623Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:52:32.020499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:53:33.890239Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:53:35.304629Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:53:58.176084Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:54:14.248454Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:54:18.287472Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:54:20.289467Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:54:24.904239Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:54:27.981243Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:54:29.172367Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:54:30.192245Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:54:31.161165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:55:11.821088Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=36 elapsed=7.192436875s\n2026-04-23T09:55:11.821248Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 36 eligible frames\n2026-04-23T09:55:13.532739Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 2.3MB → 0.5MB (5.0x), 19 JPEGs deleted\n2026-04-23T09:55:16.625152Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 3.3MB → 1.4MB (2.4x), 15 JPEGs deleted\n2026-04-23T09:56:01.584150Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:56:24.887186Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3078857793355977422, trigger=click)\n2026-04-23T09:56:32.005363Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3078857793355977422, trigger=visual_change)\n2026-04-23T09:56:41.374227Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3078857793355977422, trigger=visual_change)\n2026-04-23T09:56:54.666839Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3078857793355977422, trigger=click)\n2026-04-23T09:57:06.486753Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3593283938725328408, trigger=visual_change)\n2026-04-23T09:57:14.384178Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5341343601501307187, trigger=visual_change)\n2026-04-23T09:57:32.721765Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5341343601501307187, trigger=visual_change)\n2026-04-23T09:59:03.111441Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:59:18.292184Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:59:24.203906Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:59:28.763273Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:59:36.189282Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T10:00:16.817081Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 72 eligible frames\n2026-04-23T10:00:21.637421Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 45 frames, 7.5MB → 3.5MB (2.1x), 45 JPEGs deleted\n2026-04-23T10:00:24.683587Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.4MB → 1.4MB (3.2x), 25 JPEGs deleted\n2026-04-23T10:00:40.573974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6464745230001326344, trigger=visual_change)\n2026-04-23T10:02:52.495992Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8171437999531431641, trigger=click)\n2026-04-23T10:02:53.374393Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8171437999531431641, trigger=click)\n2026-04-23T10:03:37.373391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1961095499263201650, trigger=click)\n2026-04-23T10:04:58.338820Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T10:05:04.300061Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T10:05:10.114887Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T10:05:16.104422Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T10:05:20.754499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T10:05:25.933831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T10:05:30.717296Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=45 elapsed=5.043796209s\n2026-04-23T10:05:30.717708Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 45 eligible frames\n2026-04-23T10:05:33.129158Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.5MB → 1.3MB (2.8x), 21 JPEGs deleted\n2026-04-23T10:05:35.719261Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 3.9MB → 1.6MB (2.5x), 22 JPEGs deleted\n2026-04-23T10:06:54.427408Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T10:06:58.568476Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T10:07:35.294176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T10:07:36.671700Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T10:07:46.281682Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T10:10:42.001975Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=40 elapsed=6.278440792s\n2026-04-23T10:10:42.002064Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames\n2026-04-23T10:10:45.302375Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.7MB → 1.7MB (2.2x), 21 JPEGs deleted\n2026-04-23T10:10:47.110830Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 4.4MB → 0.6MB (7.8x), 17 JPEGs deleted\n2026-04-23T10:12:18.002465Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7144568667011834365, trigger=click)\n2026-04-23T10:13:16.229637Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3362537224271461493, trigger=visual_change)\n2026-04-23T10:13:20.127210Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3362537224271461493, trigger=visual_change)\n2026-04-23T10:15:43.498044Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-602531024127880156, trigger=visual_change)\n2026-04-23T10:15:46.873827Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-602531024127880156, trigger=visual_change)\n2026-04-23T10:15:49.085137Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 32 eligible frames\n2026-04-23T10:15:49.496235Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-602531024127880156, trigger=visual_change)\n2026-04-23T10:15:50.519319Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.0MB → 0.9MB (3.3x), 17 JPEGs deleted\n2026-04-23T10:15:51.657703Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 3.4MB → 0.5MB (6.7x), 13 JPEGs deleted\n2026-04-23T10:15:53.186964Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-602531024127880156, trigger=visual_change)\n2026-04-23T10:15:55.743993Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-602531024127880156, trigger=visual_change)\n2026-04-23T10:16:10.260016Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7730332891388508974, trigger=visual_change)\n2026-04-23T10:16:19.398464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5862100523266843105, trigger=visual_change)\n2026-04-23T10:16:23.686689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5862100523266843105, trigger=visual_change)\n2026-04-23T10:16:27.662719Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5862100523266843105, trigger=visual_change)\n2026-04-23T10:16:34.159786Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5862100523266843105, trigger=visual_change)\n2026-04-23T10:17:00.356336Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5862100523266843105, trigger=visual_change)\n2026-04-23T10:17:22.481007Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3265723714621232205, trigger=visual_change)\n2026-04-23T10:17:29.195939Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3265723714621232205, trigger=visual_change)\n2026-04-23T10:17:47.685112Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)\n2026-04-23T10:17:51.199158Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)\n2026-04-23T10:17:58.199222Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)\n2026-04-23T10:18:06.327777Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)\n2026-04-23T10:18:13.175283Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)\n2026-04-23T10:18:39.739176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)\n2026-04-23T10:19:27.720698Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)\n2026-04-23T10:19:31.148096Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)\n2026-04-23T10:19:35.991910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)\n2026-04-23T10:19:56.855761Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)\n2026-04-23T10:20:03.521058Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)\n2026-04-23T10:20:10.069690Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)\n2026-04-23T10:20:18.117006Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)\n2026-04-23T10:20:54.473088Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=27 elapsed=2.810096209s\n2026-04-23T10:20:54.473356Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 27 eligible frames\n2026-04-23T10:20:56.920972Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.2MB → 0.9MB (2.6x), 14 JPEGs deleted\n2026-04-23T10:20:58.678464Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 2.5MB → 0.8MB (3.0x), 11 JPEGs deleted\n2026-04-23T10:23:10.727426Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3844820439140861821, trigger=visual_change)\n2026-04-23T10:25:16.468416Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T10:25:32.507777Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T10:26:05.910946Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=33 elapsed=7.132200208s\n2026-04-23T10:26:05.912569Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 33 eligible frames\n2026-04-23T10:26:09.921886Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.0MB → 1.2MB (2.5x), 18 JPEGs deleted\n2026-04-23T10:26:13.670275Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.6MB → 0.9MB (3.0x), 13 JPEGs deleted\n2026-04-23T10:26:20.034712Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=click)\n2026-04-23T10:26:22.436991Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=click)\n2026-04-23T10:26:25.816727Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:27:46.056157Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1615606372458852745, trigger=click)\n2026-04-23T10:28:05.117587Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:28:16.307383Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:28:22.684004Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:28:39.022530Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:28:44.950116Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:28:50.090325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:28:52.144212Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:28:55.229550Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=click)\n2026-04-23T10:28:59.714370Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=click)\n2026-04-23T10:29:08.010841Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=click)\n2026-04-23T10:29:11.877274Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=click)\n2026-04-23T10:29:15.515889Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=click)\n2026-04-23T10:29:19.052095Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=click)\n2026-04-23T10:29:21.109938Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=click)\n2026-04-23T10:29:28.551159Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:29:30.947483Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:29:38.350095Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:29:51.477755Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:29:56.846851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:30:02.584960Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:30:06.779849Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:30:18.311444Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:30:22.665242Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:30:29.333028Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:30:37.983139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:30:48.829636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=click)\n2026-04-23T10:30:59.474314Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3712905987097609358, trigger=visual_change)\n2026-04-23T10:31:16.115641Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=34 elapsed=1.523826083s\n2026-04-23T10:31:16.115774Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 34 eligible frames\n2026-04-23T10:31:19.674413Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 3.4MB → 2.0MB (1.7x), 19 JPEGs deleted\n2026-04-23T10:31:20.281876Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:31:21.222414Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 3.4MB → 0.8MB (4.5x), 13 JPEGs deleted\n2026-04-23T10:31:30.589390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:31:31.649068Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:31:34.542890Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:31:35.913592Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:31:42.222598Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:31:46.314096Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:31:56.457995Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:32:02.440693Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=click)\n2026-04-23T10:32:11.844302Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=9, grace=300s)\n2026-04-23T10:36:21.778297Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 34 eligible frames\n2026-04-23T10:36:23.408803Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 3.2MB → 1.6MB (2.1x), 19 JPEGs deleted\n2026-04-23T10:36:24.427188Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 3.4MB → 0.7MB (4.8x), 13 JPEGs deleted\n2026-04-23T10:37:15.245266Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Idle (timeout=300s, app=Firefox, id=9)\n2026-04-23T10:37:15.499978Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting ended (id=9)\n2026-04-23T10:39:08.136849Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7072094695368023128, trigger=visual_change)\n2026-04-23T10:40:10.173692Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5626541066854626210, trigger=visual_change)\n2026-04-23T10:41:03.187335Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6908211675272154683, trigger=visual_change)\n2026-04-23T10:41:27.801144Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=32 elapsed=3.230263875s\n2026-04-23T10:41:27.801229Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 32 eligible frames\n2026-04-23T10:41:30.240257Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.7MB → 1.1MB (2.4x), 17 JPEGs deleted\n2026-04-23T10:41:31.414104Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 3.3MB → 1.1MB (3.1x), 13 JPEGs deleted\n2026-04-23T10:43:59.795473Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:44:00.574274Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:44:03.353223Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=visual_change)\n2026-04-23T10:44:06.333413Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=visual_change)\n2026-04-23T10:44:15.554031Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:44:16.272856Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:44:36.868831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=visual_change)\n2026-04-23T10:44:52.509317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=visual_change)\n2026-04-23T10:45:05.711036Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=visual_change)\n2026-04-23T10:45:15.149681Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:45:15.874930Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:45:18.722067Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:45:27.888960Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=visual_change)\n2026-04-23T10:45:32.102259Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:45:47.964284Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-250182447663358748, trigger=click)\n2026-04-23T10:45:57.352178Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-250182447663358748, trigger=click)\n2026-04-23T10:45:58.059330Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-250182447663358748, trigger=click)\n2026-04-23T10:46:00.786122Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-250182447663358748, trigger=click)\n2026-04-23T10:46:01.515587Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-250182447663358748, trigger=click)\n2026-04-23T10:46:32.335524Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 34 eligible frames\n2026-04-23T10:46:33.454412Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 1.3MB → 0.3MB (4.3x), 15 JPEGs deleted\n2026-04-23T10:46:35.185172Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 4.4MB → 0.8MB (5.1x), 17 JPEGs deleted\n2026-04-23T10:49:51.424053Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:49:52.278022Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:50:06.945403Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=visual_change)\n2026-04-23T10:50:20.071306Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:50:27.322330Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:50:28.025501Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:50:31.361324Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:50:32.067598Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:50:43.957181Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:50:49.116814Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:50:49.902205Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:50:52.787071Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:50:55.600444Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:50:56.613411Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:51:01.606653Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=visual_change)\n2026-04-23T10:51:36.294219Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames\n2026-04-23T10:51:37.139478Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.9MB → 0.1MB (8.1x), 10 JPEGs deleted\n2026-04-23T10:51:37.977586Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 2.4MB → 0.4MB (5.6x), 9 JPEGs deleted\n2026-04-23T10:53:10.914762Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5094416737894467752, trigger=click)\n2026-04-23T10:53:46.764312Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5492569374489755072, trigger=click)\n2026-04-23T10:53:47.493963Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5492569374489755072, trigger=click)\n2026-04-23T10:55:50.508246Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9185031867676948653, trigger=click)\n2026-04-23T10:56:18.190631Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8265869039182172474, trigger=visual_change)\n2026-04-23T10:56:21.391253Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8265869039182172474, trigger=visual_change)\n2026-04-23T10:56:44.441379Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=33 elapsed=6.451315834s\n2026-04-23T10:56:44.441894Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 33 eligible frames\n2026-04-23T10:56:46.435494Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 1.6MB → 0.1MB (14.8x), 17 JPEGs deleted\n2026-04-23T10:56:47.618773Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 3.5MB → 1.0MB (3.6x), 14 JPEGs deleted\n2026-04-23T10:56:48.429385Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3009288458992913716, trigger=visual_change)\n2026-04-23T10:56:55.377427Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3009288458992913716, trigger=visual_change)\n2026-04-23T10:56:58.331194Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3009288458992913716, trigger=visual_change)\n2026-04-23T10:57:31.580363Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=164293696523982731, trigger=visual_change)\n2026-04-23T10:57:37.142409Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=164293696523982731, trigger=visual_change)\n2026-04-23T11:01:54.879662Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=43 elapsed=6.651773875s\n2026-04-23T11:01:54.879780Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 43 eligible frames\n2026-04-23T11:01:56.181324Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 2.1MB → 0.5MB (4.0x), 20 JPEGs deleted\n2026-04-23T11:01:57.821885Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 4.6MB → 1.2MB (4.0x), 21 JPEGs deleted\n2026-04-23T11:05:34.805879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4133405882569027308, trigger=click)\n2026-04-23T11:05:42.692507Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-792819002159032212, trigger=click)\n2026-04-23T11:05:45.195836Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-792819002159032212, trigger=click)\n2026-04-23T11:06:58.003581Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 56 eligible frames\n2026-04-23T11:07:01.998524Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 4.2MB → 2.0MB (2.1x), 27 JPEGs deleted\n2026-04-23T11:07:04.632834Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 6.1MB → 1.2MB (5.2x), 27 JPEGs deleted\n2026-04-23T11:08:29.041425Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=811120582590877593, trigger=click)\n2026-04-23T11:11:26.078346Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=811120582590877593, trigger=click)\n2026-04-23T11:11:26.826746Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=811120582590877593, trigger=click)\n2026-04-23T11:11:29.736291Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=811120582590877593, trigger=click)\n2026-04-23T11:11:30.502898Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=811120582590877593, trigger=click)\n2026-04-23T11:11:33.284639Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=811120582590877593, trigger=click)\n2026-04-23T11:11:34.732219Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=811120582590877593, trigger=click)\n2026-04-23T11:11:36.846175Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=811120582590877593, trigger=click)\n2026-04-23T11:11:47.161668Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=811120582590877593, trigger=visual_change)\n2026-04-23T11:11:51.463126Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=811120582590877593, trigger=click)\n2026-04-23T11:11:55.190182Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=811120582590877593, trigger=click)\n2026-04-23T11:11:58.250612Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=811120582590877593, trigger=click)\n2026-04-23T11:11:58.984195Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=811120582590877593, trigger=click)\n2026-04-23T11:12:07.186907Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8190951420737299430, trigger=visual_change)\n2026-04-23T11:12:10.805150Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=28 elapsed=6.153365375s\n2026-04-23T11:12:10.806451Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames\n2026-04-23T11:12:12.869531Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.7MB → 1.2MB (2.2x), 16 JPEGs deleted\n2026-04-23T11:12:14.462884Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.2MB → 0.4MB (5.9x), 10 JPEGs deleted\n2026-04-23T11:14:59.283313Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-962688942467523245, trigger=click)\n2026-04-23T11:14:59.996111Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-962688942467523245, trigger=click)\n2026-04-23T11:15:52.562512Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4085483410823602662, trigger=click)\n2026-04-23T11:16:10.556556Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-680298114769977367, trigger=click)\n2026-04-23T11:16:44.987984Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-781142721963066587, trigger=click)\n2026-04-23T11:17:15.717626Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=34 elapsed=1.192290209s\n2026-04-23T11:17:15.717877Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 34 eligible frames\n2026-04-23T11:17:16.801524Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 1.7MB → 0.3MB (6.4x), 14 JPEGs deleted\n2026-04-23T11:17:18.950114Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 4.0MB → 0.9MB (4.3x), 18 JPEGs deleted\n2026-04-23T11:22:21.353046Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=27 elapsed=2.391216916s\n2026-04-23T11:22:21.353161Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 27 eligible frames\n2026-04-23T11:22:22.204810Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.6MB → 0.2MB (7.8x), 13 JPEGs deleted\n2026-04-23T11:22:23.352237Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.7MB → 1.1MB (2.5x), 12 JPEGs deleted\n2026-04-23T11:22:51.641783Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5591071779487381740, trigger=visual_change)\n2026-04-23T11:24:42.126313Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3622496340535697523, trigger=click)\n2026-04-23T11:27:16.328827Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3622496340535697523, trigger=click)\n2026-04-23T11:27:17.062717Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3622496340535697523, trigger=click)\n2026-04-23T11:27:20.131333Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3622496340535697523, trigger=visual_change)\n2026-04-23T11:27:27.263965Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=32 elapsed=2.915186083s\n2026-04-23T11:27:27.264345Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 32 eligible frames\n2026-04-23T11:27:29.317049Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.1MB → 0.6MB (3.5x), 16 JPEGs deleted\n2026-04-23T11:27:31.637712Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 3.0MB → 0.8MB (3.8x), 14 JPEGs deleted\n2026-04-23T11:29:03.406489Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1491366973306919482, trigger=visual_change)\n2026-04-23T11:29:37.371120Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1491366973306919482, trigger=click)\n2026-04-23T11:29:38.828999Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1491366973306919482, trigger=click)\n2026-04-23T11:30:05.594417Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7420299184765789117, trigger=click)\n2026-04-23T11:30:10.415695Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7420299184765789117, trigger=click)\n2026-04-23T11:30:37.438406Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Firefox, signals=2)\n2026-04-23T11:30:47.134756Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Firefox, signals=2, browser=true)\n2026-04-23T11:30:47.150842Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=10, app=Firefox, title=None)\n2026-04-23T11:32:52.795697Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=click, monitor=1) — DB pool may be saturated\n2026-04-23T11:32:54.063047Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=22.405129875s\n2026-04-23T11:32:54.065127Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-23T11:32:56.659956Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.7MB → 0.3MB (5.8x), 10 JPEGs deleted\n2026-04-23T11:32:58.390326Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.1MB → 0.4MB (5.1x), 10 JPEGs deleted\n2026-04-23T11:32:58.454323Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=click, monitor=2) — DB pool may be saturated\n2026-04-23T11:33:03.630685Z INFO screenpipe_engine::event_driven_capture: monitor 2 capture recovered after 1 consecutive errors\n2026-04-23T11:33:03.698376Z INFO screenpipe_engine::event_driven_capture: monitor 1 capture recovered after 1 consecutive errors\n2026-04-23T11:34:08.146813Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=visual_change, monitor=1) — DB pool may be saturated\n2026-04-23T11:34:19.115606Z INFO screenpipe_engine::event_driven_capture: monitor 1 capture recovered after 1 consecutive errors\n2026-04-23T11:38:06.413998Z WARN sqlx::query: summary=\"PRAGMA wal_checkpoint(TRUNCATE)\" db.statement=\"\" rows_affected=0 rows_returned=1 elapsed=5.320189792s\n2026-04-23T11:38:06.417026Z WARN screenpipe_db::db: wal checkpoint: busy (could not truncate), 1136 pages in WAL\n2026-04-23T11:38:06.480369Z WARN sqlx::query: summary=\"BEGIN IMMEDIATE\" db.statement=\"\" rows_affected=1 rows_returned=0 elapsed=3.645234084s\n2026-04-23T11:38:12.229580Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=26 elapsed=13.80812125s\n2026-04-23T11:38:12.232573Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 26 eligible frames\n2026-04-23T11:38:15.382662Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.9MB → 0.5MB (3.8x), 11 JPEGs deleted\n2026-04-23T11:38:16.795794Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=visual_change, monitor=1) — DB pool may be saturated\n2026-04-23T11:38:19.817599Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.7MB → 0.6MB (4.2x), 13 JPEGs deleted\n2026-04-23T11:38:24.993308Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=visual_change, monitor=2) — DB pool may be saturated\n2026-04-23T11:38:30.141938Z INFO screenpipe_engine::event_driven_capture: monitor 1 capture recovered after 1 consecutive errors\n2026-04-23T11:38:34.776814Z INFO screenpipe_engine::event_driven_capture: monitor 2 capture recovered after 1 consecutive errors\n2026-04-23T11:40:55.703155Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5781407336396073109, trigger=visual_change)\n2026-04-23T11:41:02.662314Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5781407336396073109, trigger=visual_change)\n2026-04-23T11:41:09.390136Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5781407336396073109, trigger=visual_change)\n2026-04-23T11:41:16.161715Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5781407336396073109, trigger=visual_change)\n2026-04-23T11:41:37.205648Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5781407336396073109, trigger=visual_change)\n2026-04-23T11:42:04.257036Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5781407336396073109, trigger=visual_change)\n2026-04-23T11:42:21.214633Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6679997250984875896, trigger=visual_change)\n2026-04-23T11:42:24.525053Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6679997250984875896, trigger=visual_change)\n2026-04-23T11:42:29.877589Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6679997250984875896, trigger=visual_change)\n2026-04-23T11:42:33.802238Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6679997250984875896, trigger=visual_change)\n2026-04-23T11:42:36.923509Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6679997250984875896, trigger=visual_change)\n2026-04-23T11:42:57.455576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6679997250984875896, trigger=visual_change)\n2026-04-23T11:43:12.031547Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=951548071599591969, trigger=visual_change)\n2026-04-23T11:43:18.874182Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=951548071599591969, trigger=visual_change)\n2026-04-23T11:43:24.247849Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=951548071599591969, trigger=visual_change)\n2026-04-23T11:43:26.259182Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=49 elapsed=6.405864s\n2026-04-23T11:43:26.263056Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 49 eligible frames\n2026-04-23T11:43:32.316690Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 3.7MB → 1.8MB (2.0x), 23 JPEGs deleted\n2026-04-23T11:43:34.974978Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=951548071599591969, trigger=visual_change)\n2026-04-23T11:43:36.047883Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.3MB → 1.5MB (2.9x), 24 JPEGs deleted\n2026-04-23T11:43:49.116309Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=951548071599591969, trigger=visual_change)\n2026-04-23T11:43:52.940018Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=951548071599591969, trigger=visual_change)\n2026-04-23T11:43:56.539135Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=951548071599591969, trigger=visual_change)\n2026-04-23T11:44:11.233290Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4079677798565982376, trigger=visual_change)\n2026-04-23T11:45:03.923694Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=click, monitor=2) — DB pool may be saturated\n2026-04-23T11:45:18.638512Z INFO screenpipe_engine::event_driven_capture: monitor 2 capture recovered after 1 consecutive errors\n2026-04-23T11:45:27.824824Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=click, monitor=1) — DB pool may be saturated\n2026-04-23T11:45:41.576372Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=click, monitor=2) — DB pool may be saturated\n2026-04-23T11:45:44.291896Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=click, monitor=1) — DB pool may be saturated\n2026-04-23T11:46:03.257280Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=click, monitor=1) — DB pool may be saturated\n2026-04-23T11:46:12.724398Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=visual_change, monitor=2) — DB pool may be saturated\n2026-04-23T11:46:22.727197Z INFO screenpipe_engine::event_driven_capture: monitor 1 capture recovered after 3 consecutive errors\n2026-04-23T11:46:24.228006Z INFO screenpipe_engine::event_driven_capture: monitor 2 capture recovered after 2 consecutive errors\n2026-04-23T11:46:40.390580Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7643951286516936585, trigger=visual_change)\n2026-04-23T11:46:49.248747Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7643951286516936585, trigger=visual_change)\n2026-04-23T11:46:55.471031Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7643951286516936585, trigger=visual_change)\n2026-04-23T11:47:02.336575Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7643951286516936585, trigger=visual_change)\n2026-04-23T11:48:17.252755Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7643951286516936585, trigger=visual_change)\n2026-04-23T11:48:25.013997Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7643951286516936585, trigger=visual_change)\n2026-04-23T11:48:53.059242Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=56 elapsed=13.220216708s\n2026-04-23T11:48:53.065643Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 56 eligible frames\n2026-04-23T11:48:58.527594Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 4.7MB → 2.2MB (2.1x), 30 JPEGs deleted\n2026-04-23T11:49:05.857012Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.3MB → 1.6MB (2.7x), 24 JPEGs deleted\n2026-04-23T11:49:06.658338Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5995459936453258264, trigger=visual_change)\n2026-04-23T11:49:28.247468Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5995459936453258264, trigger=visual_change)\n2026-04-23T11:49:46.108336Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4001297392414942723, trigger=visual_change)\n2026-04-23T11:49:53.084297Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4001297392414942723, trigger=visual_change)\n2026-04-23T11:49:56.028797Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4001297392414942723, trigger=click)\n2026-04-23T11:50:37.287127Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2527600923706712259, trigger=visual_change)\n2026-04-23T11:51:12.946650Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1489108089542937642, trigger=visual_change)\n2026-04-23T11:51:19.338386Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1489108089542937642, trigger=visual_change)\n2026-04-23T11:52:16.352383Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8163356110886780433, trigger=visual_change)\n2026-04-23T11:53:55.890568Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5293025605401136867, trigger=click)\n2026-04-23T11:54:09.640558Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=41 elapsed=3.460436583s\n2026-04-23T11:54:09.640693Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 41 eligible frames\n2026-04-23T11:54:13.152878Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 3.3MB → 1.5MB (2.2x), 22 JPEGs deleted\n2026-04-23T11:54:15.204535Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.9MB → 1.2MB (3.4x), 17 JPEGs deleted\n2026-04-23T11:58:11.876342Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=10, grace=300s)\n2026-04-23T11:59:15.385310Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames\n2026-04-23T11:59:16.921656Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.6MB → 0.6MB (2.8x), 13 JPEGs deleted\n2026-04-23T11:59:18.047335Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.2MB → 1.0MB (2.3x), 10 JPEGs deleted\n2026-04-23T12:01:17.114786Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7823854956395915880, trigger=click)\n/Volumes/Work/2026/User\\ Pilot\\ introduction\\ Adi\\ 2026-04-23.mp4 2026-04-23T12:02:09.213929Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4997183725580178172, trigger=visual_change)\n2026-04-23T12:02:12.305485Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4997183725580178172, trigger=visual_change)\n2026-04-23T12:02:22.392607Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4428370940474457947, trigger=visual_change)\n2026-04-23T12:02:23.534043Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4428370940474457947, trigger=click)\n2026-04-23T12:02:25.338561Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4428370940474457947, trigger=click)\n2026-04-23T12:02:26.896633Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4428370940474457947, trigger=click)\n2026-04-23T12:03:14.422791Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Idle (timeout=300s, app=Firefox, id=10)\n2026-04-23T12:03:14.697666Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting ended (id=10)\n2026-04-23T12:04:18.652471Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 62 eligible frames\n2026-04-23T12:04:22.291047Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 4.6MB → 1.6MB (3.0x), 36 JPEGs deleted\n2026-04-23T12:04:25.831665Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.8MB → 1.1MB (4.3x), 24 JPEGs deleted\n2026-04-23T12:04:36.186162Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8094579906910625439, trigger=click)","depth":4,"value":"2026-04-23T09:13:09.380863Z INFO sck_rs::stream_manager: invalidated persistent stream for display 2\n2026-04-23T09:13:32.742255Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-23T09:14:01.764079Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4702465002163205464, trigger=click)\n2026-04-23T09:14:04.223149Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4702465002163205464, trigger=visual_change)\n2026-04-23T09:14:06.953796Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=147 elapsed=6.3719465s\n2026-04-23T09:14:06.954006Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 147 eligible frames\n2026-04-23T09:14:12.566935Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 70 frames, 10.3MB → 2.7MB (3.8x), 70 JPEGs deleted\n2026-04-23T09:14:17.358704Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 75 frames, 9.6MB → 3.0MB (3.2x), 75 JPEGs deleted\n2026-04-23T09:15:47.544198Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3660881845293713510, trigger=visual_change)\n2026-04-23T09:15:50.997492Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3660881845293713510, trigger=click)\n2026-04-23T09:15:51.600725Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3660881845293713510, trigger=click)\n2026-04-23T09:15:55.723800Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3660881845293713510, trigger=click)\n2026-04-23T09:15:56.933987Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3660881845293713510, trigger=visual_change)\n2026-04-23T09:15:59.012409Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3660881845293713510, trigger=visual_change)\n2026-04-23T09:16:49.882963Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3759145274440377841, trigger=visual_change)\n2026-04-23T09:16:51.405936Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3759145274440377841, trigger=click)\n2026-04-23T09:16:52.823011Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3759145274440377841, trigger=click)\n2026-04-23T09:16:54.220304Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3759145274440377841, trigger=click)\n2026-04-23T09:16:54.887021Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3759145274440377841, trigger=click)\n2026-04-23T09:16:58.589203Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3759145274440377841, trigger=visual_change)\n2026-04-23T09:18:05.879649Z WARN screenpipe_db::db: wal checkpoint: busy (could not truncate), 5054 pages in WAL\n2026-04-23T09:18:05.879619Z WARN sqlx::query: summary=\"PRAGMA wal_checkpoint(TRUNCATE)\" db.statement=\"\" rows_affected=0 rows_returned=1 elapsed=5.220339167s\n2026-04-23T09:19:24.740122Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=2 elapsed=7.381061833s\n2026-04-23T09:19:24.740850Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-23T09:19:36.514406Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2079049776495123607, trigger=click)\n2026-04-23T09:24:26.477446Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=11 elapsed=1.729545666s\n2026-04-23T09:24:26.477540Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 11 eligible frames\n2026-04-23T09:24:27.316363Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 5 frames, 1.4MB → 1.4MB (1.0x), 5 JPEGs deleted\n2026-04-23T09:24:27.966623Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 6 frames, 0.6MB → 0.2MB (2.7x), 6 JPEGs deleted\n2026-04-23T09:24:42.606557Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:26:03.160247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7786631749263421517, trigger=click)\n2026-04-23T09:27:26.154494Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:27:34.433056Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:28:06.713361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:28:33.527151Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5209591986308457575, trigger=click)\n2026-04-23T09:28:34.249353Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5209591986308457575, trigger=click)\n2026-04-23T09:28:36.237199Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5209591986308457575, trigger=click)\n2026-04-23T09:28:42.253183Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8747303508868961364, trigger=click)\n2026-04-23T09:28:48.282686Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:28:50.613134Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:28:51.314522Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:29:31.961577Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=67 elapsed=3.996031s\n2026-04-23T09:29:31.961670Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 67 eligible frames\n2026-04-23T09:29:34.332658Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 5.8MB → 2.1MB (2.8x), 29 JPEGs deleted\n2026-04-23T09:29:38.223511Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 7.4MB → 3.8MB (2.0x), 36 JPEGs deleted\n2026-04-23T09:30:34.230785Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:30:39.665086Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:30:40.299751Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:30:45.663893Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:30:51.622228Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:30:52.321014Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:31:15.021588Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:31:15.691601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:31:17.946692Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:31:18.653547Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:32:17.960360Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:32:24.051490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:32:29.442560Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:32:30.131038Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:32:32.452540Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:32:36.585069Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:32:39.322258Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:33:18.072421Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:33:18.766929Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:33:22.098409Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:33:22.782084Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:34:27.313290Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:34:38.542722Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 89 eligible frames\n2026-04-23T09:34:41.684595Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 38 frames, 5.6MB → 0.7MB (7.5x), 38 JPEGs deleted\n2026-04-23T09:34:44.933963Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 10.6MB → 3.8MB (2.8x), 49 JPEGs deleted\n2026-04-23T09:37:57.963204Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:37:58.697604Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:38:02.124214Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:38:53.190171Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:38:59.279885Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:39:02.308536Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:39:36.189861Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:39:49.122120Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=50 elapsed=4.188474542s\n2026-04-23T09:39:49.122232Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 50 eligible frames\n2026-04-23T09:39:51.115025Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 2.9MB → 0.3MB (9.4x), 24 JPEGs deleted\n2026-04-23T09:39:53.096763Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 5.0MB → 2.3MB (2.2x), 24 JPEGs deleted\n2026-04-23T09:40:57.095660Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:40:58.430714Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:41:01.130926Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:41:01.840278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:41:04.072034Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:41:09.252541Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:41:09.972092Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:41:12.313228Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:41:13.696141Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:41:15.723102Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:41:16.452657Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:42:46.382248Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:43:42.993741Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6469703639183038647, trigger=visual_change)\n2026-04-23T09:44:17.245560Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7072623502562616708, trigger=visual_change)\n2026-04-23T09:44:56.342637Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=21 elapsed=2.944921084s\n2026-04-23T09:44:56.343212Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames\n2026-04-23T09:44:57.216675Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.2MB → 0.2MB (6.9x), 10 JPEGs deleted\n2026-04-23T09:44:58.298212Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 2.1MB → 0.7MB (2.8x), 9 JPEGs deleted\n2026-04-23T09:45:10.982752Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Firefox, signals=2)\n2026-04-23T09:45:16.376695Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Firefox, signals=2, browser=true)\n2026-04-23T09:45:16.378791Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=9, app=Firefox, title=None)\n2026-04-23T09:50:01.989691Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=23 elapsed=3.688976042s\n2026-04-23T09:50:01.989962Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 23 eligible frames\n2026-04-23T09:50:03.098505Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.3MB → 0.2MB (7.4x), 11 JPEGs deleted\n2026-04-23T09:50:04.627741Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.4MB → 0.8MB (3.1x), 10 JPEGs deleted\n2026-04-23T09:50:07.629323Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4672421675042950776, trigger=click)\n2026-04-23T09:52:11.400798Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:52:15.346773Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:52:18.174934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:52:22.107623Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:52:32.020499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:53:33.890239Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:53:35.304629Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:53:58.176084Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:54:14.248454Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:54:18.287472Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:54:20.289467Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:54:24.904239Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:54:27.981243Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:54:29.172367Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:54:30.192245Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:54:31.161165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:55:11.821088Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=36 elapsed=7.192436875s\n2026-04-23T09:55:11.821248Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 36 eligible frames\n2026-04-23T09:55:13.532739Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 2.3MB → 0.5MB (5.0x), 19 JPEGs deleted\n2026-04-23T09:55:16.625152Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 3.3MB → 1.4MB (2.4x), 15 JPEGs deleted\n2026-04-23T09:56:01.584150Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:56:24.887186Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3078857793355977422, trigger=click)\n2026-04-23T09:56:32.005363Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3078857793355977422, trigger=visual_change)\n2026-04-23T09:56:41.374227Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3078857793355977422, trigger=visual_change)\n2026-04-23T09:56:54.666839Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3078857793355977422, trigger=click)\n2026-04-23T09:57:06.486753Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3593283938725328408, trigger=visual_change)\n2026-04-23T09:57:14.384178Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5341343601501307187, trigger=visual_change)\n2026-04-23T09:57:32.721765Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5341343601501307187, trigger=visual_change)\n2026-04-23T09:59:03.111441Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:59:18.292184Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:59:24.203906Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:59:28.763273Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:59:36.189282Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T10:00:16.817081Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 72 eligible frames\n2026-04-23T10:00:21.637421Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 45 frames, 7.5MB → 3.5MB (2.1x), 45 JPEGs deleted\n2026-04-23T10:00:24.683587Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.4MB → 1.4MB (3.2x), 25 JPEGs deleted\n2026-04-23T10:00:40.573974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6464745230001326344, trigger=visual_change)\n2026-04-23T10:02:52.495992Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8171437999531431641, trigger=click)\n2026-04-23T10:02:53.374393Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8171437999531431641, trigger=click)\n2026-04-23T10:03:37.373391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1961095499263201650, trigger=click)\n2026-04-23T10:04:58.338820Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T10:05:04.300061Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T10:05:10.114887Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T10:05:16.104422Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T10:05:20.754499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T10:05:25.933831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T10:05:30.717296Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=45 elapsed=5.043796209s\n2026-04-23T10:05:30.717708Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 45 eligible frames\n2026-04-23T10:05:33.129158Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.5MB → 1.3MB (2.8x), 21 JPEGs deleted\n2026-04-23T10:05:35.719261Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 3.9MB → 1.6MB (2.5x), 22 JPEGs deleted\n2026-04-23T10:06:54.427408Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T10:06:58.568476Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T10:07:35.294176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T10:07:36.671700Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T10:07:46.281682Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T10:10:42.001975Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=40 elapsed=6.278440792s\n2026-04-23T10:10:42.002064Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames\n2026-04-23T10:10:45.302375Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.7MB → 1.7MB (2.2x), 21 JPEGs deleted\n2026-04-23T10:10:47.110830Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 4.4MB → 0.6MB (7.8x), 17 JPEGs deleted\n2026-04-23T10:12:18.002465Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7144568667011834365, trigger=click)\n2026-04-23T10:13:16.229637Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3362537224271461493, trigger=visual_change)\n2026-04-23T10:13:20.127210Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3362537224271461493, trigger=visual_change)\n2026-04-23T10:15:43.498044Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-602531024127880156, trigger=visual_change)\n2026-04-23T10:15:46.873827Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-602531024127880156, trigger=visual_change)\n2026-04-23T10:15:49.085137Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 32 eligible frames\n2026-04-23T10:15:49.496235Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-602531024127880156, trigger=visual_change)\n2026-04-23T10:15:50.519319Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.0MB → 0.9MB (3.3x), 17 JPEGs deleted\n2026-04-23T10:15:51.657703Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 3.4MB → 0.5MB (6.7x), 13 JPEGs deleted\n2026-04-23T10:15:53.186964Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-602531024127880156, trigger=visual_change)\n2026-04-23T10:15:55.743993Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-602531024127880156, trigger=visual_change)\n2026-04-23T10:16:10.260016Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7730332891388508974, trigger=visual_change)\n2026-04-23T10:16:19.398464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5862100523266843105, trigger=visual_change)\n2026-04-23T10:16:23.686689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5862100523266843105, trigger=visual_change)\n2026-04-23T10:16:27.662719Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5862100523266843105, trigger=visual_change)\n2026-04-23T10:16:34.159786Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5862100523266843105, trigger=visual_change)\n2026-04-23T10:17:00.356336Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5862100523266843105, trigger=visual_change)\n2026-04-23T10:17:22.481007Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3265723714621232205, trigger=visual_change)\n2026-04-23T10:17:29.195939Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3265723714621232205, trigger=visual_change)\n2026-04-23T10:17:47.685112Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)\n2026-04-23T10:17:51.199158Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)\n2026-04-23T10:17:58.199222Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)\n2026-04-23T10:18:06.327777Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)\n2026-04-23T10:18:13.175283Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)\n2026-04-23T10:18:39.739176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)\n2026-04-23T10:19:27.720698Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)\n2026-04-23T10:19:31.148096Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)\n2026-04-23T10:19:35.991910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)\n2026-04-23T10:19:56.855761Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)\n2026-04-23T10:20:03.521058Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)\n2026-04-23T10:20:10.069690Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)\n2026-04-23T10:20:18.117006Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)\n2026-04-23T10:20:54.473088Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=27 elapsed=2.810096209s\n2026-04-23T10:20:54.473356Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 27 eligible frames\n2026-04-23T10:20:56.920972Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.2MB → 0.9MB (2.6x), 14 JPEGs deleted\n2026-04-23T10:20:58.678464Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 2.5MB → 0.8MB (3.0x), 11 JPEGs deleted\n2026-04-23T10:23:10.727426Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3844820439140861821, trigger=visual_change)\n2026-04-23T10:25:16.468416Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T10:25:32.507777Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T10:26:05.910946Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=33 elapsed=7.132200208s\n2026-04-23T10:26:05.912569Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 33 eligible frames\n2026-04-23T10:26:09.921886Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.0MB → 1.2MB (2.5x), 18 JPEGs deleted\n2026-04-23T10:26:13.670275Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.6MB → 0.9MB (3.0x), 13 JPEGs deleted\n2026-04-23T10:26:20.034712Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=click)\n2026-04-23T10:26:22.436991Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=click)\n2026-04-23T10:26:25.816727Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:27:46.056157Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1615606372458852745, trigger=click)\n2026-04-23T10:28:05.117587Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:28:16.307383Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:28:22.684004Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:28:39.022530Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:28:44.950116Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:28:50.090325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:28:52.144212Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:28:55.229550Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=click)\n2026-04-23T10:28:59.714370Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=click)\n2026-04-23T10:29:08.010841Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=click)\n2026-04-23T10:29:11.877274Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=click)\n2026-04-23T10:29:15.515889Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=click)\n2026-04-23T10:29:19.052095Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=click)\n2026-04-23T10:29:21.109938Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=click)\n2026-04-23T10:29:28.551159Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:29:30.947483Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:29:38.350095Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:29:51.477755Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:29:56.846851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:30:02.584960Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:30:06.779849Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:30:18.311444Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:30:22.665242Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:30:29.333028Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:30:37.983139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:30:48.829636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=click)\n2026-04-23T10:30:59.474314Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3712905987097609358, trigger=visual_change)\n2026-04-23T10:31:16.115641Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=34 elapsed=1.523826083s\n2026-04-23T10:31:16.115774Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 34 eligible frames\n2026-04-23T10:31:19.674413Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 3.4MB → 2.0MB (1.7x), 19 JPEGs deleted\n2026-04-23T10:31:20.281876Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:31:21.222414Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 3.4MB → 0.8MB (4.5x), 13 JPEGs deleted\n2026-04-23T10:31:30.589390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:31:31.649068Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:31:34.542890Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:31:35.913592Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:31:42.222598Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:31:46.314096Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:31:56.457995Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:32:02.440693Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=click)\n2026-04-23T10:32:11.844302Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=9, grace=300s)\n2026-04-23T10:36:21.778297Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 34 eligible frames\n2026-04-23T10:36:23.408803Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 3.2MB → 1.6MB (2.1x), 19 JPEGs deleted\n2026-04-23T10:36:24.427188Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 3.4MB → 0.7MB (4.8x), 13 JPEGs deleted\n2026-04-23T10:37:15.245266Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Idle (timeout=300s, app=Firefox, id=9)\n2026-04-23T10:37:15.499978Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting ended (id=9)\n2026-04-23T10:39:08.136849Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7072094695368023128, trigger=visual_change)\n2026-04-23T10:40:10.173692Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5626541066854626210, trigger=visual_change)\n2026-04-23T10:41:03.187335Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6908211675272154683, trigger=visual_change)\n2026-04-23T10:41:27.801144Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=32 elapsed=3.230263875s\n2026-04-23T10:41:27.801229Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 32 eligible frames\n2026-04-23T10:41:30.240257Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.7MB → 1.1MB (2.4x), 17 JPEGs deleted\n2026-04-23T10:41:31.414104Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 3.3MB → 1.1MB (3.1x), 13 JPEGs deleted\n2026-04-23T10:43:59.795473Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:44:00.574274Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:44:03.353223Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=visual_change)\n2026-04-23T10:44:06.333413Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=visual_change)\n2026-04-23T10:44:15.554031Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:44:16.272856Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:44:36.868831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=visual_change)\n2026-04-23T10:44:52.509317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=visual_change)\n2026-04-23T10:45:05.711036Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=visual_change)\n2026-04-23T10:45:15.149681Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:45:15.874930Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:45:18.722067Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:45:27.888960Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=visual_change)\n2026-04-23T10:45:32.102259Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:45:47.964284Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-250182447663358748, trigger=click)\n2026-04-23T10:45:57.352178Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-250182447663358748, trigger=click)\n2026-04-23T10:45:58.059330Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-250182447663358748, trigger=click)\n2026-04-23T10:46:00.786122Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-250182447663358748, trigger=click)\n2026-04-23T10:46:01.515587Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-250182447663358748, trigger=click)\n2026-04-23T10:46:32.335524Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 34 eligible frames\n2026-04-23T10:46:33.454412Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 1.3MB → 0.3MB (4.3x), 15 JPEGs deleted\n2026-04-23T10:46:35.185172Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 4.4MB → 0.8MB (5.1x), 17 JPEGs deleted\n2026-04-23T10:49:51.424053Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:49:52.278022Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:50:06.945403Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=visual_change)\n2026-04-23T10:50:20.071306Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:50:27.322330Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:50:28.025501Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:50:31.361324Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:50:32.067598Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:50:43.957181Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:50:49.116814Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:50:49.902205Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:50:52.787071Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:50:55.600444Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:50:56.613411Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:51:01.606653Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=visual_change)\n2026-04-23T10:51:36.294219Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames\n2026-04-23T10:51:37.139478Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.9MB → 0.1MB (8.1x), 10 JPEGs deleted\n2026-04-23T10:51:37.977586Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 2.4MB → 0.4MB (5.6x), 9 JPEGs deleted\n2026-04-23T10:53:10.914762Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5094416737894467752, trigger=click)\n2026-04-23T10:53:46.764312Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5492569374489755072, trigger=click)\n2026-04-23T10:53:47.493963Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5492569374489755072, trigger=click)\n2026-04-23T10:55:50.508246Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9185031867676948653, trigger=click)\n2026-04-23T10:56:18.190631Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8265869039182172474, trigger=visual_change)\n2026-04-23T10:56:21.391253Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8265869039182172474, trigger=visual_change)\n2026-04-23T10:56:44.441379Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=33 elapsed=6.451315834s\n2026-04-23T10:56:44.441894Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 33 eligible frames\n2026-04-23T10:56:46.435494Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 1.6MB → 0.1MB (14.8x), 17 JPEGs deleted\n2026-04-23T10:56:47.618773Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 3.5MB → 1.0MB (3.6x), 14 JPEGs deleted\n2026-04-23T10:56:48.429385Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3009288458992913716, trigger=visual_change)\n2026-04-23T10:56:55.377427Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3009288458992913716, trigger=visual_change)\n2026-04-23T10:56:58.331194Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3009288458992913716, trigger=visual_change)\n2026-04-23T10:57:31.580363Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=164293696523982731, trigger=visual_change)\n2026-04-23T10:57:37.142409Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=164293696523982731, trigger=visual_change)\n2026-04-23T11:01:54.879662Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=43 elapsed=6.651773875s\n2026-04-23T11:01:54.879780Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 43 eligible frames\n2026-04-23T11:01:56.181324Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 2.1MB → 0.5MB (4.0x), 20 JPEGs deleted\n2026-04-23T11:01:57.821885Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 4.6MB → 1.2MB (4.0x), 21 JPEGs deleted\n2026-04-23T11:05:34.805879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4133405882569027308, trigger=click)\n2026-04-23T11:05:42.692507Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-792819002159032212, trigger=click)\n2026-04-23T11:05:45.195836Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-792819002159032212, trigger=click)\n2026-04-23T11:06:58.003581Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 56 eligible frames\n2026-04-23T11:07:01.998524Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 4.2MB → 2.0MB (2.1x), 27 JPEGs deleted\n2026-04-23T11:07:04.632834Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 6.1MB → 1.2MB (5.2x), 27 JPEGs deleted\n2026-04-23T11:08:29.041425Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=811120582590877593, trigger=click)\n2026-04-23T11:11:26.078346Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=811120582590877593, trigger=click)\n2026-04-23T11:11:26.826746Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=811120582590877593, trigger=click)\n2026-04-23T11:11:29.736291Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=811120582590877593, trigger=click)\n2026-04-23T11:11:30.502898Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=811120582590877593, trigger=click)\n2026-04-23T11:11:33.284639Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=811120582590877593, trigger=click)\n2026-04-23T11:11:34.732219Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=811120582590877593, trigger=click)\n2026-04-23T11:11:36.846175Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=811120582590877593, trigger=click)\n2026-04-23T11:11:47.161668Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=811120582590877593, trigger=visual_change)\n2026-04-23T11:11:51.463126Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=811120582590877593, trigger=click)\n2026-04-23T11:11:55.190182Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=811120582590877593, trigger=click)\n2026-04-23T11:11:58.250612Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=811120582590877593, trigger=click)\n2026-04-23T11:11:58.984195Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=811120582590877593, trigger=click)\n2026-04-23T11:12:07.186907Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8190951420737299430, trigger=visual_change)\n2026-04-23T11:12:10.805150Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=28 elapsed=6.153365375s\n2026-04-23T11:12:10.806451Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames\n2026-04-23T11:12:12.869531Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.7MB → 1.2MB (2.2x), 16 JPEGs deleted\n2026-04-23T11:12:14.462884Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.2MB → 0.4MB (5.9x), 10 JPEGs deleted\n2026-04-23T11:14:59.283313Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-962688942467523245, trigger=click)\n2026-04-23T11:14:59.996111Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-962688942467523245, trigger=click)\n2026-04-23T11:15:52.562512Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4085483410823602662, trigger=click)\n2026-04-23T11:16:10.556556Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-680298114769977367, trigger=click)\n2026-04-23T11:16:44.987984Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-781142721963066587, trigger=click)\n2026-04-23T11:17:15.717626Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=34 elapsed=1.192290209s\n2026-04-23T11:17:15.717877Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 34 eligible frames\n2026-04-23T11:17:16.801524Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 1.7MB → 0.3MB (6.4x), 14 JPEGs deleted\n2026-04-23T11:17:18.950114Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 4.0MB → 0.9MB (4.3x), 18 JPEGs deleted\n2026-04-23T11:22:21.353046Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=27 elapsed=2.391216916s\n2026-04-23T11:22:21.353161Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 27 eligible frames\n2026-04-23T11:22:22.204810Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.6MB → 0.2MB (7.8x), 13 JPEGs deleted\n2026-04-23T11:22:23.352237Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.7MB → 1.1MB (2.5x), 12 JPEGs deleted\n2026-04-23T11:22:51.641783Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5591071779487381740, trigger=visual_change)\n2026-04-23T11:24:42.126313Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3622496340535697523, trigger=click)\n2026-04-23T11:27:16.328827Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3622496340535697523, trigger=click)\n2026-04-23T11:27:17.062717Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3622496340535697523, trigger=click)\n2026-04-23T11:27:20.131333Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3622496340535697523, trigger=visual_change)\n2026-04-23T11:27:27.263965Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=32 elapsed=2.915186083s\n2026-04-23T11:27:27.264345Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 32 eligible frames\n2026-04-23T11:27:29.317049Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.1MB → 0.6MB (3.5x), 16 JPEGs deleted\n2026-04-23T11:27:31.637712Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 3.0MB → 0.8MB (3.8x), 14 JPEGs deleted\n2026-04-23T11:29:03.406489Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1491366973306919482, trigger=visual_change)\n2026-04-23T11:29:37.371120Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1491366973306919482, trigger=click)\n2026-04-23T11:29:38.828999Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1491366973306919482, trigger=click)\n2026-04-23T11:30:05.594417Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7420299184765789117, trigger=click)\n2026-04-23T11:30:10.415695Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7420299184765789117, trigger=click)\n2026-04-23T11:30:37.438406Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Firefox, signals=2)\n2026-04-23T11:30:47.134756Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Firefox, signals=2, browser=true)\n2026-04-23T11:30:47.150842Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=10, app=Firefox, title=None)\n2026-04-23T11:32:52.795697Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=click, monitor=1) — DB pool may be saturated\n2026-04-23T11:32:54.063047Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=22.405129875s\n2026-04-23T11:32:54.065127Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-23T11:32:56.659956Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.7MB → 0.3MB (5.8x), 10 JPEGs deleted\n2026-04-23T11:32:58.390326Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.1MB → 0.4MB (5.1x), 10 JPEGs deleted\n2026-04-23T11:32:58.454323Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=click, monitor=2) — DB pool may be saturated\n2026-04-23T11:33:03.630685Z INFO screenpipe_engine::event_driven_capture: monitor 2 capture recovered after 1 consecutive errors\n2026-04-23T11:33:03.698376Z INFO screenpipe_engine::event_driven_capture: monitor 1 capture recovered after 1 consecutive errors\n2026-04-23T11:34:08.146813Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=visual_change, monitor=1) — DB pool may be saturated\n2026-04-23T11:34:19.115606Z INFO screenpipe_engine::event_driven_capture: monitor 1 capture recovered after 1 consecutive errors\n2026-04-23T11:38:06.413998Z WARN sqlx::query: summary=\"PRAGMA wal_checkpoint(TRUNCATE)\" db.statement=\"\" rows_affected=0 rows_returned=1 elapsed=5.320189792s\n2026-04-23T11:38:06.417026Z WARN screenpipe_db::db: wal checkpoint: busy (could not truncate), 1136 pages in WAL\n2026-04-23T11:38:06.480369Z WARN sqlx::query: summary=\"BEGIN IMMEDIATE\" db.statement=\"\" rows_affected=1 rows_returned=0 elapsed=3.645234084s\n2026-04-23T11:38:12.229580Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=26 elapsed=13.80812125s\n2026-04-23T11:38:12.232573Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 26 eligible frames\n2026-04-23T11:38:15.382662Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.9MB → 0.5MB (3.8x), 11 JPEGs deleted\n2026-04-23T11:38:16.795794Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=visual_change, monitor=1) — DB pool may be saturated\n2026-04-23T11:38:19.817599Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.7MB → 0.6MB (4.2x), 13 JPEGs deleted\n2026-04-23T11:38:24.993308Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=visual_change, monitor=2) — DB pool may be saturated\n2026-04-23T11:38:30.141938Z INFO screenpipe_engine::event_driven_capture: monitor 1 capture recovered after 1 consecutive errors\n2026-04-23T11:38:34.776814Z INFO screenpipe_engine::event_driven_capture: monitor 2 capture recovered after 1 consecutive errors\n2026-04-23T11:40:55.703155Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5781407336396073109, trigger=visual_change)\n2026-04-23T11:41:02.662314Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5781407336396073109, trigger=visual_change)\n2026-04-23T11:41:09.390136Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5781407336396073109, trigger=visual_change)\n2026-04-23T11:41:16.161715Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5781407336396073109, trigger=visual_change)\n2026-04-23T11:41:37.205648Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5781407336396073109, trigger=visual_change)\n2026-04-23T11:42:04.257036Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5781407336396073109, trigger=visual_change)\n2026-04-23T11:42:21.214633Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6679997250984875896, trigger=visual_change)\n2026-04-23T11:42:24.525053Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6679997250984875896, trigger=visual_change)\n2026-04-23T11:42:29.877589Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6679997250984875896, trigger=visual_change)\n2026-04-23T11:42:33.802238Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6679997250984875896, trigger=visual_change)\n2026-04-23T11:42:36.923509Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6679997250984875896, trigger=visual_change)\n2026-04-23T11:42:57.455576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6679997250984875896, trigger=visual_change)\n2026-04-23T11:43:12.031547Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=951548071599591969, trigger=visual_change)\n2026-04-23T11:43:18.874182Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=951548071599591969, trigger=visual_change)\n2026-04-23T11:43:24.247849Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=951548071599591969, trigger=visual_change)\n2026-04-23T11:43:26.259182Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=49 elapsed=6.405864s\n2026-04-23T11:43:26.263056Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 49 eligible frames\n2026-04-23T11:43:32.316690Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 3.7MB → 1.8MB (2.0x), 23 JPEGs deleted\n2026-04-23T11:43:34.974978Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=951548071599591969, trigger=visual_change)\n2026-04-23T11:43:36.047883Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.3MB → 1.5MB (2.9x), 24 JPEGs deleted\n2026-04-23T11:43:49.116309Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=951548071599591969, trigger=visual_change)\n2026-04-23T11:43:52.940018Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=951548071599591969, trigger=visual_change)\n2026-04-23T11:43:56.539135Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=951548071599591969, trigger=visual_change)\n2026-04-23T11:44:11.233290Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4079677798565982376, trigger=visual_change)\n2026-04-23T11:45:03.923694Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=click, monitor=2) — DB pool may be saturated\n2026-04-23T11:45:18.638512Z INFO screenpipe_engine::event_driven_capture: monitor 2 capture recovered after 1 consecutive errors\n2026-04-23T11:45:27.824824Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=click, monitor=1) — DB pool may be saturated\n2026-04-23T11:45:41.576372Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=click, monitor=2) — DB pool may be saturated\n2026-04-23T11:45:44.291896Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=click, monitor=1) — DB pool may be saturated\n2026-04-23T11:46:03.257280Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=click, monitor=1) — DB pool may be saturated\n2026-04-23T11:46:12.724398Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=visual_change, monitor=2) — DB pool may be saturated\n2026-04-23T11:46:22.727197Z INFO screenpipe_engine::event_driven_capture: monitor 1 capture recovered after 3 consecutive errors\n2026-04-23T11:46:24.228006Z INFO screenpipe_engine::event_driven_capture: monitor 2 capture recovered after 2 consecutive errors\n2026-04-23T11:46:40.390580Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7643951286516936585, trigger=visual_change)\n2026-04-23T11:46:49.248747Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7643951286516936585, trigger=visual_change)\n2026-04-23T11:46:55.471031Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7643951286516936585, trigger=visual_change)\n2026-04-23T11:47:02.336575Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7643951286516936585, trigger=visual_change)\n2026-04-23T11:48:17.252755Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7643951286516936585, trigger=visual_change)\n2026-04-23T11:48:25.013997Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7643951286516936585, trigger=visual_change)\n2026-04-23T11:48:53.059242Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=56 elapsed=13.220216708s\n2026-04-23T11:48:53.065643Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 56 eligible frames\n2026-04-23T11:48:58.527594Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 4.7MB → 2.2MB (2.1x), 30 JPEGs deleted\n2026-04-23T11:49:05.857012Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.3MB → 1.6MB (2.7x), 24 JPEGs deleted\n2026-04-23T11:49:06.658338Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5995459936453258264, trigger=visual_change)\n2026-04-23T11:49:28.247468Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5995459936453258264, trigger=visual_change)\n2026-04-23T11:49:46.108336Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4001297392414942723, trigger=visual_change)\n2026-04-23T11:49:53.084297Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4001297392414942723, trigger=visual_change)\n2026-04-23T11:49:56.028797Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4001297392414942723, trigger=click)\n2026-04-23T11:50:37.287127Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2527600923706712259, trigger=visual_change)\n2026-04-23T11:51:12.946650Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1489108089542937642, trigger=visual_change)\n2026-04-23T11:51:19.338386Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1489108089542937642, trigger=visual_change)\n2026-04-23T11:52:16.352383Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8163356110886780433, trigger=visual_change)\n2026-04-23T11:53:55.890568Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5293025605401136867, trigger=click)\n2026-04-23T11:54:09.640558Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=41 elapsed=3.460436583s\n2026-04-23T11:54:09.640693Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 41 eligible frames\n2026-04-23T11:54:13.152878Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 3.3MB → 1.5MB (2.2x), 22 JPEGs deleted\n2026-04-23T11:54:15.204535Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.9MB → 1.2MB (3.4x), 17 JPEGs deleted\n2026-04-23T11:58:11.876342Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=10, grace=300s)\n2026-04-23T11:59:15.385310Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames\n2026-04-23T11:59:16.921656Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.6MB → 0.6MB (2.8x), 13 JPEGs deleted\n2026-04-23T11:59:18.047335Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.2MB → 1.0MB (2.3x), 10 JPEGs deleted\n2026-04-23T12:01:17.114786Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7823854956395915880, trigger=click)\n/Volumes/Work/2026/User\\ Pilot\\ introduction\\ Adi\\ 2026-04-23.mp4 2026-04-23T12:02:09.213929Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4997183725580178172, trigger=visual_change)\n2026-04-23T12:02:12.305485Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4997183725580178172, trigger=visual_change)\n2026-04-23T12:02:22.392607Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4428370940474457947, trigger=visual_change)\n2026-04-23T12:02:23.534043Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4428370940474457947, trigger=click)\n2026-04-23T12:02:25.338561Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4428370940474457947, trigger=click)\n2026-04-23T12:02:26.896633Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4428370940474457947, trigger=click)\n2026-04-23T12:03:14.422791Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Idle (timeout=300s, app=Firefox, id=10)\n2026-04-23T12:03:14.697666Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting ended (id=10)\n2026-04-23T12:04:18.652471Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 62 eligible frames\n2026-04-23T12:04:22.291047Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 4.6MB → 1.6MB (3.0x), 36 JPEGs deleted\n2026-04-23T12:04:25.831665Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.8MB → 1.1MB (4.3x), 24 JPEGs deleted\n2026-04-23T12:04:36.186162Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8094579906910625439, trigger=click)","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.031083776,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.30136302,"top":1.0,"width":0.031083776,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.30335772,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.3324468,"top":1.0,"width":0.031083776,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.33444148,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"✳ Build full day activity summary from Screenpipe (claude)","depth":2,"bounds":{"left":0.36353058,"top":1.0,"width":0.031083776,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.36552528,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.39461437,"top":1.0,"width":0.031083776,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.39660904,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.42569813,"top":1.0,"width":0.031083776,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.42769283,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.45678192,"top":1.0,"width":0.030917553,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.4587766,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"ec2-user@ip-10-30-159-186:~ (-zsh)","depth":2,"bounds":{"left":0.48769948,"top":1.0,"width":0.030917553,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.48969415,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.5049867,"top":1.0,"width":0.01861702,"height":-0.023144484},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"screenpipe\" — 95✕45","depth":1,"bounds":{"left":0.37400267,"top":1.0,"width":0.04886968,"height":-0.02394259},"role_description":"text"}]...
|
3112232738136535939
|
986754612592747899
|
visual_change
|
accessibility
|
NULL
|
2026-04-23T09:13:09.380863Z INFO sck_rs::stream_m 2026-04-23T09:13:09.380863Z INFO sck_rs::stream_manager: invalidated persistent stream for display 2
2026-04-23T09:13:32.742255Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)
2026-04-23T09:14:01.764079Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4702465002163205464, trigger=click)
2026-04-23T09:14:04.223149Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4702465002163205464, trigger=visual_change)
2026-04-23T09:14:06.953796Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=147 elapsed=6.3719465s
2026-04-23T09:14:06.954006Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 147 eligible frames
2026-04-23T09:14:12.566935Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 70 frames, 10.3MB → 2.7MB (3.8x), 70 JPEGs deleted
2026-04-23T09:14:17.358704Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 75 frames, 9.6MB → 3.0MB (3.2x), 75 JPEGs deleted
2026-04-23T09:15:47.544198Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3660881845293713510, trigger=visual_change)
2026-04-23T09:15:50.997492Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3660881845293713510, trigger=click)
2026-04-23T09:15:51.600725Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3660881845293713510, trigger=click)
2026-04-23T09:15:55.723800Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3660881845293713510, trigger=click)
2026-04-23T09:15:56.933987Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3660881845293713510, trigger=visual_change)
2026-04-23T09:15:59.012409Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3660881845293713510, trigger=visual_change)
2026-04-23T09:16:49.882963Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3759145274440377841, trigger=visual_change)
2026-04-23T09:16:51.405936Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3759145274440377841, trigger=click)
2026-04-23T09:16:52.823011Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3759145274440377841, trigger=click)
2026-04-23T09:16:54.220304Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3759145274440377841, trigger=click)
2026-04-23T09:16:54.887021Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3759145274440377841, trigger=click)
2026-04-23T09:16:58.589203Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3759145274440377841, trigger=visual_change)
2026-04-23T09:18:05.879649Z WARN screenpipe_db::db: wal checkpoint: busy (could not truncate), 5054 pages in WAL
2026-04-23T09:18:05.879619Z WARN sqlx::query: summary="PRAGMA wal_checkpoint(TRUNCATE)" db.statement="" rows_affected=0 rows_returned=1 elapsed=5.220339167s
2026-04-23T09:19:24.740122Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=2 elapsed=7.381061833s
2026-04-23T09:19:24.740850Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
2026-04-23T09:19:36.514406Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2079049776495123607, trigger=click)
2026-04-23T09:24:26.477446Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=11 elapsed=1.729545666s
2026-04-23T09:24:26.477540Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 11 eligible frames
2026-04-23T09:24:27.316363Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 5 frames, 1.4MB → 1.4MB (1.0x), 5 JPEGs deleted
2026-04-23T09:24:27.966623Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 6 frames, 0.6MB → 0.2MB (2.7x), 6 JPEGs deleted
2026-04-23T09:24:42.606557Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:26:03.160247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7786631749263421517, trigger=click)
2026-04-23T09:27:26.154494Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:27:34.433056Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:28:06.713361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:28:33.527151Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5209591986308457575, trigger=click)
2026-04-23T09:28:34.249353Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5209591986308457575, trigger=click)
2026-04-23T09:28:36.237199Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5209591986308457575, trigger=click)
2026-04-23T09:28:42.253183Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8747303508868961364, trigger=click)
2026-04-23T09:28:48.282686Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:28:50.613134Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:28:51.314522Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:29:31.961577Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=67 elapsed=3.996031s
2026-04-23T09:29:31.961670Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 67 eligible frames
2026-04-23T09:29:34.332658Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 5.8MB → 2.1MB (2.8x), 29 JPEGs deleted
2026-04-23T09:29:38.223511Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 7.4MB → 3.8MB (2.0x), 36 JPEGs deleted
2026-04-23T09:30:34.230785Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:30:39.665086Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:30:40.299751Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:30:45.663893Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:30:51.622228Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:30:52.321014Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:31:15.021588Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:31:15.691601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:31:17.946692Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:31:18.653547Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:32:17.960360Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:32:24.051490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:32:29.442560Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:32:30.131038Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:32:32.452540Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:32:36.585069Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:32:39.322258Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:33:18.072421Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:33:18.766929Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:33:22.098409Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:33:22.782084Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:34:27.313290Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:34:38.542722Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 89 eligible frames
2026-04-23T09:34:41.684595Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 38 frames, 5.6MB → 0.7MB (7.5x), 38 JPEGs deleted
2026-04-23T09:34:44.933963Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 10.6MB → 3.8MB (2.8x), 49 JPEGs deleted
2026-04-23T09:37:57.963204Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:37:58.697604Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:38:02.124214Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:38:53.190171Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:38:59.279885Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:39:02.308536Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:39:36.189861Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:39:49.122120Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=50 elapsed=4.188474542s
2026-04-23T09:39:49.122232Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 50 eligible frames
2026-04-23T09:39:51.115025Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 2.9MB → 0.3MB (9.4x), 24 JPEGs deleted
2026-04-23T09:39:53.096763Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 5.0MB → 2.3MB (2.2x), 24 JPEGs deleted
2026-04-23T09:40:57.095660Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:40:58.430714Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:41:01.130926Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:41:01.840278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:41:04.072034Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:41:09.252541Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:41:09.972092Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:41:12.313228Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:41:13.696141Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:41:15.723102Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:41:16.452657Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:42:46.382248Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:43:42.993741Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6469703639183038647, trigger=visual_change)
2026-04-23T09:44:17.245560Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7072623502562616708, trigger=visual_change)
2026-04-23T09:44:56.342637Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=21 elapsed=2.944921084s
2026-04-23T09:44:56.343212Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames
2026-04-23T09:44:57.216675Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.2MB → 0.2MB (6.9x), 10 JPEGs deleted
2026-04-23T09:44:58.298212Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 2.1MB → 0.7MB (2.8x), 9 JPEGs deleted
2026-04-23T09:45:10.982752Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Firefox, signals=2)
2026-04-23T09:45:16.376695Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Firefox, signals=2, browser=true)
2026-04-23T09:45:16.378791Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=9, app=Firefox, title=None)
2026-04-23T09:50:01.989691Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=23 elapsed=3.688976042s
2026-04-23T09:50:01.989962Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 23 eligible frames
2026-04-23T09:50:03.098505Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.3MB → 0.2MB (7.4x), 11 JPEGs deleted
2026-04-23T09:50:04.627741Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.4MB → 0.8MB (3.1x), 10 JPEGs deleted
2026-04-23T09:50:07.629323Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4672421675042950776, trigger=click)
2026-04-23T09:52:11.400798Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:52:15.346773Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:52:18.174934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:52:22.107623Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:52:32.020499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:53:33.890239Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:53:35.304629Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:53:58.176084Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:54:14.248454Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:54:18.287472Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:54:20.289467Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:54:24.904239Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:54:27.981243Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:54:29.172367Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:54:30.192245Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:54:31.161165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:55:11.821088Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=36 elapsed=7.192436875s
2026-04-23T09:55:11.821248Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 36 eligible frames
2026-04-23T09:55:13.532739Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 2.3MB → 0.5MB (5.0x), 19 JPEGs deleted
2026-04-23T09:55:16.625152Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 3.3MB → 1.4MB (2.4x), 15 JPEGs deleted
2026-04-23T09:56:01.584150Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:56:24.887186Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3078857793355977422, trigger=click)
2026-04-23T09:56:32.005363Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3078857793355977422, trigger=visual_change)
2026-04-23T09:56:41.374227Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3078857793355977422, trigger=visual_change)
2026-04-23T09:56:54.666839Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3078857793355977422, trigger=click)
2026-04-23T09:57:06.486753Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3593283938725328408, trigger=visual_change)
2026-04-23T09:57:14.384178Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5341343601501307187, trigger=visual_change)
2026-04-23T09:57:32.721765Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5341343601501307187, trigger=visual_change)
2026-04-23T09:59:03.111441Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:59:18.292184Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:59:24.203906Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:59:28.763273Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:59:36.189282Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T10:00:16.817081Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 72 eligible frames
2026-04-23T10:00:21.637421Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 45 frames, 7.5MB → 3.5MB (2.1x), 45 JPEGs deleted
2026-04-23T10:00:24.683587Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.4MB → 1.4MB (3.2x), 25 JPEGs deleted
2026-04-23T10:00:40.573974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6464745230001326344, trigger=visual_change)
2026-04-23T10:02:52.495992Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8171437999531431641, trigger=click)
2026-04-23T10:02:53.374393Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8171437999531431641, trigger=click)
2026-04-23T10:03:37.373391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1961095499263201650, trigger=click)
2026-04-23T10:04:58.338820Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T10:05:04.300061Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T10:05:10.114887Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T10:05:16.104422Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T10:05:20.754499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T10:05:25.933831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T10:05:30.717296Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=45 elapsed=5.043796209s
2026-04-23T10:05:30.717708Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 45 eligible frames
2026-04-23T10:05:33.129158Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.5MB → 1.3MB (2.8x), 21 JPEGs deleted
2026-04-23T10:05:35.719261Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 3.9MB → 1.6MB (2.5x), 22 JPEGs deleted
2026-04-23T10:06:54.427408Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T10:06:58.568476Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T10:07:35.294176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T10:07:36.671700Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T10:07:46.281682Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T10:10:42.001975Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=40 elapsed=6.278440792s
2026-04-23T10:10:42.002064Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames
2026-04-23T10:10:45.302375Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.7MB → 1.7MB (2.2x), 21 JPEGs deleted
2026-04-23T10:10:47.110830Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 4.4MB → 0.6MB (7.8x), 17 JPEGs deleted
2026-04-23T10:12:18.002465Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7144568667011834365, trigger=click)
2026-04-23T10:13:16.229637Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3362537224271461493, trigger=visual_change)
2026-04-23T10:13:20.127210Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3362537224271461493, trigger=visual_change)
2026-04-23T10:15:43.498044Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-602531024127880156, trigger=visual_change)
2026-04-23T10:15:46.873827Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-602531024127880156, trigger=visual_change)
2026-04-23T10:15:49.085137Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 32 eligible frames
2026-04-23T10:15:49.496235Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-602531024127880156, trigger=visual_change)
2026-04-23T10:15:50.519319Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.0MB → 0.9MB (3.3x), 17 JPEGs deleted
2026-04-23T10:15:51.657703Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 3.4MB → 0.5MB (6.7x), 13 JPEGs deleted
2026-04-23T10:15:53.186964Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-602531024127880156, trigger=visual_change)
2026-04-23T10:15:55.743993Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-602531024127880156, trigger=visual_change)
2026-04-23T10:16:10.260016Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7730332891388508974, trigger=visual_change)
2026-04-23T10:16:19.398464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5862100523266843105, trigger=visual_change)
2026-04-23T10:16:23.686689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5862100523266843105, trigger=visual_change)
2026-04-23T10:16:27.662719Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5862100523266843105, trigger=visual_change)
2026-04-23T10:16:34.159786Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5862100523266843105, trigger=visual_change)
2026-04-23T10:17:00.356336Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5862100523266843105, trigger=visual_change)
2026-04-23T10:17:22.481007Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3265723714621232205, trigger=visual_change)
2026-04-23T10:17:29.195939Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3265723714621232205, trigger=visual_change)
2026-04-23T10:17:47.685112Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)
2026-04-23T10:17:51.199158Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)
2026-04-23T10:17:58.199222Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)
2026-04-23T10:18:06.327777Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)
2026-04-23T10:18:13.175283Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)
2026-04-23T10:18:39.739176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)
2026-04-23T10:19:27.720698Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)
2026-04-23T10:19:31.148096Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)
2026-04-23T10:19:35.991910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)
2026-04-23T10:19:56.855761Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)
2026-04-23T10:20:03.521058Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)
2026-04-23T10:20:10.069690Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)
2026-04-23T10:20:18.117006Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)
2026-04-23T10:20:54.473088Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=27 elapsed=2.810096209s
2026-04-23T10:20:54.473356Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 27 eligible frames
2026-04-23T10:20:56.920972Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.2MB → 0.9MB (2.6x), 14 JPEGs deleted
2026-04-23T10:20:58.678464Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 2.5MB → 0.8MB (3.0x), 11 JPEGs deleted
2026-04-23T10:23:10.727426Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3844820439140861821, trigger=visual_change)
2026-04-23T10:25:16.468416Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T10:25:32.507777Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T10:26:05.910946Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=33 elapsed=7.132200208s
2026-04-23T10:26:05.912569Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 33 eligible frames
2026-04-23T10:26:09.921886Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.0MB → 1.2MB (2.5x), 18 JPEGs deleted
2026-04-23T10:26:13.670275Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.6MB → 0.9MB (3.0x), 13 JPEGs deleted
2026-04-23T10:26:20.034712Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=click)
2026-04-23T10:26:22.436991Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=click)
2026-04-23T10:26:25.816727Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)
2026-04-23T10:27:46.056157Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1615606372458852745, trigger=click)
2026-04-23T10:28:05.117587Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)
2026-04-23T10:28:16.307383Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)
2026-04-23T10:28:22.684004Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)
2026-04-23T10:28:39.022530Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)
2026-04-23T10:28:44.950116Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)
2026-04-23T10:28:50.090325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=visual_change)
2026-04-23T10:28:52.144212Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)
2026-04-23T10:28:55.229550Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=click)
2026-04-23T10:28:59.714370Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=click)
2026-04-23T10:29:08.010841Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=click)
2026-04-23T10:29:11.877274Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=click)
2026-04-23T10:29:15.515889Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=click)
2026-04-23T10:29:19.052095Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=click)
2026-04-23T10:29:21.109938Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=click)
2026-04-23T10:29:28.551159Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)
2026-04-23T10:29:30.947483Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=visual_change)
2026-04-23T10:29:38.350095Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)
2026-04-23T10:29:51.477755Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)
2026-04-23T10:29:56.846851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)
2026-04-23T10:30:02.584960Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)
2026-04-23T10:30:06.779849Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)
2026-04-23T10:30:18.311444Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)
2026-04-23T10:30:22.665242Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)
2026-04-23T10:30:29.333028Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)
2026-04-23T10:30:37.983139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)
2026-04-23T10:30:48.829636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=click)
2026-04-23T10:30:59.474314Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3712905987097609358, trigger=visual_change)
2026-04-23T10:31:16.115641Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=34 elapsed=1.523826083s
2026-04-23T10:31:16.115774Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 34 eligible frames
2026-04-23T10:31:19.674413Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 3.4MB → 2.0MB (1.7x), 19 JPEGs deleted
2026-04-23T10:31:20.281876Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)
2026-04-23T10:31:21.222414Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 3.4MB → 0.8MB (4.5x), 13 JPEGs deleted
2026-04-23T10:31:30.589390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=visual_change)
2026-04-23T10:31:31.649068Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)
2026-04-23T10:31:34.542890Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=visual_change)
2026-04-23T10:31:35.913592Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)
2026-04-23T10:31:42.222598Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)
2026-04-23T10:31:46.314096Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=visual_change)
2026-04-23T10:31:56.457995Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)
2026-04-23T10:32:02.440693Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=click)
2026-04-23T10:32:11.844302Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=9, grace=300s)
2026-04-23T10:36:21.778297Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 34 eligible frames
2026-04-23T10:36:23.408803Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 3.2MB → 1.6MB (2.1x), 19 JPEGs deleted
2026-04-23T10:36:24.427188Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 3.4MB → 0.7MB (4.8x), 13 JPEGs deleted
2026-04-23T10:37:15.245266Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Idle (timeout=300s, app=Firefox, id=9)
2026-04-23T10:37:15.499978Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting ended (id=9)
2026-04-23T10:39:08.136849Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7072094695368023128, trigger=visual_change)
2026-04-23T10:40:10.173692Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5626541066854626210, trigger=visual_change)
2026-04-23T10:41:03.187335Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6908211675272154683, trigger=visual_change)
2026-04-23T10:41:27.801144Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=32 elapsed=3.230263875s
2026-04-23T10:41:27.801229Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 32 eligible frames
2026-04-23T10:41:30.240257Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.7MB → 1.1MB (2.4x), 17 JPEGs deleted
2026-04-23T10:41:31.414104Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 3.3MB → 1.1MB (3.1x), 13 JPEGs deleted
2026-04-23T10:43:59.795473Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=click)
2026-04-23T10:44:00.574274Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)
2026-04-23T10:44:03.353223Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=visual_change)
2026-04-23T10:44:06.333413Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=visual_change)
2026-04-23T10:44:15.554031Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=click)
2026-04-23T10:44:16.272856Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)
2026-04-23T10:44:36.868831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=visual_change)
2026-04-23T10:44:52.509317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=visual_change)
2026-04-23T10:45:05.711036Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=visual_change)
2026-04-23T10:45:15.149681Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=click)
2026-04-23T10:45:15.874930Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)
2026-04-23T10:45:18.722067Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)
2026-04-23T10:45:27.888960Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=visual_change)
2026-04-23T10:45:32.102259Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)
2026-04-23T10:45:47.964284Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-250182447663358748, trigger=click)
2026-04-23T10:45:57.352178Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-250182447663358748, trigger=click)
2026-04-23T10:45:58.059330Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-250182447663358748, trigger=click)
2026-04-23T10:46:00.786122Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-250182447663358748, trigger=click)
2026-04-23T10:46:01.515587Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-250182447663358748, trigger=click)
2026-04-23T10:46:32.335524Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 34 eligible frames
2026-04-23T10:46:33.454412Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 1.3MB → 0.3MB (4.3x), 15 JPEGs deleted
2026-04-23T10:46:35.185172Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 4.4MB → 0.8MB (5.1x), 17 JPEGs deleted
2026-04-23T10:49:51.424053Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)
2026-04-23T10:49:52.278022Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=click)
2026-04-23T10:50:06.945403Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=visual_change)
2026-04-23T10:50:20.071306Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)
2026-04-23T10:50:27.322330Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)
2026-04-23T10:50:28.025501Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping captur...
|
74139
|
|
80535
|
2128
|
8
|
2026-04-25T14:26:17.994107+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-25/1777 /Users/lukas/.screenpipe/data/data/2026-04-25/1777127177994_m2.jpg...
|
iTerm2
|
screenpipe"
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
┌────────────────────────┬──────────────────────── ┌────────────────────────┬────────────────────────────────────┐
│ setting │ value │
├────────────────────────┼────────────────────────────────────┤
│ audio chunk duration │ 30 seconds │
│ port │ 3030 │
│ audio disabled │ true │
│ vision disabled │ false │
│ pause on DRM content │ false │
│ audio engine │ Parakeet │
│ vad engine │ Silero │
│ data directory │ /Users/lukas/.screenpipe │
│ debug mode │ false │
│ telemetry │ true │
│ use pii removal │ true │
│ use all monitors │ true │
│ ignored windows │ ["Boosteroid"] │
│ included windows │ [] │
│ cloud sync │ disabled │
│ auto-destruct pid │ 0 │
│ deepgram key │ not set │
│ api auth │ enabled │
2026-04-24T13:24:23.186334Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)
2026-04-24T13:24:23.198489Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh
│ encrypt secrets │ disabled │
│ retention days │ 14 │
├────────────────────────┼────────────────────────────────────┤
│ languages │ │
│ │ all languages │
├────────────────────────┼────────────────────────────────────┤
│ monitors │ │
│ │ id: 1 │
│ │ id: 2 │
├────────────────────────┼────────────────────────────────────┤
│ audio devices │ │
│ │ disabled │
└────────────────────────┴────────────────────────────────────┘
you are using local processing. all your data stays on your computer.
warning: telemetry is enabled. only error-level data will be sent.
to disable, use the --disable-telemetry flag.
check latest changes here: https://github.com/screenpipe/screenpipe/releases
2026-04-24T13:24:23.216198Z INFO screenpipe: starting UI event capture
2026-04-24T13:24:23.238868Z INFO screenpipe_engine::ui_recorder: Starting UI event capture
2026-04-24T13:24:23.260906Z INFO screenpipe_engine::ui_recorder: UI recording session started: 9676eafd-ea8f-4e1a-a5f1-de7bdb79c071
2026-04-24T13:24:23.260911Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)
2026-04-24T13:24:23.260972Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-23 10:24:23.260965 UTC to 2026-04-24 10:24:23.260965 UTC)
2026-04-24T13:24:23.261685Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)
2026-04-24T13:24:23.262214Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))
2026-04-24T13:24:23.273443Z INFO screenpipe_engine::server: Server listening on [IP_ADDRESS]:3030
2026-04-24T13:24:23.304240Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030
2026-04-24T13:24:23.567248Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)
2026-04-24T13:24:23.567289Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)
2026-04-24T13:24:23.567346Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)
2026-04-24T13:24:23.850835Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-04-24T13:24:23.850880Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-04-24T13:24:23.850893Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)
2026-04-24T13:24:23.850901Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)
2026-04-24T13:24:23.850941Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-04-24T13:24:25.197204Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)
2026-04-24T13:24:25.589436Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=77673, dur=103ms
2026-04-24T13:24:25.630980Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)
2026-04-24T13:24:25.652818Z INFO sck_rs::stream_manager: invalidated persistent stream for display 1
2026-04-24T13:24:26.160345Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=77674, dur=198ms
2026-04-24T13:24:27.471087Z WARN sqlx::query: summary="SELECT f.id, f.timestamp, f.offset_index, …" db.statement="\n\nSELECT\n f.id,\n f.timestamp,\n f.offset_index,\n COALESCE(\n SUBSTR(f.full_text, 1, 200),\n SUBSTR(f.accessibility_text, 1, 200),\n (\n SELECT\n SUBSTR(ot.text, 1, 200)\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as text,\n COALESCE(\n f.app_name,\n (\n SELECT\n ot.app_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as app_name,\n COALESCE(\n f.window_name,\n (\n SELECT\n ot.window_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as window_name,\n COALESCE(vc.device_name, f.device_name) as screen_device,\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\n COALESCE(vc.fps, 0.033) as chunk_fps,\n f.browser_url,\n f.machine_id\nFROM\n frames f\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\nWHERE\n f.timestamp >= ?1\n AND f.timestamp <= ?2\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\nORDER BY\n f.timestamp DESC,\n f.offset_index DESC\nLIMIT\n 10000\n" rows_affected=0 rows_returned=2758 elapsed=4.209235542s
2026-04-24T13:24:27.488504Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 2758 frame entries, coverage from 2026-04-23 10:24:23.260965 UTC
2026-04-24T13:24:56.108522Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)
2026-04-24T13:25:34.118891Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=82 elapsed=10.985025625s
2026-04-24T13:25:34.121032Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 82 eligible frames
2026-04-24T13:25:37.475066Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 6.5MB → 0.2MB (30.1x), 39 JPEGs deleted
2026-04-24T13:25:41.147418Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 41 frames, 9.1MB → 0.3MB (26.4x), 41 JPEGs deleted
2026-04-24T13:26:53.913464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3587331842305982393, trigger=click)
2026-04-24T13:30:52.310748Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=2 elapsed=11.152255s
2026-04-24T13:30:52.313747Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
2026-04-24T13:36:00.069099Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=9 elapsed=7.594933541s
2026-04-24T13:36:00.071113Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 9 eligible frames
2026-04-24T13:36:00.617576Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 4 frames, 0.3MB → 0.1MB (3.6x), 4 JPEGs deleted
2026-04-24T13:36:01.402540Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 5 frames, 1.0MB → 0.4MB (2.4x), 5 JPEGs deleted
2026-04-24T13:40:06.828525Z WARN sqlx::query: summary="BEGIN IMMEDIATE" db.statement="" rows_affected=1 rows_returned=0 elapsed=1.076759291s
2026-04-24T13:40:07.002782Z WARN sqlx::query: summary="SELECT DISTINCT app_name, window_name, …" db.statement="\n\nSELECT\n DISTINCT app_name,\n window_name,\n browser_url\nFROM\n frames\nWHERE\n timestamp > datetime('now', '-30 seconds')\n AND app_name IS NOT NULL\n AND window_name IS NOT NULL\n" rows_affected=0 rows_returned=195 elapsed=1.250257875s
2026-04-24T13:41:11.559513Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=92 elapsed=10.151735042s
2026-04-24T13:41:11.559741Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 92 eligible frames
2026-04-24T13:41:14.043784Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 2.3MB → 0.1MB (32.3x), 37 JPEGs deleted
2026-04-24T13:41:21.303349Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 53 frames, 8.7MB → 3.1MB (2.8x), 53 JPEGs deleted
2026-04-24T13:41:40.887689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7539785768983157715, trigger=click)
2026-04-24T13:42:34.136767Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3059269999432289894, trigger=click)
2026-04-24T13:42:45.942807Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3777488472456223409, trigger=click)
2026-04-24T13:43:01.921357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1871207218552190145, trigger=click)
2026-04-24T13:44:01.878037Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8495661271621520850, trigger=click)
2026-04-24T13:46:28.021146Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=40 elapsed=6.713739708s
2026-04-24T13:46:28.021348Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames
2026-04-24T13:46:29.141090Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 1.1MB → 0.1MB (17.9x), 18 JPEGs deleted
2026-04-24T13:46:31.601195Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.7MB → 2.9MB (1.6x), 20 JPEGs deleted
2026-04-24T13:51:31.692283Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames
2026-04-24T13:51:32.570330Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.0MB → 0.2MB (4.8x), 13 JPEGs deleted
2026-04-24T13:51:33.760542Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.9MB → 1.0MB (1.9x), 10 JPEGs deleted
2026-04-24T13:55:31.626192Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2977185087332333124, trigger=click)
2026-04-24T13:56:33.924925Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 105 eligible frames
2026-04-24T13:56:37.179833Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 55 frames, 5.1MB → 1.4MB (3.6x), 55 JPEGs deleted
2026-04-24T13:56:40.328768Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 48 frames, 7.6MB → 1.3MB (6.0x), 48 JPEGs deleted
2026-04-24T14:00:47.136298Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Firefox, signals=2)
2026-04-24T14:00:47.857419Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2938651853865790585, trigger=click)
2026-04-24T14:00:52.374476Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Firefox, signals=2, browser=true)
2026-04-24T14:00:52.378086Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=12, app=Firefox, title=None)
2026-04-24T14:01:40.650767Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 62 eligible frames
2026-04-24T14:01:42.431196Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 1.9MB → 0.1MB (32.0x), 30 JPEGs deleted
2026-04-24T14:01:44.259623Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 4.8MB → 0.2MB (23.8x), 30 JPEGs deleted
2026-04-24T14:06:51.687604Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=54 elapsed=7.415698459s
2026-04-24T14:06:51.691163Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 54 eligible frames
2026-04-24T14:06:53.324710Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 1.7MB → 0.1MB (29.0x), 27 JPEGs deleted
2026-04-24T14:06:54.826559Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.0MB → 0.2MB (19.9x), 25 JPEGs deleted
2026-04-24T14:11:54.984165Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 93 eligible frames
2026-04-24T14:11:57.808857Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 48 frames, 3.1MB → 0.1MB (49.5x), 48 JPEGs deleted
2026-04-24T14:12:00.396251Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 43 frames, 6.8MB → 0.2MB (33.8x), 43 JPEGs deleted
2026-04-24T14:17:06.109470Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=49 elapsed=5.652470541s
2026-04-24T14:17:06.109602Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 49 eligible frames
2026-04-24T14:17:07.677608Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 1.6MB → 0.1MB (27.0x), 25 JPEGs deleted
2026-04-24T14:17:09.097967Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 3.5MB → 0.2MB (17.6x), 22 JPEGs deleted
2026-04-24T14:22:13.316698Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=24 elapsed=4.206937709s
2026-04-24T14:22:13.317436Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 24 eligible frames
2026-04-24T14:22:14.074811Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 0.7MB → 0.1MB (12.2x), 11 JPEGs deleted
2026-04-24T14:22:14.844321Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.7MB → 0.2MB (8.9x), 11 JPEGs deleted
2026-04-24T14:27:16.330019Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=22 elapsed=1.474471542s
2026-04-24T14:27:16.330265Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames
2026-04-24T14:27:17.027734Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted
2026-04-24T14:27:17.792405Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted
2026-04-24T14:32:18.770983Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames
2026-04-24T14:32:19.478630Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted
2026-04-24T14:32:20.241056Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted
2026-04-24T14:37:27.349741Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=22 elapsed=7.096181584s
2026-04-24T14:37:27.353187Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames
2026-04-24T14:37:28.066685Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted
2026-04-24T14:37:28.851355Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted
2026-04-24T14:38:19.407454Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=12, grace=300s)
2026-04-24T14:39:19.637322Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8577329830578954505, trigger=click)
2026-04-24T14:39:21.680425Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8317095871263557761, trigger=click)
2026-04-24T14:39:21.707871Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8317095871263557761, trigger=click)
2026-04-24T14:40:10.148981Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5676671508452457688, trigger=click)
2026-04-24T14:42:02.876165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3644563293578755711, trigger=click)
2026-04-24T14:42:12.151008Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3644563293578755711, trigger=click)
2026-04-24T14:42:36.098708Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=22 elapsed=7.2363725s
2026-04-24T14:42:36.098834Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames
2026-04-24T14:42:36.816811Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted
2026-04-24T14:42:37.598382Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted
2026-04-24T14:42:43.884371Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1901203473704384943, trigger=click)
2026-04-24T14:42:43.916542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1901203473704384943, trigger=click)
2026-04-24T14:43:24.413233Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Idle (timeout=300s, app=Firefox, id=12)
2026-04-24T14:43:24.855747Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting ended (id=12)
2026-04-24T14:44:38.941315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1557697903749375374, trigger=click)
2026-04-24T14:44:38.962591Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1557697903749375374, trigger=click)
2026-04-24T14:44:39.438011Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1557697903749375374, trigger=click)
2026-04-24T14:45:24.198550Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8167839925779509873, trigger=click)
2026-04-24T14:45:25.110117Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8167839925779509873, trigger=click)
2026-04-24T14:45:38.880039Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3644563293578755711, trigger=click)
2026-04-24T14:46:09.691532Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8167839925779509873, trigger=click)
2026-04-24T14:46:23.813781Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4533509598273890786, trigger=click)
2026-04-24T14:46:23.859560Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4533509598273890786, trigger=click)
2026-04-24T14:47:44.514826Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2503176719318141451, trigger=click)
2026-04-24T14:47:44.539391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2503176719318141451, trigger=click)
2026-04-24T14:47:44.764903Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=21 elapsed=7.257808167s
2026-04-24T14:47:44.764982Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames
2026-04-24T14:47:45.473419Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 0.6MB → 0.1MB (10.0x), 9 JPEGs deleted
2026-04-24T14:47:46.188394Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted
2026-04-24T14:47:50.085052Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2503176719318141451, trigger=click)
2026-04-24T14:47:50.106335Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2503176719318141451, trigger=click)
2026-04-24T14:52:53.441281Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=100 elapsed=7.256992167s
2026-04-24T14:52:53.441665Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 100 eligible frames
2026-04-24T14:52:56.554743Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 3.2MB → 0.1MB (50.4x), 49 JPEGs deleted
2026-04-24T14:52:59.416988Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 7.8MB → 0.2MB (38.4x), 49 JPEGs deleted
2026-04-24T14:53:50.050387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4956080981675052788, trigger=click)
2026-04-24T14:55:36.318507Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-991319035522409710, trigger=click)
2026-04-24T14:55:36.391576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-991319035522409710, trigger=click)
2026-04-24T14:57:59.569859Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 57 eligible frames
2026-04-24T14:58:01.300455Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 1.6MB → 0.1MB (25.9x), 24 JPEGs deleted
2026-04-24T14:58:03.198608Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 4.9MB → 0.2MB (24.6x), 31 JPEGs deleted
2026-04-24T15:03:08.612242Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=30 elapsed=5.295343459s
2026-04-24T15:03:08.612821Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 30 eligible frames
2026-04-24T15:03:09.620798Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 0.9MB → 0.1MB (15.4x), 14 JPEGs deleted
2026-04-24T15:03:10.811697Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.2MB → 0.2MB (11.3x), 14 JPEGs deleted
2026-04-24T15:04:26.269378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5667957418966591499, trigger=click)
2026-04-24T15:04:26.321219Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5667957418966591499, trigger=click)
2026-04-24T15:08:14.307499Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=25 elapsed=3.392988s
2026-04-24T15:08:14.307671Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames
2026-04-24T15:08:15.302981Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 0.7MB → 0.1MB (12.2x), 11 JPEGs deleted
2026-04-24T15:08:16.186177Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 1.9MB → 0.2MB (9.7x), 12 JPEGs deleted
2026-04-24T15:13:18.963807Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=37 elapsed=2.767425042s
2026-04-24T15:13:18.963934Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 37 eligible frames
2026-04-24T15:13:20.113690Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 1.2MB → 0.1MB (19.7x), 18 JPEGs deleted
2026-04-24T15:13:21.236764Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.7MB → 0.2MB (13.6x), 17 JPEGs deleted
2026-04-24T15:14:48.156237Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)
2026-04-24T15:15:01.132168Z INFO sck_rs::stream_manager: recreating stream for display 1 (resolution change)
2026-04-24T15:15:01.221025Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=app_switch, monitor=1) — DB pool may be saturated
2026-04-24T15:15:01.375924Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=app_switch, monitor=2) — DB pool may be saturated
2026-04-24T15:15:15.842371Z INFO sck_rs::stream_manager: recreating stream for display 2 (resolution change)
2026-04-24T15:18:28.531831Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=36 elapsed=7.26041775s
2026-04-24T15:18:28.531955Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 36 eligible frames
2026-04-24T15:18:29.658166Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 1.1MB → 0.1MB (18.6x), 17 JPEGs deleted
2026-04-24T15:18:30.768761Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.7MB → 0.2MB (13.6x), 17 JPEGs deleted
2026-04-24T15:23:31.928536Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=22 elapsed=1.148790625s
2026-04-24T15:23:31.928649Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames
2026-04-24T15:23:32.642076Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted
2026-04-24T15:23:33.401791Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted
2026-04-24T15:28:34.810366Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=8 elapsed=1.39738375s
2026-04-24T15:28:34.810546Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 8 eligible frames
2026-04-24T15:28:35.187466Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 3 frames, 0.2MB → 0.1MB (3.5x), 3 JPEGs deleted
2026-04-24T15:28:35.591687Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 3 frames, 0.5MB → 0.2MB (2.6x), 3 JPEGs deleted
2026-04-24T15:33:39.031121Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=2 elapsed=3.484074667s
2026-04-24T15:33:39.031286Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
2026-04-24T15:43:41.373431Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=0 elapsed=2.126509208s
2026-04-24T15:48:45.005960Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=0 elapsed=3.630826208s
2026-04-24T15:53:46.452410Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=0 elapsed=1.442133375s
2026-04-24T16:03:50.813556Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=0 elapsed=3.725817875s
2026-04-24T16:08:52.104712Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=0 elapsed=1.289955292s
2026-04-24T16:14:48.860304Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)
2026-04-24T16:14:48.885031Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2
2026-04-24T16:14:49.085988Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)
2026-04-24T16:14:49.951727Z INFO screenpipe_engine::event_driven_capture: monitor 2 capture recovered after 1 consecutive errors
2026-04-24T16:15:14.957591Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)
2026-04-24T16:15:15.344344Z INFO screenpipe_engine::event_driven_capture: monitor 1 capture recovered after 1 consecutive errors
2026-04-24T16:17:13.975782Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7172393451066325016, trigger=click)
2026-04-24T16:19:00.805923Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=0 elapsed=7.986969166s
2026-04-24T16:19:29.124240Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3129461629380798674, trigger=click)
2026-04-24T16:19:29.165320Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=click)
2026-04-24T16:20:57.221933Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=click)
2026-04-24T16:21:34.158304Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=visual_change)
2026-04-24T16:21:52.258518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=visual_change)
2026-04-24T16:24:07.960303Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=0 elapsed=7.148022208s
2026-04-24T16:25:38.292462Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8773909165376335292, trigger=click)
2026-04-24T16:28:02.880424Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=826123905625364471, trigger=click)
2026-04-24T16:28:02.928317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=826123905625364471, trigger=click)
2026-04-24T16:29:02.161685Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5156992524424370675, trigger=visual_change)
2026-04-24T16:29:11.119509Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5156992524424370675, trigger=visual_change)
2026-04-24T16:29:15.437543Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=42 elapsed=7.45073025s
2026-04-24T16:29:15.438417Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 42 eligible frames
2026-04-24T16:29:17.083173Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 3.2MB → 0.4MB (9.1x), 20 JPEGs deleted
2026-04-24T16:29:18.972223Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 5.2MB → 1.7MB (3.0x), 22 JPEGs deleted
2026-04-24T16:29:34.388891Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5156992524424370675, trigger=click)
2026-04-24T16:29:45.796969Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4817563232530793650, trigger=click)
2026-04-24T16:32:36.877636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=visual_change)
2026-04-24T16:32:42.134384Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=visual_change)
2026-04-24T16:32:44.378087Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)
2026-04-24T16:32:45.243874Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=visual_change)
2026-04-24T16:32:54.163388Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8550622008733264339, trigger=click)
2026-04-24T16:32:54.176256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)
2026-04-24T16:32:57.087323Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8550622008733264339, trigger=click)
2026-04-24T16:32:57.117211Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)
2026-04-24T16:34:03.172812Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:34:13.599521Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:34:23.371635Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=21 elapsed=4.397149916s
2026-04-24T16:34:23.371744Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames
2026-04-24T16:34:24.346821Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.6MB → 0.4MB (4.0x), 11 JPEGs deleted
2026-04-24T16:34:25.323782Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 2.0MB → 0.7MB (2.7x), 8 JPEGs deleted
2026-04-24T16:35:16.265905Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:35:16.396499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:37:09.981293Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=visual_change)
2026-04-24T16:38:45.635162Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:38:47.663267Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:39:10.322134Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:39:27.552784Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=33 elapsed=2.228011375s
2026-04-24T16:39:27.552915Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 33 eligible frames
2026-04-24T16:39:28.615455Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.8MB → 0.6MB (4.8x), 14 JPEGs deleted
2026-04-24T16:39:30.390392Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.1MB → 1.6MB (2.0x), 17 JPEGs deleted
2026-04-24T16:40:01.437647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7218881400109780070, trigger=click)
2026-04-24T16:40:12.586378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:41:05.997041Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6861826947729846030, trigger=click)
2026-04-24T16:41:11.184592Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6861826947729846030, trigger=click)
2026-04-24T16:43:15.433697Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8550622008733264339, trigger=click)
2026-04-24T16:43:15.515804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)
2026-04-24T16:43:51.515815Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5576357006515458390, trigger=click)
2026-04-24T16:43:59.714706Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5576357006515458390, trigger=click)
2026-04-24T16:43:59.785731Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5576357006515458390, trigger=click)
2026-04-24T16:44:38.173037Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=20 elapsed=7.796779s
2026-04-24T16:44:38.174424Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 20 eligible frames
2026-04-24T16:44:39.258439Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 1.8MB → 0.3MB (5.7x), 9 JPEGs deleted
2026-04-24T16:44:41.729154Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 2.3MB → 1.7MB (1.4x), 9 JPEGs deleted
2026-04-24T16:48:00.989535Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5576357006515458390, trigger=click)
2026-04-24T16:48:17.430932Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5576357006515458390, trigger=click)
2026-04-24T16:49:49.135916Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=17 elapsed=7.403764583s
2026-04-24T16:49:49.136082Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 17 eligible frames
2026-04-24T16:49:50.004132Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 1.6MB → 0.3MB (5.1x), 8 JPEGs deleted
2026-04-24T16:49:50.898114Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 7 frames, 1.9MB → 0.7MB (2.6x), 7 JPEGs deleted
2026-04-24T16:50:09.364175Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8409739779266792278, trigger=visual_change)
2026-04-24T16:50:11.237105Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8409739779266792278, trigger=click)
2026-04-24T16:51:37.931779Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1423930385844614485, trigger=click)
2026-04-24T16:53:14.381283Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7564119013552971576, trigger=click)
2026-04-24T16:54:12.231394Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1423930385844614485, trigger=visual_change)
2026-04-24T16:54:15.266343Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1423930385844614485, trigger=visual_change)
2026-04-24T16:55:01.568514Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=58 elapsed=10.558641542s
2026-04-24T16:55:01.569579Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 58 eligible frames
2026-04-24T16:55:04.609017Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 5.7MB → 1.1MB (5.0x), 28 JPEGs deleted
2026-04-24T16:55:09.392416Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 5.5MB → 3.1MB (1.8x), 28 JPEGs deleted
2026-04-24T16:55:39.774741Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3617611630109587613, trigger=click)
2026-04-24T16:55:39.852272Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3617611630109587613, trigger=click)
2026-04-24T16:56:40.038632Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-426150959945983082, trigger=click)
2026-04-24T16:59:26.437906Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-426150959945983082, trigger=visual_change)
2026-04-24T17:00:21.026565Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=53 elapsed=11.620753209s
2026-04-24T17:00:21.027475Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 53 eligible frames
2026-04-24T17:00:24.007228Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 4.3MB → 0.5MB (7.8x),...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ true │\n│ vision disabled │ false │\n│ pause on DRM content │ false │\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n│ ignored windows │ [\"Boosteroid\"] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n│ api auth │ enabled │\n2026-04-24T13:24:23.186334Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n2026-04-24T13:24:23.198489Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n│ encrypt secrets │ disabled │\n│ retention days │ 14 │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ id: 1 │\n│ │ id: 2 │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ disabled │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-24T13:24:23.216198Z INFO screenpipe: starting UI event capture\n2026-04-24T13:24:23.238868Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-24T13:24:23.260906Z INFO screenpipe_engine::ui_recorder: UI recording session started: 9676eafd-ea8f-4e1a-a5f1-de7bdb79c071\n2026-04-24T13:24:23.260911Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-24T13:24:23.260972Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-23 10:24:23.260965 UTC to 2026-04-24 10:24:23.260965 UTC)\n2026-04-24T13:24:23.261685Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-24T13:24:23.262214Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-24T13:24:23.273443Z INFO screenpipe_engine::server: Server listening on 127.0.0.1:3030\n2026-04-24T13:24:23.304240Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-24T13:24:23.567248Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-24T13:24:23.567289Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-24T13:24:23.567346Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-24T13:24:23.850835Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-24T13:24:23.850880Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-24T13:24:23.850893Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)\n2026-04-24T13:24:23.850901Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)\n2026-04-24T13:24:23.850941Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-24T13:24:25.197204Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)\n2026-04-24T13:24:25.589436Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=77673, dur=103ms\n2026-04-24T13:24:25.630980Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)\n2026-04-24T13:24:25.652818Z INFO sck_rs::stream_manager: invalidated persistent stream for display 1\n2026-04-24T13:24:26.160345Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=77674, dur=198ms\n2026-04-24T13:24:27.471087Z WARN sqlx::query: summary=\"SELECT f.id, f.timestamp, f.offset_index, …\" db.statement=\"\\n\\nSELECT\\n f.id,\\n f.timestamp,\\n f.offset_index,\\n COALESCE(\\n SUBSTR(f.full_text, 1, 200),\\n SUBSTR(f.accessibility_text, 1, 200),\\n (\\n SELECT\\n SUBSTR(ot.text, 1, 200)\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as text,\\n COALESCE(\\n f.app_name,\\n (\\n SELECT\\n ot.app_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as app_name,\\n COALESCE(\\n f.window_name,\\n (\\n SELECT\\n ot.window_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as window_name,\\n COALESCE(vc.device_name, f.device_name) as screen_device,\\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\\n COALESCE(vc.fps, 0.033) as chunk_fps,\\n f.browser_url,\\n f.machine_id\\nFROM\\n frames f\\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\\nWHERE\\n f.timestamp >= ?1\\n AND f.timestamp <= ?2\\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\\nORDER BY\\n f.timestamp DESC,\\n f.offset_index DESC\\nLIMIT\\n 10000\\n\" rows_affected=0 rows_returned=2758 elapsed=4.209235542s\n2026-04-24T13:24:27.488504Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 2758 frame entries, coverage from 2026-04-23 10:24:23.260965 UTC\n2026-04-24T13:24:56.108522Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)\n2026-04-24T13:25:34.118891Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=82 elapsed=10.985025625s\n2026-04-24T13:25:34.121032Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 82 eligible frames\n2026-04-24T13:25:37.475066Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 6.5MB → 0.2MB (30.1x), 39 JPEGs deleted\n2026-04-24T13:25:41.147418Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 41 frames, 9.1MB → 0.3MB (26.4x), 41 JPEGs deleted\n2026-04-24T13:26:53.913464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3587331842305982393, trigger=click)\n2026-04-24T13:30:52.310748Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=2 elapsed=11.152255s\n2026-04-24T13:30:52.313747Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-24T13:36:00.069099Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=9 elapsed=7.594933541s\n2026-04-24T13:36:00.071113Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 9 eligible frames\n2026-04-24T13:36:00.617576Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 4 frames, 0.3MB → 0.1MB (3.6x), 4 JPEGs deleted\n2026-04-24T13:36:01.402540Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 5 frames, 1.0MB → 0.4MB (2.4x), 5 JPEGs deleted\n2026-04-24T13:40:06.828525Z WARN sqlx::query: summary=\"BEGIN IMMEDIATE\" db.statement=\"\" rows_affected=1 rows_returned=0 elapsed=1.076759291s\n2026-04-24T13:40:07.002782Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=195 elapsed=1.250257875s\n2026-04-24T13:41:11.559513Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=92 elapsed=10.151735042s\n2026-04-24T13:41:11.559741Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 92 eligible frames\n2026-04-24T13:41:14.043784Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 2.3MB → 0.1MB (32.3x), 37 JPEGs deleted\n2026-04-24T13:41:21.303349Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 53 frames, 8.7MB → 3.1MB (2.8x), 53 JPEGs deleted\n2026-04-24T13:41:40.887689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7539785768983157715, trigger=click)\n2026-04-24T13:42:34.136767Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3059269999432289894, trigger=click)\n2026-04-24T13:42:45.942807Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3777488472456223409, trigger=click)\n2026-04-24T13:43:01.921357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1871207218552190145, trigger=click)\n2026-04-24T13:44:01.878037Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8495661271621520850, trigger=click)\n2026-04-24T13:46:28.021146Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=40 elapsed=6.713739708s\n2026-04-24T13:46:28.021348Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames\n2026-04-24T13:46:29.141090Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 1.1MB → 0.1MB (17.9x), 18 JPEGs deleted\n2026-04-24T13:46:31.601195Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.7MB → 2.9MB (1.6x), 20 JPEGs deleted\n2026-04-24T13:51:31.692283Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames\n2026-04-24T13:51:32.570330Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.0MB → 0.2MB (4.8x), 13 JPEGs deleted\n2026-04-24T13:51:33.760542Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.9MB → 1.0MB (1.9x), 10 JPEGs deleted\n2026-04-24T13:55:31.626192Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2977185087332333124, trigger=click)\n2026-04-24T13:56:33.924925Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 105 eligible frames\n2026-04-24T13:56:37.179833Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 55 frames, 5.1MB → 1.4MB (3.6x), 55 JPEGs deleted\n2026-04-24T13:56:40.328768Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 48 frames, 7.6MB → 1.3MB (6.0x), 48 JPEGs deleted\n2026-04-24T14:00:47.136298Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Firefox, signals=2)\n2026-04-24T14:00:47.857419Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2938651853865790585, trigger=click)\n2026-04-24T14:00:52.374476Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Firefox, signals=2, browser=true)\n2026-04-24T14:00:52.378086Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=12, app=Firefox, title=None)\n2026-04-24T14:01:40.650767Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 62 eligible frames\n2026-04-24T14:01:42.431196Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 1.9MB → 0.1MB (32.0x), 30 JPEGs deleted\n2026-04-24T14:01:44.259623Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 4.8MB → 0.2MB (23.8x), 30 JPEGs deleted\n2026-04-24T14:06:51.687604Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=54 elapsed=7.415698459s\n2026-04-24T14:06:51.691163Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 54 eligible frames\n2026-04-24T14:06:53.324710Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 1.7MB → 0.1MB (29.0x), 27 JPEGs deleted\n2026-04-24T14:06:54.826559Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.0MB → 0.2MB (19.9x), 25 JPEGs deleted\n2026-04-24T14:11:54.984165Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 93 eligible frames\n2026-04-24T14:11:57.808857Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 48 frames, 3.1MB → 0.1MB (49.5x), 48 JPEGs deleted\n2026-04-24T14:12:00.396251Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 43 frames, 6.8MB → 0.2MB (33.8x), 43 JPEGs deleted\n2026-04-24T14:17:06.109470Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=49 elapsed=5.652470541s\n2026-04-24T14:17:06.109602Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 49 eligible frames\n2026-04-24T14:17:07.677608Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 1.6MB → 0.1MB (27.0x), 25 JPEGs deleted\n2026-04-24T14:17:09.097967Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 3.5MB → 0.2MB (17.6x), 22 JPEGs deleted\n2026-04-24T14:22:13.316698Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=24 elapsed=4.206937709s\n2026-04-24T14:22:13.317436Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 24 eligible frames\n2026-04-24T14:22:14.074811Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 0.7MB → 0.1MB (12.2x), 11 JPEGs deleted\n2026-04-24T14:22:14.844321Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.7MB → 0.2MB (8.9x), 11 JPEGs deleted\n2026-04-24T14:27:16.330019Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=1.474471542s\n2026-04-24T14:27:16.330265Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T14:27:17.027734Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted\n2026-04-24T14:27:17.792405Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted\n2026-04-24T14:32:18.770983Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T14:32:19.478630Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted\n2026-04-24T14:32:20.241056Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted\n2026-04-24T14:37:27.349741Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=7.096181584s\n2026-04-24T14:37:27.353187Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T14:37:28.066685Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted\n2026-04-24T14:37:28.851355Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted\n2026-04-24T14:38:19.407454Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=12, grace=300s)\n2026-04-24T14:39:19.637322Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8577329830578954505, trigger=click)\n2026-04-24T14:39:21.680425Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8317095871263557761, trigger=click)\n2026-04-24T14:39:21.707871Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8317095871263557761, trigger=click)\n2026-04-24T14:40:10.148981Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5676671508452457688, trigger=click)\n2026-04-24T14:42:02.876165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3644563293578755711, trigger=click)\n2026-04-24T14:42:12.151008Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3644563293578755711, trigger=click)\n2026-04-24T14:42:36.098708Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=7.2363725s\n2026-04-24T14:42:36.098834Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T14:42:36.816811Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted\n2026-04-24T14:42:37.598382Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted\n2026-04-24T14:42:43.884371Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1901203473704384943, trigger=click)\n2026-04-24T14:42:43.916542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1901203473704384943, trigger=click)\n2026-04-24T14:43:24.413233Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Idle (timeout=300s, app=Firefox, id=12)\n2026-04-24T14:43:24.855747Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting ended (id=12)\n2026-04-24T14:44:38.941315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1557697903749375374, trigger=click)\n2026-04-24T14:44:38.962591Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1557697903749375374, trigger=click)\n2026-04-24T14:44:39.438011Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1557697903749375374, trigger=click)\n2026-04-24T14:45:24.198550Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8167839925779509873, trigger=click)\n2026-04-24T14:45:25.110117Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8167839925779509873, trigger=click)\n2026-04-24T14:45:38.880039Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3644563293578755711, trigger=click)\n2026-04-24T14:46:09.691532Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8167839925779509873, trigger=click)\n2026-04-24T14:46:23.813781Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4533509598273890786, trigger=click)\n2026-04-24T14:46:23.859560Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4533509598273890786, trigger=click)\n2026-04-24T14:47:44.514826Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2503176719318141451, trigger=click)\n2026-04-24T14:47:44.539391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2503176719318141451, trigger=click)\n2026-04-24T14:47:44.764903Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=21 elapsed=7.257808167s\n2026-04-24T14:47:44.764982Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames\n2026-04-24T14:47:45.473419Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 0.6MB → 0.1MB (10.0x), 9 JPEGs deleted\n2026-04-24T14:47:46.188394Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted\n2026-04-24T14:47:50.085052Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2503176719318141451, trigger=click)\n2026-04-24T14:47:50.106335Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2503176719318141451, trigger=click)\n2026-04-24T14:52:53.441281Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=100 elapsed=7.256992167s\n2026-04-24T14:52:53.441665Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 100 eligible frames\n2026-04-24T14:52:56.554743Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 3.2MB → 0.1MB (50.4x), 49 JPEGs deleted\n2026-04-24T14:52:59.416988Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 7.8MB → 0.2MB (38.4x), 49 JPEGs deleted\n2026-04-24T14:53:50.050387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4956080981675052788, trigger=click)\n2026-04-24T14:55:36.318507Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-991319035522409710, trigger=click)\n2026-04-24T14:55:36.391576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-991319035522409710, trigger=click)\n2026-04-24T14:57:59.569859Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 57 eligible frames\n2026-04-24T14:58:01.300455Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 1.6MB → 0.1MB (25.9x), 24 JPEGs deleted\n2026-04-24T14:58:03.198608Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 4.9MB → 0.2MB (24.6x), 31 JPEGs deleted\n2026-04-24T15:03:08.612242Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=30 elapsed=5.295343459s\n2026-04-24T15:03:08.612821Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 30 eligible frames\n2026-04-24T15:03:09.620798Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 0.9MB → 0.1MB (15.4x), 14 JPEGs deleted\n2026-04-24T15:03:10.811697Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.2MB → 0.2MB (11.3x), 14 JPEGs deleted\n2026-04-24T15:04:26.269378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5667957418966591499, trigger=click)\n2026-04-24T15:04:26.321219Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5667957418966591499, trigger=click)\n2026-04-24T15:08:14.307499Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=25 elapsed=3.392988s\n2026-04-24T15:08:14.307671Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames\n2026-04-24T15:08:15.302981Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 0.7MB → 0.1MB (12.2x), 11 JPEGs deleted\n2026-04-24T15:08:16.186177Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 1.9MB → 0.2MB (9.7x), 12 JPEGs deleted\n2026-04-24T15:13:18.963807Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=37 elapsed=2.767425042s\n2026-04-24T15:13:18.963934Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 37 eligible frames\n2026-04-24T15:13:20.113690Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 1.2MB → 0.1MB (19.7x), 18 JPEGs deleted\n2026-04-24T15:13:21.236764Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.7MB → 0.2MB (13.6x), 17 JPEGs deleted\n2026-04-24T15:14:48.156237Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)\n2026-04-24T15:15:01.132168Z INFO sck_rs::stream_manager: recreating stream for display 1 (resolution change)\n2026-04-24T15:15:01.221025Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=app_switch, monitor=1) — DB pool may be saturated\n2026-04-24T15:15:01.375924Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=app_switch, monitor=2) — DB pool may be saturated\n2026-04-24T15:15:15.842371Z INFO sck_rs::stream_manager: recreating stream for display 2 (resolution change)\n2026-04-24T15:18:28.531831Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=36 elapsed=7.26041775s\n2026-04-24T15:18:28.531955Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 36 eligible frames\n2026-04-24T15:18:29.658166Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 1.1MB → 0.1MB (18.6x), 17 JPEGs deleted\n2026-04-24T15:18:30.768761Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.7MB → 0.2MB (13.6x), 17 JPEGs deleted\n2026-04-24T15:23:31.928536Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=1.148790625s\n2026-04-24T15:23:31.928649Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T15:23:32.642076Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted\n2026-04-24T15:23:33.401791Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted\n2026-04-24T15:28:34.810366Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=8 elapsed=1.39738375s\n2026-04-24T15:28:34.810546Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 8 eligible frames\n2026-04-24T15:28:35.187466Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 3 frames, 0.2MB → 0.1MB (3.5x), 3 JPEGs deleted\n2026-04-24T15:28:35.591687Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 3 frames, 0.5MB → 0.2MB (2.6x), 3 JPEGs deleted\n2026-04-24T15:33:39.031121Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=2 elapsed=3.484074667s\n2026-04-24T15:33:39.031286Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-24T15:43:41.373431Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=2.126509208s\n2026-04-24T15:48:45.005960Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=3.630826208s\n2026-04-24T15:53:46.452410Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.442133375s\n2026-04-24T16:03:50.813556Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=3.725817875s\n2026-04-24T16:08:52.104712Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.289955292s\n2026-04-24T16:14:48.860304Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)\n2026-04-24T16:14:48.885031Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2\n2026-04-24T16:14:49.085988Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)\n2026-04-24T16:14:49.951727Z INFO screenpipe_engine::event_driven_capture: monitor 2 capture recovered after 1 consecutive errors\n2026-04-24T16:15:14.957591Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-24T16:15:15.344344Z INFO screenpipe_engine::event_driven_capture: monitor 1 capture recovered after 1 consecutive errors\n2026-04-24T16:17:13.975782Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7172393451066325016, trigger=click)\n2026-04-24T16:19:00.805923Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=7.986969166s\n2026-04-24T16:19:29.124240Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3129461629380798674, trigger=click)\n2026-04-24T16:19:29.165320Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=click)\n2026-04-24T16:20:57.221933Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=click)\n2026-04-24T16:21:34.158304Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=visual_change)\n2026-04-24T16:21:52.258518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=visual_change)\n2026-04-24T16:24:07.960303Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=7.148022208s\n2026-04-24T16:25:38.292462Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8773909165376335292, trigger=click)\n2026-04-24T16:28:02.880424Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=826123905625364471, trigger=click)\n2026-04-24T16:28:02.928317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=826123905625364471, trigger=click)\n2026-04-24T16:29:02.161685Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5156992524424370675, trigger=visual_change)\n2026-04-24T16:29:11.119509Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5156992524424370675, trigger=visual_change)\n2026-04-24T16:29:15.437543Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=42 elapsed=7.45073025s\n2026-04-24T16:29:15.438417Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 42 eligible frames\n2026-04-24T16:29:17.083173Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 3.2MB → 0.4MB (9.1x), 20 JPEGs deleted\n2026-04-24T16:29:18.972223Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 5.2MB → 1.7MB (3.0x), 22 JPEGs deleted\n2026-04-24T16:29:34.388891Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5156992524424370675, trigger=click)\n2026-04-24T16:29:45.796969Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4817563232530793650, trigger=click)\n2026-04-24T16:32:36.877636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=visual_change)\n2026-04-24T16:32:42.134384Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=visual_change)\n2026-04-24T16:32:44.378087Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)\n2026-04-24T16:32:45.243874Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=visual_change)\n2026-04-24T16:32:54.163388Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8550622008733264339, trigger=click)\n2026-04-24T16:32:54.176256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)\n2026-04-24T16:32:57.087323Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8550622008733264339, trigger=click)\n2026-04-24T16:32:57.117211Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)\n2026-04-24T16:34:03.172812Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:34:13.599521Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:34:23.371635Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=21 elapsed=4.397149916s\n2026-04-24T16:34:23.371744Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames\n2026-04-24T16:34:24.346821Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.6MB → 0.4MB (4.0x), 11 JPEGs deleted\n2026-04-24T16:34:25.323782Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 2.0MB → 0.7MB (2.7x), 8 JPEGs deleted\n2026-04-24T16:35:16.265905Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:35:16.396499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:37:09.981293Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=visual_change)\n2026-04-24T16:38:45.635162Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:38:47.663267Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:39:10.322134Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:39:27.552784Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=33 elapsed=2.228011375s\n2026-04-24T16:39:27.552915Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 33 eligible frames\n2026-04-24T16:39:28.615455Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.8MB → 0.6MB (4.8x), 14 JPEGs deleted\n2026-04-24T16:39:30.390392Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.1MB → 1.6MB (2.0x), 17 JPEGs deleted\n2026-04-24T16:40:01.437647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7218881400109780070, trigger=click)\n2026-04-24T16:40:12.586378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:41:05.997041Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6861826947729846030, trigger=click)\n2026-04-24T16:41:11.184592Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6861826947729846030, trigger=click)\n2026-04-24T16:43:15.433697Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8550622008733264339, trigger=click)\n2026-04-24T16:43:15.515804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)\n2026-04-24T16:43:51.515815Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5576357006515458390, trigger=click)\n2026-04-24T16:43:59.714706Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5576357006515458390, trigger=click)\n2026-04-24T16:43:59.785731Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5576357006515458390, trigger=click)\n2026-04-24T16:44:38.173037Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=20 elapsed=7.796779s\n2026-04-24T16:44:38.174424Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 20 eligible frames\n2026-04-24T16:44:39.258439Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 1.8MB → 0.3MB (5.7x), 9 JPEGs deleted\n2026-04-24T16:44:41.729154Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 2.3MB → 1.7MB (1.4x), 9 JPEGs deleted\n2026-04-24T16:48:00.989535Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5576357006515458390, trigger=click)\n2026-04-24T16:48:17.430932Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5576357006515458390, trigger=click)\n2026-04-24T16:49:49.135916Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=17 elapsed=7.403764583s\n2026-04-24T16:49:49.136082Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 17 eligible frames\n2026-04-24T16:49:50.004132Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 1.6MB → 0.3MB (5.1x), 8 JPEGs deleted\n2026-04-24T16:49:50.898114Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 7 frames, 1.9MB → 0.7MB (2.6x), 7 JPEGs deleted\n2026-04-24T16:50:09.364175Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8409739779266792278, trigger=visual_change)\n2026-04-24T16:50:11.237105Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8409739779266792278, trigger=click)\n2026-04-24T16:51:37.931779Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1423930385844614485, trigger=click)\n2026-04-24T16:53:14.381283Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7564119013552971576, trigger=click)\n2026-04-24T16:54:12.231394Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1423930385844614485, trigger=visual_change)\n2026-04-24T16:54:15.266343Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1423930385844614485, trigger=visual_change)\n2026-04-24T16:55:01.568514Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=58 elapsed=10.558641542s\n2026-04-24T16:55:01.569579Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 58 eligible frames\n2026-04-24T16:55:04.609017Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 5.7MB → 1.1MB (5.0x), 28 JPEGs deleted\n2026-04-24T16:55:09.392416Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 5.5MB → 3.1MB (1.8x), 28 JPEGs deleted\n2026-04-24T16:55:39.774741Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3617611630109587613, trigger=click)\n2026-04-24T16:55:39.852272Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3617611630109587613, trigger=click)\n2026-04-24T16:56:40.038632Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-426150959945983082, trigger=click)\n2026-04-24T16:59:26.437906Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-426150959945983082, trigger=visual_change)\n2026-04-24T17:00:21.026565Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=53 elapsed=11.620753209s\n2026-04-24T17:00:21.027475Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 53 eligible frames\n2026-04-24T17:00:24.007228Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 4.3MB → 0.5MB (7.8x), 21 JPEGs deleted\n2026-04-24T17:00:30.315443Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 6.2MB → 3.1MB (2.0x), 30 JPEGs deleted\n2026-04-24T17:01:31.749742Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4978074472044237669, trigger=click)\n2026-04-24T17:02:32.676946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6528076374554576690, trigger=click)\n2026-04-24T17:03:24.566715Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5730479857460890072, trigger=click)\n2026-04-24T17:03:24.646165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5730479857460890072, trigger=click)\n2026-04-24T17:04:36.724352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2722349336895059815, trigger=click)\n2026-04-24T17:05:26.414686Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-255140549253982666, trigger=click)\n2026-04-24T17:05:38.960944Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=49 elapsed=8.570160541s\n2026-04-24T17:05:38.961851Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 49 eligible frames\n2026-04-24T17:05:40.770553Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.8MB → 0.5MB (10.1x), 24 JPEGs deleted\n2026-04-24T17:05:44.093500Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 4.3MB → 2.0MB (2.1x), 23 JPEGs deleted\n2026-04-24T17:10:45.665278Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=57 elapsed=1.565954333s\n2026-04-24T17:10:45.665510Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 57 eligible frames\n2026-04-24T17:10:47.346256Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.1MB → 0.3MB (15.5x), 25 JPEGs deleted\n2026-04-24T17:10:49.931994Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 5.2MB → 2.6MB (2.0x), 30 JPEGs deleted\n2026-04-24T17:12:35.862404Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2722349336895059815, trigger=visual_change)\n2026-04-24T17:15:54.006030Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=35 elapsed=4.067925709s\n2026-04-24T17:15:54.006151Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 35 eligible frames\n2026-04-24T17:15:55.261287Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.6MB → 0.3MB (11.3x), 18 JPEGs deleted\n2026-04-24T17:15:56.815522Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 3.2MB → 1.3MB (2.4x), 15 JPEGs deleted\n2026-04-24T17:20:58.288264Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=1.467426625s\n2026-04-24T17:20:58.288415Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T17:20:59.175263Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.0MB → 0.3MB (6.3x), 10 JPEGs deleted\n2026-04-24T17:21:00.120027Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.3MB → 0.4MB (6.2x), 10 JPEGs deleted\n2026-04-24T17:22:48.235588Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-885508568992678447, trigger=click)\n2026-04-24T17:22:48.306917Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-885508568992678447, trigger=click)\n2026-04-24T17:23:41.318200Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-885508568992678447, trigger=click)\n2026-04-24T17:24:30.499216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3481376117812878957, trigger=click)\n2026-04-24T17:24:30.601163Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3481376117812878957, trigger=click)\n2026-04-24T17:26:07.575025Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=28 elapsed=7.43131375s\n2026-04-24T17:26:07.578806Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames\n2026-04-24T17:26:08.478709Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 2.2MB → 0.3MB (6.9x), 11 JPEGs deleted\n2026-04-24T17:26:09.770241Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.6MB → 1.0MB (2.6x), 15 JPEGs deleted\n2026-04-24T17:26:26.261981Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-885508568992678447, trigger=click)\n2026-04-24T17:26:26.307896Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-885508568992678447, trigger=click)\n2026-04-24T17:27:22.914133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4993652597681536640, trigger=visual_change)\n2026-04-24T17:27:25.987598Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4993652597681536640, trigger=visual_change)\n2026-04-24T17:27:36.063544Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4993652597681536640, trigger=click)\n2026-04-24T17:27:36.152346Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4993652597681536640, trigger=click)\n2026-04-24T17:27:37.655642Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4993652597681536640, trigger=click)\n2026-04-24T17:27:37.736988Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4993652597681536640, trigger=click)\n2026-04-24T17:28:50.370801Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2329310517310230610, trigger=visual_change)\n2026-04-24T17:28:53.414236Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2329310517310230610, trigger=visual_change)\n2026-04-24T17:30:29.079371Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4689761151685344628, trigger=click)\n2026-04-24T17:31:20.181507Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=10.402847208s\n2026-04-24T17:31:20.182328Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T17:31:21.411366Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.0MB → 0.3MB (6.3x), 10 JPEGs deleted\n2026-04-24T17:31:22.811363Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.3MB (5.0x), 10 JPEGs deleted\n2026-04-24T17:36:28.935203Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=30 elapsed=6.117179292s\n2026-04-24T17:36:28.935662Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 30 eligible frames\n2026-04-24T17:36:29.883792Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.4MB → 0.3MB (7.6x), 12 JPEGs deleted\n2026-04-24T17:36:31.835587Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 3.5MB → 2.2MB (1.6x), 16 JPEGs deleted\n2026-04-24T17:40:48.995186Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)\n2026-04-24T17:41:03.317324Z INFO sck_rs::stream_manager: recreating stream for display 1 (resolution change)\n2026-04-24T17:41:33.869852Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=71 elapsed=2.026336375s\n2026-04-24T17:41:33.870011Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 71 eligible frames\n2026-04-24T17:41:35.708466Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 4.3MB → 1.0MB (4.3x), 28 JPEGs deleted\n2026-04-24T17:41:39.154076Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 41 frames, 7.8MB → 4.0MB (1.9x), 41 JPEGs deleted\n2026-04-24T17:46:42.848481Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=3.698421708s\n2026-04-24T17:46:42.848607Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T17:46:43.688440Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.4MB → 0.2MB (7.1x), 10 JPEGs deleted\n2026-04-24T17:46:44.602870Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.1MB → 0.3MB (6.2x), 10 JPEGs deleted\n2026-04-24T17:51:46.433154Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=18 elapsed=1.824613292s\n2026-04-24T17:51:46.433266Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 18 eligible frames\n2026-04-24T17:51:47.242571Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 1.1MB → 0.2MB (5.7x), 8 JPEGs deleted\n2026-04-24T17:51:48.089907Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 1.7MB → 0.3MB (4.9x), 8 JPEGs deleted\n2026-04-24T17:56:48.271988Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-24T18:06:52.357796Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=3.681285375s\n2026-04-24T18:11:53.610064Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.24532775s\n2026-04-24T18:21:57.920293Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=3.397249084s\n2026-04-24T18:29:38.025317Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)\n2026-04-24T18:29:38.953316Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-24T18:29:39.990915Z INFO sck_rs::stream_manager: invalidated persistent stream for display 1\n2026-04-24T18:29:42.006323Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2\n2026-04-24T18:29:42.016400Z INFO sck_rs::stream_manager: stopped 1 persistent stream(s)\n2026-04-24T18:29:42.642320Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)\n2026-04-24T18:29:49.028954Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-24T18:32:05.848216Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=7.764342958s\n2026-04-24T18:33:14.785220Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=324 elapsed=2.553840125s\n2026-04-24T18:33:49.369572Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=324 elapsed=1.115000042s\n2026-04-24T18:37:14.506363Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=8.566333417s\n2026-04-24T18:40:58.336306Z WARN sqlx::query: summary=\"COMMIT\" db.statement=\"\" rows_affected=1 rows_returned=0 elapsed=1.263114459s\n2026-04-24T18:41:21.420281Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6180934582104161978, trigger=click)\n2026-04-24T18:41:27.763060Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6180934582104161978, trigger=click)\n2026-04-24T18:42:24.498553Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=20 elapsed=9.978308334s\n2026-04-24T18:42:24.499587Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 20 eligible frames\n2026-04-24T18:42:25.603951Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 1.1MB → 0.3MB (3.4x), 8 JPEGs deleted\n2026-04-24T18:42:28.504479Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.5MB → 1.2MB (2.0x), 12 JPEGs deleted\n2026-04-24T18:44:50.719406Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6180934582104161978, trigger=click)\n2026-04-24T18:44:50.719753Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6180934582104161978, trigger=click)\n2026-04-24T18:44:58.486531Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6180934582104161978, trigger=visual_change)\n2026-04-24T18:47:39.149925Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=26 elapsed=10.64528525s\n2026-04-24T18:47:39.150528Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 26 eligible frames\n2026-04-24T18:47:40.470355Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 1.7MB → 0.2MB (8.5x), 12 JPEGs deleted\n2026-04-24T18:47:43.706191Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.9MB → 0.8MB (3.4x), 12 JPEGs deleted\n2026-04-24T18:48:14.799887Z WARN sqlx::query: summary=\"COMMIT\" db.statement=\"\" rows_affected=1 rows_returned=0 elapsed=1.072590208s\n2026-04-24T18:52:53.240638Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=20 elapsed=9.508751833s\n2026-04-24T18:52:53.244355Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 20 eligible frames\n2026-04-24T18:52:56.915294Z WARN sqlx::query: summary=\"COMMIT\" db.statement=\"\" rows_affected=9 rows_returned=0 elapsed=1.283165708s\n2026-04-24T18:52:56.985001Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.7MB (2.2x), 10 JPEGs deleted\n2026-04-24T18:52:59.878416Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 1.6MB → 0.8MB (2.0x), 8 JPEGs deleted\n2026-04-24T18:56:01.036223Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2731140152445727259, trigger=click)\n2026-04-24T18:56:01.113964Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2731140152445727259, trigger=click)\n2026-04-24T18:56:11.335029Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664861859994574679, trigger=click)\n2026-04-24T18:56:50.415616Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664861859994574679, trigger=click)\n2026-04-24T18:56:50.493028Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6664861859994574679, trigger=click)\n2026-04-24T18:58:22.557319Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=18 elapsed=22.668022666s\n2026-04-24T18:58:22.568272Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 18 eligible frames\n2026-04-24T18:58:25.146362Z WARN sqlx::query: summary=\"COMMIT\" db.statement=\"\" rows_affected=1 rows_returned=0 elapsed=2.240168209s\n2026-04-24T18:58:28.254865Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 1.4MB → 0.5MB (2.9x), 8 JPEGs deleted\n2026-04-24T18:58:31.423883Z WARN sqlx::query: summary=\"UPDATE frames SET video_chunk_id …\" db.statement=\"\\n\\nUPDATE\\n frames\\nSET\\n video_chunk_id = ?1,\\n offset_index = CASE\\n id\\n WHEN 79235 THEN 0\\n WHEN 79237 THEN 1\\n WHEN 79239 THEN 2\\n WHEN 79241 THEN 3\\n WHEN 79244 THEN 4\\n WHEN 79245 THEN 5\\n WHEN 79247 THEN 6\\n WHEN 79249 THEN 7\\n ELSE offset_index\\n END,\\n snapshot_path = NULL\\nWHERE\\n id IN (?, ?, ?, ?, ?, ?, ?, ?)\\n AND snapshot_path IS NOT NULL\\n\" rows_affected=7 rows_returned=0 elapsed=1.353156208s\n2026-04-24T18:58:32.168304Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 1.7MB → 0.6MB (3.0x), 8 JPEGs deleted\n2026-04-24T19:00:34.200745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2633736204851875642, trigger=visual_change)\n2026-04-24T19:03:42.648869Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=21 elapsed=10.469428875s\n2026-04-24T19:03:42.649266Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames\n2026-04-24T19:03:47.221976Z WARN sqlx::query: summary=\"COMMIT\" db.statement=\"\" rows_affected=9 rows_returned=0 elapsed=2.732148417s\n2026-04-24T19:03:47.281943Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.3MB → 0.4MB (3.5x), 10 JPEGs deleted\n2026-04-24T19:03:51.044797Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=325 elapsed=1.428669917s\n2026-04-24T19:03:51.493678Z WARN sqlx::query: summary=\"UPDATE frames SET video_chunk_id …\" db.statement=\"\\n\\nUPDATE\\n frames\\nSET\\n video_chunk_id = ?1,\\n offset_index = CASE\\n id\\n WHEN 79251 THEN 0\\n WHEN 79253 THEN 1\\n WHEN 79255 THEN 2\\n WHEN 79257 THEN 3\\n WHEN 79259 THEN 4\\n WHEN 79261 THEN 5\\n WHEN 79263 THEN 6\\n WHEN 79265 THEN 7\\n WHEN 79267 THEN 8\\n ELSE offset_index\\n END,\\n snapshot_path = NULL\\nWHERE\\n id IN (?, ?, ?, ?, ?, ?, ?, ?, ?)\\n AND snapshot_path IS NOT NULL\\n\" rows_affected=8 rows_returned=0 elapsed=2.333241875s\n2026-04-24T19:03:51.989250Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 1.7MB → 0.4MB (4.1x), 9 JPEGs deleted\n2026-04-24T19:03:57.096586Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1983107603547392376, trigger=visual_change)\n2026-04-24T19:04:15.657189Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=325 elapsed=1.620111334s\n2026-04-24T19:09:02.520076Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=35 elapsed=10.555084084s\n2026-04-24T19:09:02.527474Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 35 eligible frames\n2026-04-24T19:09:05.895377Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 3.4MB → 2.0MB (1.7x), 19 JPEGs deleted\n2026-04-24T19:09:07.469280Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.7MB → 0.3MB (8.2x), 14 JPEGs deleted\n2026-04-24T19:09:57.251779Z WARN sqlx::query: summary=\"COMMIT\" db.statement=\"\" rows_affected=1 rows_returned=0 elapsed=4.745247667s\n2026-04-24T19:14:12.013184Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=25 elapsed=4.537452375s\n2026-04-24T19:14:12.013308Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames\n2026-04-24T19:14:13.317257Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 2.9MB → 2.0MB (1.5x), 11 JPEGs deleted\n2026-04-24T19:14:14.155197Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.3MB → 0.3MB (7.7x), 12 JPEGs deleted\n2026-04-24T19:18:14.342159Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4640414213682758812, trigger=visual_change)\n2026-04-24T19:19:14.283192Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 27 eligible frames\n2026-04-24T19:19:15.949548Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.7MB → 0.3MB (5.6x), 10 JPEGs deleted\n2026-04-24T19:19:17.065775Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 3.5MB → 0.9MB (3.8x), 15 JPEGs deleted\n2026-04-24T19:24:17.184625Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 31 eligible frames\n2026-04-24T19:24:18.465268Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.3MB → 1.3MB (1.8x), 14 JPEGs deleted\n2026-04-24T19:24:19.846627Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.5MB → 1.0MB (2.4x), 15 JPEGs deleted\n2026-04-24T19:27:58.636176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=521047434990944918, trigger=click)\n2026-04-24T19:27:58.680403Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=521047434990944918, trigger=click)\n2026-04-24T19:29:20.060029Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 24 eligible frames\n2026-04-24T19:29:20.848005Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.9MB → 0.3MB (7.1x), 11 JPEGs deleted\n2026-04-24T19:29:21.684126Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.9MB → 0.3MB (6.2x), 11 JPEGs deleted\n2026-04-24T19:32:13.986044Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7609021786321165751, trigger=click)\n2026-04-24T19:34:23.034168Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=33 elapsed=1.338599334s\n2026-04-24T19:34:23.034624Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 33 eligible frames\n2026-04-24T19:34:24.035874Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.6MB → 0.4MB (7.3x), 15 JPEGs deleted\n2026-04-24T19:34:25.161399Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.6MB → 0.5MB (5.1x), 16 JPEGs deleted\n2026-04-24T19:39:18.161885Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6714512521313448666, trigger=click)\n2026-04-24T19:39:25.957117Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 85 eligible frames\n2026-04-24T19:39:27.906153Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 33 frames, 5.8MB → 0.4MB (13.6x), 33 JPEGs deleted\n2026-04-24T19:39:30.899433Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 50 frames, 6.8MB → 1.8MB (3.8x), 50 JPEGs deleted\n2026-04-24T19:44:31.027546Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 43 eligible frames\n2026-04-24T19:44:32.013833Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.6MB → 0.3MB (9.6x), 15 JPEGs deleted\n2026-04-24T19:44:33.722498Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 3.7MB → 1.0MB (3.8x), 26 JPEGs deleted\n2026-04-24T19:49:35.482938Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=57 elapsed=1.710919583s\n2026-04-24T19:49:35.483025Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 57 eligible frames\n2026-04-24T19:49:37.082103Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.4MB → 0.4MB (12.4x), 25 JPEGs deleted\n2026-04-24T19:49:39.018101Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 3.7MB → 0.6MB (6.1x), 30 JPEGs deleted\n2026-04-24T19:54:39.741828Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 27 eligible frames\n2026-04-24T19:54:40.531639Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.1MB → 0.3MB (7.8x), 12 JPEGs deleted\n2026-04-24T19:54:41.370466Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.3MB → 0.2MB (5.6x), 13 JPEGs deleted\n2026-04-24T19:59:41.944435Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 35 eligible frames\n2026-04-24T19:59:42.986438Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.8MB → 0.3MB (10.3x), 16 JPEGs deleted\n2026-04-24T19:59:44.105897Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 1.8MB → 0.2MB (9.7x), 17 JPEGs deleted\n2026-04-24T20:04:44.760939Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 34 eligible frames\n2026-04-24T20:04:45.759943Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.6MB → 0.3MB (9.7x), 15 JPEGs deleted\n2026-04-24T20:04:46.812125Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.0MB → 0.3MB (6.5x), 17 JPEGs deleted\n2026-04-24T20:09:46.972479Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 29 eligible frames\n2026-04-24T20:09:47.996075Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.4MB → 0.4MB (5.6x), 14 JPEGs deleted\n2026-04-24T20:09:48.971843Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.6MB → 0.4MB (4.2x), 13 JPEGs deleted\n2026-04-24T20:11:39.105679Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5878930124418572902, trigger=click)\n2026-04-24T20:11:44.633970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5878930124418572902, trigger=click)\n2026-04-24T20:11:44.745222Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5878930124418572902, trigger=click)\n2026-04-24T20:11:53.929841Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5878930124418572902, trigger=click)\n2026-04-24T20:11:54.751076Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5878930124418572902, trigger=click)\n2026-04-24T20:12:03.883243Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5878930124418572902, trigger=click)\n2026-04-24T20:12:04.880520Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5878930124418572902, trigger=click)\n2026-04-24T20:12:07.138284Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5478133607093606798, trigger=click)\n2026-04-24T20:12:09.366721Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1976051674119031319, trigger=click)\n2026-04-24T20:14:49.083937Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 24 eligible frames\n2026-04-24T20:14:49.831397Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.9MB → 0.3MB (7.1x), 11 JPEGs deleted\n2026-04-24T20:14:50.568615Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.3MB → 0.2MB (5.4x), 11 JPEGs deleted\n2026-04-24T20:16:55.531003Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7236530931752786537, trigger=click)\n2026-04-24T20:16:57.786919Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7236530931752786537, trigger=click)\n2026-04-24T20:17:50.622639Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7637073125528108913, trigger=click)\n2026-04-24T20:18:24.567158Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3106110712420029149, trigger=click)\n2026-04-24T20:18:24.953535Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3106110712420029149, trigger=click)\n2026-04-24T20:18:25.113868Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3106110712420029149, trigger=click)\n2026-04-24T20:18:25.516188Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3106110712420029149, trigger=click)\n2026-04-24T20:18:25.578786Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3106110712420029149, trigger=click)\n2026-04-24T20:18:25.879921Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3106110712420029149, trigger=click)\n2026-04-24T20:18:26.045175Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3106110712420029149, trigger=click)\n2026-04-24T20:18:26.521966Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3106110712420029149, trigger=click)\n2026-04-24T20:18:26.584707Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3106110712420029149, trigger=click)\n2026-04-24T20:19:50.676522Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 41 eligible frames\n2026-04-24T20:19:51.646458Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.6MB → 0.3MB (9.6x), 15 JPEGs deleted\n2026-04-24T20:19:53.145898Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 2.8MB → 0.4MB (6.5x), 24 JPEGs deleted\n2026-04-24T20:24:53.257193Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 51 eligible frames\n2026-04-24T20:24:54.402014Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.1MB → 0.3MB (11.5x), 18 JPEGs deleted\n2026-04-24T20:24:56.377255Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 3.8MB → 0.8MB (4.7x), 31 JPEGs deleted\n2026-04-24T20:25:10.402164Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3106110712420029149, trigger=click)\n2026-04-24T20:29:19.308490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8949863932749715123, trigger=visual_change)\n2026-04-24T20:29:31.322538Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8744464076014281490, trigger=click)\n2026-04-24T20:29:56.486436Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 108 eligible frames\n2026-04-24T20:29:59.304643Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 8.5MB → 0.4MB (23.0x), 49 JPEGs deleted\n2026-04-24T20:30:02.871082Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 57 frames, 7.0MB → 1.9MB (3.8x), 57 JPEGs deleted\n2026-04-24T20:30:27.093299Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4461348727040718412, trigger=visual_change)\n2026-04-24T20:30:28.165565Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4750571448063687198, trigger=click)\n2026-04-24T20:30:44.003985Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2710571727549817545, trigger=click)\n2026-04-24T20:30:44.686420Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2710571727549817545, trigger=click)\n2026-04-24T20:30:44.744525Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2710571727549817545, trigger=click)\n2026-04-24T20:30:47.229135Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2710571727549817545, trigger=click)\n2026-04-24T20:30:47.264811Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2710571727549817545, trigger=click)\n2026-04-24T20:30:48.290372Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2710571727549817545, trigger=click)\n2026-04-24T20:30:48.354183Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2710571727549817545, trigger=click)\n2026-04-24T20:30:48.737643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2710571727549817545, trigger=visual_change)\n2026-04-24T20:30:49.019346Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2710571727549817545, trigger=click)\n2026-04-24T20:30:51.563433Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2710571727549817545, trigger=click)\n2026-04-24T20:30:51.629541Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2710571727549817545, trigger=click)\n2026-04-24T20:31:02.677713Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2710571727549817545, trigger=click)\n2026-04-24T20:31:02.733654Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2710571727549817545, trigger=click)\n2026-04-24T20:31:22.251277Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2710571727549817545, trigger=visual_change)\n2026-04-24T20:35:02.980238Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 23 eligible frames\n2026-04-24T20:35:03.733101Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.7MB → 0.3MB (6.5x), 10 JPEGs deleted\n2026-04-24T20:35:04.512692Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.3MB → 0.2MB (6.5x), 11 JPEGs deleted\n2026-04-24T20:40:04.622649Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 42 eligible frames\n2026-04-24T20:40:05.762156Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.1MB → 0.4MB (8.7x), 18 JPEGs deleted\n2026-04-24T20:40:07.216987Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 2.7MB → 0.7MB (3.6x), 22 JPEGs deleted\n2026-04-24T20:42:07.103966Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)\n2026-04-24T20:42:18.251905Z INFO sck_rs::stream_manager: recreating stream for display 1 (resolution change)\n2026-04-24T20:42:33.021190Z INFO sck_rs::stream_manager: recreating stream for display 2 (resolution change)\n2026-04-24T20:45:07.340583Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 46 eligible frames\n2026-04-24T20:45:08.580125Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 3.5MB → 0.3MB (12.8x), 20 JPEGs deleted\n2026-04-24T20:45:10.219587Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 3.3MB → 1.1MB (3.2x), 24 JPEGs deleted\n2026-04-24T20:50:11.638292Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=1.408088167s\n2026-04-24T20:50:11.638476Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T20:50:12.336327Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.7MB → 0.3MB (6.5x), 10 JPEGs deleted\n2026-04-24T20:50:13.038553Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.3MB → 0.2MB (7.9x), 10 JPEGs deleted\n2026-04-24T20:50:54.690485Z WARN screenpipe_engine::resource_monitor: PostHog request timed out\n2026-04-24T20:51:02.880460Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)\n2026-04-24T20:51:02.932072Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2\n2026-04-24T20:51:03.132354Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-24T20:51:17.456775Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-24T20:55:16.847972Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=9 elapsed=3.803582541s\n2026-04-24T20:55:16.848079Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 9 eligible frames\n2026-04-24T20:55:17.285370Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 3 frames, 0.5MB → 0.3MB (2.1x), 3 JPEGs deleted\n2026-04-24T20:55:17.707652Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 4 frames, 0.5MB → 0.2MB (3.2x), 4 JPEGs deleted\n2026-04-24T20:57:16.073846Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8744464076014281490, trigger=click)\n2026-04-24T20:57:17.368379Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8744464076014281490, trigger=click)\n2026-04-24T20:57:17.421200Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8744464076014281490, trigger=click)\n2026-04-24T20:57:20.458119Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8744464076014281490, trigger=click)\n2026-04-24T20:59:31.783847Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4750571448063687198, trigger=click)\n2026-04-24T20:59:34.211064Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4750571448063687198, trigger=click)\n2026-04-24T20:59:47.417854Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4750571448063687198, trigger=click)\n2026-04-24T21:00:17.839015Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-24T21:05:17.985387Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 19 eligible frames\n2026-04-24T21:05:18.703160Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 1.4MB → 0.3MB (5.2x), 8 JPEGs deleted\n2026-04-24T21:05:19.440635Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.5MB → 0.2MB (7.6x), 11 JPEGs deleted\n2026-04-24T21:07:00.844258Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4750571448063687198, trigger=click)\n2026-04-24T21:07:03.877839Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4750571448063687198, trigger=click)\n2026-04-24T21:07:25.748518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1082535405972275214, trigger=visual_change)\n2026-04-24T21:10:19.553950Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 65 eligible frames\n2026-04-24T21:10:21.337256Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 5.2MB → 0.4MB (14.3x), 30 JPEGs deleted\n2026-04-24T21:10:23.420320Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 33 frames, 4.2MB → 1.2MB (3.6x), 33 JPEGs deleted\n2026-04-24T21:15:23.505718Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 42 eligible frames\n2026-04-24T21:15:24.592459Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.0MB → 0.3MB (10.9x), 17 JPEGs deleted\n2026-04-24T21:15:26.028507Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 2.8MB → 0.5MB (5.7x), 23 JPEGs deleted\n2026-04-24T21:20:27.421190Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=41 elapsed=1.386641125s\n2026-04-24T21:20:27.421401Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 41 eligible frames\n2026-04-24T21:20:28.288951Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.3MB → 0.3MB (8.4x), 13 JPEGs deleted\n2026-04-24T21:20:30.075512Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 3.4MB → 1.0MB (3.6x), 26 JPEGs deleted\n2026-04-24T21:25:33.913058Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=24 elapsed=3.832303084s\n2026-04-24T21:25:33.913222Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 24 eligible frames\n2026-04-24T21:25:34.659159Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.7MB → 0.3MB (6.5x), 10 JPEGs deleted\n2026-04-24T21:25:35.654072Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 1.6MB → 0.5MB (3.5x), 12 JPEGs deleted\n2026-04-24T21:26:28.683188Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9215443531147982391, trigger=visual_change)\n2026-04-24T21:26:40.773786Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9215443531147982391, trigger=visual_change)\n2026-04-24T21:26:52.240691Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9215443531147982391, trigger=visual_change)\n2026-04-24T21:30:35.796792Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 23 eligible frames\n2026-04-24T21:30:36.549307Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.7MB → 0.3MB (6.5x), 10 JPEGs deleted\n2026-04-24T21:30:37.299172Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.5MB → 0.3MB (5.5x), 11 JPEGs deleted\n2026-04-24T21:35:37.420689Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T21:35:38.188735Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.7MB → 0.3MB (6.5x), 10 JPEGs deleted\n2026-04-24T21:35:38.941661Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.3MB → 0.3MB (4.6x), 10 JPEGs deleted\n2026-04-24T21:35:53.194121Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=341509084316959528, trigger=click)\n2026-04-24T21:35:53.240769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=341509084316959528, trigger=click)\n2026-04-24T21:37:29.592864Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=341509084316959528, trigger=click)\n2026-04-24T21:37:35.109916Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=341509084316959528, trigger=visual_change)\n2026-04-24T21:38:17.385574Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=341509084316959528, trigger=visual_change)\n2026-04-24T21:38:53.663144Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=341509084316959528, trigger=visual_change)\n2026-04-24T21:39:03.161570Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=341509084316959528, trigger=click)\n2026-04-24T21:40:39.080108Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 44 eligible frames\n2026-04-24T21:40:40.201264Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.0MB → 0.4MB (8.2x), 17 JPEGs deleted\n2026-04-24T21:40:41.781884Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 3.1MB → 0.9MB (3.4x), 25 JPEGs deleted\n2026-04-24T21:45:15.578328Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=341509084316959528, trigger=click)\n2026-04-24T21:45:15.635252Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=341509084316959528, trigger=click)\n2026-04-24T21:45:17.748385Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=341509084316959528, trigger=click)\n2026-04-24T21:45:17.817038Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=341509084316959528, trigger=click)\n2026-04-24T21:45:41.894640Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T21:45:42.715481Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.7MB → 0.3MB (6.5x), 10 JPEGs deleted\n2026-04-24T21:45:43.418068Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.3MB → 0.2MB (7.8x), 10 JPEGs deleted\n2026-04-24T21:46:03.365851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2054959361674030309, trigger=visual_change)\n2026-04-24T21:46:06.405831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4750571448063687198, trigger=click)\n2026-04-24T21:46:08.909389Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4750571448063687198, trigger=click)\n2026-04-24T21:46:09.915564Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1853829974648413344, trigger=visual_change)\n2026-04-24T21:46:16.120235Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4750571448063687198, trigger=click)\n2026-04-24T21:50:43.557928Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T21:50:44.310539Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.7MB → 0.3MB (6.5x), 10 JPEGs deleted\n2026-04-24T21:50:45.056687Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.3MB → 0.3MB (4.3x), 10 JPEGs deleted\n2026-04-24T21:55:45.182142Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 31 eligible frames\n2026-04-24T21:55:46.056016Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.3MB → 0.3MB (8.4x), 13 JPEGs deleted\n2026-04-24T21:55:47.304265Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.0MB → 0.5MB (4.4x), 16 JPEGs deleted\n2026-04-24T21:56:32.421403Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)\n2026-04-24T22:00:47.444500Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 37 eligible frames\n2026-04-24T22:00:48.209538Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.9MB → 0.3MB (7.1x), 11 JPEGs deleted\n2026-04-24T22:00:49.759016Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 3.4MB → 1.0MB (3.3x), 24 JPEGs deleted\n2026-04-24T22:05:49.868079Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T22:05:50.618796Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.7MB → 0.3MB (6.5x), 10 JPEGs deleted\n2026-04-24T22:05:51.305558Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.2MB → 0.2MB (7.6x), 10 JPEGs deleted\n2026-04-24T22:06:59.050577Z INFO sck_rs::stream_manager: invalidated persistent stream for display 1\n2026-04-24T22:07:13.086092Z WARN screenpipe_engine::resource_monitor: PostHog request timed out\n2026-04-24T22:07:33.786348Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)\n2026-04-24T22:07:33.834401Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2\n2026-04-24T22:07:33.896428Z INFO sck_rs::stream_manager: stopped 1 persistent stream(s)\n2026-04-24T22:07:34.025901Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-24T22:07:34.139823Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-24T22:07:46.957004Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2054959361674030309, trigger=visual_change)\n2026-04-24T22:07:47.692981Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4750571448063687198, trigger=click)\n2026-04-24T22:07:48.699426Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4750571448063687198, trigger=click)\n2026-04-24T22:07:48.732518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4750571448063687198, trigger=click)\n2026-04-24T22:08:07.919141Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8949863932749715123, trigger=visual_change)\n2026-04-24T22:10:03.669907Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=341509084316959528, trigger=visual_change)\n2026-04-24T22:10:06.722692Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=341509084316959528, trigger=visual_change)\n2026-04-24T22:10:18.871886Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=341509084316959528, trigger=visual_change)\n2026-04-24T22:10:37.094344Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=341509084316959528, trigger=visual_change)\n2026-04-24T22:10:43.130336Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=341509084316959528, trigger=visual_change)\n2026-04-24T22:10:53.482693Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=5 elapsed=2.1725865s\n2026-04-24T22:10:53.482887Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 5 eligible frames\n2026-04-24T22:10:53.837380Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 2 frames, 0.3MB → 0.2MB (1.4x), 2 JPEGs deleted\n2026-04-24T22:10:54.041509Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 1 frames, 0.1MB → 0.1MB (1.1x), 1 JPEGs deleted\n2026-04-24T22:10:55.213564Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=341509084316959528, trigger=visual_change)\n2026-04-24T22:11:04.259918Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=341509084316959528, trigger=visual_change)\n2026-04-24T22:11:28.438394Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=341509084316959528, trigger=visual_change)\n2026-04-24T22:11:37.488474Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=341509084316959528, trigger=visual_change)\n2026-04-24T22:15:54.117473Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-24T22:18:59.797832Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)\n2026-04-24T22:19:13.433149Z INFO sck_rs::stream_manager: recreating stream for display 1 (resolution change)\n2026-04-24T22:19:28.223705Z INFO sck_rs::stream_manager: recreating stream for display 2 (resolution change)\n2026-04-24T22:20:54.256021Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T22:20:54.984522Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 1.6MB → 0.3MB (5.8x), 9 JPEGs deleted\n2026-04-24T22:20:56.035039Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.7MB → 0.7MB (2.6x), 13 JPEGs deleted\n2026-04-24T22:25:56.125721Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T22:25:56.864851Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.7MB → 0.3MB (6.5x), 10 JPEGs deleted\n2026-04-24T22:25:57.581205Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.4MB → 0.2MB (5.8x), 10 JPEGs deleted\n2026-04-24T22:30:57.712015Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 14 eligible frames\n2026-04-24T22:30:58.337622Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 6 frames, 1.0MB → 0.3MB (3.9x), 6 JPEGs deleted\n2026-04-24T22:30:58.911832Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 6 frames, 0.8MB → 0.2MB (4.5x), 6 JPEGs deleted\n2026-04-24T22:35:59.025118Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-25T00:31:03.532748Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.403754542s\n2026-04-25T00:36:04.888212Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.355033833s\n2026-04-25T02:26:09.381064Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.752063917s\n2026-04-25T02:36:10.551753Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.050235167s\n2026-04-25T02:51:12.734441Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.9489485s\n2026-04-25T03:01:06.935149Z WARN screenpipe_engine::resource_monitor: PostHog request timed out\n2026-04-25T03:02:06.966335Z ERROR screenpipe_engine::resource_monitor: Failed to send resource usage to PostHog: error sending request for url (https://us.i.posthog.com/capture/)\n2026-04-25T04:36:20.831709Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.323757458s\n2026-04-25T04:46:23.391499Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.59293325s\n2026-04-25T05:06:26.020217Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.550194958s\n2026-04-25T06:36:31.641080Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.410231334s\n2026-04-25T07:51:35.485001Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.275606209s\n2026-04-25T08:21:38.394114Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.058651125s\n2026-04-25T08:56:44.679601Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.899231459s\n2026-04-25T09:01:45.790944Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.111638125s\n2026-04-25T09:06:47.451286Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.659418875s\n2026-04-25T09:11:50.605191Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=3.139225667s\n2026-04-25T09:16:53.333463Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=2.728748083s\n2026-04-25T09:21:54.829483Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.481694292s\n2026-04-25T09:26:56.691352Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.860160708s\n2026-04-25T09:31:59.318916Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=2.641507875s\n2026-04-25T09:37:00.846974Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.527240458s\n2026-04-25T09:47:02.746275Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.46771125s\n2026-04-25T10:07:04.702110Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.4512865s\n2026-04-25T10:12:06.514003Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.851845375s\n2026-04-25T10:17:09.145447Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=2.633306292s\n2026-04-25T10:32:12.617468Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=3.183533083s\n2026-04-25T10:52:14.712931Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.739192166s\n2026-04-25T11:17:19.449162Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=3.216377375s\n2026-04-25T11:22:20.715206Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.267409208s\n2026-04-25T11:52:27.083139Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=4.271213042s\n2026-04-25T12:17:31.033541Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.234918584s\n2026-04-25T12:22:34.030483Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=2.994751291s\n2026-04-25T12:27:35.182859Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.152736542s\n2026-04-25T12:42:41.216480Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=5.033096125s\n2026-04-25T13:07:44.656373Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.798177625s\n2026-04-25T13:12:48.550581Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=3.894991833s\n2026-04-25T13:17:50.993975Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=2.444900041s\n2026-04-25T13:22:53.791038Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=2.819025041s\n2026-04-25T13:27:54.822046Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.033900666s\n2026-04-25T13:42:57.280689Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=2.170261167s\n2026-04-25T13:48:00.341641Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=3.063761209s\n2026-04-25T13:58:02.155594Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.003461708s\n2026-04-25T14:03:03.435953Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.263781791s\n2026-04-25T14:13:06.727837Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=3.164951708s\n2026-04-25T14:18:09.541408Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=2.816421959s\n2026-04-25T14:23:11.032066Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.466058042s\n2026-04-25T14:28:12.850148Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.810514583s\n2026-04-25T14:43:15.922744Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=2.212433625s\n2026-04-25T14:48:18.547263Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=2.611123083s\n2026-04-25T14:53:19.667474Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.11755375s\n2026-04-25T15:03:21.308350Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.46300375s\n2026-04-25T15:13:29.897768Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=7.888686584s\n2026-04-25T15:33:32.174288Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.381808625s\n2026-04-25T15:43:34.105473Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.801180792s\n2026-04-25T15:48:36.478523Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=2.368007208s\n2026-04-25T16:18:39.844947Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=2.086581708s\n2026-04-25T16:43:47.926061Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=5.962960083s\n2026-04-25T16:58:49.502984Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.049299875s\n2026-04-25T17:03:54.050957Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=4.550855625s\n2026-04-25T17:13:55.479571Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.285178292s\n2026-04-25T17:18:56.727113Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.216977333s\n2026-04-25T17:24:00.252789Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=3.525427875s\n2026-04-25T17:25:46.308689Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)\n2026-04-25T17:25:46.346123Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2\n2026-04-25T17:25:46.511136Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-25T17:25:47.036757Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: day rollover (114 -> 115), clearing cache\n2026-04-25T17:26:02.744027Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1534360647489461776, trigger=click)\n2026-04-25T17:26:09.883472Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-25T17:26:10.274955Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1200437610819337959, trigger=click)","depth":4,"value":"┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ true │\n│ vision disabled │ false │\n│ pause on DRM content │ false │\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n│ ignored windows │ [\"Boosteroid\"] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n│ api auth │ enabled │\n2026-04-24T13:24:23.186334Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n2026-04-24T13:24:23.198489Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n│ encrypt secrets │ disabled │\n│ retention days │ 14 │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ id: 1 │\n│ │ id: 2 │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ disabled │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-24T13:24:23.216198Z INFO screenpipe: starting UI event capture\n2026-04-24T13:24:23.238868Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-24T13:24:23.260906Z INFO screenpipe_engine::ui_recorder: UI recording session started: 9676eafd-ea8f-4e1a-a5f1-de7bdb79c071\n2026-04-24T13:24:23.260911Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-24T13:24:23.260972Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-23 10:24:23.260965 UTC to 2026-04-24 10:24:23.260965 UTC)\n2026-04-24T13:24:23.261685Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-24T13:24:23.262214Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-24T13:24:23.273443Z INFO screenpipe_engine::server: Server listening on 127.0.0.1:3030\n2026-04-24T13:24:23.304240Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-24T13:24:23.567248Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-24T13:24:23.567289Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-24T13:24:23.567346Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-24T13:24:23.850835Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-24T13:24:23.850880Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-24T13:24:23.850893Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)\n2026-04-24T13:24:23.850901Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)\n2026-04-24T13:24:23.850941Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-24T13:24:25.197204Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)\n2026-04-24T13:24:25.589436Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=77673, dur=103ms\n2026-04-24T13:24:25.630980Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)\n2026-04-24T13:24:25.652818Z INFO sck_rs::stream_manager: invalidated persistent stream for display 1\n2026-04-24T13:24:26.160345Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=77674, dur=198ms\n2026-04-24T13:24:27.471087Z WARN sqlx::query: summary=\"SELECT f.id, f.timestamp, f.offset_index, …\" db.statement=\"\\n\\nSELECT\\n f.id,\\n f.timestamp,\\n f.offset_index,\\n COALESCE(\\n SUBSTR(f.full_text, 1, 200),\\n SUBSTR(f.accessibility_text, 1, 200),\\n (\\n SELECT\\n SUBSTR(ot.text, 1, 200)\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as text,\\n COALESCE(\\n f.app_name,\\n (\\n SELECT\\n ot.app_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as app_name,\\n COALESCE(\\n f.window_name,\\n (\\n SELECT\\n ot.window_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as window_name,\\n COALESCE(vc.device_name, f.device_name) as screen_device,\\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\\n COALESCE(vc.fps, 0.033) as chunk_fps,\\n f.browser_url,\\n f.machine_id\\nFROM\\n frames f\\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\\nWHERE\\n f.timestamp >= ?1\\n AND f.timestamp <= ?2\\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\\nORDER BY\\n f.timestamp DESC,\\n f.offset_index DESC\\nLIMIT\\n 10000\\n\" rows_affected=0 rows_returned=2758 elapsed=4.209235542s\n2026-04-24T13:24:27.488504Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 2758 frame entries, coverage from 2026-04-23 10:24:23.260965 UTC\n2026-04-24T13:24:56.108522Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)\n2026-04-24T13:25:34.118891Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=82 elapsed=10.985025625s\n2026-04-24T13:25:34.121032Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 82 eligible frames\n2026-04-24T13:25:37.475066Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 6.5MB → 0.2MB (30.1x), 39 JPEGs deleted\n2026-04-24T13:25:41.147418Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 41 frames, 9.1MB → 0.3MB (26.4x), 41 JPEGs deleted\n2026-04-24T13:26:53.913464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3587331842305982393, trigger=click)\n2026-04-24T13:30:52.310748Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=2 elapsed=11.152255s\n2026-04-24T13:30:52.313747Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-24T13:36:00.069099Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=9 elapsed=7.594933541s\n2026-04-24T13:36:00.071113Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 9 eligible frames\n2026-04-24T13:36:00.617576Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 4 frames, 0.3MB → 0.1MB (3.6x), 4 JPEGs deleted\n2026-04-24T13:36:01.402540Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 5 frames, 1.0MB → 0.4MB (2.4x), 5 JPEGs deleted\n2026-04-24T13:40:06.828525Z WARN sqlx::query: summary=\"BEGIN IMMEDIATE\" db.statement=\"\" rows_affected=1 rows_returned=0 elapsed=1.076759291s\n2026-04-24T13:40:07.002782Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=195 elapsed=1.250257875s\n2026-04-24T13:41:11.559513Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=92 elapsed=10.151735042s\n2026-04-24T13:41:11.559741Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 92 eligible frames\n2026-04-24T13:41:14.043784Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 2.3MB → 0.1MB (32.3x), 37 JPEGs deleted\n2026-04-24T13:41:21.303349Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 53 frames, 8.7MB → 3.1MB (2.8x), 53 JPEGs deleted\n2026-04-24T13:41:40.887689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7539785768983157715, trigger=click)\n2026-04-24T13:42:34.136767Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3059269999432289894, trigger=click)\n2026-04-24T13:42:45.942807Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3777488472456223409, trigger=click)\n2026-04-24T13:43:01.921357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1871207218552190145, trigger=click)\n2026-04-24T13:44:01.878037Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8495661271621520850, trigger=click)\n2026-04-24T13:46:28.021146Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=40 elapsed=6.713739708s\n2026-04-24T13:46:28.021348Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames\n2026-04-24T13:46:29.141090Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 1.1MB → 0.1MB (17.9x), 18 JPEGs deleted\n2026-04-24T13:46:31.601195Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.7MB → 2.9MB (1.6x), 20 JPEGs deleted\n2026-04-24T13:51:31.692283Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames\n2026-04-24T13:51:32.570330Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.0MB → 0.2MB (4.8x), 13 JPEGs deleted\n2026-04-24T13:51:33.760542Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.9MB → 1.0MB (1.9x), 10 JPEGs deleted\n2026-04-24T13:55:31.626192Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2977185087332333124, trigger=click)\n2026-04-24T13:56:33.924925Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 105 eligible frames\n2026-04-24T13:56:37.179833Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 55 frames, 5.1MB → 1.4MB (3.6x), 55 JPEGs deleted\n2026-04-24T13:56:40.328768Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 48 frames, 7.6MB → 1.3MB (6.0x), 48 JPEGs deleted\n2026-04-24T14:00:47.136298Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Firefox, signals=2)\n2026-04-24T14:00:47.857419Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2938651853865790585, trigger=click)\n2026-04-24T14:00:52.374476Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Firefox, signals=2, browser=true)\n2026-04-24T14:00:52.378086Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=12, app=Firefox, title=None)\n2026-04-24T14:01:40.650767Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 62 eligible frames\n2026-04-24T14:01:42.431196Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 1.9MB → 0.1MB (32.0x), 30 JPEGs deleted\n2026-04-24T14:01:44.259623Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 4.8MB → 0.2MB (23.8x), 30 JPEGs deleted\n2026-04-24T14:06:51.687604Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=54 elapsed=7.415698459s\n2026-04-24T14:06:51.691163Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 54 eligible frames\n2026-04-24T14:06:53.324710Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 1.7MB → 0.1MB (29.0x), 27 JPEGs deleted\n2026-04-24T14:06:54.826559Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.0MB → 0.2MB (19.9x), 25 JPEGs deleted\n2026-04-24T14:11:54.984165Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 93 eligible frames\n2026-04-24T14:11:57.808857Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 48 frames, 3.1MB → 0.1MB (49.5x), 48 JPEGs deleted\n2026-04-24T14:12:00.396251Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 43 frames, 6.8MB → 0.2MB (33.8x), 43 JPEGs deleted\n2026-04-24T14:17:06.109470Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=49 elapsed=5.652470541s\n2026-04-24T14:17:06.109602Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 49 eligible frames\n2026-04-24T14:17:07.677608Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 1.6MB → 0.1MB (27.0x), 25 JPEGs deleted\n2026-04-24T14:17:09.097967Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 3.5MB → 0.2MB (17.6x), 22 JPEGs deleted\n2026-04-24T14:22:13.316698Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=24 elapsed=4.206937709s\n2026-04-24T14:22:13.317436Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 24 eligible frames\n2026-04-24T14:22:14.074811Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 0.7MB → 0.1MB (12.2x), 11 JPEGs deleted\n2026-04-24T14:22:14.844321Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.7MB → 0.2MB (8.9x), 11 JPEGs deleted\n2026-04-24T14:27:16.330019Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=1.474471542s\n2026-04-24T14:27:16.330265Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T14:27:17.027734Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted\n2026-04-24T14:27:17.792405Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted\n2026-04-24T14:32:18.770983Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T14:32:19.478630Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted\n2026-04-24T14:32:20.241056Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted\n2026-04-24T14:37:27.349741Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=7.096181584s\n2026-04-24T14:37:27.353187Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T14:37:28.066685Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted\n2026-04-24T14:37:28.851355Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted\n2026-04-24T14:38:19.407454Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=12, grace=300s)\n2026-04-24T14:39:19.637322Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8577329830578954505, trigger=click)\n2026-04-24T14:39:21.680425Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8317095871263557761, trigger=click)\n2026-04-24T14:39:21.707871Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8317095871263557761, trigger=click)\n2026-04-24T14:40:10.148981Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5676671508452457688, trigger=click)\n2026-04-24T14:42:02.876165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3644563293578755711, trigger=click)\n2026-04-24T14:42:12.151008Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3644563293578755711, trigger=click)\n2026-04-24T14:42:36.098708Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=7.2363725s\n2026-04-24T14:42:36.098834Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T14:42:36.816811Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted\n2026-04-24T14:42:37.598382Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted\n2026-04-24T14:42:43.884371Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1901203473704384943, trigger=click)\n2026-04-24T14:42:43.916542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1901203473704384943, trigger=click)\n2026-04-24T14:43:24.413233Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Idle (timeout=300s, app=Firefox, id=12)\n2026-04-24T14:43:24.855747Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting ended (id=12)\n2026-04-24T14:44:38.941315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1557697903749375374, trigger=click)\n2026-04-24T14:44:38.962591Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1557697903749375374, trigger=click)\n2026-04-24T14:44:39.438011Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1557697903749375374, trigger=click)\n2026-04-24T14:45:24.198550Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8167839925779509873, trigger=click)\n2026-04-24T14:45:25.110117Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8167839925779509873, trigger=click)\n2026-04-24T14:45:38.880039Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3644563293578755711, trigger=click)\n2026-04-24T14:46:09.691532Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8167839925779509873, trigger=click)\n2026-04-24T14:46:23.813781Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4533509598273890786, trigger=click)\n2026-04-24T14:46:23.859560Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4533509598273890786, trigger=click)\n2026-04-24T14:47:44.514826Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2503176719318141451, trigger=click)\n2026-04-24T14:47:44.539391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2503176719318141451, trigger=click)\n2026-04-24T14:47:44.764903Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=21 elapsed=7.257808167s\n2026-04-24T14:47:44.764982Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames\n2026-04-24T14:47:45.473419Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 0.6MB → 0.1MB (10.0x), 9 JPEGs deleted\n2026-04-24T14:47:46.188394Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted\n2026-04-24T14:47:50.085052Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2503176719318141451, trigger=click)\n2026-04-24T14:47:50.106335Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2503176719318141451, trigger=click)\n2026-04-24T14:52:53.441281Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=100 elapsed=7.256992167s\n2026-04-24T14:52:53.441665Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 100 eligible frames\n2026-04-24T14:52:56.554743Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 3.2MB → 0.1MB (50.4x), 49 JPEGs deleted\n2026-04-24T14:52:59.416988Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 7.8MB → 0.2MB (38.4x), 49 JPEGs deleted\n2026-04-24T14:53:50.050387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4956080981675052788, trigger=click)\n2026-04-24T14:55:36.318507Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-991319035522409710, trigger=click)\n2026-04-24T14:55:36.391576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-991319035522409710, trigger=click)\n2026-04-24T14:57:59.569859Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 57 eligible frames\n2026-04-24T14:58:01.300455Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 1.6MB → 0.1MB (25.9x), 24 JPEGs deleted\n2026-04-24T14:58:03.198608Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 4.9MB → 0.2MB (24.6x), 31 JPEGs deleted\n2026-04-24T15:03:08.612242Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=30 elapsed=5.295343459s\n2026-04-24T15:03:08.612821Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 30 eligible frames\n2026-04-24T15:03:09.620798Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 0.9MB → 0.1MB (15.4x), 14 JPEGs deleted\n2026-04-24T15:03:10.811697Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.2MB → 0.2MB (11.3x), 14 JPEGs deleted\n2026-04-24T15:04:26.269378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5667957418966591499, trigger=click)\n2026-04-24T15:04:26.321219Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5667957418966591499, trigger=click)\n2026-04-24T15:08:14.307499Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=25 elapsed=3.392988s\n2026-04-24T15:08:14.307671Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames\n2026-04-24T15:08:15.302981Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 0.7MB → 0.1MB (12.2x), 11 JPEGs deleted\n2026-04-24T15:08:16.186177Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 1.9MB → 0.2MB (9.7x), 12 JPEGs deleted\n2026-04-24T15:13:18.963807Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=37 elapsed=2.767425042s\n2026-04-24T15:13:18.963934Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 37 eligible frames\n2026-04-24T15:13:20.113690Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 1.2MB → 0.1MB (19.7x), 18 JPEGs deleted\n2026-04-24T15:13:21.236764Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.7MB → 0.2MB (13.6x), 17 JPEGs deleted\n2026-04-24T15:14:48.156237Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)\n2026-04-24T15:15:01.132168Z INFO sck_rs::stream_manager: recreating stream for display 1 (resolution change)\n2026-04-24T15:15:01.221025Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=app_switch, monitor=1) — DB pool may be saturated\n2026-04-24T15:15:01.375924Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=app_switch, monitor=2) — DB pool may be saturated\n2026-04-24T15:15:15.842371Z INFO sck_rs::stream_manager: recreating stream for display 2 (resolution change)\n2026-04-24T15:18:28.531831Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=36 elapsed=7.26041775s\n2026-04-24T15:18:28.531955Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 36 eligible frames\n2026-04-24T15:18:29.658166Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 1.1MB → 0.1MB (18.6x), 17 JPEGs deleted\n2026-04-24T15:18:30.768761Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.7MB → 0.2MB (13.6x), 17 JPEGs deleted\n2026-04-24T15:23:31.928536Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=1.148790625s\n2026-04-24T15:23:31.928649Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T15:23:32.642076Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted\n2026-04-24T15:23:33.401791Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted\n2026-04-24T15:28:34.810366Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=8 elapsed=1.39738375s\n2026-04-24T15:28:34.810546Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 8 eligible frames\n2026-04-24T15:28:35.187466Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 3 frames, 0.2MB → 0.1MB (3.5x), 3 JPEGs deleted\n2026-04-24T15:28:35.591687Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 3 frames, 0.5MB → 0.2MB (2.6x), 3 JPEGs deleted\n2026-04-24T15:33:39.031121Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=2 elapsed=3.484074667s\n2026-04-24T15:33:39.031286Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-24T15:43:41.373431Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=2.126509208s\n2026-04-24T15:48:45.005960Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=3.630826208s\n2026-04-24T15:53:46.452410Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.442133375s\n2026-04-24T16:03:50.813556Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=3.725817875s\n2026-04-24T16:08:52.104712Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.289955292s\n2026-04-24T16:14:48.860304Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)\n2026-04-24T16:14:48.885031Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2\n2026-04-24T16:14:49.085988Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)\n2026-04-24T16:14:49.951727Z INFO screenpipe_engine::event_driven_capture: monitor 2 capture recovered after 1 consecutive errors\n2026-04-24T16:15:14.957591Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-24T16:15:15.344344Z INFO screenpipe_engine::event_driven_capture: monitor 1 capture recovered after 1 consecutive errors\n2026-04-24T16:17:13.975782Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7172393451066325016, trigger=click)\n2026-04-24T16:19:00.805923Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=7.986969166s\n2026-04-24T16:19:29.124240Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3129461629380798674, trigger=click)\n2026-04-24T16:19:29.165320Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=click)\n2026-04-24T16:20:57.221933Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=click)\n2026-04-24T16:21:34.158304Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=visual_change)\n2026-04-24T16:21:52.258518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=visual_change)\n2026-04-24T16:24:07.960303Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=7.148022208s\n2026-04-24T16:25:38.292462Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8773909165376335292, trigger=click)\n2026-04-24T16:28:02.880424Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=826123905625364471, trigger=click)\n2026-04-24T16:28:02.928317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=826123905625364471, trigger=click)\n2026-04-24T16:29:02.161685Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5156992524424370675, trigger=visual_change)\n2026-04-24T16:29:11.119509Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5156992524424370675, trigger=visual_change)\n2026-04-24T16:29:15.437543Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=42 elapsed=7.45073025s\n2026-04-24T16:29:15.438417Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 42 eligible frames\n2026-04-24T16:29:17.083173Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 3.2MB → 0.4MB (9.1x), 20 JPEGs deleted\n2026-04-24T16:29:18.972223Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 5.2MB → 1.7MB (3.0x), 22 JPEGs deleted\n2026-04-24T16:29:34.388891Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5156992524424370675, trigger=click)\n2026-04-24T16:29:45.796969Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4817563232530793650, trigger=click)\n2026-04-24T16:32:36.877636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=visual_change)\n2026-04-24T16:32:42.134384Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=visual_change)\n2026-04-24T16:32:44.378087Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)\n2026-04-24T16:32:45.243874Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=visual_change)\n2026-04-24T16:32:54.163388Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8550622008733264339, trigger=click)\n2026-04-24T16:32:54.176256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)\n2026-04-24T16:32:57.087323Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8550622008733264339, trigger=click)\n2026-04-24T16:32:57.117211Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)\n2026-04-24T16:34:03.172812Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:34:13.599521Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:34:23.371635Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=21 elapsed=4.397149916s\n2026-04-24T16:34:23.371744Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames\n2026-04-24T16:34:24.346821Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.6MB → 0.4MB (4.0x), 11 JPEGs deleted\n2026-04-24T16:34:25.323782Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 2.0MB → 0.7MB (2.7x), 8 JPEGs deleted\n2026-04-24T16:35:16.265905Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:35:16.396499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:37:09.981293Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=visual_change)\n2026-04-24T16:38:45.635162Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:38:47.663267Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:39:10.322134Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:39:27.552784Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=33 elapsed=2.228011375s\n2026-04-24T16:39:27.552915Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 33 eligible frames\n2026-04-24T16:39:28.615455Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.8MB → 0.6MB (4.8x), 14 JPEGs deleted\n2026-04-24T16:39:30.390392Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.1MB → 1.6MB (2.0x), 17 JPEGs deleted\n2026-04-24T16:40:01.437647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7218881400109780070, trigger=click)\n2026-04-24T16:40:12.586378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:41:05.997041Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6861826947729846030, trigger=click)\n2026-04-24T16:41:11.184592Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6861826947729846030, trigger=click)\n2026-04-24T16:43:15.433697Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8550622008733264339, trigger=click)\n2026-04-24T16:43:15.515804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)\n2026-04-24T16:43:51.515815Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5576357006515458390, trigger=click)\n2026-04-24T16:43:59.714706Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5576357006515458390, trigger=click)\n2026-04-24T16:43:59.785731Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5576357006515458390, trigger=click)\n2026-04-24T16:44:38.173037Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=20 elapsed=7.796779s\n2026-04-24T16:44:38.174424Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 20 eligible frames\n2026-04-24T16:44:39.258439Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 1.8MB → 0.3MB (5.7x), 9 JPEGs deleted\n2026-04-24T16:44:41.729154Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 2.3MB → 1.7MB (1.4x), 9 JPEGs deleted\n2026-04-24T16:48:00.989535Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5576357006515458390, trigger=click)\n2026-04-24T16:48:17.430932Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5576357006515458390, trigger=click)\n2026-04-24T16:49:49.135916Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=17 elapsed=7.403764583s\n2026-04-24T16:49:49.136082Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 17 eligible frames\n2026-04-24T16:49:50.004132Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 1.6MB → 0.3MB (5.1x), 8 JPEGs deleted\n2026-04-24T16:49:50.898114Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 7 frames, 1.9MB → 0.7MB (2.6x), 7 JPEGs deleted\n2026-04-24T16:50:09.364175Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8409739779266792278, trigger=visual_change)\n2026-04-24T16:50:11.237105Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8409739779266792278, trigger=click)\n2026-04-24T16:51:37.931779Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1423930385844614485, trigger=click)\n2026-04-24T16:53:14.381283Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7564119013552971576, trigger=click)\n2026-04-24T16:54:12.231394Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1423930385844614485, trigger=visual_change)\n2026-04-24T16:54:15.266343Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1423930385844614485, trigger=visual_change)\n2026-04-24T16:55:01.568514Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=58 elapsed=10.558641542s\n2026-04-24T16:55:01.569579Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 58 eligible frames\n2026-04-24T16:55:04.609017Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 5.7MB → 1.1MB (5.0x), 28 JPEGs deleted\n2026-04-24T16:55:09.392416Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 5.5MB → 3.1MB (1.8x), 28 JPEGs deleted\n2026-04-24T16:55:39.774741Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3617611630109587613, trigger=click)\n2026-04-24T16:55:39.852272Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3617611630109587613, trigger=click)\n2026-04-24T16:56:40.038632Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-426150959945983082, trigger=click)\n2026-04-24T16:59:26.437906Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-426150959945983082, trigger=visual_change)\n2026-04-24T17:00:21.026565Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=53 elapsed=11.620753209s\n2026-04-24T17:00:21.027475Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 53 eligible frames\n2026-04-24T17:00:24.007228Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 4.3MB → 0.5MB (7.8x), 21 JPEGs deleted\n2026-04-24T17:00:30.315443Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 6.2MB → 3.1MB (2.0x), 30 JPEGs deleted\n2026-04-24T17:01:31.749742Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4978074472044237669, trigger=click)\n2026-04-24T17:02:32.676946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6528076374554576690, trigger=click)\n2026-04-24T17:03:24.566715Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5730479857460890072, trigger=click)\n2026-04-24T17:03:24.646165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5730479857460890072, trigger=click)\n2026-04-24T17:04:36.724352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2722349336895059815, trigger=click)\n2026-04-24T17:05:26.414686Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-255140549253982666, trigger=click)\n2026-04-24T17:05:38.960944Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=49 elapsed=8.570160541s\n2026-04-24T17:05:38.961851Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 49 eligible frames\n2026-04-24T17:05:40.770553Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.8MB → 0.5MB (10.1x), 24 JPEGs deleted\n2026-04-24T17:05:44.093500Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 4.3MB → 2.0MB (2.1x), 23 JPEGs deleted\n2026-04-24T17:10:45.665278Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=57 elapsed=1.565954333s\n2026-04-24T17:10:45.665510Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 57 eligible frames\n2026-04-24T17:10:47.346256Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.1MB → 0.3MB (15.5x), 25 JPEGs deleted\n2026-04-24T17:10:49.931994Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 5.2MB → 2.6MB (2.0x), 30 JPEGs deleted\n2026-04-24T17:12:35.862404Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2722349336895059815, trigger=visual_change)\n2026-04-24T17:15:54.006030Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=35 elapsed=4.067925709s\n2026-04-24T17:15:54.006151Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 35 eligible frames\n2026-04-24T17:15:55.261287Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.6MB → 0.3MB (11.3x), 18 JPEGs deleted\n2026-04-24T17:15:56.815522Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 3.2MB → 1.3MB (2.4x), 15 JPEGs deleted\n2026-04-24T17:20:58.288264Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=1.467426625s\n2026-04-24T17:20:58.288415Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T17:20:59.175263Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.0MB → 0.3MB (6.3x), 10 JPEGs deleted\n2026-04-24T17:21:00.120027Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.3MB → 0.4MB (6.2x), 10 JPEGs deleted\n2026-04-24T17:22:48.235588Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-885508568992678447, trigger=click)\n2026-04-24T17:22:48.306917Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-885508568992678447, trigger=click)\n2026-04-24T17:23:41.318200Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-885508568992678447, trigger=click)\n2026-04-24T17:24:30.499216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3481376117812878957, trigger=click)\n2026-04-24T17:24:30.601163Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3481376117812878957, trigger=click)\n2026-04-24T17:26:07.575025Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=28 elapsed=7.43131375s\n2026-04-24T17:26:07.578806Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames\n2026-04-24T17:26:08.478709Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 2.2MB → 0.3MB (6.9x), 11 JPEGs deleted\n2026-04-24T17:26:09.770241Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.6MB → 1.0MB (2.6x), 15 JPEGs deleted\n2026-04-24T17:26:26.261981Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-885508568992678447, trigger=click)\n2026-04-24T17:26:26.307896Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-885508568992678447, trigger=click)\n2026-04-24T17:27:22.914133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4993652597681536640, trigger=visual_change)\n2026-04-24T17:27:25.987598Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4993652597681536640, trigger=visual_change)\n2026-04-24T17:27:36.063544Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4993652597681536640, trigger=click)\n2026-04-24T17:27:36.152346Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4993652597681536640, trigger=click)\n2026-04-24T17:27:37.655642Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4993652597681536640, trigger=click)\n2026-04-24T17:27:37.736988Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4993652597681536640, trigger=click)\n2026-04-24T17:28:50.370801Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2329310517310230610, trigger=visual_change)\n2026-04-24T17:28:53.414236Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2329310517310230610, trigger=visual_change)\n2026-04-24T17:30:29.079371Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4689761151685344628, trigger=click)\n2026-04-24T17:31:20.181507Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=10.402847208s\n2026-04-24T17:31:20.182328Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T17:31:21.411366Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.0MB → 0.3MB (6.3x), 10 JPEGs deleted\n2026-04-24T17:31:22.811363Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.3MB (5.0x), 10 JPEGs deleted\n2026-04-24T17:36:28.935203Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=30 elapsed=6.117179292s\n2026-04-24T17:36:28.935662Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 30 eligible frames\n2026-04-24T17:36:29.883792Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.4MB → 0.3MB (7.6x), 12 JPEGs deleted\n2026-04-24T17:36:31.835587Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 3.5MB → 2.2MB (1.6x), 16 JPEGs deleted\n2026-04-24T17:40:48.995186Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)\n2026-04-24T17:41:03.317324Z INFO sck_rs::stream_manager: recreating stream for display 1 (resolution change)\n2026-04-24T17:41:33.869852Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=71 elapsed=2.026336375s\n2026-04-24T17:41:33.870011Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 71 eligible frames\n2026-04-24T17:41:35.708466Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 4.3MB → 1.0MB (4.3x), 28 JPEGs deleted\n2026-04-24T17:41:39.154076Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 41 frames, 7.8MB → 4.0MB (1.9x), 41 JPEGs deleted\n2026-04-24T17:46:42.848481Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=3.698421708s\n2026-04-24T17:46:42.848607Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T17:46:43.688440Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.4MB → 0.2MB (7.1x), 10 JPEGs deleted\n2026-04-24T17:46:44.602870Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.1MB → 0.3MB (6.2x), 10 JPEGs deleted\n2026-04-24T17:51:46.433154Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=18 elapsed=1.824613292s\n2026-04-24T17:51:46.433266Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 18 eligible frames\n2026-04-24T17:51:47.242571Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 1.1MB → 0.2MB (5.7x), 8 JPEGs deleted\n2026-04-24T17:51:48.089907Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 1.7MB → 0.3MB (4.9x), 8 JPEGs deleted\n2026-04-24T17:56:48.271988Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-24T18:06:52.357796Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=3.681285375s\n2026-04-24T18:11:53.610064Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.24532775s\n2026-04-24T18:21:57.920293Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=3.397249084s\n2026-04-24T18:29:38.025317Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)\n2026-04-24T18:29:38.953316Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-24T18:29:39.990915Z INFO sck_rs::stream_manager: invalidated persistent stream for display 1\n2026-04-24T18:29:42.006323Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2\n2026-04-24T18:29:42.016400Z INFO sck_rs::stream_manager: stopped 1 persistent stream(s)\n2026-04-24T18:29:42.642320Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)\n2026-04-24T18:29:49.028954Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-24T18:32:05.848216Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=7.764342958s\n2026-04-24T18:33:14.785220Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=324 elapsed=2.553840125s\n2026-04-24T18:33:49.369572Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=324 elapsed=1.115000042s\n2026-04-24T18:37:14.506363Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=8.566333417s\n2026-04-24T18:40:58.336306Z WARN sqlx::query: summary=\"COMMIT\" db.statement=\"\" rows_affected=1 rows_returned=0 elapsed=1.263114459s\n2026-04-24T18:41:21.420281Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6180934582104161978, trigger=click)\n2026-04-24T18:41:27.763060Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6180934582104161978, trigger=click)\n2026-04-24T18:42:24.498553Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=20 elapsed=9.978308334s\n2026-04-24T18:42:24.499587Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 20 eligible frames\n2026-04-24T18:42:25.603951Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 1.1MB → 0.3MB (3.4x), 8 JPEGs deleted\n2026-04-24T18:42:28.504479Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.5MB → 1.2MB (2.0x), 12 JPEGs deleted\n2026-04-24T18:44:50.719406Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6180934582104161978, trigger=click)\n2026-04-24T18:44:50.719753Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6180934582104161978, trigger=click)\n2026-04-24T18:44:58.486531Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6180934582104161978, trigger=visual_change)\n2026-04-24T18:47:39.149925Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=26 elapsed=10.64528525s\n2026-04-24T18:47:39.150528Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 26 eligible frames\n2026-04-24T18:47:40.470355Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 1.7MB → 0.2MB (8.5x), 12 JPEGs deleted\n2026-04-24T18:47:43.706191Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.9MB → 0.8MB (3.4x), 12 JPEGs deleted\n2026-04-24T18:48:14.799887Z WARN sqlx::query: summary=\"COMMIT\" db.statement=\"\" rows_affected=1 rows_returned=0 elapsed=1.072590208s\n2026-04-24T18:52:53.240638Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=20 elapsed=9.508751833s\n2026-04-24T18:52:53.244355Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 20 eligible frames\n2026-04-24T18:52:56.915294Z WARN sqlx::query: summary=\"COMMIT\" db.statement=\"\" rows_affected=9 rows_returned=0 elapsed=1.283165708s\n2026-04-24T18:52:56.985001Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.7MB (2.2x), 10 JPEGs deleted\n2026-04-24T18:52:59.878416Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 1.6MB → 0.8MB (2.0x), 8 JPEGs deleted\n2026-04-24T18:56:01.036223Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2731140152445727259, trigger=click)\n2026-04-24T18:56:01.113964Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2731140152445727259, trigger=click)\n2026-04-24T18:56:11.335029Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664861859994574679, trigger=click)\n2026-04-24T18:56:50.415616Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664861859994574679, trigger=click)\n2026-04-24T18:56:50.493028Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6664861859994574679, trigger=click)\n2026-04-24T18:58:22.557319Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=18 elapsed=22.668022666s\n2026-04-24T18:58:22.568272Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 18 eligible frames\n2026-04-24T18:58:25.146362Z WARN sqlx::query: summary=\"COMMIT\" db.statement=\"\" rows_affected=1 rows_returned=0 elapsed=2.240168209s\n2026-04-24T18:58:28.254865Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 1.4MB → 0.5MB (2.9x), 8 JPEGs deleted\n2026-04-24T18:58:31.423883Z WARN sqlx::query: summary=\"UPDATE frames SET video_chunk_id …\" db.statement=\"\\n\\nUPDATE\\n frames\\nSET\\n video_chunk_id = ?1,\\n offset_index = CASE\\n id\\n WHEN 79235 THEN 0\\n WHEN 79237 THEN 1\\n WHEN 79239 THEN 2\\n WHEN 79241 THEN 3\\n WHEN 79244 THEN 4\\n WHEN 79245 THEN 5\\n WHEN 79247 THEN 6\\n WHEN 79249 THEN 7\\n ELSE offset_index\\n END,\\n snapshot_path = NULL\\nWHERE\\n id IN (?, ?, ?, ?, ?, ?, ?, ?)\\n AND snapshot_path IS NOT NULL\\n\" rows_affected=7 rows_returned=0 elapsed=1.353156208s\n2026-04-24T18:58:32.168304Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 1.7MB → 0.6MB (3.0x), 8 JPEGs deleted\n2026-04-24T19:00:34.200745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2633736204851875642, trigger=visual_change)\n2026-04-24T19:03:42.648869Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=21 elapsed=10.469428875s\n2026-04-24T19:03:42.649266Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames\n2026-04-24T19:03:47.221976Z WARN sqlx::query: summary=\"COMMIT\" db.statement=\"\" rows_affected=9 rows_returned=0 elapsed=2.732148417s\n2026-04-24T19:03:47.281943Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.3MB → 0.4MB (3.5x), 10 JPEGs deleted\n2026-04-24T19:03:51.044797Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=325 elapsed=1.428669917s\n2026-04-24T19:03:51.493678Z WARN sqlx::query: summary=\"UPDATE frames SET video_chunk_id …\" db.statement=\"\\n\\nUPDATE\\n frames\\nSET\\n video_chunk_id = ?1,\\n offset_index = CASE\\n id\\n WHEN 79251 THEN 0\\n WHEN 79253 THEN 1\\n WHEN 79255 THEN 2\\n WHEN 79257 THEN 3\\n WHEN 79259 THEN 4\\n WHEN 79261 THEN 5\\n WHEN 79263 THEN 6\\n WHEN 79265 THEN 7\\n WHEN 79267 THEN 8\\n ELSE offset_index\\n END,\\n snapshot_path = NULL\\nWHERE\\n id IN (?, ?, ?, ?, ?, ?, ?, ?, ?)\\n AND snapshot_path IS NOT NULL\\n\" rows_affected=8 rows_returned=0 elapsed=2.333241875s\n2026-04-24T19:03:51.989250Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 1.7MB → 0.4MB (4.1x), 9 JPEGs deleted\n2026-04-24T19:03:57.096586Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1983107603547392376, trigger=visual_change)\n2026-04-24T19:04:15.657189Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=325 elapsed=1.620111334s\n2026-04-24T19:09:02.520076Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=35 elapsed=10.555084084s\n2026-04-24T19:09:02.527474Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 35 eligible frames\n2026-04-24T19:09:05.895377Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 3.4MB → 2.0MB (1.7x), 19 JPEGs deleted\n2026-04-24T19:09:07.469280Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.7MB → 0.3MB (8.2x), 14 JPEGs deleted\n2026-04-24T19:09:57.251779Z WARN sqlx::query: summary=\"COMMIT\" db.statement=\"\" rows_affected=1 rows_returned=0 elapsed=4.745247667s\n2026-04-24T19:14:12.013184Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=25 elapsed=4.537452375s\n2026-04-24T19:14:12.013308Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames\n2026-04-24T19:14:13.317257Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 2.9MB → 2.0MB (1.5x), 11 JPEGs deleted\n2026-04-24T19:14:14.155197Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.3MB → 0.3MB (7.7x), 12 JPEGs deleted\n2026-04-24T19:18:14.342159Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4640414213682758812, trigger=visual_change)\n2026-04-24T19:19:14.283192Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 27 eligible frames\n2026-04-24T19:19:15.949548Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.7MB → 0.3MB (5.6x), 10 JPEGs deleted\n2026-04-24T19:19:17.065775Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 3.5MB → 0.9MB (3.8x), 15 JPEGs deleted\n2026-04-24T19:24:17.184625Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 31 eligible frames\n2026-04-24T19:24:18.465268Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.3MB → 1.3MB (1.8x), 14 JPEGs deleted\n2026-04-24T19:24:19.846627Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.5MB → 1.0MB (2.4x), 15 JPEGs deleted\n2026-04-24T19:27:58.636176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=521047434990944918, trigger=click)\n2026-04-24T19:27:58.680403Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=521047434990944918, trigger=click)\n2026-04-24T19:29:20.060029Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 24 eligible frames\n2026-04-24T19:29:20.848005Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.9MB → 0.3MB (7.1x), 11 JPEGs deleted\n2026-04-24T19:29:21.684126Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.9MB → 0.3MB (6.2x), 11 JPEGs deleted\n2026-04-24T19:32:13.986044Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7609021786321165751, trigger=click)\n2026-04-24T19:34:23.034168Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=33 elapsed=1.338599334s\n2026-04-24T19:34:23.034624Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 33 eligible frames\n2026-04-24T19:34:24.035874Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.6MB → 0.4MB (7.3x), 15 JPEGs deleted\n2026-04-24T19:34:25.161399Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.6MB → 0.5MB (5.1x), 16 JPEGs deleted\n2026-04-24T19:39:18.161885Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6714512521313448666, trigger=click)\n2026-04-24T19:39:25.957117Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 85 eligible frames\n2026-04-24T19:39:27.906153Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 33 frames, 5.8MB → 0.4MB (13.6x), 33 JPEGs deleted\n2026-04-24T19:39:30.899433Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 50 frames, 6.8MB → 1.8MB (3.8x), 50 JPEGs deleted\n2026-04-24T19:44:31.027546Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 43 eligible frames\n2026-04-24T19:44:32.013833Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.6MB → 0.3MB (9.6x), 15 JPEGs deleted\n2026-04-24T19:44:33.722498Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 3.7MB → 1.0MB (3.8x), 26 JPEGs deleted\n2026-04-24T19:49:35.482938Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=57 elapsed=1.710919583s\n2026-04-24T19:49:35.483025Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 57 eligible frames\n2026-04-24T19:49:37.082103Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.4MB → 0.4MB (12.4x), 25 JPEGs deleted\n2026-04-24T19:49:39.018101Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 3.7MB → 0.6MB (6.1x), 30 JPEGs deleted\n2026-04-24T19:54:39.741828Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 27 eligible frames\n2026-04-24T19:54:40.531639Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.1MB → 0.3MB (7.8x), 12 JPEGs deleted\n2026-04-24T19:54:41.370466Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.3MB → 0.2MB (5.6x), 13 JPEGs deleted\n2026-04-24T19:59:41.944435Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 35 eligible frames\n2026-04-24T19:59:42.986438Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.8MB → 0.3MB (10.3x), 16 JPEGs deleted\n2026-04-24T19:59:44.105897Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 1.8MB → 0.2MB (9.7x), 17 JPEGs deleted\n2026-04-24T20:04:44.760939Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 34 eligible frames\n2026-04-24T20:04:45.759943Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.6MB → 0.3MB (9.7x), 15 JPEGs deleted\n2026-04-24T20:04:46.812125Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.0MB → 0.3MB (6.5x), 17 JPEGs deleted\n2026-04-24T20:09:46.972479Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 29 eligible frames\n2026-04-24T20:09:47.996075Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.4MB → 0.4MB (5.6x), 14 JPEGs deleted\n2026-04-24T20:09:48.971843Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.6MB → 0.4MB (4.2x), 13 JPEGs deleted\n2026-04-24T20:11:39.105679Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5878930124418572902, trigger=click)\n2026-04-24T20:11:44.633970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5878930124418572902, trigger=click)\n2026-04-24T20:11:44.745222Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5878930124418572902, trigger=click)\n2026-04-24T20:11:53.929841Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5878930124418572902, trigger=click)\n2026-04-24T20:11:54.751076Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5878930124418572902, trigger=click)\n2026-04-24T20:12:03.883243Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5878930124418572902, trigger=click)\n2026-04-24T20:12:04.880520Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5878930124418572902, trigger=click)\n2026-04-24T20:12:07.138284Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5478133607093606798, trigger=click)\n2026-04-24T20:12:09.366721Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1976051674119031319, trigger=click)\n2026-04-24T20:14:49.083937Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 24 eligible frames\n2026-04-24T20:14:49.831397Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.9MB → 0.3MB (7.1x), 11 JPEGs deleted\n2026-04-24T20:14:50.568615Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.3MB → 0.2MB (5.4x), 11 JPEGs deleted\n2026-04-24T20:16:55.531003Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7236530931752786537, trigger=click)\n2026-04-24T20:16:57.786919Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7236530931752786537, trigger=click)\n2026-04-24T20:17:50.622639Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7637073125528108913, trigger=click)\n2026-04-24T20:18:24.567158Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3106110712420029149, trigger=click)\n2026-04-24T20:18:24.953535Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3106110712420029149, trigger=click)\n2026-04-24T20:18:25.113868Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3106110712420029149, trigger=click)\n2026-04-24T20:18:25.516188Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3106110712420029149, trigger=click)\n2026-04-24T20:18:25.578786Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3106110712420029149, trigger=click)\n2026-04-24T20:18:25.879921Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3106110712420029149, trigger=click)\n2026-04-24T20:18:26.045175Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3106110712420029149, trigger=click)\n2026-04-24T20:18:26.521966Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3106110712420029149, trigger=click)\n2026-04-24T20:18:26.584707Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3106110712420029149, trigger=click)\n2026-04-24T20:19:50.676522Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 41 eligible frames\n2026-04-24T20:19:51.646458Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.6MB → 0.3MB (9.6x), 15 JPEGs deleted\n2026-04-24T20:19:53.145898Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 2.8MB → 0.4MB (6.5x), 24 JPEGs deleted\n2026-04-24T20:24:53.257193Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 51 eligible frames\n2026-04-24T20:24:54.402014Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.1MB → 0.3MB (11.5x), 18 JPEGs deleted\n2026-04-24T20:24:56.377255Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 3.8MB → 0.8MB (4.7x), 31 JPEGs deleted\n2026-04-24T20:25:10.402164Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3106110712420029149, trigger=click)\n2026-04-24T20:29:19.308490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8949863932749715123, trigger=visual_change)\n2026-04-24T20:29:31.322538Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8744464076014281490, trigger=click)\n2026-04-24T20:29:56.486436Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 108 eligible frames\n2026-04-24T20:29:59.304643Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 8.5MB → 0.4MB (23.0x), 49 JPEGs deleted\n2026-04-24T20:30:02.871082Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 57 frames, 7.0MB → 1.9MB (3.8x), 57 JPEGs deleted\n2026-04-24T20:30:27.093299Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4461348727040718412, trigger=visual_change)\n2026-04-24T20:30:28.165565Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4750571448063687198, trigger=click)\n2026-04-24T20:30:44.003985Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2710571727549817545, trigger=click)\n2026-04-24T20:30:44.686420Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2710571727549817545, trigger=click)\n2026-04-24T20:30:44.744525Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2710571727549817545, trigger=click)\n2026-04-24T20:30:47.229135Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2710571727549817545, trigger=click)\n2026-04-24T20:30:47.264811Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2710571727549817545, trigger=click)\n2026-04-24T20:30:48.290372Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2710571727549817545, trigger=click)\n2026-04-24T20:30:48.354183Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2710571727549817545, trigger=click)\n2026-04-24T20:30:48.737643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2710571727549817545, trigger=visual_change)\n2026-04-24T20:30:49.019346Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2710571727549817545, trigger=click)\n2026-04-24T20:30:51.563433Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2710571727549817545, trigger=click)\n2026-04-24T20:30:51.629541Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2710571727549817545, trigger=click)\n2026-04-24T20:31:02.677713Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2710571727549817545, trigger=click)\n2026-04-24T20:31:02.733654Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2710571727549817545, trigger=click)\n2026-04-24T20:31:22.251277Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2710571727549817545, trigger=visual_change)\n2026-04-24T20:35:02.980238Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 23 eligible frames\n2026-04-24T20:35:03.733101Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.7MB → 0.3MB (6.5x), 10 JPEGs deleted\n2026-04-24T20:35:04.512692Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.3MB → 0.2MB (6.5x), 11 JPEGs deleted\n2026-04-24T20:40:04.622649Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 42 eligible frames\n2026-04-24T20:40:05.762156Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.1MB → 0.4MB (8.7x), 18 JPEGs deleted\n2026-04-24T20:40:07.216987Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 2.7MB → 0.7MB (3.6x), 22 JPEGs deleted\n2026-04-24T20:42:07.103966Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)\n2026-04-24T20:42:18.251905Z INFO sck_rs::stream_manager: recreating stream for display 1 (resolution change)\n2026-04-24T20:42:33.021190Z INFO sck_rs::stream_manager: recreating stream for display 2 (resolution change)\n2026-04-24T20:45:07.340583Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 46 eligible frames\n2026-04-24T20:45:08.580125Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 3.5MB → 0.3MB (12.8x), 20 JPEGs deleted\n2026-04-24T20:45:10.219587Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 3.3MB → 1.1MB (3.2x), 24 JPEGs deleted\n2026-04-24T20:50:11.638292Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=1.408088167s\n2026-04-24T20:50:11.638476Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T20:50:12.336327Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.7MB → 0.3MB (6.5x), 10 JPEGs deleted\n2026-04-24T20:50:13.038553Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.3MB → 0.2MB (7.9x), 10 JPEGs deleted\n2026-04-24T20:50:54.690485Z WARN screenpipe_engine::resource_monitor: PostHog request timed out\n2026-04-24T20:51:02.880460Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)\n2026-04-24T20:51:02.932072Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2\n2026-04-24T20:51:03.132354Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-24T20:51:17.456775Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-24T20:55:16.847972Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=9 elapsed=3.803582541s\n2026-04-24T20:55:16.848079Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 9 eligible frames\n2026-04-24T20:55:17.285370Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 3 frames, 0.5MB → 0.3MB (2.1x), 3 JPEGs deleted\n2026-04-24T20:55:17.707652Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 4 frames, 0.5MB → 0.2MB (3.2x), 4 JPEGs deleted\n2026-04-24T20:57:16.073846Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8744464076014281490, trigger=click)\n2026-04-24T20:57:17.368379Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8744464076014281490, trigger=click)\n2026-04-24T20:57:17.421200Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8744464076014281490, trigger=click)\n2026-04-24T20:57:20.458119Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8744464076014281490, trigger=click)\n2026-04-24T20:59:31.783847Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4750571448063687198, trigger=click)\n2026-04-24T20:59:34.211064Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4750571448063687198, trigger=click)\n2026-04-24T20:59:47.417854Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4750571448063687198, trigger=click)\n2026-04-24T21:00:17.839015Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-24T21:05:17.985387Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 19 eligible frames\n2026-04-24T21:05:18.703160Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 1.4MB → 0.3MB (5.2x), 8 JPEGs deleted\n2026-04-24T21:05:19.440635Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.5MB → 0.2MB (7.6x), 11 JPEGs deleted\n2026-04-24T21:07:00.844258Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4750571448063687198, trigger=click)\n2026-04-24T21:07:03.877839Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4750571448063687198, trigger=click)\n2026-04-24T21:07:25.748518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1082535405972275214, trigger=visual_change)\n2026-04-24T21:10:19.553950Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 65 eligible frames\n2026-04-24T21:10:21.337256Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 5.2MB → 0.4MB (14.3x), 30 JPEGs deleted\n2026-04-24T21:10:23.420320Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 33 frames, 4.2MB → 1.2MB (3.6x), 33 JPEGs deleted\n2026-04-24T21:15:23.505718Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 42 eligible frames\n2026-04-24T21:15:24.592459Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.0MB → 0.3MB (10.9x), 17 JPEGs deleted\n2026-04-24T21:15:26.028507Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 2.8MB → 0.5MB (5.7x), 23 JPEGs deleted\n2026-04-24T21:20:27.421190Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=41 elapsed=1.386641125s\n2026-04-24T21:20:27.421401Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 41 eligible frames\n2026-04-24T21:20:28.288951Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.3MB → 0.3MB (8.4x), 13 JPEGs deleted\n2026-04-24T21:20:30.075512Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 3.4MB → 1.0MB (3.6x), 26 JPEGs deleted\n2026-04-24T21:25:33.913058Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=24 elapsed=3.832303084s\n2026-04-24T21:25:33.913222Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 24 eligible frames\n2026-04-24T21:25:34.659159Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.7MB → 0.3MB (6.5x), 10 JPEGs deleted\n2026-04-24T21:25:35.654072Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 1.6MB → 0.5MB (3.5x), 12 JPEGs deleted\n2026-04-24T21:26:28.683188Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9215443531147982391, trigger=visual_change)\n2026-04-24T21:26:40.773786Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9215443531147982391, trigger=visual_change)\n2026-04-24T21:26:52.240691Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9215443531147982391, trigger=visual_change)\n2026-04-24T21:30:35.796792Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 23 eligible frames\n2026-04-24T21:30:36.549307Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.7MB → 0.3MB (6.5x), 10 JPEGs deleted\n2026-04-24T21:30:37.299172Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.5MB → 0.3MB (5.5x), 11 JPEGs deleted\n2026-04-24T21:35:37.420689Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T21:35:38.188735Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.7MB → 0.3MB (6.5x), 10 JPEGs deleted\n2026-04-24T21:35:38.941661Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.3MB → 0.3MB (4.6x), 10 JPEGs deleted\n2026-04-24T21:35:53.194121Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=341509084316959528, trigger=click)\n2026-04-24T21:35:53.240769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=341509084316959528, trigger=click)\n2026-04-24T21:37:29.592864Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=341509084316959528, trigger=click)\n2026-04-24T21:37:35.109916Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=341509084316959528, trigger=visual_change)\n2026-04-24T21:38:17.385574Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=341509084316959528, trigger=visual_change)\n2026-04-24T21:38:53.663144Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=341509084316959528, trigger=visual_change)\n2026-04-24T21:39:03.161570Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=341509084316959528, trigger=click)\n2026-04-24T21:40:39.080108Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 44 eligible frames\n2026-04-24T21:40:40.201264Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.0MB → 0.4MB (8.2x), 17 JPEGs deleted\n2026-04-24T21:40:41.781884Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 3.1MB → 0.9MB (3.4x), 25 JPEGs deleted\n2026-04-24T21:45:15.578328Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=341509084316959528, trigger=click)\n2026-04-24T21:45:15.635252Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=341509084316959528, trigger=click)\n2026-04-24T21:45:17.748385Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=341509084316959528, trigger=click)\n2026-04-24T21:45:17.817038Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=341509084316959528, trigger=click)\n2026-04-24T21:45:41.894640Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T21:45:42.715481Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.7MB → 0.3MB (6.5x), 10 JPEGs deleted\n2026-04-24T21:45:43.418068Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.3MB → 0.2MB (7.8x), 10 JPEGs deleted\n2026-04-24T21:46:03.365851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2054959361674030309, trigger=visual_change)\n2026-04-24T21:46:06.405831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4750571448063687198, trigger=click)\n2026-04-24T21:46:08.909389Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4750571448063687198, trigger=click)\n2026-04-24T21:46:09.915564Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1853829974648413344, trigger=visual_change)\n2026-04-24T21:46:16.120235Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4750571448063687198, trigger=click)\n2026-04-24T21:50:43.557928Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T21:50:44.310539Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.7MB → 0.3MB (6.5x), 10 JPEGs deleted\n2026-04-24T21:50:45.056687Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.3MB → 0.3MB (4.3x), 10 JPEGs deleted\n2026-04-24T21:55:45.182142Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 31 eligible frames\n2026-04-24T21:55:46.056016Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.3MB → 0.3MB (8.4x), 13 JPEGs deleted\n2026-04-24T21:55:47.304265Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.0MB → 0.5MB (4.4x), 16 JPEGs deleted\n2026-04-24T21:56:32.421403Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)\n2026-04-24T22:00:47.444500Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 37 eligible frames\n2026-04-24T22:00:48.209538Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.9MB → 0.3MB (7.1x), 11 JPEGs deleted\n2026-04-24T22:00:49.759016Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 3.4MB → 1.0MB (3.3x), 24 JPEGs deleted\n2026-04-24T22:05:49.868079Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T22:05:50.618796Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.7MB → 0.3MB (6.5x), 10 JPEGs deleted\n2026-04-24T22:05:51.305558Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.2MB → 0.2MB (7.6x), 10 JPEGs deleted\n2026-04-24T22:06:59.050577Z INFO sck_rs::stream_manager: invalidated persistent stream for display 1\n2026-04-24T22:07:13.086092Z WARN screenpipe_engine::resource_monitor: PostHog request timed out\n2026-04-24T22:07:33.786348Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)\n2026-04-24T22:07:33.834401Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2\n2026-04-24T22:07:33.896428Z INFO sck_rs::stream_manager: stopped 1 persistent stream(s)\n2026-04-24T22:07:34.025901Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-24T22:07:34.139823Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-24T22:07:46.957004Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2054959361674030309, trigger=visual_change)\n2026-04-24T22:07:47.692981Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4750571448063687198, trigger=click)\n2026-04-24T22:07:48.699426Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4750571448063687198, trigger=click)\n2026-04-24T22:07:48.732518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4750571448063687198, trigger=click)\n2026-04-24T22:08:07.919141Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8949863932749715123, trigger=visual_change)\n2026-04-24T22:10:03.669907Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=341509084316959528, trigger=visual_change)\n2026-04-24T22:10:06.722692Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=341509084316959528, trigger=visual_change)\n2026-04-24T22:10:18.871886Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=341509084316959528, trigger=visual_change)\n2026-04-24T22:10:37.094344Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=341509084316959528, trigger=visual_change)\n2026-04-24T22:10:43.130336Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=341509084316959528, trigger=visual_change)\n2026-04-24T22:10:53.482693Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=5 elapsed=2.1725865s\n2026-04-24T22:10:53.482887Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 5 eligible frames\n2026-04-24T22:10:53.837380Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 2 frames, 0.3MB → 0.2MB (1.4x), 2 JPEGs deleted\n2026-04-24T22:10:54.041509Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 1 frames, 0.1MB → 0.1MB (1.1x), 1 JPEGs deleted\n2026-04-24T22:10:55.213564Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=341509084316959528, trigger=visual_change)\n2026-04-24T22:11:04.259918Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=341509084316959528, trigger=visual_change)\n2026-04-24T22:11:28.438394Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=341509084316959528, trigger=visual_change)\n2026-04-24T22:11:37.488474Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=341509084316959528, trigger=visual_change)\n2026-04-24T22:15:54.117473Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-24T22:18:59.797832Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)\n2026-04-24T22:19:13.433149Z INFO sck_rs::stream_manager: recreating stream for display 1 (resolution change)\n2026-04-24T22:19:28.223705Z INFO sck_rs::stream_manager: recreating stream for display 2 (resolution change)\n2026-04-24T22:20:54.256021Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T22:20:54.984522Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 1.6MB → 0.3MB (5.8x), 9 JPEGs deleted\n2026-04-24T22:20:56.035039Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.7MB → 0.7MB (2.6x), 13 JPEGs deleted\n2026-04-24T22:25:56.125721Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T22:25:56.864851Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.7MB → 0.3MB (6.5x), 10 JPEGs deleted\n2026-04-24T22:25:57.581205Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.4MB → 0.2MB (5.8x), 10 JPEGs deleted\n2026-04-24T22:30:57.712015Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 14 eligible frames\n2026-04-24T22:30:58.337622Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 6 frames, 1.0MB → 0.3MB (3.9x), 6 JPEGs deleted\n2026-04-24T22:30:58.911832Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 6 frames, 0.8MB → 0.2MB (4.5x), 6 JPEGs deleted\n2026-04-24T22:35:59.025118Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-25T00:31:03.532748Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.403754542s\n2026-04-25T00:36:04.888212Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.355033833s\n2026-04-25T02:26:09.381064Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.752063917s\n2026-04-25T02:36:10.551753Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.050235167s\n2026-04-25T02:51:12.734441Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.9489485s\n2026-04-25T03:01:06.935149Z WARN screenpipe_engine::resource_monitor: PostHog request timed out\n2026-04-25T03:02:06.966335Z ERROR screenpipe_engine::resource_monitor: Failed to send resource usage to PostHog: error sending request for url (https://us.i.posthog.com/capture/)\n2026-04-25T04:36:20.831709Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.323757458s\n2026-04-25T04:46:23.391499Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.59293325s\n2026-04-25T05:06:26.020217Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.550194958s\n2026-04-25T06:36:31.641080Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.410231334s\n2026-04-25T07:51:35.485001Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.275606209s\n2026-04-25T08:21:38.394114Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.058651125s\n2026-04-25T08:56:44.679601Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.899231459s\n2026-04-25T09:01:45.790944Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.111638125s\n2026-04-25T09:06:47.451286Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.659418875s\n2026-04-25T09:11:50.605191Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=3.139225667s\n2026-04-25T09:16:53.333463Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=2.728748083s\n2026-04-25T09:21:54.829483Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.481694292s\n2026-04-25T09:26:56.691352Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.860160708s\n2026-04-25T09:31:59.318916Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=2.641507875s\n2026-04-25T09:37:00.846974Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.527240458s\n2026-04-25T09:47:02.746275Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.46771125s\n2026-04-25T10:07:04.702110Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.4512865s\n2026-04-25T10:12:06.514003Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.851845375s\n2026-04-25T10:17:09.145447Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=2.633306292s\n2026-04-25T10:32:12.617468Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=3.183533083s\n2026-04-25T10:52:14.712931Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.739192166s\n2026-04-25T11:17:19.449162Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=3.216377375s\n2026-04-25T11:22:20.715206Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.267409208s\n2026-04-25T11:52:27.083139Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=4.271213042s\n2026-04-25T12:17:31.033541Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.234918584s\n2026-04-25T12:22:34.030483Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=2.994751291s\n2026-04-25T12:27:35.182859Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.152736542s\n2026-04-25T12:42:41.216480Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=5.033096125s\n2026-04-25T13:07:44.656373Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.798177625s\n2026-04-25T13:12:48.550581Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=3.894991833s\n2026-04-25T13:17:50.993975Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=2.444900041s\n2026-04-25T13:22:53.791038Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=2.819025041s\n2026-04-25T13:27:54.822046Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.033900666s\n2026-04-25T13:42:57.280689Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=2.170261167s\n2026-04-25T13:48:00.341641Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=3.063761209s\n2026-04-25T13:58:02.155594Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.003461708s\n2026-04-25T14:03:03.435953Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.263781791s\n2026-04-25T14:13:06.727837Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=3.164951708s\n2026-04-25T14:18:09.541408Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=2.816421959s\n2026-04-25T14:23:11.032066Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.466058042s\n2026-04-25T14:28:12.850148Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.810514583s\n2026-04-25T14:43:15.922744Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=2.212433625s\n2026-04-25T14:48:18.547263Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=2.611123083s\n2026-04-25T14:53:19.667474Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.11755375s\n2026-04-25T15:03:21.308350Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.46300375s\n2026-04-25T15:13:29.897768Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=7.888686584s\n2026-04-25T15:33:32.174288Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.381808625s\n2026-04-25T15:43:34.105473Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.801180792s\n2026-04-25T15:48:36.478523Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=2.368007208s\n2026-04-25T16:18:39.844947Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=2.086581708s\n2026-04-25T16:43:47.926061Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=5.962960083s\n2026-04-25T16:58:49.502984Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.049299875s\n2026-04-25T17:03:54.050957Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=4.550855625s\n2026-04-25T17:13:55.479571Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.285178292s\n2026-04-25T17:18:56.727113Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.216977333s\n2026-04-25T17:24:00.252789Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=3.525427875s\n2026-04-25T17:25:46.308689Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)\n2026-04-25T17:25:46.346123Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2\n2026-04-25T17:25:46.511136Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-25T17:25:47.036757Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: day rollover (114 -> 115), clearing cache\n2026-04-25T17:26:02.744027Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1534360647489461776, trigger=click)\n2026-04-25T17:26:09.883472Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-25T17:26:10.274955Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1200437610819337959, trigger=click)","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.36469415,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.36668882,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.45910904,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.46110374,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.55352396,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5555186,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.64793885,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6499335,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7287234,"top":1.0,"width":0.01861702,"height":-0.023144484},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"screenpipe\"","depth":1,"bounds":{"left":0.49634308,"top":1.0,"width":0.027925532,"height":-0.02394259},"role_description":"text"}]...
|
306756539166388455
|
338236606034315123
|
visual_change
|
accessibility
|
NULL
|
┌────────────────────────┬──────────────────────── ┌────────────────────────┬────────────────────────────────────┐
│ setting │ value │
├────────────────────────┼────────────────────────────────────┤
│ audio chunk duration │ 30 seconds │
│ port │ 3030 │
│ audio disabled │ true │
│ vision disabled │ false │
│ pause on DRM content │ false │
│ audio engine │ Parakeet │
│ vad engine │ Silero │
│ data directory │ /Users/lukas/.screenpipe │
│ debug mode │ false │
│ telemetry │ true │
│ use pii removal │ true │
│ use all monitors │ true │
│ ignored windows │ ["Boosteroid"] │
│ included windows │ [] │
│ cloud sync │ disabled │
│ auto-destruct pid │ 0 │
│ deepgram key │ not set │
│ api auth │ enabled │
2026-04-24T13:24:23.186334Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)
2026-04-24T13:24:23.198489Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh
│ encrypt secrets │ disabled │
│ retention days │ 14 │
├────────────────────────┼────────────────────────────────────┤
│ languages │ │
│ │ all languages │
├────────────────────────┼────────────────────────────────────┤
│ monitors │ │
│ │ id: 1 │
│ │ id: 2 │
├────────────────────────┼────────────────────────────────────┤
│ audio devices │ │
│ │ disabled │
└────────────────────────┴────────────────────────────────────┘
you are using local processing. all your data stays on your computer.
warning: telemetry is enabled. only error-level data will be sent.
to disable, use the --disable-telemetry flag.
check latest changes here: https://github.com/screenpipe/screenpipe/releases
2026-04-24T13:24:23.216198Z INFO screenpipe: starting UI event capture
2026-04-24T13:24:23.238868Z INFO screenpipe_engine::ui_recorder: Starting UI event capture
2026-04-24T13:24:23.260906Z INFO screenpipe_engine::ui_recorder: UI recording session started: 9676eafd-ea8f-4e1a-a5f1-de7bdb79c071
2026-04-24T13:24:23.260911Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)
2026-04-24T13:24:23.260972Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-23 10:24:23.260965 UTC to 2026-04-24 10:24:23.260965 UTC)
2026-04-24T13:24:23.261685Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)
2026-04-24T13:24:23.262214Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))
2026-04-24T13:24:23.273443Z INFO screenpipe_engine::server: Server listening on [IP_ADDRESS]:3030
2026-04-24T13:24:23.304240Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030
2026-04-24T13:24:23.567248Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)
2026-04-24T13:24:23.567289Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)
2026-04-24T13:24:23.567346Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)
2026-04-24T13:24:23.850835Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-04-24T13:24:23.850880Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-04-24T13:24:23.850893Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)
2026-04-24T13:24:23.850901Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)
2026-04-24T13:24:23.850941Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-04-24T13:24:25.197204Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)
2026-04-24T13:24:25.589436Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=77673, dur=103ms
2026-04-24T13:24:25.630980Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)
2026-04-24T13:24:25.652818Z INFO sck_rs::stream_manager: invalidated persistent stream for display 1
2026-04-24T13:24:26.160345Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=77674, dur=198ms
2026-04-24T13:24:27.471087Z WARN sqlx::query: summary="SELECT f.id, f.timestamp, f.offset_index, …" db.statement="\n\nSELECT\n f.id,\n f.timestamp,\n f.offset_index,\n COALESCE(\n SUBSTR(f.full_text, 1, 200),\n SUBSTR(f.accessibility_text, 1, 200),\n (\n SELECT\n SUBSTR(ot.text, 1, 200)\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as text,\n COALESCE(\n f.app_name,\n (\n SELECT\n ot.app_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as app_name,\n COALESCE(\n f.window_name,\n (\n SELECT\n ot.window_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as window_name,\n COALESCE(vc.device_name, f.device_name) as screen_device,\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\n COALESCE(vc.fps, 0.033) as chunk_fps,\n f.browser_url,\n f.machine_id\nFROM\n frames f\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\nWHERE\n f.timestamp >= ?1\n AND f.timestamp <= ?2\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\nORDER BY\n f.timestamp DESC,\n f.offset_index DESC\nLIMIT\n 10000\n" rows_affected=0 rows_returned=2758 elapsed=4.209235542s
2026-04-24T13:24:27.488504Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 2758 frame entries, coverage from 2026-04-23 10:24:23.260965 UTC
2026-04-24T13:24:56.108522Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)
2026-04-24T13:25:34.118891Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=82 elapsed=10.985025625s
2026-04-24T13:25:34.121032Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 82 eligible frames
2026-04-24T13:25:37.475066Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 6.5MB → 0.2MB (30.1x), 39 JPEGs deleted
2026-04-24T13:25:41.147418Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 41 frames, 9.1MB → 0.3MB (26.4x), 41 JPEGs deleted
2026-04-24T13:26:53.913464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3587331842305982393, trigger=click)
2026-04-24T13:30:52.310748Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=2 elapsed=11.152255s
2026-04-24T13:30:52.313747Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
2026-04-24T13:36:00.069099Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=9 elapsed=7.594933541s
2026-04-24T13:36:00.071113Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 9 eligible frames
2026-04-24T13:36:00.617576Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 4 frames, 0.3MB → 0.1MB (3.6x), 4 JPEGs deleted
2026-04-24T13:36:01.402540Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 5 frames, 1.0MB → 0.4MB (2.4x), 5 JPEGs deleted
2026-04-24T13:40:06.828525Z WARN sqlx::query: summary="BEGIN IMMEDIATE" db.statement="" rows_affected=1 rows_returned=0 elapsed=1.076759291s
2026-04-24T13:40:07.002782Z WARN sqlx::query: summary="SELECT DISTINCT app_name, window_name, …" db.statement="\n\nSELECT\n DISTINCT app_name,\n window_name,\n browser_url\nFROM\n frames\nWHERE\n timestamp > datetime('now', '-30 seconds')\n AND app_name IS NOT NULL\n AND window_name IS NOT NULL\n" rows_affected=0 rows_returned=195 elapsed=1.250257875s
2026-04-24T13:41:11.559513Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=92 elapsed=10.151735042s
2026-04-24T13:41:11.559741Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 92 eligible frames
2026-04-24T13:41:14.043784Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 2.3MB → 0.1MB (32.3x), 37 JPEGs deleted
2026-04-24T13:41:21.303349Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 53 frames, 8.7MB → 3.1MB (2.8x), 53 JPEGs deleted
2026-04-24T13:41:40.887689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7539785768983157715, trigger=click)
2026-04-24T13:42:34.136767Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3059269999432289894, trigger=click)
2026-04-24T13:42:45.942807Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3777488472456223409, trigger=click)
2026-04-24T13:43:01.921357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1871207218552190145, trigger=click)
2026-04-24T13:44:01.878037Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8495661271621520850, trigger=click)
2026-04-24T13:46:28.021146Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=40 elapsed=6.713739708s
2026-04-24T13:46:28.021348Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames
2026-04-24T13:46:29.141090Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 1.1MB → 0.1MB (17.9x), 18 JPEGs deleted
2026-04-24T13:46:31.601195Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.7MB → 2.9MB (1.6x), 20 JPEGs deleted
2026-04-24T13:51:31.692283Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames
2026-04-24T13:51:32.570330Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.0MB → 0.2MB (4.8x), 13 JPEGs deleted
2026-04-24T13:51:33.760542Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.9MB → 1.0MB (1.9x), 10 JPEGs deleted
2026-04-24T13:55:31.626192Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2977185087332333124, trigger=click)
2026-04-24T13:56:33.924925Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 105 eligible frames
2026-04-24T13:56:37.179833Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 55 frames, 5.1MB → 1.4MB (3.6x), 55 JPEGs deleted
2026-04-24T13:56:40.328768Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 48 frames, 7.6MB → 1.3MB (6.0x), 48 JPEGs deleted
2026-04-24T14:00:47.136298Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Firefox, signals=2)
2026-04-24T14:00:47.857419Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2938651853865790585, trigger=click)
2026-04-24T14:00:52.374476Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Firefox, signals=2, browser=true)
2026-04-24T14:00:52.378086Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=12, app=Firefox, title=None)
2026-04-24T14:01:40.650767Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 62 eligible frames
2026-04-24T14:01:42.431196Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 1.9MB → 0.1MB (32.0x), 30 JPEGs deleted
2026-04-24T14:01:44.259623Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 4.8MB → 0.2MB (23.8x), 30 JPEGs deleted
2026-04-24T14:06:51.687604Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=54 elapsed=7.415698459s
2026-04-24T14:06:51.691163Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 54 eligible frames
2026-04-24T14:06:53.324710Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 1.7MB → 0.1MB (29.0x), 27 JPEGs deleted
2026-04-24T14:06:54.826559Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.0MB → 0.2MB (19.9x), 25 JPEGs deleted
2026-04-24T14:11:54.984165Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 93 eligible frames
2026-04-24T14:11:57.808857Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 48 frames, 3.1MB → 0.1MB (49.5x), 48 JPEGs deleted
2026-04-24T14:12:00.396251Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 43 frames, 6.8MB → 0.2MB (33.8x), 43 JPEGs deleted
2026-04-24T14:17:06.109470Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=49 elapsed=5.652470541s
2026-04-24T14:17:06.109602Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 49 eligible frames
2026-04-24T14:17:07.677608Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 1.6MB → 0.1MB (27.0x), 25 JPEGs deleted
2026-04-24T14:17:09.097967Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 3.5MB → 0.2MB (17.6x), 22 JPEGs deleted
2026-04-24T14:22:13.316698Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=24 elapsed=4.206937709s
2026-04-24T14:22:13.317436Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 24 eligible frames
2026-04-24T14:22:14.074811Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 0.7MB → 0.1MB (12.2x), 11 JPEGs deleted
2026-04-24T14:22:14.844321Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.7MB → 0.2MB (8.9x), 11 JPEGs deleted
2026-04-24T14:27:16.330019Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=22 elapsed=1.474471542s
2026-04-24T14:27:16.330265Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames
2026-04-24T14:27:17.027734Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted
2026-04-24T14:27:17.792405Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted
2026-04-24T14:32:18.770983Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames
2026-04-24T14:32:19.478630Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted
2026-04-24T14:32:20.241056Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted
2026-04-24T14:37:27.349741Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=22 elapsed=7.096181584s
2026-04-24T14:37:27.353187Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames
2026-04-24T14:37:28.066685Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted
2026-04-24T14:37:28.851355Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted
2026-04-24T14:38:19.407454Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=12, grace=300s)
2026-04-24T14:39:19.637322Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8577329830578954505, trigger=click)
2026-04-24T14:39:21.680425Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8317095871263557761, trigger=click)
2026-04-24T14:39:21.707871Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8317095871263557761, trigger=click)
2026-04-24T14:40:10.148981Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5676671508452457688, trigger=click)
2026-04-24T14:42:02.876165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3644563293578755711, trigger=click)
2026-04-24T14:42:12.151008Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3644563293578755711, trigger=click)
2026-04-24T14:42:36.098708Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=22 elapsed=7.2363725s
2026-04-24T14:42:36.098834Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames
2026-04-24T14:42:36.816811Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted
2026-04-24T14:42:37.598382Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted
2026-04-24T14:42:43.884371Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1901203473704384943, trigger=click)
2026-04-24T14:42:43.916542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1901203473704384943, trigger=click)
2026-04-24T14:43:24.413233Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Idle (timeout=300s, app=Firefox, id=12)
2026-04-24T14:43:24.855747Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting ended (id=12)
2026-04-24T14:44:38.941315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1557697903749375374, trigger=click)
2026-04-24T14:44:38.962591Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1557697903749375374, trigger=click)
2026-04-24T14:44:39.438011Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1557697903749375374, trigger=click)
2026-04-24T14:45:24.198550Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8167839925779509873, trigger=click)
2026-04-24T14:45:25.110117Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8167839925779509873, trigger=click)
2026-04-24T14:45:38.880039Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3644563293578755711, trigger=click)
2026-04-24T14:46:09.691532Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8167839925779509873, trigger=click)
2026-04-24T14:46:23.813781Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4533509598273890786, trigger=click)
2026-04-24T14:46:23.859560Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4533509598273890786, trigger=click)
2026-04-24T14:47:44.514826Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2503176719318141451, trigger=click)
2026-04-24T14:47:44.539391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2503176719318141451, trigger=click)
2026-04-24T14:47:44.764903Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=21 elapsed=7.257808167s
2026-04-24T14:47:44.764982Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames
2026-04-24T14:47:45.473419Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 0.6MB → 0.1MB (10.0x), 9 JPEGs deleted
2026-04-24T14:47:46.188394Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted
2026-04-24T14:47:50.085052Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2503176719318141451, trigger=click)
2026-04-24T14:47:50.106335Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2503176719318141451, trigger=click)
2026-04-24T14:52:53.441281Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=100 elapsed=7.256992167s
2026-04-24T14:52:53.441665Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 100 eligible frames
2026-04-24T14:52:56.554743Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 3.2MB → 0.1MB (50.4x), 49 JPEGs deleted
2026-04-24T14:52:59.416988Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 7.8MB → 0.2MB (38.4x), 49 JPEGs deleted
2026-04-24T14:53:50.050387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4956080981675052788, trigger=click)
2026-04-24T14:55:36.318507Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-991319035522409710, trigger=click)
2026-04-24T14:55:36.391576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-991319035522409710, trigger=click)
2026-04-24T14:57:59.569859Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 57 eligible frames
2026-04-24T14:58:01.300455Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 1.6MB → 0.1MB (25.9x), 24 JPEGs deleted
2026-04-24T14:58:03.198608Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 4.9MB → 0.2MB (24.6x), 31 JPEGs deleted
2026-04-24T15:03:08.612242Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=30 elapsed=5.295343459s
2026-04-24T15:03:08.612821Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 30 eligible frames
2026-04-24T15:03:09.620798Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 0.9MB → 0.1MB (15.4x), 14 JPEGs deleted
2026-04-24T15:03:10.811697Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.2MB → 0.2MB (11.3x), 14 JPEGs deleted
2026-04-24T15:04:26.269378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5667957418966591499, trigger=click)
2026-04-24T15:04:26.321219Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5667957418966591499, trigger=click)
2026-04-24T15:08:14.307499Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=25 elapsed=3.392988s
2026-04-24T15:08:14.307671Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames
2026-04-24T15:08:15.302981Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 0.7MB → 0.1MB (12.2x), 11 JPEGs deleted
2026-04-24T15:08:16.186177Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 1.9MB → 0.2MB (9.7x), 12 JPEGs deleted
2026-04-24T15:13:18.963807Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=37 elapsed=2.767425042s
2026-04-24T15:13:18.963934Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 37 eligible frames
2026-04-24T15:13:20.113690Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 1.2MB → 0.1MB (19.7x), 18 JPEGs deleted
2026-04-24T15:13:21.236764Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.7MB → 0.2MB (13.6x), 17 JPEGs deleted
2026-04-24T15:14:48.156237Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)
2026-04-24T15:15:01.132168Z INFO sck_rs::stream_manager: recreating stream for display 1 (resolution change)
2026-04-24T15:15:01.221025Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=app_switch, monitor=1) — DB pool may be saturated
2026-04-24T15:15:01.375924Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=app_switch, monitor=2) — DB pool may be saturated
2026-04-24T15:15:15.842371Z INFO sck_rs::stream_manager: recreating stream for display 2 (resolution change)
2026-04-24T15:18:28.531831Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=36 elapsed=7.26041775s
2026-04-24T15:18:28.531955Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 36 eligible frames
2026-04-24T15:18:29.658166Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 1.1MB → 0.1MB (18.6x), 17 JPEGs deleted
2026-04-24T15:18:30.768761Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.7MB → 0.2MB (13.6x), 17 JPEGs deleted
2026-04-24T15:23:31.928536Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=22 elapsed=1.148790625s
2026-04-24T15:23:31.928649Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames
2026-04-24T15:23:32.642076Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted
2026-04-24T15:23:33.401791Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted
2026-04-24T15:28:34.810366Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=8 elapsed=1.39738375s
2026-04-24T15:28:34.810546Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 8 eligible frames
2026-04-24T15:28:35.187466Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 3 frames, 0.2MB → 0.1MB (3.5x), 3 JPEGs deleted
2026-04-24T15:28:35.591687Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 3 frames, 0.5MB → 0.2MB (2.6x), 3 JPEGs deleted
2026-04-24T15:33:39.031121Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=2 elapsed=3.484074667s
2026-04-24T15:33:39.031286Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
2026-04-24T15:43:41.373431Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=0 elapsed=2.126509208s
2026-04-24T15:48:45.005960Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=0 elapsed=3.630826208s
2026-04-24T15:53:46.452410Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=0 elapsed=1.442133375s
2026-04-24T16:03:50.813556Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=0 elapsed=3.725817875s
2026-04-24T16:08:52.104712Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=0 elapsed=1.289955292s
2026-04-24T16:14:48.860304Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)
2026-04-24T16:14:48.885031Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2
2026-04-24T16:14:49.085988Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)
2026-04-24T16:14:49.951727Z INFO screenpipe_engine::event_driven_capture: monitor 2 capture recovered after 1 consecutive errors
2026-04-24T16:15:14.957591Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)
2026-04-24T16:15:15.344344Z INFO screenpipe_engine::event_driven_capture: monitor 1 capture recovered after 1 consecutive errors
2026-04-24T16:17:13.975782Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7172393451066325016, trigger=click)
2026-04-24T16:19:00.805923Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=0 elapsed=7.986969166s
2026-04-24T16:19:29.124240Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3129461629380798674, trigger=click)
2026-04-24T16:19:29.165320Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=click)
2026-04-24T16:20:57.221933Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=click)
2026-04-24T16:21:34.158304Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=visual_change)
2026-04-24T16:21:52.258518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=visual_change)
2026-04-24T16:24:07.960303Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=0 elapsed=7.148022208s
2026-04-24T16:25:38.292462Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8773909165376335292, trigger=click)
2026-04-24T16:28:02.880424Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=826123905625364471, trigger=click)
2026-04-24T16:28:02.928317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=826123905625364471, trigger=click)
2026-04-24T16:29:02.161685Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5156992524424370675, trigger=visual_change)
2026-04-24T16:29:11.119509Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5156992524424370675, trigger=visual_change)
2026-04-24T16:29:15.437543Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=42 elapsed=7.45073025s
2026-04-24T16:29:15.438417Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 42 eligible frames
2026-04-24T16:29:17.083173Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 3.2MB → 0.4MB (9.1x), 20 JPEGs deleted
2026-04-24T16:29:18.972223Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 5.2MB → 1.7MB (3.0x), 22 JPEGs deleted
2026-04-24T16:29:34.388891Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5156992524424370675, trigger=click)
2026-04-24T16:29:45.796969Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4817563232530793650, trigger=click)
2026-04-24T16:32:36.877636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=visual_change)
2026-04-24T16:32:42.134384Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=visual_change)
2026-04-24T16:32:44.378087Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)
2026-04-24T16:32:45.243874Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=visual_change)
2026-04-24T16:32:54.163388Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8550622008733264339, trigger=click)
2026-04-24T16:32:54.176256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)
2026-04-24T16:32:57.087323Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8550622008733264339, trigger=click)
2026-04-24T16:32:57.117211Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)
2026-04-24T16:34:03.172812Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:34:13.599521Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:34:23.371635Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=21 elapsed=4.397149916s
2026-04-24T16:34:23.371744Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames
2026-04-24T16:34:24.346821Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.6MB → 0.4MB (4.0x), 11 JPEGs deleted
2026-04-24T16:34:25.323782Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 2.0MB → 0.7MB (2.7x), 8 JPEGs deleted
2026-04-24T16:35:16.265905Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:35:16.396499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:37:09.981293Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=visual_change)
2026-04-24T16:38:45.635162Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:38:47.663267Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:39:10.322134Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:39:27.552784Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=33 elapsed=2.228011375s
2026-04-24T16:39:27.552915Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 33 eligible frames
2026-04-24T16:39:28.615455Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.8MB → 0.6MB (4.8x), 14 JPEGs deleted
2026-04-24T16:39:30.390392Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.1MB → 1.6MB (2.0x), 17 JPEGs deleted
2026-04-24T16:40:01.437647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7218881400109780070, trigger=click)
2026-04-24T16:40:12.586378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:41:05.997041Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6861826947729846030, trigger=click)
2026-04-24T16:41:11.184592Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6861826947729846030, trigger=click)
2026-04-24T16:43:15.433697Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8550622008733264339, trigger=click)
2026-04-24T16:43:15.515804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)
2026-04-24T16:43:51.515815Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5576357006515458390, trigger=click)
2026-04-24T16:43:59.714706Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5576357006515458390, trigger=click)
2026-04-24T16:43:59.785731Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5576357006515458390, trigger=click)
2026-04-24T16:44:38.173037Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=20 elapsed=7.796779s
2026-04-24T16:44:38.174424Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 20 eligible frames
2026-04-24T16:44:39.258439Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 1.8MB → 0.3MB (5.7x), 9 JPEGs deleted
2026-04-24T16:44:41.729154Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 2.3MB → 1.7MB (1.4x), 9 JPEGs deleted
2026-04-24T16:48:00.989535Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5576357006515458390, trigger=click)
2026-04-24T16:48:17.430932Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5576357006515458390, trigger=click)
2026-04-24T16:49:49.135916Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=17 elapsed=7.403764583s
2026-04-24T16:49:49.136082Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 17 eligible frames
2026-04-24T16:49:50.004132Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 1.6MB → 0.3MB (5.1x), 8 JPEGs deleted
2026-04-24T16:49:50.898114Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 7 frames, 1.9MB → 0.7MB (2.6x), 7 JPEGs deleted
2026-04-24T16:50:09.364175Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8409739779266792278, trigger=visual_change)
2026-04-24T16:50:11.237105Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8409739779266792278, trigger=click)
2026-04-24T16:51:37.931779Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1423930385844614485, trigger=click)
2026-04-24T16:53:14.381283Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7564119013552971576, trigger=click)
2026-04-24T16:54:12.231394Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1423930385844614485, trigger=visual_change)
2026-04-24T16:54:15.266343Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1423930385844614485, trigger=visual_change)
2026-04-24T16:55:01.568514Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=58 elapsed=10.558641542s
2026-04-24T16:55:01.569579Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 58 eligible frames
2026-04-24T16:55:04.609017Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 5.7MB → 1.1MB (5.0x), 28 JPEGs deleted
2026-04-24T16:55:09.392416Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 5.5MB → 3.1MB (1.8x), 28 JPEGs deleted
2026-04-24T16:55:39.774741Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3617611630109587613, trigger=click)
2026-04-24T16:55:39.852272Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3617611630109587613, trigger=click)
2026-04-24T16:56:40.038632Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-426150959945983082, trigger=click)
2026-04-24T16:59:26.437906Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-426150959945983082, trigger=visual_change)
2026-04-24T17:00:21.026565Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=53 elapsed=11.620753209s
2026-04-24T17:00:21.027475Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 53 eligible frames
2026-04-24T17:00:24.007228Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 4.3MB → 0.5MB (7.8x),...
|
NULL
|
|
80534
|
2127
|
3
|
2026-04-25T14:26:16.816334+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-25/1777 /Users/lukas/.screenpipe/data/data/2026-04-25/1777127176816_m1.jpg...
|
iTerm2
|
screenpipe"
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
┌────────────────────────┬──────────────────────── ┌────────────────────────┬────────────────────────────────────┐
│ setting │ value │
├────────────────────────┼────────────────────────────────────┤
│ audio chunk duration │ 30 seconds │
│ port │ 3030 │
│ audio disabled │ true │
│ vision disabled │ false │
│ pause on DRM content │ false │
│ audio engine │ Parakeet │
│ vad engine │ Silero │
│ data directory │ /Users/lukas/.screenpipe │
│ debug mode │ false │
│ telemetry │ true │
│ use pii removal │ true │
│ use all monitors │ true │
│ ignored windows │ ["Boosteroid"] │
│ included windows │ [] │
│ cloud sync │ disabled │
│ auto-destruct pid │ 0 │
│ deepgram key │ not set │
│ api auth │ enabled │
2026-04-24T13:24:23.186334Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)
2026-04-24T13:24:23.198489Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh
│ encrypt secrets │ disabled │
│ retention days │ 14 │
├────────────────────────┼────────────────────────────────────┤
│ languages │ │
│ │ all languages │
├────────────────────────┼────────────────────────────────────┤
│ monitors │ │
│ │ id: 1 │
│ │ id: 2 │
├────────────────────────┼────────────────────────────────────┤
│ audio devices │ │
│ │ disabled │
└────────────────────────┴────────────────────────────────────┘
you are using local processing. all your data stays on your computer.
warning: telemetry is enabled. only error-level data will be sent.
to disable, use the --disable-telemetry flag.
check latest changes here: https://github.com/screenpipe/screenpipe/releases
2026-04-24T13:24:23.216198Z INFO screenpipe: starting UI event capture
2026-04-24T13:24:23.238868Z INFO screenpipe_engine::ui_recorder: Starting UI event capture
2026-04-24T13:24:23.260906Z INFO screenpipe_engine::ui_recorder: UI recording session started: 9676eafd-ea8f-4e1a-a5f1-de7bdb79c071
2026-04-24T13:24:23.260911Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)
2026-04-24T13:24:23.260972Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-23 10:24:23.260965 UTC to 2026-04-24 10:24:23.260965 UTC)
2026-04-24T13:24:23.261685Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)
2026-04-24T13:24:23.262214Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))
2026-04-24T13:24:23.273443Z INFO screenpipe_engine::server: Server listening on [IP_ADDRESS]:3030
2026-04-24T13:24:23.304240Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030
2026-04-24T13:24:23.567248Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)
2026-04-24T13:24:23.567289Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)
2026-04-24T13:24:23.567346Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)
2026-04-24T13:24:23.850835Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-04-24T13:24:23.850880Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-04-24T13:24:23.850893Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)
2026-04-24T13:24:23.850901Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)
2026-04-24T13:24:23.850941Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-04-24T13:24:25.197204Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)
2026-04-24T13:24:25.589436Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=77673, dur=103ms
2026-04-24T13:24:25.630980Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)
2026-04-24T13:24:25.652818Z INFO sck_rs::stream_manager: invalidated persistent stream for display 1
2026-04-24T13:24:26.160345Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=77674, dur=198ms
2026-04-24T13:24:27.471087Z WARN sqlx::query: summary="SELECT f.id, f.timestamp, f.offset_index, …" db.statement="\n\nSELECT\n f.id,\n f.timestamp,\n f.offset_index,\n COALESCE(\n SUBSTR(f.full_text, 1, 200),\n SUBSTR(f.accessibility_text, 1, 200),\n (\n SELECT\n SUBSTR(ot.text, 1, 200)\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as text,\n COALESCE(\n f.app_name,\n (\n SELECT\n ot.app_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as app_name,\n COALESCE(\n f.window_name,\n (\n SELECT\n ot.window_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as window_name,\n COALESCE(vc.device_name, f.device_name) as screen_device,\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\n COALESCE(vc.fps, 0.033) as chunk_fps,\n f.browser_url,\n f.machine_id\nFROM\n frames f\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\nWHERE\n f.timestamp >= ?1\n AND f.timestamp <= ?2\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\nORDER BY\n f.timestamp DESC,\n f.offset_index DESC\nLIMIT\n 10000\n" rows_affected=0 rows_returned=2758 elapsed=4.209235542s
2026-04-24T13:24:27.488504Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 2758 frame entries, coverage from 2026-04-23 10:24:23.260965 UTC
2026-04-24T13:24:56.108522Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)
2026-04-24T13:25:34.118891Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=82 elapsed=10.985025625s
2026-04-24T13:25:34.121032Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 82 eligible frames
2026-04-24T13:25:37.475066Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 6.5MB → 0.2MB (30.1x), 39 JPEGs deleted
2026-04-24T13:25:41.147418Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 41 frames, 9.1MB → 0.3MB (26.4x), 41 JPEGs deleted
2026-04-24T13:26:53.913464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3587331842305982393, trigger=click)
2026-04-24T13:30:52.310748Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=2 elapsed=11.152255s
2026-04-24T13:30:52.313747Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
2026-04-24T13:36:00.069099Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=9 elapsed=7.594933541s
2026-04-24T13:36:00.071113Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 9 eligible frames
2026-04-24T13:36:00.617576Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 4 frames, 0.3MB → 0.1MB (3.6x), 4 JPEGs deleted
2026-04-24T13:36:01.402540Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 5 frames, 1.0MB → 0.4MB (2.4x), 5 JPEGs deleted
2026-04-24T13:40:06.828525Z WARN sqlx::query: summary="BEGIN IMMEDIATE" db.statement="" rows_affected=1 rows_returned=0 elapsed=1.076759291s
2026-04-24T13:40:07.002782Z WARN sqlx::query: summary="SELECT DISTINCT app_name, window_name, …" db.statement="\n\nSELECT\n DISTINCT app_name,\n window_name,\n browser_url\nFROM\n frames\nWHERE\n timestamp > datetime('now', '-30 seconds')\n AND app_name IS NOT NULL\n AND window_name IS NOT NULL\n" rows_affected=0 rows_returned=195 elapsed=1.250257875s
2026-04-24T13:41:11.559513Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=92 elapsed=10.151735042s
2026-04-24T13:41:11.559741Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 92 eligible frames
2026-04-24T13:41:14.043784Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 2.3MB → 0.1MB (32.3x), 37 JPEGs deleted
2026-04-24T13:41:21.303349Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 53 frames, 8.7MB → 3.1MB (2.8x), 53 JPEGs deleted
2026-04-24T13:41:40.887689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7539785768983157715, trigger=click)
2026-04-24T13:42:34.136767Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3059269999432289894, trigger=click)
2026-04-24T13:42:45.942807Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3777488472456223409, trigger=click)
2026-04-24T13:43:01.921357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1871207218552190145, trigger=click)
2026-04-24T13:44:01.878037Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8495661271621520850, trigger=click)
2026-04-24T13:46:28.021146Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=40 elapsed=6.713739708s
2026-04-24T13:46:28.021348Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames
2026-04-24T13:46:29.141090Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 1.1MB → 0.1MB (17.9x), 18 JPEGs deleted
2026-04-24T13:46:31.601195Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.7MB → 2.9MB (1.6x), 20 JPEGs deleted
2026-04-24T13:51:31.692283Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames
2026-04-24T13:51:32.570330Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.0MB → 0.2MB (4.8x), 13 JPEGs deleted
2026-04-24T13:51:33.760542Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.9MB → 1.0MB (1.9x), 10 JPEGs deleted
2026-04-24T13:55:31.626192Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2977185087332333124, trigger=click)
2026-04-24T13:56:33.924925Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 105 eligible frames
2026-04-24T13:56:37.179833Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 55 frames, 5.1MB → 1.4MB (3.6x), 55 JPEGs deleted
2026-04-24T13:56:40.328768Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 48 frames, 7.6MB → 1.3MB (6.0x), 48 JPEGs deleted
2026-04-24T14:00:47.136298Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Firefox, signals=2)
2026-04-24T14:00:47.857419Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2938651853865790585, trigger=click)
2026-04-24T14:00:52.374476Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Firefox, signals=2, browser=true)
2026-04-24T14:00:52.378086Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=12, app=Firefox, title=None)
2026-04-24T14:01:40.650767Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 62 eligible frames
2026-04-24T14:01:42.431196Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 1.9MB → 0.1MB (32.0x), 30 JPEGs deleted
2026-04-24T14:01:44.259623Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 4.8MB → 0.2MB (23.8x), 30 JPEGs deleted
2026-04-24T14:06:51.687604Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=54 elapsed=7.415698459s
2026-04-24T14:06:51.691163Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 54 eligible frames
2026-04-24T14:06:53.324710Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 1.7MB → 0.1MB (29.0x), 27 JPEGs deleted
2026-04-24T14:06:54.826559Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.0MB → 0.2MB (19.9x), 25 JPEGs deleted
2026-04-24T14:11:54.984165Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 93 eligible frames
2026-04-24T14:11:57.808857Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 48 frames, 3.1MB → 0.1MB (49.5x), 48 JPEGs deleted
2026-04-24T14:12:00.396251Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 43 frames, 6.8MB → 0.2MB (33.8x), 43 JPEGs deleted
2026-04-24T14:17:06.109470Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=49 elapsed=5.652470541s
2026-04-24T14:17:06.109602Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 49 eligible frames
2026-04-24T14:17:07.677608Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 1.6MB → 0.1MB (27.0x), 25 JPEGs deleted
2026-04-24T14:17:09.097967Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 3.5MB → 0.2MB (17.6x), 22 JPEGs deleted
2026-04-24T14:22:13.316698Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=24 elapsed=4.206937709s
2026-04-24T14:22:13.317436Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 24 eligible frames
2026-04-24T14:22:14.074811Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 0.7MB → 0.1MB (12.2x), 11 JPEGs deleted
2026-04-24T14:22:14.844321Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.7MB → 0.2MB (8.9x), 11 JPEGs deleted
2026-04-24T14:27:16.330019Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=22 elapsed=1.474471542s
2026-04-24T14:27:16.330265Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames
2026-04-24T14:27:17.027734Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted
2026-04-24T14:27:17.792405Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted
2026-04-24T14:32:18.770983Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames
2026-04-24T14:32:19.478630Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted
2026-04-24T14:32:20.241056Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted
2026-04-24T14:37:27.349741Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=22 elapsed=7.096181584s
2026-04-24T14:37:27.353187Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames
2026-04-24T14:37:28.066685Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted
2026-04-24T14:37:28.851355Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted
2026-04-24T14:38:19.407454Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=12, grace=300s)
2026-04-24T14:39:19.637322Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8577329830578954505, trigger=click)
2026-04-24T14:39:21.680425Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8317095871263557761, trigger=click)
2026-04-24T14:39:21.707871Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8317095871263557761, trigger=click)
2026-04-24T14:40:10.148981Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5676671508452457688, trigger=click)
2026-04-24T14:42:02.876165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3644563293578755711, trigger=click)
2026-04-24T14:42:12.151008Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3644563293578755711, trigger=click)
2026-04-24T14:42:36.098708Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=22 elapsed=7.2363725s
2026-04-24T14:42:36.098834Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames
2026-04-24T14:42:36.816811Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted
2026-04-24T14:42:37.598382Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted
2026-04-24T14:42:43.884371Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1901203473704384943, trigger=click)
2026-04-24T14:42:43.916542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1901203473704384943, trigger=click)
2026-04-24T14:43:24.413233Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Idle (timeout=300s, app=Firefox, id=12)
2026-04-24T14:43:24.855747Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting ended (id=12)
2026-04-24T14:44:38.941315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1557697903749375374, trigger=click)
2026-04-24T14:44:38.962591Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1557697903749375374, trigger=click)
2026-04-24T14:44:39.438011Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1557697903749375374, trigger=click)
2026-04-24T14:45:24.198550Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8167839925779509873, trigger=click)
2026-04-24T14:45:25.110117Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8167839925779509873, trigger=click)
2026-04-24T14:45:38.880039Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3644563293578755711, trigger=click)
2026-04-24T14:46:09.691532Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8167839925779509873, trigger=click)
2026-04-24T14:46:23.813781Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4533509598273890786, trigger=click)
2026-04-24T14:46:23.859560Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4533509598273890786, trigger=click)
2026-04-24T14:47:44.514826Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2503176719318141451, trigger=click)
2026-04-24T14:47:44.539391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2503176719318141451, trigger=click)
2026-04-24T14:47:44.764903Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=21 elapsed=7.257808167s
2026-04-24T14:47:44.764982Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames
2026-04-24T14:47:45.473419Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 0.6MB → 0.1MB (10.0x), 9 JPEGs deleted
2026-04-24T14:47:46.188394Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted
2026-04-24T14:47:50.085052Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2503176719318141451, trigger=click)
2026-04-24T14:47:50.106335Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2503176719318141451, trigger=click)
2026-04-24T14:52:53.441281Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=100 elapsed=7.256992167s
2026-04-24T14:52:53.441665Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 100 eligible frames
2026-04-24T14:52:56.554743Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 3.2MB → 0.1MB (50.4x), 49 JPEGs deleted
2026-04-24T14:52:59.416988Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 7.8MB → 0.2MB (38.4x), 49 JPEGs deleted
2026-04-24T14:53:50.050387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4956080981675052788, trigger=click)
2026-04-24T14:55:36.318507Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-991319035522409710, trigger=click)
2026-04-24T14:55:36.391576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-991319035522409710, trigger=click)
2026-04-24T14:57:59.569859Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 57 eligible frames
2026-04-24T14:58:01.300455Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 1.6MB → 0.1MB (25.9x), 24 JPEGs deleted
2026-04-24T14:58:03.198608Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 4.9MB → 0.2MB (24.6x), 31 JPEGs deleted
2026-04-24T15:03:08.612242Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=30 elapsed=5.295343459s
2026-04-24T15:03:08.612821Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 30 eligible frames
2026-04-24T15:03:09.620798Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 0.9MB → 0.1MB (15.4x), 14 JPEGs deleted
2026-04-24T15:03:10.811697Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.2MB → 0.2MB (11.3x), 14 JPEGs deleted
2026-04-24T15:04:26.269378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5667957418966591499, trigger=click)
2026-04-24T15:04:26.321219Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5667957418966591499, trigger=click)
2026-04-24T15:08:14.307499Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=25 elapsed=3.392988s
2026-04-24T15:08:14.307671Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames
2026-04-24T15:08:15.302981Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 0.7MB → 0.1MB (12.2x), 11 JPEGs deleted
2026-04-24T15:08:16.186177Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 1.9MB → 0.2MB (9.7x), 12 JPEGs deleted
2026-04-24T15:13:18.963807Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=37 elapsed=2.767425042s
2026-04-24T15:13:18.963934Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 37 eligible frames
2026-04-24T15:13:20.113690Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 1.2MB → 0.1MB (19.7x), 18 JPEGs deleted
2026-04-24T15:13:21.236764Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.7MB → 0.2MB (13.6x), 17 JPEGs deleted
2026-04-24T15:14:48.156237Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)
2026-04-24T15:15:01.132168Z INFO sck_rs::stream_manager: recreating stream for display 1 (resolution change)
2026-04-24T15:15:01.221025Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=app_switch, monitor=1) — DB pool may be saturated
2026-04-24T15:15:01.375924Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=app_switch, monitor=2) — DB pool may be saturated
2026-04-24T15:15:15.842371Z INFO sck_rs::stream_manager: recreating stream for display 2 (resolution change)
2026-04-24T15:18:28.531831Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=36 elapsed=7.26041775s
2026-04-24T15:18:28.531955Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 36 eligible frames
2026-04-24T15:18:29.658166Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 1.1MB → 0.1MB (18.6x), 17 JPEGs deleted
2026-04-24T15:18:30.768761Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.7MB → 0.2MB (13.6x), 17 JPEGs deleted
2026-04-24T15:23:31.928536Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=22 elapsed=1.148790625s
2026-04-24T15:23:31.928649Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames
2026-04-24T15:23:32.642076Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted
2026-04-24T15:23:33.401791Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted
2026-04-24T15:28:34.810366Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=8 elapsed=1.39738375s
2026-04-24T15:28:34.810546Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 8 eligible frames
2026-04-24T15:28:35.187466Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 3 frames, 0.2MB → 0.1MB (3.5x), 3 JPEGs deleted
2026-04-24T15:28:35.591687Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 3 frames, 0.5MB → 0.2MB (2.6x), 3 JPEGs deleted
2026-04-24T15:33:39.031121Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=2 elapsed=3.484074667s
2026-04-24T15:33:39.031286Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
2026-04-24T15:43:41.373431Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=0 elapsed=2.126509208s
2026-04-24T15:48:45.005960Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=0 elapsed=3.630826208s
2026-04-24T15:53:46.452410Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=0 elapsed=1.442133375s
2026-04-24T16:03:50.813556Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=0 elapsed=3.725817875s
2026-04-24T16:08:52.104712Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=0 elapsed=1.289955292s
2026-04-24T16:14:48.860304Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)
2026-04-24T16:14:48.885031Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2
2026-04-24T16:14:49.085988Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)
2026-04-24T16:14:49.951727Z INFO screenpipe_engine::event_driven_capture: monitor 2 capture recovered after 1 consecutive errors
2026-04-24T16:15:14.957591Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)
2026-04-24T16:15:15.344344Z INFO screenpipe_engine::event_driven_capture: monitor 1 capture recovered after 1 consecutive errors
2026-04-24T16:17:13.975782Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7172393451066325016, trigger=click)
2026-04-24T16:19:00.805923Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=0 elapsed=7.986969166s
2026-04-24T16:19:29.124240Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3129461629380798674, trigger=click)
2026-04-24T16:19:29.165320Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=click)
2026-04-24T16:20:57.221933Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=click)
2026-04-24T16:21:34.158304Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=visual_change)
2026-04-24T16:21:52.258518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=visual_change)
2026-04-24T16:24:07.960303Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=0 elapsed=7.148022208s
2026-04-24T16:25:38.292462Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8773909165376335292, trigger=click)
2026-04-24T16:28:02.880424Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=826123905625364471, trigger=click)
2026-04-24T16:28:02.928317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=826123905625364471, trigger=click)
2026-04-24T16:29:02.161685Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5156992524424370675, trigger=visual_change)
2026-04-24T16:29:11.119509Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5156992524424370675, trigger=visual_change)
2026-04-24T16:29:15.437543Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=42 elapsed=7.45073025s
2026-04-24T16:29:15.438417Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 42 eligible frames
2026-04-24T16:29:17.083173Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 3.2MB → 0.4MB (9.1x), 20 JPEGs deleted
2026-04-24T16:29:18.972223Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 5.2MB → 1.7MB (3.0x), 22 JPEGs deleted
2026-04-24T16:29:34.388891Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5156992524424370675, trigger=click)
2026-04-24T16:29:45.796969Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4817563232530793650, trigger=click)
2026-04-24T16:32:36.877636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=visual_change)
2026-04-24T16:32:42.134384Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=visual_change)
2026-04-24T16:32:44.378087Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)
2026-04-24T16:32:45.243874Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=visual_change)
2026-04-24T16:32:54.163388Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8550622008733264339, trigger=click)
2026-04-24T16:32:54.176256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)
2026-04-24T16:32:57.087323Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8550622008733264339, trigger=click)
2026-04-24T16:32:57.117211Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)
2026-04-24T16:34:03.172812Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:34:13.599521Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:34:23.371635Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=21 elapsed=4.397149916s
2026-04-24T16:34:23.371744Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames
2026-04-24T16:34:24.346821Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.6MB → 0.4MB (4.0x), 11 JPEGs deleted
2026-04-24T16:34:25.323782Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 2.0MB → 0.7MB (2.7x), 8 JPEGs deleted
2026-04-24T16:35:16.265905Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:35:16.396499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:37:09.981293Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=visual_change)
2026-04-24T16:38:45.635162Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:38:47.663267Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:39:10.322134Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:39:27.552784Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=33 elapsed=2.228011375s
2026-04-24T16:39:27.552915Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 33 eligible frames
2026-04-24T16:39:28.615455Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.8MB → 0.6MB (4.8x), 14 JPEGs deleted
2026-04-24T16:39:30.390392Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.1MB → 1.6MB (2.0x), 17 JPEGs deleted
2026-04-24T16:40:01.437647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7218881400109780070, trigger=click)
2026-04-24T16:40:12.586378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:41:05.997041Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6861826947729846030, trigger=click)
2026-04-24T16:41:11.184592Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6861826947729846030, trigger=click)
2026-04-24T16:43:15.433697Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8550622008733264339, trigger=click)
2026-04-24T16:43:15.515804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)
2026-04-24T16:43:51.515815Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5576357006515458390, trigger=click)
2026-04-24T16:43:59.714706Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5576357006515458390, trigger=click)
2026-04-24T16:43:59.785731Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5576357006515458390, trigger=click)
2026-04-24T16:44:38.173037Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=20 elapsed=7.796779s
2026-04-24T16:44:38.174424Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 20 eligible frames
2026-04-24T16:44:39.258439Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 1.8MB → 0.3MB (5.7x), 9 JPEGs deleted
2026-04-24T16:44:41.729154Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 2.3MB → 1.7MB (1.4x), 9 JPEGs deleted
2026-04-24T16:48:00.989535Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5576357006515458390, trigger=click)
2026-04-24T16:48:17.430932Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5576357006515458390, trigger=click)
2026-04-24T16:49:49.135916Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=17 elapsed=7.403764583s
2026-04-24T16:49:49.136082Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 17 eligible frames
2026-04-24T16:49:50.004132Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 1.6MB → 0.3MB (5.1x), 8 JPEGs deleted
2026-04-24T16:49:50.898114Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 7 frames, 1.9MB → 0.7MB (2.6x), 7 JPEGs deleted
2026-04-24T16:50:09.364175Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8409739779266792278, trigger=visual_change)
2026-04-24T16:50:11.237105Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8409739779266792278, trigger=click)
2026-04-24T16:51:37.931779Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1423930385844614485, trigger=click)
2026-04-24T16:53:14.381283Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7564119013552971576, trigger=click)
2026-04-24T16:54:12.231394Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1423930385844614485, trigger=visual_change)
2026-04-24T16:54:15.266343Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1423930385844614485, trigger=visual_change)
2026-04-24T16:55:01.568514Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=58 elapsed=10.558641542s
2026-04-24T16:55:01.569579Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 58 eligible frames
2026-04-24T16:55:04.609017Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 5.7MB → 1.1MB (5.0x), 28 JPEGs deleted
2026-04-24T16:55:09.392416Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 5.5MB → 3.1MB (1.8x), 28 JPEGs deleted
2026-04-24T16:55:39.774741Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3617611630109587613, trigger=click)
2026-04-24T16:55:39.852272Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3617611630109587613, trigger=click)
2026-04-24T16:56:40.038632Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-426150959945983082, trigger=click)
2026-04-24T16:59:26.437906Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-426150959945983082, trigger=visual_change)
2026-04-24T17:00:21.026565Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=53 elapsed=11.620753209s
2026-04-24T17:00:21.027475Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 53 eligible frames
2026-04-24T17:00:24.007228Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 4.3MB → 0.5MB (7.8x),...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ true │\n│ vision disabled │ false │\n│ pause on DRM content │ false │\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n│ ignored windows │ [\"Boosteroid\"] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n│ api auth │ enabled │\n2026-04-24T13:24:23.186334Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n2026-04-24T13:24:23.198489Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n│ encrypt secrets │ disabled │\n│ retention days │ 14 │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ id: 1 │\n│ │ id: 2 │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ disabled │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-24T13:24:23.216198Z INFO screenpipe: starting UI event capture\n2026-04-24T13:24:23.238868Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-24T13:24:23.260906Z INFO screenpipe_engine::ui_recorder: UI recording session started: 9676eafd-ea8f-4e1a-a5f1-de7bdb79c071\n2026-04-24T13:24:23.260911Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-24T13:24:23.260972Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-23 10:24:23.260965 UTC to 2026-04-24 10:24:23.260965 UTC)\n2026-04-24T13:24:23.261685Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-24T13:24:23.262214Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-24T13:24:23.273443Z INFO screenpipe_engine::server: Server listening on 127.0.0.1:3030\n2026-04-24T13:24:23.304240Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-24T13:24:23.567248Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-24T13:24:23.567289Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-24T13:24:23.567346Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-24T13:24:23.850835Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-24T13:24:23.850880Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-24T13:24:23.850893Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)\n2026-04-24T13:24:23.850901Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)\n2026-04-24T13:24:23.850941Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-24T13:24:25.197204Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)\n2026-04-24T13:24:25.589436Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=77673, dur=103ms\n2026-04-24T13:24:25.630980Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)\n2026-04-24T13:24:25.652818Z INFO sck_rs::stream_manager: invalidated persistent stream for display 1\n2026-04-24T13:24:26.160345Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=77674, dur=198ms\n2026-04-24T13:24:27.471087Z WARN sqlx::query: summary=\"SELECT f.id, f.timestamp, f.offset_index, …\" db.statement=\"\\n\\nSELECT\\n f.id,\\n f.timestamp,\\n f.offset_index,\\n COALESCE(\\n SUBSTR(f.full_text, 1, 200),\\n SUBSTR(f.accessibility_text, 1, 200),\\n (\\n SELECT\\n SUBSTR(ot.text, 1, 200)\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as text,\\n COALESCE(\\n f.app_name,\\n (\\n SELECT\\n ot.app_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as app_name,\\n COALESCE(\\n f.window_name,\\n (\\n SELECT\\n ot.window_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as window_name,\\n COALESCE(vc.device_name, f.device_name) as screen_device,\\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\\n COALESCE(vc.fps, 0.033) as chunk_fps,\\n f.browser_url,\\n f.machine_id\\nFROM\\n frames f\\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\\nWHERE\\n f.timestamp >= ?1\\n AND f.timestamp <= ?2\\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\\nORDER BY\\n f.timestamp DESC,\\n f.offset_index DESC\\nLIMIT\\n 10000\\n\" rows_affected=0 rows_returned=2758 elapsed=4.209235542s\n2026-04-24T13:24:27.488504Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 2758 frame entries, coverage from 2026-04-23 10:24:23.260965 UTC\n2026-04-24T13:24:56.108522Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)\n2026-04-24T13:25:34.118891Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=82 elapsed=10.985025625s\n2026-04-24T13:25:34.121032Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 82 eligible frames\n2026-04-24T13:25:37.475066Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 6.5MB → 0.2MB (30.1x), 39 JPEGs deleted\n2026-04-24T13:25:41.147418Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 41 frames, 9.1MB → 0.3MB (26.4x), 41 JPEGs deleted\n2026-04-24T13:26:53.913464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3587331842305982393, trigger=click)\n2026-04-24T13:30:52.310748Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=2 elapsed=11.152255s\n2026-04-24T13:30:52.313747Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-24T13:36:00.069099Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=9 elapsed=7.594933541s\n2026-04-24T13:36:00.071113Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 9 eligible frames\n2026-04-24T13:36:00.617576Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 4 frames, 0.3MB → 0.1MB (3.6x), 4 JPEGs deleted\n2026-04-24T13:36:01.402540Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 5 frames, 1.0MB → 0.4MB (2.4x), 5 JPEGs deleted\n2026-04-24T13:40:06.828525Z WARN sqlx::query: summary=\"BEGIN IMMEDIATE\" db.statement=\"\" rows_affected=1 rows_returned=0 elapsed=1.076759291s\n2026-04-24T13:40:07.002782Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=195 elapsed=1.250257875s\n2026-04-24T13:41:11.559513Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=92 elapsed=10.151735042s\n2026-04-24T13:41:11.559741Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 92 eligible frames\n2026-04-24T13:41:14.043784Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 2.3MB → 0.1MB (32.3x), 37 JPEGs deleted\n2026-04-24T13:41:21.303349Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 53 frames, 8.7MB → 3.1MB (2.8x), 53 JPEGs deleted\n2026-04-24T13:41:40.887689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7539785768983157715, trigger=click)\n2026-04-24T13:42:34.136767Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3059269999432289894, trigger=click)\n2026-04-24T13:42:45.942807Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3777488472456223409, trigger=click)\n2026-04-24T13:43:01.921357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1871207218552190145, trigger=click)\n2026-04-24T13:44:01.878037Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8495661271621520850, trigger=click)\n2026-04-24T13:46:28.021146Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=40 elapsed=6.713739708s\n2026-04-24T13:46:28.021348Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames\n2026-04-24T13:46:29.141090Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 1.1MB → 0.1MB (17.9x), 18 JPEGs deleted\n2026-04-24T13:46:31.601195Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.7MB → 2.9MB (1.6x), 20 JPEGs deleted\n2026-04-24T13:51:31.692283Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames\n2026-04-24T13:51:32.570330Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.0MB → 0.2MB (4.8x), 13 JPEGs deleted\n2026-04-24T13:51:33.760542Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.9MB → 1.0MB (1.9x), 10 JPEGs deleted\n2026-04-24T13:55:31.626192Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2977185087332333124, trigger=click)\n2026-04-24T13:56:33.924925Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 105 eligible frames\n2026-04-24T13:56:37.179833Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 55 frames, 5.1MB → 1.4MB (3.6x), 55 JPEGs deleted\n2026-04-24T13:56:40.328768Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 48 frames, 7.6MB → 1.3MB (6.0x), 48 JPEGs deleted\n2026-04-24T14:00:47.136298Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Firefox, signals=2)\n2026-04-24T14:00:47.857419Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2938651853865790585, trigger=click)\n2026-04-24T14:00:52.374476Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Firefox, signals=2, browser=true)\n2026-04-24T14:00:52.378086Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=12, app=Firefox, title=None)\n2026-04-24T14:01:40.650767Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 62 eligible frames\n2026-04-24T14:01:42.431196Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 1.9MB → 0.1MB (32.0x), 30 JPEGs deleted\n2026-04-24T14:01:44.259623Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 4.8MB → 0.2MB (23.8x), 30 JPEGs deleted\n2026-04-24T14:06:51.687604Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=54 elapsed=7.415698459s\n2026-04-24T14:06:51.691163Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 54 eligible frames\n2026-04-24T14:06:53.324710Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 1.7MB → 0.1MB (29.0x), 27 JPEGs deleted\n2026-04-24T14:06:54.826559Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.0MB → 0.2MB (19.9x), 25 JPEGs deleted\n2026-04-24T14:11:54.984165Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 93 eligible frames\n2026-04-24T14:11:57.808857Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 48 frames, 3.1MB → 0.1MB (49.5x), 48 JPEGs deleted\n2026-04-24T14:12:00.396251Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 43 frames, 6.8MB → 0.2MB (33.8x), 43 JPEGs deleted\n2026-04-24T14:17:06.109470Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=49 elapsed=5.652470541s\n2026-04-24T14:17:06.109602Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 49 eligible frames\n2026-04-24T14:17:07.677608Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 1.6MB → 0.1MB (27.0x), 25 JPEGs deleted\n2026-04-24T14:17:09.097967Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 3.5MB → 0.2MB (17.6x), 22 JPEGs deleted\n2026-04-24T14:22:13.316698Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=24 elapsed=4.206937709s\n2026-04-24T14:22:13.317436Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 24 eligible frames\n2026-04-24T14:22:14.074811Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 0.7MB → 0.1MB (12.2x), 11 JPEGs deleted\n2026-04-24T14:22:14.844321Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.7MB → 0.2MB (8.9x), 11 JPEGs deleted\n2026-04-24T14:27:16.330019Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=1.474471542s\n2026-04-24T14:27:16.330265Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T14:27:17.027734Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted\n2026-04-24T14:27:17.792405Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted\n2026-04-24T14:32:18.770983Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T14:32:19.478630Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted\n2026-04-24T14:32:20.241056Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted\n2026-04-24T14:37:27.349741Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=7.096181584s\n2026-04-24T14:37:27.353187Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T14:37:28.066685Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted\n2026-04-24T14:37:28.851355Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted\n2026-04-24T14:38:19.407454Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=12, grace=300s)\n2026-04-24T14:39:19.637322Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8577329830578954505, trigger=click)\n2026-04-24T14:39:21.680425Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8317095871263557761, trigger=click)\n2026-04-24T14:39:21.707871Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8317095871263557761, trigger=click)\n2026-04-24T14:40:10.148981Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5676671508452457688, trigger=click)\n2026-04-24T14:42:02.876165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3644563293578755711, trigger=click)\n2026-04-24T14:42:12.151008Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3644563293578755711, trigger=click)\n2026-04-24T14:42:36.098708Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=7.2363725s\n2026-04-24T14:42:36.098834Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T14:42:36.816811Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted\n2026-04-24T14:42:37.598382Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted\n2026-04-24T14:42:43.884371Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1901203473704384943, trigger=click)\n2026-04-24T14:42:43.916542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1901203473704384943, trigger=click)\n2026-04-24T14:43:24.413233Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Idle (timeout=300s, app=Firefox, id=12)\n2026-04-24T14:43:24.855747Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting ended (id=12)\n2026-04-24T14:44:38.941315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1557697903749375374, trigger=click)\n2026-04-24T14:44:38.962591Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1557697903749375374, trigger=click)\n2026-04-24T14:44:39.438011Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1557697903749375374, trigger=click)\n2026-04-24T14:45:24.198550Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8167839925779509873, trigger=click)\n2026-04-24T14:45:25.110117Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8167839925779509873, trigger=click)\n2026-04-24T14:45:38.880039Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3644563293578755711, trigger=click)\n2026-04-24T14:46:09.691532Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8167839925779509873, trigger=click)\n2026-04-24T14:46:23.813781Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4533509598273890786, trigger=click)\n2026-04-24T14:46:23.859560Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4533509598273890786, trigger=click)\n2026-04-24T14:47:44.514826Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2503176719318141451, trigger=click)\n2026-04-24T14:47:44.539391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2503176719318141451, trigger=click)\n2026-04-24T14:47:44.764903Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=21 elapsed=7.257808167s\n2026-04-24T14:47:44.764982Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames\n2026-04-24T14:47:45.473419Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 0.6MB → 0.1MB (10.0x), 9 JPEGs deleted\n2026-04-24T14:47:46.188394Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted\n2026-04-24T14:47:50.085052Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2503176719318141451, trigger=click)\n2026-04-24T14:47:50.106335Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2503176719318141451, trigger=click)\n2026-04-24T14:52:53.441281Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=100 elapsed=7.256992167s\n2026-04-24T14:52:53.441665Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 100 eligible frames\n2026-04-24T14:52:56.554743Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 3.2MB → 0.1MB (50.4x), 49 JPEGs deleted\n2026-04-24T14:52:59.416988Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 7.8MB → 0.2MB (38.4x), 49 JPEGs deleted\n2026-04-24T14:53:50.050387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4956080981675052788, trigger=click)\n2026-04-24T14:55:36.318507Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-991319035522409710, trigger=click)\n2026-04-24T14:55:36.391576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-991319035522409710, trigger=click)\n2026-04-24T14:57:59.569859Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 57 eligible frames\n2026-04-24T14:58:01.300455Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 1.6MB → 0.1MB (25.9x), 24 JPEGs deleted\n2026-04-24T14:58:03.198608Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 4.9MB → 0.2MB (24.6x), 31 JPEGs deleted\n2026-04-24T15:03:08.612242Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=30 elapsed=5.295343459s\n2026-04-24T15:03:08.612821Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 30 eligible frames\n2026-04-24T15:03:09.620798Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 0.9MB → 0.1MB (15.4x), 14 JPEGs deleted\n2026-04-24T15:03:10.811697Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.2MB → 0.2MB (11.3x), 14 JPEGs deleted\n2026-04-24T15:04:26.269378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5667957418966591499, trigger=click)\n2026-04-24T15:04:26.321219Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5667957418966591499, trigger=click)\n2026-04-24T15:08:14.307499Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=25 elapsed=3.392988s\n2026-04-24T15:08:14.307671Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames\n2026-04-24T15:08:15.302981Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 0.7MB → 0.1MB (12.2x), 11 JPEGs deleted\n2026-04-24T15:08:16.186177Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 1.9MB → 0.2MB (9.7x), 12 JPEGs deleted\n2026-04-24T15:13:18.963807Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=37 elapsed=2.767425042s\n2026-04-24T15:13:18.963934Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 37 eligible frames\n2026-04-24T15:13:20.113690Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 1.2MB → 0.1MB (19.7x), 18 JPEGs deleted\n2026-04-24T15:13:21.236764Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.7MB → 0.2MB (13.6x), 17 JPEGs deleted\n2026-04-24T15:14:48.156237Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)\n2026-04-24T15:15:01.132168Z INFO sck_rs::stream_manager: recreating stream for display 1 (resolution change)\n2026-04-24T15:15:01.221025Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=app_switch, monitor=1) — DB pool may be saturated\n2026-04-24T15:15:01.375924Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=app_switch, monitor=2) — DB pool may be saturated\n2026-04-24T15:15:15.842371Z INFO sck_rs::stream_manager: recreating stream for display 2 (resolution change)\n2026-04-24T15:18:28.531831Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=36 elapsed=7.26041775s\n2026-04-24T15:18:28.531955Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 36 eligible frames\n2026-04-24T15:18:29.658166Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 1.1MB → 0.1MB (18.6x), 17 JPEGs deleted\n2026-04-24T15:18:30.768761Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.7MB → 0.2MB (13.6x), 17 JPEGs deleted\n2026-04-24T15:23:31.928536Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=1.148790625s\n2026-04-24T15:23:31.928649Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T15:23:32.642076Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted\n2026-04-24T15:23:33.401791Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted\n2026-04-24T15:28:34.810366Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=8 elapsed=1.39738375s\n2026-04-24T15:28:34.810546Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 8 eligible frames\n2026-04-24T15:28:35.187466Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 3 frames, 0.2MB → 0.1MB (3.5x), 3 JPEGs deleted\n2026-04-24T15:28:35.591687Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 3 frames, 0.5MB → 0.2MB (2.6x), 3 JPEGs deleted\n2026-04-24T15:33:39.031121Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=2 elapsed=3.484074667s\n2026-04-24T15:33:39.031286Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-24T15:43:41.373431Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=2.126509208s\n2026-04-24T15:48:45.005960Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=3.630826208s\n2026-04-24T15:53:46.452410Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.442133375s\n2026-04-24T16:03:50.813556Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=3.725817875s\n2026-04-24T16:08:52.104712Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.289955292s\n2026-04-24T16:14:48.860304Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)\n2026-04-24T16:14:48.885031Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2\n2026-04-24T16:14:49.085988Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)\n2026-04-24T16:14:49.951727Z INFO screenpipe_engine::event_driven_capture: monitor 2 capture recovered after 1 consecutive errors\n2026-04-24T16:15:14.957591Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-24T16:15:15.344344Z INFO screenpipe_engine::event_driven_capture: monitor 1 capture recovered after 1 consecutive errors\n2026-04-24T16:17:13.975782Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7172393451066325016, trigger=click)\n2026-04-24T16:19:00.805923Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=7.986969166s\n2026-04-24T16:19:29.124240Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3129461629380798674, trigger=click)\n2026-04-24T16:19:29.165320Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=click)\n2026-04-24T16:20:57.221933Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=click)\n2026-04-24T16:21:34.158304Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=visual_change)\n2026-04-24T16:21:52.258518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=visual_change)\n2026-04-24T16:24:07.960303Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=7.148022208s\n2026-04-24T16:25:38.292462Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8773909165376335292, trigger=click)\n2026-04-24T16:28:02.880424Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=826123905625364471, trigger=click)\n2026-04-24T16:28:02.928317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=826123905625364471, trigger=click)\n2026-04-24T16:29:02.161685Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5156992524424370675, trigger=visual_change)\n2026-04-24T16:29:11.119509Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5156992524424370675, trigger=visual_change)\n2026-04-24T16:29:15.437543Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=42 elapsed=7.45073025s\n2026-04-24T16:29:15.438417Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 42 eligible frames\n2026-04-24T16:29:17.083173Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 3.2MB → 0.4MB (9.1x), 20 JPEGs deleted\n2026-04-24T16:29:18.972223Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 5.2MB → 1.7MB (3.0x), 22 JPEGs deleted\n2026-04-24T16:29:34.388891Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5156992524424370675, trigger=click)\n2026-04-24T16:29:45.796969Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4817563232530793650, trigger=click)\n2026-04-24T16:32:36.877636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=visual_change)\n2026-04-24T16:32:42.134384Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=visual_change)\n2026-04-24T16:32:44.378087Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)\n2026-04-24T16:32:45.243874Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=visual_change)\n2026-04-24T16:32:54.163388Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8550622008733264339, trigger=click)\n2026-04-24T16:32:54.176256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)\n2026-04-24T16:32:57.087323Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8550622008733264339, trigger=click)\n2026-04-24T16:32:57.117211Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)\n2026-04-24T16:34:03.172812Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:34:13.599521Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:34:23.371635Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=21 elapsed=4.397149916s\n2026-04-24T16:34:23.371744Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames\n2026-04-24T16:34:24.346821Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.6MB → 0.4MB (4.0x), 11 JPEGs deleted\n2026-04-24T16:34:25.323782Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 2.0MB → 0.7MB (2.7x), 8 JPEGs deleted\n2026-04-24T16:35:16.265905Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:35:16.396499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:37:09.981293Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=visual_change)\n2026-04-24T16:38:45.635162Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:38:47.663267Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:39:10.322134Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:39:27.552784Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=33 elapsed=2.228011375s\n2026-04-24T16:39:27.552915Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 33 eligible frames\n2026-04-24T16:39:28.615455Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.8MB → 0.6MB (4.8x), 14 JPEGs deleted\n2026-04-24T16:39:30.390392Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.1MB → 1.6MB (2.0x), 17 JPEGs deleted\n2026-04-24T16:40:01.437647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7218881400109780070, trigger=click)\n2026-04-24T16:40:12.586378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:41:05.997041Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6861826947729846030, trigger=click)\n2026-04-24T16:41:11.184592Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6861826947729846030, trigger=click)\n2026-04-24T16:43:15.433697Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8550622008733264339, trigger=click)\n2026-04-24T16:43:15.515804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)\n2026-04-24T16:43:51.515815Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5576357006515458390, trigger=click)\n2026-04-24T16:43:59.714706Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5576357006515458390, trigger=click)\n2026-04-24T16:43:59.785731Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5576357006515458390, trigger=click)\n2026-04-24T16:44:38.173037Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=20 elapsed=7.796779s\n2026-04-24T16:44:38.174424Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 20 eligible frames\n2026-04-24T16:44:39.258439Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 1.8MB → 0.3MB (5.7x), 9 JPEGs deleted\n2026-04-24T16:44:41.729154Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 2.3MB → 1.7MB (1.4x), 9 JPEGs deleted\n2026-04-24T16:48:00.989535Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5576357006515458390, trigger=click)\n2026-04-24T16:48:17.430932Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5576357006515458390, trigger=click)\n2026-04-24T16:49:49.135916Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=17 elapsed=7.403764583s\n2026-04-24T16:49:49.136082Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 17 eligible frames\n2026-04-24T16:49:50.004132Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 1.6MB → 0.3MB (5.1x), 8 JPEGs deleted\n2026-04-24T16:49:50.898114Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 7 frames, 1.9MB → 0.7MB (2.6x), 7 JPEGs deleted\n2026-04-24T16:50:09.364175Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8409739779266792278, trigger=visual_change)\n2026-04-24T16:50:11.237105Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8409739779266792278, trigger=click)\n2026-04-24T16:51:37.931779Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1423930385844614485, trigger=click)\n2026-04-24T16:53:14.381283Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7564119013552971576, trigger=click)\n2026-04-24T16:54:12.231394Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1423930385844614485, trigger=visual_change)\n2026-04-24T16:54:15.266343Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1423930385844614485, trigger=visual_change)\n2026-04-24T16:55:01.568514Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=58 elapsed=10.558641542s\n2026-04-24T16:55:01.569579Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 58 eligible frames\n2026-04-24T16:55:04.609017Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 5.7MB → 1.1MB (5.0x), 28 JPEGs deleted\n2026-04-24T16:55:09.392416Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 5.5MB → 3.1MB (1.8x), 28 JPEGs deleted\n2026-04-24T16:55:39.774741Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3617611630109587613, trigger=click)\n2026-04-24T16:55:39.852272Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3617611630109587613, trigger=click)\n2026-04-24T16:56:40.038632Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-426150959945983082, trigger=click)\n2026-04-24T16:59:26.437906Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-426150959945983082, trigger=visual_change)\n2026-04-24T17:00:21.026565Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=53 elapsed=11.620753209s\n2026-04-24T17:00:21.027475Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 53 eligible frames\n2026-04-24T17:00:24.007228Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 4.3MB → 0.5MB (7.8x), 21 JPEGs deleted\n2026-04-24T17:00:30.315443Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 6.2MB → 3.1MB (2.0x), 30 JPEGs deleted\n2026-04-24T17:01:31.749742Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4978074472044237669, trigger=click)\n2026-04-24T17:02:32.676946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6528076374554576690, trigger=click)\n2026-04-24T17:03:24.566715Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5730479857460890072, trigger=click)\n2026-04-24T17:03:24.646165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5730479857460890072, trigger=click)\n2026-04-24T17:04:36.724352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2722349336895059815, trigger=click)\n2026-04-24T17:05:26.414686Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-255140549253982666, trigger=click)\n2026-04-24T17:05:38.960944Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=49 elapsed=8.570160541s\n2026-04-24T17:05:38.961851Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 49 eligible frames\n2026-04-24T17:05:40.770553Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.8MB → 0.5MB (10.1x), 24 JPEGs deleted\n2026-04-24T17:05:44.093500Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 4.3MB → 2.0MB (2.1x), 23 JPEGs deleted\n2026-04-24T17:10:45.665278Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=57 elapsed=1.565954333s\n2026-04-24T17:10:45.665510Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 57 eligible frames\n2026-04-24T17:10:47.346256Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.1MB → 0.3MB (15.5x), 25 JPEGs deleted\n2026-04-24T17:10:49.931994Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 5.2MB → 2.6MB (2.0x), 30 JPEGs deleted\n2026-04-24T17:12:35.862404Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2722349336895059815, trigger=visual_change)\n2026-04-24T17:15:54.006030Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=35 elapsed=4.067925709s\n2026-04-24T17:15:54.006151Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 35 eligible frames\n2026-04-24T17:15:55.261287Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.6MB → 0.3MB (11.3x), 18 JPEGs deleted\n2026-04-24T17:15:56.815522Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 3.2MB → 1.3MB (2.4x), 15 JPEGs deleted\n2026-04-24T17:20:58.288264Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=1.467426625s\n2026-04-24T17:20:58.288415Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T17:20:59.175263Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.0MB → 0.3MB (6.3x), 10 JPEGs deleted\n2026-04-24T17:21:00.120027Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.3MB → 0.4MB (6.2x), 10 JPEGs deleted\n2026-04-24T17:22:48.235588Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-885508568992678447, trigger=click)\n2026-04-24T17:22:48.306917Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-885508568992678447, trigger=click)\n2026-04-24T17:23:41.318200Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-885508568992678447, trigger=click)\n2026-04-24T17:24:30.499216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3481376117812878957, trigger=click)\n2026-04-24T17:24:30.601163Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3481376117812878957, trigger=click)\n2026-04-24T17:26:07.575025Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=28 elapsed=7.43131375s\n2026-04-24T17:26:07.578806Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames\n2026-04-24T17:26:08.478709Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 2.2MB → 0.3MB (6.9x), 11 JPEGs deleted\n2026-04-24T17:26:09.770241Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.6MB → 1.0MB (2.6x), 15 JPEGs deleted\n2026-04-24T17:26:26.261981Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-885508568992678447, trigger=click)\n2026-04-24T17:26:26.307896Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-885508568992678447, trigger=click)\n2026-04-24T17:27:22.914133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4993652597681536640, trigger=visual_change)\n2026-04-24T17:27:25.987598Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4993652597681536640, trigger=visual_change)\n2026-04-24T17:27:36.063544Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4993652597681536640, trigger=click)\n2026-04-24T17:27:36.152346Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4993652597681536640, trigger=click)\n2026-04-24T17:27:37.655642Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4993652597681536640, trigger=click)\n2026-04-24T17:27:37.736988Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4993652597681536640, trigger=click)\n2026-04-24T17:28:50.370801Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2329310517310230610, trigger=visual_change)\n2026-04-24T17:28:53.414236Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2329310517310230610, trigger=visual_change)\n2026-04-24T17:30:29.079371Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4689761151685344628, trigger=click)\n2026-04-24T17:31:20.181507Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=10.402847208s\n2026-04-24T17:31:20.182328Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T17:31:21.411366Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.0MB → 0.3MB (6.3x), 10 JPEGs deleted\n2026-04-24T17:31:22.811363Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.3MB (5.0x), 10 JPEGs deleted\n2026-04-24T17:36:28.935203Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=30 elapsed=6.117179292s\n2026-04-24T17:36:28.935662Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 30 eligible frames\n2026-04-24T17:36:29.883792Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.4MB → 0.3MB (7.6x), 12 JPEGs deleted\n2026-04-24T17:36:31.835587Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 3.5MB → 2.2MB (1.6x), 16 JPEGs deleted\n2026-04-24T17:40:48.995186Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)\n2026-04-24T17:41:03.317324Z INFO sck_rs::stream_manager: recreating stream for display 1 (resolution change)\n2026-04-24T17:41:33.869852Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=71 elapsed=2.026336375s\n2026-04-24T17:41:33.870011Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 71 eligible frames\n2026-04-24T17:41:35.708466Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 4.3MB → 1.0MB (4.3x), 28 JPEGs deleted\n2026-04-24T17:41:39.154076Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 41 frames, 7.8MB → 4.0MB (1.9x), 41 JPEGs deleted\n2026-04-24T17:46:42.848481Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=3.698421708s\n2026-04-24T17:46:42.848607Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T17:46:43.688440Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.4MB → 0.2MB (7.1x), 10 JPEGs deleted\n2026-04-24T17:46:44.602870Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.1MB → 0.3MB (6.2x), 10 JPEGs deleted\n2026-04-24T17:51:46.433154Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=18 elapsed=1.824613292s\n2026-04-24T17:51:46.433266Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 18 eligible frames\n2026-04-24T17:51:47.242571Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 1.1MB → 0.2MB (5.7x), 8 JPEGs deleted\n2026-04-24T17:51:48.089907Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 1.7MB → 0.3MB (4.9x), 8 JPEGs deleted\n2026-04-24T17:56:48.271988Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-24T18:06:52.357796Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=3.681285375s\n2026-04-24T18:11:53.610064Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.24532775s\n2026-04-24T18:21:57.920293Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=3.397249084s\n2026-04-24T18:29:38.025317Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)\n2026-04-24T18:29:38.953316Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-24T18:29:39.990915Z INFO sck_rs::stream_manager: invalidated persistent stream for display 1\n2026-04-24T18:29:42.006323Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2\n2026-04-24T18:29:42.016400Z INFO sck_rs::stream_manager: stopped 1 persistent stream(s)\n2026-04-24T18:29:42.642320Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)\n2026-04-24T18:29:49.028954Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-24T18:32:05.848216Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=7.764342958s\n2026-04-24T18:33:14.785220Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=324 elapsed=2.553840125s\n2026-04-24T18:33:49.369572Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=324 elapsed=1.115000042s\n2026-04-24T18:37:14.506363Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=8.566333417s\n2026-04-24T18:40:58.336306Z WARN sqlx::query: summary=\"COMMIT\" db.statement=\"\" rows_affected=1 rows_returned=0 elapsed=1.263114459s\n2026-04-24T18:41:21.420281Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6180934582104161978, trigger=click)\n2026-04-24T18:41:27.763060Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6180934582104161978, trigger=click)\n2026-04-24T18:42:24.498553Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=20 elapsed=9.978308334s\n2026-04-24T18:42:24.499587Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 20 eligible frames\n2026-04-24T18:42:25.603951Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 1.1MB → 0.3MB (3.4x), 8 JPEGs deleted\n2026-04-24T18:42:28.504479Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.5MB → 1.2MB (2.0x), 12 JPEGs deleted\n2026-04-24T18:44:50.719406Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6180934582104161978, trigger=click)\n2026-04-24T18:44:50.719753Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6180934582104161978, trigger=click)\n2026-04-24T18:44:58.486531Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6180934582104161978, trigger=visual_change)\n2026-04-24T18:47:39.149925Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=26 elapsed=10.64528525s\n2026-04-24T18:47:39.150528Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 26 eligible frames\n2026-04-24T18:47:40.470355Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 1.7MB → 0.2MB (8.5x), 12 JPEGs deleted\n2026-04-24T18:47:43.706191Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.9MB → 0.8MB (3.4x), 12 JPEGs deleted\n2026-04-24T18:48:14.799887Z WARN sqlx::query: summary=\"COMMIT\" db.statement=\"\" rows_affected=1 rows_returned=0 elapsed=1.072590208s\n2026-04-24T18:52:53.240638Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=20 elapsed=9.508751833s\n2026-04-24T18:52:53.244355Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 20 eligible frames\n2026-04-24T18:52:56.915294Z WARN sqlx::query: summary=\"COMMIT\" db.statement=\"\" rows_affected=9 rows_returned=0 elapsed=1.283165708s\n2026-04-24T18:52:56.985001Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.7MB (2.2x), 10 JPEGs deleted\n2026-04-24T18:52:59.878416Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 1.6MB → 0.8MB (2.0x), 8 JPEGs deleted\n2026-04-24T18:56:01.036223Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2731140152445727259, trigger=click)\n2026-04-24T18:56:01.113964Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2731140152445727259, trigger=click)\n2026-04-24T18:56:11.335029Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664861859994574679, trigger=click)\n2026-04-24T18:56:50.415616Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664861859994574679, trigger=click)\n2026-04-24T18:56:50.493028Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6664861859994574679, trigger=click)\n2026-04-24T18:58:22.557319Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=18 elapsed=22.668022666s\n2026-04-24T18:58:22.568272Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 18 eligible frames\n2026-04-24T18:58:25.146362Z WARN sqlx::query: summary=\"COMMIT\" db.statement=\"\" rows_affected=1 rows_returned=0 elapsed=2.240168209s\n2026-04-24T18:58:28.254865Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 1.4MB → 0.5MB (2.9x), 8 JPEGs deleted\n2026-04-24T18:58:31.423883Z WARN sqlx::query: summary=\"UPDATE frames SET video_chunk_id …\" db.statement=\"\\n\\nUPDATE\\n frames\\nSET\\n video_chunk_id = ?1,\\n offset_index = CASE\\n id\\n WHEN 79235 THEN 0\\n WHEN 79237 THEN 1\\n WHEN 79239 THEN 2\\n WHEN 79241 THEN 3\\n WHEN 79244 THEN 4\\n WHEN 79245 THEN 5\\n WHEN 79247 THEN 6\\n WHEN 79249 THEN 7\\n ELSE offset_index\\n END,\\n snapshot_path = NULL\\nWHERE\\n id IN (?, ?, ?, ?, ?, ?, ?, ?)\\n AND snapshot_path IS NOT NULL\\n\" rows_affected=7 rows_returned=0 elapsed=1.353156208s\n2026-04-24T18:58:32.168304Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 1.7MB → 0.6MB (3.0x), 8 JPEGs deleted\n2026-04-24T19:00:34.200745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2633736204851875642, trigger=visual_change)\n2026-04-24T19:03:42.648869Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=21 elapsed=10.469428875s\n2026-04-24T19:03:42.649266Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames\n2026-04-24T19:03:47.221976Z WARN sqlx::query: summary=\"COMMIT\" db.statement=\"\" rows_affected=9 rows_returned=0 elapsed=2.732148417s\n2026-04-24T19:03:47.281943Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.3MB → 0.4MB (3.5x), 10 JPEGs deleted\n2026-04-24T19:03:51.044797Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=325 elapsed=1.428669917s\n2026-04-24T19:03:51.493678Z WARN sqlx::query: summary=\"UPDATE frames SET video_chunk_id …\" db.statement=\"\\n\\nUPDATE\\n frames\\nSET\\n video_chunk_id = ?1,\\n offset_index = CASE\\n id\\n WHEN 79251 THEN 0\\n WHEN 79253 THEN 1\\n WHEN 79255 THEN 2\\n WHEN 79257 THEN 3\\n WHEN 79259 THEN 4\\n WHEN 79261 THEN 5\\n WHEN 79263 THEN 6\\n WHEN 79265 THEN 7\\n WHEN 79267 THEN 8\\n ELSE offset_index\\n END,\\n snapshot_path = NULL\\nWHERE\\n id IN (?, ?, ?, ?, ?, ?, ?, ?, ?)\\n AND snapshot_path IS NOT NULL\\n\" rows_affected=8 rows_returned=0 elapsed=2.333241875s\n2026-04-24T19:03:51.989250Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 1.7MB → 0.4MB (4.1x), 9 JPEGs deleted\n2026-04-24T19:03:57.096586Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1983107603547392376, trigger=visual_change)\n2026-04-24T19:04:15.657189Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=325 elapsed=1.620111334s\n2026-04-24T19:09:02.520076Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=35 elapsed=10.555084084s\n2026-04-24T19:09:02.527474Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 35 eligible frames\n2026-04-24T19:09:05.895377Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 3.4MB → 2.0MB (1.7x), 19 JPEGs deleted\n2026-04-24T19:09:07.469280Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.7MB → 0.3MB (8.2x), 14 JPEGs deleted\n2026-04-24T19:09:57.251779Z WARN sqlx::query: summary=\"COMMIT\" db.statement=\"\" rows_affected=1 rows_returned=0 elapsed=4.745247667s\n2026-04-24T19:14:12.013184Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=25 elapsed=4.537452375s\n2026-04-24T19:14:12.013308Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames\n2026-04-24T19:14:13.317257Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 2.9MB → 2.0MB (1.5x), 11 JPEGs deleted\n2026-04-24T19:14:14.155197Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.3MB → 0.3MB (7.7x), 12 JPEGs deleted\n2026-04-24T19:18:14.342159Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4640414213682758812, trigger=visual_change)\n2026-04-24T19:19:14.283192Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 27 eligible frames\n2026-04-24T19:19:15.949548Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.7MB → 0.3MB (5.6x), 10 JPEGs deleted\n2026-04-24T19:19:17.065775Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 3.5MB → 0.9MB (3.8x), 15 JPEGs deleted\n2026-04-24T19:24:17.184625Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 31 eligible frames\n2026-04-24T19:24:18.465268Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.3MB → 1.3MB (1.8x), 14 JPEGs deleted\n2026-04-24T19:24:19.846627Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.5MB → 1.0MB (2.4x), 15 JPEGs deleted\n2026-04-24T19:27:58.636176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=521047434990944918, trigger=click)\n2026-04-24T19:27:58.680403Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=521047434990944918, trigger=click)\n2026-04-24T19:29:20.060029Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 24 eligible frames\n2026-04-24T19:29:20.848005Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.9MB → 0.3MB (7.1x), 11 JPEGs deleted\n2026-04-24T19:29:21.684126Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.9MB → 0.3MB (6.2x), 11 JPEGs deleted\n2026-04-24T19:32:13.986044Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7609021786321165751, trigger=click)\n2026-04-24T19:34:23.034168Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=33 elapsed=1.338599334s\n2026-04-24T19:34:23.034624Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 33 eligible frames\n2026-04-24T19:34:24.035874Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.6MB → 0.4MB (7.3x), 15 JPEGs deleted\n2026-04-24T19:34:25.161399Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.6MB → 0.5MB (5.1x), 16 JPEGs deleted\n2026-04-24T19:39:18.161885Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6714512521313448666, trigger=click)\n2026-04-24T19:39:25.957117Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 85 eligible frames\n2026-04-24T19:39:27.906153Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 33 frames, 5.8MB → 0.4MB (13.6x), 33 JPEGs deleted\n2026-04-24T19:39:30.899433Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 50 frames, 6.8MB → 1.8MB (3.8x), 50 JPEGs deleted\n2026-04-24T19:44:31.027546Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 43 eligible frames\n2026-04-24T19:44:32.013833Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.6MB → 0.3MB (9.6x), 15 JPEGs deleted\n2026-04-24T19:44:33.722498Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 3.7MB → 1.0MB (3.8x), 26 JPEGs deleted\n2026-04-24T19:49:35.482938Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=57 elapsed=1.710919583s\n2026-04-24T19:49:35.483025Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 57 eligible frames\n2026-04-24T19:49:37.082103Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.4MB → 0.4MB (12.4x), 25 JPEGs deleted\n2026-04-24T19:49:39.018101Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 3.7MB → 0.6MB (6.1x), 30 JPEGs deleted\n2026-04-24T19:54:39.741828Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 27 eligible frames\n2026-04-24T19:54:40.531639Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.1MB → 0.3MB (7.8x), 12 JPEGs deleted\n2026-04-24T19:54:41.370466Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.3MB → 0.2MB (5.6x), 13 JPEGs deleted\n2026-04-24T19:59:41.944435Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 35 eligible frames\n2026-04-24T19:59:42.986438Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.8MB → 0.3MB (10.3x), 16 JPEGs deleted\n2026-04-24T19:59:44.105897Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 1.8MB → 0.2MB (9.7x), 17 JPEGs deleted\n2026-04-24T20:04:44.760939Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 34 eligible frames\n2026-04-24T20:04:45.759943Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.6MB → 0.3MB (9.7x), 15 JPEGs deleted\n2026-04-24T20:04:46.812125Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.0MB → 0.3MB (6.5x), 17 JPEGs deleted\n2026-04-24T20:09:46.972479Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 29 eligible frames\n2026-04-24T20:09:47.996075Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.4MB → 0.4MB (5.6x), 14 JPEGs deleted\n2026-04-24T20:09:48.971843Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.6MB → 0.4MB (4.2x), 13 JPEGs deleted\n2026-04-24T20:11:39.105679Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5878930124418572902, trigger=click)\n2026-04-24T20:11:44.633970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5878930124418572902, trigger=click)\n2026-04-24T20:11:44.745222Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5878930124418572902, trigger=click)\n2026-04-24T20:11:53.929841Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5878930124418572902, trigger=click)\n2026-04-24T20:11:54.751076Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5878930124418572902, trigger=click)\n2026-04-24T20:12:03.883243Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5878930124418572902, trigger=click)\n2026-04-24T20:12:04.880520Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5878930124418572902, trigger=click)\n2026-04-24T20:12:07.138284Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5478133607093606798, trigger=click)\n2026-04-24T20:12:09.366721Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1976051674119031319, trigger=click)\n2026-04-24T20:14:49.083937Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 24 eligible frames\n2026-04-24T20:14:49.831397Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.9MB → 0.3MB (7.1x), 11 JPEGs deleted\n2026-04-24T20:14:50.568615Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.3MB → 0.2MB (5.4x), 11 JPEGs deleted\n2026-04-24T20:16:55.531003Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7236530931752786537, trigger=click)\n2026-04-24T20:16:57.786919Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7236530931752786537, trigger=click)\n2026-04-24T20:17:50.622639Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7637073125528108913, trigger=click)\n2026-04-24T20:18:24.567158Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3106110712420029149, trigger=click)\n2026-04-24T20:18:24.953535Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3106110712420029149, trigger=click)\n2026-04-24T20:18:25.113868Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3106110712420029149, trigger=click)\n2026-04-24T20:18:25.516188Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3106110712420029149, trigger=click)\n2026-04-24T20:18:25.578786Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3106110712420029149, trigger=click)\n2026-04-24T20:18:25.879921Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3106110712420029149, trigger=click)\n2026-04-24T20:18:26.045175Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3106110712420029149, trigger=click)\n2026-04-24T20:18:26.521966Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3106110712420029149, trigger=click)\n2026-04-24T20:18:26.584707Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3106110712420029149, trigger=click)\n2026-04-24T20:19:50.676522Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 41 eligible frames\n2026-04-24T20:19:51.646458Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.6MB → 0.3MB (9.6x), 15 JPEGs deleted\n2026-04-24T20:19:53.145898Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 2.8MB → 0.4MB (6.5x), 24 JPEGs deleted\n2026-04-24T20:24:53.257193Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 51 eligible frames\n2026-04-24T20:24:54.402014Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.1MB → 0.3MB (11.5x), 18 JPEGs deleted\n2026-04-24T20:24:56.377255Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 3.8MB → 0.8MB (4.7x), 31 JPEGs deleted\n2026-04-24T20:25:10.402164Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3106110712420029149, trigger=click)\n2026-04-24T20:29:19.308490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8949863932749715123, trigger=visual_change)\n2026-04-24T20:29:31.322538Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8744464076014281490, trigger=click)\n2026-04-24T20:29:56.486436Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 108 eligible frames\n2026-04-24T20:29:59.304643Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 8.5MB → 0.4MB (23.0x), 49 JPEGs deleted\n2026-04-24T20:30:02.871082Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 57 frames, 7.0MB → 1.9MB (3.8x), 57 JPEGs deleted\n2026-04-24T20:30:27.093299Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4461348727040718412, trigger=visual_change)\n2026-04-24T20:30:28.165565Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4750571448063687198, trigger=click)\n2026-04-24T20:30:44.003985Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2710571727549817545, trigger=click)\n2026-04-24T20:30:44.686420Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2710571727549817545, trigger=click)\n2026-04-24T20:30:44.744525Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2710571727549817545, trigger=click)\n2026-04-24T20:30:47.229135Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2710571727549817545, trigger=click)\n2026-04-24T20:30:47.264811Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2710571727549817545, trigger=click)\n2026-04-24T20:30:48.290372Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2710571727549817545, trigger=click)\n2026-04-24T20:30:48.354183Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2710571727549817545, trigger=click)\n2026-04-24T20:30:48.737643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2710571727549817545, trigger=visual_change)\n2026-04-24T20:30:49.019346Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2710571727549817545, trigger=click)\n2026-04-24T20:30:51.563433Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2710571727549817545, trigger=click)\n2026-04-24T20:30:51.629541Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2710571727549817545, trigger=click)\n2026-04-24T20:31:02.677713Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2710571727549817545, trigger=click)\n2026-04-24T20:31:02.733654Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2710571727549817545, trigger=click)\n2026-04-24T20:31:22.251277Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2710571727549817545, trigger=visual_change)\n2026-04-24T20:35:02.980238Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 23 eligible frames\n2026-04-24T20:35:03.733101Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.7MB → 0.3MB (6.5x), 10 JPEGs deleted\n2026-04-24T20:35:04.512692Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.3MB → 0.2MB (6.5x), 11 JPEGs deleted\n2026-04-24T20:40:04.622649Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 42 eligible frames\n2026-04-24T20:40:05.762156Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.1MB → 0.4MB (8.7x), 18 JPEGs deleted\n2026-04-24T20:40:07.216987Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 2.7MB → 0.7MB (3.6x), 22 JPEGs deleted\n2026-04-24T20:42:07.103966Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)\n2026-04-24T20:42:18.251905Z INFO sck_rs::stream_manager: recreating stream for display 1 (resolution change)\n2026-04-24T20:42:33.021190Z INFO sck_rs::stream_manager: recreating stream for display 2 (resolution change)\n2026-04-24T20:45:07.340583Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 46 eligible frames\n2026-04-24T20:45:08.580125Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 3.5MB → 0.3MB (12.8x), 20 JPEGs deleted\n2026-04-24T20:45:10.219587Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 3.3MB → 1.1MB (3.2x), 24 JPEGs deleted\n2026-04-24T20:50:11.638292Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=1.408088167s\n2026-04-24T20:50:11.638476Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T20:50:12.336327Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.7MB → 0.3MB (6.5x), 10 JPEGs deleted\n2026-04-24T20:50:13.038553Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.3MB → 0.2MB (7.9x), 10 JPEGs deleted\n2026-04-24T20:50:54.690485Z WARN screenpipe_engine::resource_monitor: PostHog request timed out\n2026-04-24T20:51:02.880460Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)\n2026-04-24T20:51:02.932072Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2\n2026-04-24T20:51:03.132354Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-24T20:51:17.456775Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-24T20:55:16.847972Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=9 elapsed=3.803582541s\n2026-04-24T20:55:16.848079Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 9 eligible frames\n2026-04-24T20:55:17.285370Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 3 frames, 0.5MB → 0.3MB (2.1x), 3 JPEGs deleted\n2026-04-24T20:55:17.707652Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 4 frames, 0.5MB → 0.2MB (3.2x), 4 JPEGs deleted\n2026-04-24T20:57:16.073846Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8744464076014281490, trigger=click)\n2026-04-24T20:57:17.368379Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8744464076014281490, trigger=click)\n2026-04-24T20:57:17.421200Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8744464076014281490, trigger=click)\n2026-04-24T20:57:20.458119Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8744464076014281490, trigger=click)\n2026-04-24T20:59:31.783847Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4750571448063687198, trigger=click)\n2026-04-24T20:59:34.211064Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4750571448063687198, trigger=click)\n2026-04-24T20:59:47.417854Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4750571448063687198, trigger=click)\n2026-04-24T21:00:17.839015Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-24T21:05:17.985387Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 19 eligible frames\n2026-04-24T21:05:18.703160Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 1.4MB → 0.3MB (5.2x), 8 JPEGs deleted\n2026-04-24T21:05:19.440635Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.5MB → 0.2MB (7.6x), 11 JPEGs deleted\n2026-04-24T21:07:00.844258Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4750571448063687198, trigger=click)\n2026-04-24T21:07:03.877839Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4750571448063687198, trigger=click)\n2026-04-24T21:07:25.748518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1082535405972275214, trigger=visual_change)\n2026-04-24T21:10:19.553950Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 65 eligible frames\n2026-04-24T21:10:21.337256Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 5.2MB → 0.4MB (14.3x), 30 JPEGs deleted\n2026-04-24T21:10:23.420320Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 33 frames, 4.2MB → 1.2MB (3.6x), 33 JPEGs deleted\n2026-04-24T21:15:23.505718Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 42 eligible frames\n2026-04-24T21:15:24.592459Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.0MB → 0.3MB (10.9x), 17 JPEGs deleted\n2026-04-24T21:15:26.028507Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 2.8MB → 0.5MB (5.7x), 23 JPEGs deleted\n2026-04-24T21:20:27.421190Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=41 elapsed=1.386641125s\n2026-04-24T21:20:27.421401Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 41 eligible frames\n2026-04-24T21:20:28.288951Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.3MB → 0.3MB (8.4x), 13 JPEGs deleted\n2026-04-24T21:20:30.075512Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 3.4MB → 1.0MB (3.6x), 26 JPEGs deleted\n2026-04-24T21:25:33.913058Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=24 elapsed=3.832303084s\n2026-04-24T21:25:33.913222Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 24 eligible frames\n2026-04-24T21:25:34.659159Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.7MB → 0.3MB (6.5x), 10 JPEGs deleted\n2026-04-24T21:25:35.654072Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 1.6MB → 0.5MB (3.5x), 12 JPEGs deleted\n2026-04-24T21:26:28.683188Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9215443531147982391, trigger=visual_change)\n2026-04-24T21:26:40.773786Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9215443531147982391, trigger=visual_change)\n2026-04-24T21:26:52.240691Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9215443531147982391, trigger=visual_change)\n2026-04-24T21:30:35.796792Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 23 eligible frames\n2026-04-24T21:30:36.549307Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.7MB → 0.3MB (6.5x), 10 JPEGs deleted\n2026-04-24T21:30:37.299172Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.5MB → 0.3MB (5.5x), 11 JPEGs deleted\n2026-04-24T21:35:37.420689Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T21:35:38.188735Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.7MB → 0.3MB (6.5x), 10 JPEGs deleted\n2026-04-24T21:35:38.941661Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.3MB → 0.3MB (4.6x), 10 JPEGs deleted\n2026-04-24T21:35:53.194121Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=341509084316959528, trigger=click)\n2026-04-24T21:35:53.240769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=341509084316959528, trigger=click)\n2026-04-24T21:37:29.592864Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=341509084316959528, trigger=click)\n2026-04-24T21:37:35.109916Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=341509084316959528, trigger=visual_change)\n2026-04-24T21:38:17.385574Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=341509084316959528, trigger=visual_change)\n2026-04-24T21:38:53.663144Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=341509084316959528, trigger=visual_change)\n2026-04-24T21:39:03.161570Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=341509084316959528, trigger=click)\n2026-04-24T21:40:39.080108Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 44 eligible frames\n2026-04-24T21:40:40.201264Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.0MB → 0.4MB (8.2x), 17 JPEGs deleted\n2026-04-24T21:40:41.781884Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 3.1MB → 0.9MB (3.4x), 25 JPEGs deleted\n2026-04-24T21:45:15.578328Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=341509084316959528, trigger=click)\n2026-04-24T21:45:15.635252Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=341509084316959528, trigger=click)\n2026-04-24T21:45:17.748385Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=341509084316959528, trigger=click)\n2026-04-24T21:45:17.817038Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=341509084316959528, trigger=click)\n2026-04-24T21:45:41.894640Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T21:45:42.715481Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.7MB → 0.3MB (6.5x), 10 JPEGs deleted\n2026-04-24T21:45:43.418068Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.3MB → 0.2MB (7.8x), 10 JPEGs deleted\n2026-04-24T21:46:03.365851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2054959361674030309, trigger=visual_change)\n2026-04-24T21:46:06.405831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4750571448063687198, trigger=click)\n2026-04-24T21:46:08.909389Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4750571448063687198, trigger=click)\n2026-04-24T21:46:09.915564Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1853829974648413344, trigger=visual_change)\n2026-04-24T21:46:16.120235Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4750571448063687198, trigger=click)\n2026-04-24T21:50:43.557928Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T21:50:44.310539Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.7MB → 0.3MB (6.5x), 10 JPEGs deleted\n2026-04-24T21:50:45.056687Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.3MB → 0.3MB (4.3x), 10 JPEGs deleted\n2026-04-24T21:55:45.182142Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 31 eligible frames\n2026-04-24T21:55:46.056016Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.3MB → 0.3MB (8.4x), 13 JPEGs deleted\n2026-04-24T21:55:47.304265Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.0MB → 0.5MB (4.4x), 16 JPEGs deleted\n2026-04-24T21:56:32.421403Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)\n2026-04-24T22:00:47.444500Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 37 eligible frames\n2026-04-24T22:00:48.209538Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.9MB → 0.3MB (7.1x), 11 JPEGs deleted\n2026-04-24T22:00:49.759016Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 3.4MB → 1.0MB (3.3x), 24 JPEGs deleted\n2026-04-24T22:05:49.868079Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T22:05:50.618796Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.7MB → 0.3MB (6.5x), 10 JPEGs deleted\n2026-04-24T22:05:51.305558Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.2MB → 0.2MB (7.6x), 10 JPEGs deleted\n2026-04-24T22:06:59.050577Z INFO sck_rs::stream_manager: invalidated persistent stream for display 1\n2026-04-24T22:07:13.086092Z WARN screenpipe_engine::resource_monitor: PostHog request timed out\n2026-04-24T22:07:33.786348Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)\n2026-04-24T22:07:33.834401Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2\n2026-04-24T22:07:33.896428Z INFO sck_rs::stream_manager: stopped 1 persistent stream(s)\n2026-04-24T22:07:34.025901Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-24T22:07:34.139823Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-24T22:07:46.957004Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2054959361674030309, trigger=visual_change)\n2026-04-24T22:07:47.692981Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4750571448063687198, trigger=click)\n2026-04-24T22:07:48.699426Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4750571448063687198, trigger=click)\n2026-04-24T22:07:48.732518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4750571448063687198, trigger=click)\n2026-04-24T22:08:07.919141Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8949863932749715123, trigger=visual_change)\n2026-04-24T22:10:03.669907Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=341509084316959528, trigger=visual_change)\n2026-04-24T22:10:06.722692Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=341509084316959528, trigger=visual_change)\n2026-04-24T22:10:18.871886Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=341509084316959528, trigger=visual_change)\n2026-04-24T22:10:37.094344Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=341509084316959528, trigger=visual_change)\n2026-04-24T22:10:43.130336Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=341509084316959528, trigger=visual_change)\n2026-04-24T22:10:53.482693Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=5 elapsed=2.1725865s\n2026-04-24T22:10:53.482887Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 5 eligible frames\n2026-04-24T22:10:53.837380Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 2 frames, 0.3MB → 0.2MB (1.4x), 2 JPEGs deleted\n2026-04-24T22:10:54.041509Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 1 frames, 0.1MB → 0.1MB (1.1x), 1 JPEGs deleted\n2026-04-24T22:10:55.213564Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=341509084316959528, trigger=visual_change)\n2026-04-24T22:11:04.259918Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=341509084316959528, trigger=visual_change)\n2026-04-24T22:11:28.438394Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=341509084316959528, trigger=visual_change)\n2026-04-24T22:11:37.488474Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=341509084316959528, trigger=visual_change)\n2026-04-24T22:15:54.117473Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-24T22:18:59.797832Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)\n2026-04-24T22:19:13.433149Z INFO sck_rs::stream_manager: recreating stream for display 1 (resolution change)\n2026-04-24T22:19:28.223705Z INFO sck_rs::stream_manager: recreating stream for display 2 (resolution change)\n2026-04-24T22:20:54.256021Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T22:20:54.984522Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 1.6MB → 0.3MB (5.8x), 9 JPEGs deleted\n2026-04-24T22:20:56.035039Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.7MB → 0.7MB (2.6x), 13 JPEGs deleted\n2026-04-24T22:25:56.125721Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T22:25:56.864851Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.7MB → 0.3MB (6.5x), 10 JPEGs deleted\n2026-04-24T22:25:57.581205Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.4MB → 0.2MB (5.8x), 10 JPEGs deleted\n2026-04-24T22:30:57.712015Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 14 eligible frames\n2026-04-24T22:30:58.337622Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 6 frames, 1.0MB → 0.3MB (3.9x), 6 JPEGs deleted\n2026-04-24T22:30:58.911832Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 6 frames, 0.8MB → 0.2MB (4.5x), 6 JPEGs deleted\n2026-04-24T22:35:59.025118Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-25T00:31:03.532748Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.403754542s\n2026-04-25T00:36:04.888212Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.355033833s\n2026-04-25T02:26:09.381064Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.752063917s\n2026-04-25T02:36:10.551753Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.050235167s\n2026-04-25T02:51:12.734441Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.9489485s\n2026-04-25T03:01:06.935149Z WARN screenpipe_engine::resource_monitor: PostHog request timed out\n2026-04-25T03:02:06.966335Z ERROR screenpipe_engine::resource_monitor: Failed to send resource usage to PostHog: error sending request for url (https://us.i.posthog.com/capture/)\n2026-04-25T04:36:20.831709Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.323757458s\n2026-04-25T04:46:23.391499Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.59293325s\n2026-04-25T05:06:26.020217Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.550194958s\n2026-04-25T06:36:31.641080Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.410231334s\n2026-04-25T07:51:35.485001Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.275606209s\n2026-04-25T08:21:38.394114Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.058651125s\n2026-04-25T08:56:44.679601Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.899231459s\n2026-04-25T09:01:45.790944Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.111638125s\n2026-04-25T09:06:47.451286Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.659418875s\n2026-04-25T09:11:50.605191Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=3.139225667s\n2026-04-25T09:16:53.333463Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=2.728748083s\n2026-04-25T09:21:54.829483Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.481694292s\n2026-04-25T09:26:56.691352Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.860160708s\n2026-04-25T09:31:59.318916Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=2.641507875s\n2026-04-25T09:37:00.846974Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.527240458s\n2026-04-25T09:47:02.746275Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.46771125s\n2026-04-25T10:07:04.702110Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.4512865s\n2026-04-25T10:12:06.514003Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.851845375s\n2026-04-25T10:17:09.145447Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=2.633306292s\n2026-04-25T10:32:12.617468Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=3.183533083s\n2026-04-25T10:52:14.712931Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.739192166s\n2026-04-25T11:17:19.449162Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=3.216377375s\n2026-04-25T11:22:20.715206Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.267409208s\n2026-04-25T11:52:27.083139Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=4.271213042s\n2026-04-25T12:17:31.033541Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.234918584s\n2026-04-25T12:22:34.030483Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=2.994751291s\n2026-04-25T12:27:35.182859Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.152736542s\n2026-04-25T12:42:41.216480Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=5.033096125s\n2026-04-25T13:07:44.656373Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.798177625s\n2026-04-25T13:12:48.550581Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=3.894991833s\n2026-04-25T13:17:50.993975Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=2.444900041s\n2026-04-25T13:22:53.791038Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=2.819025041s\n2026-04-25T13:27:54.822046Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.033900666s\n2026-04-25T13:42:57.280689Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=2.170261167s\n2026-04-25T13:48:00.341641Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=3.063761209s\n2026-04-25T13:58:02.155594Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.003461708s\n2026-04-25T14:03:03.435953Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.263781791s\n2026-04-25T14:13:06.727837Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=3.164951708s\n2026-04-25T14:18:09.541408Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=2.816421959s\n2026-04-25T14:23:11.032066Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.466058042s\n2026-04-25T14:28:12.850148Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.810514583s\n2026-04-25T14:43:15.922744Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=2.212433625s\n2026-04-25T14:48:18.547263Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=2.611123083s\n2026-04-25T14:53:19.667474Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.11755375s\n2026-04-25T15:03:21.308350Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.46300375s\n2026-04-25T15:13:29.897768Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=7.888686584s\n2026-04-25T15:33:32.174288Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.381808625s\n2026-04-25T15:43:34.105473Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.801180792s\n2026-04-25T15:48:36.478523Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=2.368007208s\n2026-04-25T16:18:39.844947Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=2.086581708s\n2026-04-25T16:43:47.926061Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=5.962960083s\n2026-04-25T16:58:49.502984Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.049299875s\n2026-04-25T17:03:54.050957Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=4.550855625s\n2026-04-25T17:13:55.479571Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.285178292s\n2026-04-25T17:18:56.727113Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.216977333s\n2026-04-25T17:24:00.252789Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=3.525427875s\n2026-04-25T17:25:46.308689Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)\n2026-04-25T17:25:46.346123Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2\n2026-04-25T17:25:46.511136Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-25T17:25:47.036757Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: day rollover (114 -> 115), clearing cache\n2026-04-25T17:26:02.744027Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1534360647489461776, trigger=click)\n2026-04-25T17:26:09.883472Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-25T17:26:10.274955Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1200437610819337959, trigger=click)","depth":4,"value":"┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ true │\n│ vision disabled │ false │\n│ pause on DRM content │ false │\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n│ ignored windows │ [\"Boosteroid\"] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n│ api auth │ enabled │\n2026-04-24T13:24:23.186334Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n2026-04-24T13:24:23.198489Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n│ encrypt secrets │ disabled │\n│ retention days │ 14 │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ id: 1 │\n│ │ id: 2 │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ disabled │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-24T13:24:23.216198Z INFO screenpipe: starting UI event capture\n2026-04-24T13:24:23.238868Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-24T13:24:23.260906Z INFO screenpipe_engine::ui_recorder: UI recording session started: 9676eafd-ea8f-4e1a-a5f1-de7bdb79c071\n2026-04-24T13:24:23.260911Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-24T13:24:23.260972Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-23 10:24:23.260965 UTC to 2026-04-24 10:24:23.260965 UTC)\n2026-04-24T13:24:23.261685Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-24T13:24:23.262214Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-24T13:24:23.273443Z INFO screenpipe_engine::server: Server listening on 127.0.0.1:3030\n2026-04-24T13:24:23.304240Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-24T13:24:23.567248Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-24T13:24:23.567289Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-24T13:24:23.567346Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-24T13:24:23.850835Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-24T13:24:23.850880Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-24T13:24:23.850893Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)\n2026-04-24T13:24:23.850901Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)\n2026-04-24T13:24:23.850941Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-24T13:24:25.197204Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)\n2026-04-24T13:24:25.589436Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=77673, dur=103ms\n2026-04-24T13:24:25.630980Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)\n2026-04-24T13:24:25.652818Z INFO sck_rs::stream_manager: invalidated persistent stream for display 1\n2026-04-24T13:24:26.160345Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=77674, dur=198ms\n2026-04-24T13:24:27.471087Z WARN sqlx::query: summary=\"SELECT f.id, f.timestamp, f.offset_index, …\" db.statement=\"\\n\\nSELECT\\n f.id,\\n f.timestamp,\\n f.offset_index,\\n COALESCE(\\n SUBSTR(f.full_text, 1, 200),\\n SUBSTR(f.accessibility_text, 1, 200),\\n (\\n SELECT\\n SUBSTR(ot.text, 1, 200)\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as text,\\n COALESCE(\\n f.app_name,\\n (\\n SELECT\\n ot.app_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as app_name,\\n COALESCE(\\n f.window_name,\\n (\\n SELECT\\n ot.window_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as window_name,\\n COALESCE(vc.device_name, f.device_name) as screen_device,\\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\\n COALESCE(vc.fps, 0.033) as chunk_fps,\\n f.browser_url,\\n f.machine_id\\nFROM\\n frames f\\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\\nWHERE\\n f.timestamp >= ?1\\n AND f.timestamp <= ?2\\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\\nORDER BY\\n f.timestamp DESC,\\n f.offset_index DESC\\nLIMIT\\n 10000\\n\" rows_affected=0 rows_returned=2758 elapsed=4.209235542s\n2026-04-24T13:24:27.488504Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 2758 frame entries, coverage from 2026-04-23 10:24:23.260965 UTC\n2026-04-24T13:24:56.108522Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)\n2026-04-24T13:25:34.118891Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=82 elapsed=10.985025625s\n2026-04-24T13:25:34.121032Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 82 eligible frames\n2026-04-24T13:25:37.475066Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 6.5MB → 0.2MB (30.1x), 39 JPEGs deleted\n2026-04-24T13:25:41.147418Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 41 frames, 9.1MB → 0.3MB (26.4x), 41 JPEGs deleted\n2026-04-24T13:26:53.913464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3587331842305982393, trigger=click)\n2026-04-24T13:30:52.310748Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=2 elapsed=11.152255s\n2026-04-24T13:30:52.313747Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-24T13:36:00.069099Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=9 elapsed=7.594933541s\n2026-04-24T13:36:00.071113Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 9 eligible frames\n2026-04-24T13:36:00.617576Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 4 frames, 0.3MB → 0.1MB (3.6x), 4 JPEGs deleted\n2026-04-24T13:36:01.402540Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 5 frames, 1.0MB → 0.4MB (2.4x), 5 JPEGs deleted\n2026-04-24T13:40:06.828525Z WARN sqlx::query: summary=\"BEGIN IMMEDIATE\" db.statement=\"\" rows_affected=1 rows_returned=0 elapsed=1.076759291s\n2026-04-24T13:40:07.002782Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=195 elapsed=1.250257875s\n2026-04-24T13:41:11.559513Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=92 elapsed=10.151735042s\n2026-04-24T13:41:11.559741Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 92 eligible frames\n2026-04-24T13:41:14.043784Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 2.3MB → 0.1MB (32.3x), 37 JPEGs deleted\n2026-04-24T13:41:21.303349Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 53 frames, 8.7MB → 3.1MB (2.8x), 53 JPEGs deleted\n2026-04-24T13:41:40.887689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7539785768983157715, trigger=click)\n2026-04-24T13:42:34.136767Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3059269999432289894, trigger=click)\n2026-04-24T13:42:45.942807Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3777488472456223409, trigger=click)\n2026-04-24T13:43:01.921357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1871207218552190145, trigger=click)\n2026-04-24T13:44:01.878037Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8495661271621520850, trigger=click)\n2026-04-24T13:46:28.021146Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=40 elapsed=6.713739708s\n2026-04-24T13:46:28.021348Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames\n2026-04-24T13:46:29.141090Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 1.1MB → 0.1MB (17.9x), 18 JPEGs deleted\n2026-04-24T13:46:31.601195Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.7MB → 2.9MB (1.6x), 20 JPEGs deleted\n2026-04-24T13:51:31.692283Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames\n2026-04-24T13:51:32.570330Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.0MB → 0.2MB (4.8x), 13 JPEGs deleted\n2026-04-24T13:51:33.760542Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.9MB → 1.0MB (1.9x), 10 JPEGs deleted\n2026-04-24T13:55:31.626192Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2977185087332333124, trigger=click)\n2026-04-24T13:56:33.924925Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 105 eligible frames\n2026-04-24T13:56:37.179833Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 55 frames, 5.1MB → 1.4MB (3.6x), 55 JPEGs deleted\n2026-04-24T13:56:40.328768Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 48 frames, 7.6MB → 1.3MB (6.0x), 48 JPEGs deleted\n2026-04-24T14:00:47.136298Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Firefox, signals=2)\n2026-04-24T14:00:47.857419Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2938651853865790585, trigger=click)\n2026-04-24T14:00:52.374476Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Firefox, signals=2, browser=true)\n2026-04-24T14:00:52.378086Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=12, app=Firefox, title=None)\n2026-04-24T14:01:40.650767Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 62 eligible frames\n2026-04-24T14:01:42.431196Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 1.9MB → 0.1MB (32.0x), 30 JPEGs deleted\n2026-04-24T14:01:44.259623Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 4.8MB → 0.2MB (23.8x), 30 JPEGs deleted\n2026-04-24T14:06:51.687604Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=54 elapsed=7.415698459s\n2026-04-24T14:06:51.691163Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 54 eligible frames\n2026-04-24T14:06:53.324710Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 1.7MB → 0.1MB (29.0x), 27 JPEGs deleted\n2026-04-24T14:06:54.826559Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.0MB → 0.2MB (19.9x), 25 JPEGs deleted\n2026-04-24T14:11:54.984165Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 93 eligible frames\n2026-04-24T14:11:57.808857Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 48 frames, 3.1MB → 0.1MB (49.5x), 48 JPEGs deleted\n2026-04-24T14:12:00.396251Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 43 frames, 6.8MB → 0.2MB (33.8x), 43 JPEGs deleted\n2026-04-24T14:17:06.109470Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=49 elapsed=5.652470541s\n2026-04-24T14:17:06.109602Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 49 eligible frames\n2026-04-24T14:17:07.677608Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 1.6MB → 0.1MB (27.0x), 25 JPEGs deleted\n2026-04-24T14:17:09.097967Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 3.5MB → 0.2MB (17.6x), 22 JPEGs deleted\n2026-04-24T14:22:13.316698Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=24 elapsed=4.206937709s\n2026-04-24T14:22:13.317436Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 24 eligible frames\n2026-04-24T14:22:14.074811Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 0.7MB → 0.1MB (12.2x), 11 JPEGs deleted\n2026-04-24T14:22:14.844321Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.7MB → 0.2MB (8.9x), 11 JPEGs deleted\n2026-04-24T14:27:16.330019Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=1.474471542s\n2026-04-24T14:27:16.330265Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T14:27:17.027734Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted\n2026-04-24T14:27:17.792405Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted\n2026-04-24T14:32:18.770983Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T14:32:19.478630Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted\n2026-04-24T14:32:20.241056Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted\n2026-04-24T14:37:27.349741Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=7.096181584s\n2026-04-24T14:37:27.353187Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T14:37:28.066685Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted\n2026-04-24T14:37:28.851355Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted\n2026-04-24T14:38:19.407454Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=12, grace=300s)\n2026-04-24T14:39:19.637322Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8577329830578954505, trigger=click)\n2026-04-24T14:39:21.680425Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8317095871263557761, trigger=click)\n2026-04-24T14:39:21.707871Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8317095871263557761, trigger=click)\n2026-04-24T14:40:10.148981Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5676671508452457688, trigger=click)\n2026-04-24T14:42:02.876165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3644563293578755711, trigger=click)\n2026-04-24T14:42:12.151008Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3644563293578755711, trigger=click)\n2026-04-24T14:42:36.098708Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=7.2363725s\n2026-04-24T14:42:36.098834Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T14:42:36.816811Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted\n2026-04-24T14:42:37.598382Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted\n2026-04-24T14:42:43.884371Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1901203473704384943, trigger=click)\n2026-04-24T14:42:43.916542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1901203473704384943, trigger=click)\n2026-04-24T14:43:24.413233Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Idle (timeout=300s, app=Firefox, id=12)\n2026-04-24T14:43:24.855747Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting ended (id=12)\n2026-04-24T14:44:38.941315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1557697903749375374, trigger=click)\n2026-04-24T14:44:38.962591Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1557697903749375374, trigger=click)\n2026-04-24T14:44:39.438011Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1557697903749375374, trigger=click)\n2026-04-24T14:45:24.198550Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8167839925779509873, trigger=click)\n2026-04-24T14:45:25.110117Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8167839925779509873, trigger=click)\n2026-04-24T14:45:38.880039Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3644563293578755711, trigger=click)\n2026-04-24T14:46:09.691532Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8167839925779509873, trigger=click)\n2026-04-24T14:46:23.813781Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4533509598273890786, trigger=click)\n2026-04-24T14:46:23.859560Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4533509598273890786, trigger=click)\n2026-04-24T14:47:44.514826Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2503176719318141451, trigger=click)\n2026-04-24T14:47:44.539391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2503176719318141451, trigger=click)\n2026-04-24T14:47:44.764903Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=21 elapsed=7.257808167s\n2026-04-24T14:47:44.764982Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames\n2026-04-24T14:47:45.473419Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 0.6MB → 0.1MB (10.0x), 9 JPEGs deleted\n2026-04-24T14:47:46.188394Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted\n2026-04-24T14:47:50.085052Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2503176719318141451, trigger=click)\n2026-04-24T14:47:50.106335Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2503176719318141451, trigger=click)\n2026-04-24T14:52:53.441281Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=100 elapsed=7.256992167s\n2026-04-24T14:52:53.441665Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 100 eligible frames\n2026-04-24T14:52:56.554743Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 3.2MB → 0.1MB (50.4x), 49 JPEGs deleted\n2026-04-24T14:52:59.416988Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 7.8MB → 0.2MB (38.4x), 49 JPEGs deleted\n2026-04-24T14:53:50.050387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4956080981675052788, trigger=click)\n2026-04-24T14:55:36.318507Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-991319035522409710, trigger=click)\n2026-04-24T14:55:36.391576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-991319035522409710, trigger=click)\n2026-04-24T14:57:59.569859Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 57 eligible frames\n2026-04-24T14:58:01.300455Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 1.6MB → 0.1MB (25.9x), 24 JPEGs deleted\n2026-04-24T14:58:03.198608Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 4.9MB → 0.2MB (24.6x), 31 JPEGs deleted\n2026-04-24T15:03:08.612242Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=30 elapsed=5.295343459s\n2026-04-24T15:03:08.612821Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 30 eligible frames\n2026-04-24T15:03:09.620798Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 0.9MB → 0.1MB (15.4x), 14 JPEGs deleted\n2026-04-24T15:03:10.811697Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.2MB → 0.2MB (11.3x), 14 JPEGs deleted\n2026-04-24T15:04:26.269378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5667957418966591499, trigger=click)\n2026-04-24T15:04:26.321219Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5667957418966591499, trigger=click)\n2026-04-24T15:08:14.307499Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=25 elapsed=3.392988s\n2026-04-24T15:08:14.307671Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames\n2026-04-24T15:08:15.302981Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 0.7MB → 0.1MB (12.2x), 11 JPEGs deleted\n2026-04-24T15:08:16.186177Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 1.9MB → 0.2MB (9.7x), 12 JPEGs deleted\n2026-04-24T15:13:18.963807Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=37 elapsed=2.767425042s\n2026-04-24T15:13:18.963934Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 37 eligible frames\n2026-04-24T15:13:20.113690Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 1.2MB → 0.1MB (19.7x), 18 JPEGs deleted\n2026-04-24T15:13:21.236764Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.7MB → 0.2MB (13.6x), 17 JPEGs deleted\n2026-04-24T15:14:48.156237Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)\n2026-04-24T15:15:01.132168Z INFO sck_rs::stream_manager: recreating stream for display 1 (resolution change)\n2026-04-24T15:15:01.221025Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=app_switch, monitor=1) — DB pool may be saturated\n2026-04-24T15:15:01.375924Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=app_switch, monitor=2) — DB pool may be saturated\n2026-04-24T15:15:15.842371Z INFO sck_rs::stream_manager: recreating stream for display 2 (resolution change)\n2026-04-24T15:18:28.531831Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=36 elapsed=7.26041775s\n2026-04-24T15:18:28.531955Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 36 eligible frames\n2026-04-24T15:18:29.658166Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 1.1MB → 0.1MB (18.6x), 17 JPEGs deleted\n2026-04-24T15:18:30.768761Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.7MB → 0.2MB (13.6x), 17 JPEGs deleted\n2026-04-24T15:23:31.928536Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=1.148790625s\n2026-04-24T15:23:31.928649Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T15:23:32.642076Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted\n2026-04-24T15:23:33.401791Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted\n2026-04-24T15:28:34.810366Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=8 elapsed=1.39738375s\n2026-04-24T15:28:34.810546Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 8 eligible frames\n2026-04-24T15:28:35.187466Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 3 frames, 0.2MB → 0.1MB (3.5x), 3 JPEGs deleted\n2026-04-24T15:28:35.591687Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 3 frames, 0.5MB → 0.2MB (2.6x), 3 JPEGs deleted\n2026-04-24T15:33:39.031121Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=2 elapsed=3.484074667s\n2026-04-24T15:33:39.031286Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-24T15:43:41.373431Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=2.126509208s\n2026-04-24T15:48:45.005960Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=3.630826208s\n2026-04-24T15:53:46.452410Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.442133375s\n2026-04-24T16:03:50.813556Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=3.725817875s\n2026-04-24T16:08:52.104712Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.289955292s\n2026-04-24T16:14:48.860304Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)\n2026-04-24T16:14:48.885031Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2\n2026-04-24T16:14:49.085988Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)\n2026-04-24T16:14:49.951727Z INFO screenpipe_engine::event_driven_capture: monitor 2 capture recovered after 1 consecutive errors\n2026-04-24T16:15:14.957591Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-24T16:15:15.344344Z INFO screenpipe_engine::event_driven_capture: monitor 1 capture recovered after 1 consecutive errors\n2026-04-24T16:17:13.975782Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7172393451066325016, trigger=click)\n2026-04-24T16:19:00.805923Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=7.986969166s\n2026-04-24T16:19:29.124240Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3129461629380798674, trigger=click)\n2026-04-24T16:19:29.165320Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=click)\n2026-04-24T16:20:57.221933Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=click)\n2026-04-24T16:21:34.158304Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=visual_change)\n2026-04-24T16:21:52.258518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=visual_change)\n2026-04-24T16:24:07.960303Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=7.148022208s\n2026-04-24T16:25:38.292462Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8773909165376335292, trigger=click)\n2026-04-24T16:28:02.880424Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=826123905625364471, trigger=click)\n2026-04-24T16:28:02.928317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=826123905625364471, trigger=click)\n2026-04-24T16:29:02.161685Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5156992524424370675, trigger=visual_change)\n2026-04-24T16:29:11.119509Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5156992524424370675, trigger=visual_change)\n2026-04-24T16:29:15.437543Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=42 elapsed=7.45073025s\n2026-04-24T16:29:15.438417Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 42 eligible frames\n2026-04-24T16:29:17.083173Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 3.2MB → 0.4MB (9.1x), 20 JPEGs deleted\n2026-04-24T16:29:18.972223Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 5.2MB → 1.7MB (3.0x), 22 JPEGs deleted\n2026-04-24T16:29:34.388891Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5156992524424370675, trigger=click)\n2026-04-24T16:29:45.796969Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4817563232530793650, trigger=click)\n2026-04-24T16:32:36.877636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=visual_change)\n2026-04-24T16:32:42.134384Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=visual_change)\n2026-04-24T16:32:44.378087Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)\n2026-04-24T16:32:45.243874Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=visual_change)\n2026-04-24T16:32:54.163388Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8550622008733264339, trigger=click)\n2026-04-24T16:32:54.176256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)\n2026-04-24T16:32:57.087323Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8550622008733264339, trigger=click)\n2026-04-24T16:32:57.117211Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)\n2026-04-24T16:34:03.172812Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:34:13.599521Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:34:23.371635Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=21 elapsed=4.397149916s\n2026-04-24T16:34:23.371744Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames\n2026-04-24T16:34:24.346821Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.6MB → 0.4MB (4.0x), 11 JPEGs deleted\n2026-04-24T16:34:25.323782Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 2.0MB → 0.7MB (2.7x), 8 JPEGs deleted\n2026-04-24T16:35:16.265905Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:35:16.396499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:37:09.981293Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=visual_change)\n2026-04-24T16:38:45.635162Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:38:47.663267Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:39:10.322134Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:39:27.552784Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=33 elapsed=2.228011375s\n2026-04-24T16:39:27.552915Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 33 eligible frames\n2026-04-24T16:39:28.615455Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.8MB → 0.6MB (4.8x), 14 JPEGs deleted\n2026-04-24T16:39:30.390392Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.1MB → 1.6MB (2.0x), 17 JPEGs deleted\n2026-04-24T16:40:01.437647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7218881400109780070, trigger=click)\n2026-04-24T16:40:12.586378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:41:05.997041Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6861826947729846030, trigger=click)\n2026-04-24T16:41:11.184592Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6861826947729846030, trigger=click)\n2026-04-24T16:43:15.433697Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8550622008733264339, trigger=click)\n2026-04-24T16:43:15.515804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)\n2026-04-24T16:43:51.515815Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5576357006515458390, trigger=click)\n2026-04-24T16:43:59.714706Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5576357006515458390, trigger=click)\n2026-04-24T16:43:59.785731Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5576357006515458390, trigger=click)\n2026-04-24T16:44:38.173037Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=20 elapsed=7.796779s\n2026-04-24T16:44:38.174424Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 20 eligible frames\n2026-04-24T16:44:39.258439Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 1.8MB → 0.3MB (5.7x), 9 JPEGs deleted\n2026-04-24T16:44:41.729154Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 2.3MB → 1.7MB (1.4x), 9 JPEGs deleted\n2026-04-24T16:48:00.989535Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5576357006515458390, trigger=click)\n2026-04-24T16:48:17.430932Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5576357006515458390, trigger=click)\n2026-04-24T16:49:49.135916Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=17 elapsed=7.403764583s\n2026-04-24T16:49:49.136082Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 17 eligible frames\n2026-04-24T16:49:50.004132Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 1.6MB → 0.3MB (5.1x), 8 JPEGs deleted\n2026-04-24T16:49:50.898114Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 7 frames, 1.9MB → 0.7MB (2.6x), 7 JPEGs deleted\n2026-04-24T16:50:09.364175Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8409739779266792278, trigger=visual_change)\n2026-04-24T16:50:11.237105Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8409739779266792278, trigger=click)\n2026-04-24T16:51:37.931779Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1423930385844614485, trigger=click)\n2026-04-24T16:53:14.381283Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7564119013552971576, trigger=click)\n2026-04-24T16:54:12.231394Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1423930385844614485, trigger=visual_change)\n2026-04-24T16:54:15.266343Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1423930385844614485, trigger=visual_change)\n2026-04-24T16:55:01.568514Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=58 elapsed=10.558641542s\n2026-04-24T16:55:01.569579Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 58 eligible frames\n2026-04-24T16:55:04.609017Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 5.7MB → 1.1MB (5.0x), 28 JPEGs deleted\n2026-04-24T16:55:09.392416Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 5.5MB → 3.1MB (1.8x), 28 JPEGs deleted\n2026-04-24T16:55:39.774741Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3617611630109587613, trigger=click)\n2026-04-24T16:55:39.852272Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3617611630109587613, trigger=click)\n2026-04-24T16:56:40.038632Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-426150959945983082, trigger=click)\n2026-04-24T16:59:26.437906Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-426150959945983082, trigger=visual_change)\n2026-04-24T17:00:21.026565Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=53 elapsed=11.620753209s\n2026-04-24T17:00:21.027475Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 53 eligible frames\n2026-04-24T17:00:24.007228Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 4.3MB → 0.5MB (7.8x), 21 JPEGs deleted\n2026-04-24T17:00:30.315443Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 6.2MB → 3.1MB (2.0x), 30 JPEGs deleted\n2026-04-24T17:01:31.749742Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4978074472044237669, trigger=click)\n2026-04-24T17:02:32.676946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6528076374554576690, trigger=click)\n2026-04-24T17:03:24.566715Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5730479857460890072, trigger=click)\n2026-04-24T17:03:24.646165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5730479857460890072, trigger=click)\n2026-04-24T17:04:36.724352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2722349336895059815, trigger=click)\n2026-04-24T17:05:26.414686Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-255140549253982666, trigger=click)\n2026-04-24T17:05:38.960944Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=49 elapsed=8.570160541s\n2026-04-24T17:05:38.961851Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 49 eligible frames\n2026-04-24T17:05:40.770553Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.8MB → 0.5MB (10.1x), 24 JPEGs deleted\n2026-04-24T17:05:44.093500Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 4.3MB → 2.0MB (2.1x), 23 JPEGs deleted\n2026-04-24T17:10:45.665278Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=57 elapsed=1.565954333s\n2026-04-24T17:10:45.665510Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 57 eligible frames\n2026-04-24T17:10:47.346256Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.1MB → 0.3MB (15.5x), 25 JPEGs deleted\n2026-04-24T17:10:49.931994Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 5.2MB → 2.6MB (2.0x), 30 JPEGs deleted\n2026-04-24T17:12:35.862404Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2722349336895059815, trigger=visual_change)\n2026-04-24T17:15:54.006030Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=35 elapsed=4.067925709s\n2026-04-24T17:15:54.006151Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 35 eligible frames\n2026-04-24T17:15:55.261287Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.6MB → 0.3MB (11.3x), 18 JPEGs deleted\n2026-04-24T17:15:56.815522Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 3.2MB → 1.3MB (2.4x), 15 JPEGs deleted\n2026-04-24T17:20:58.288264Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=1.467426625s\n2026-04-24T17:20:58.288415Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T17:20:59.175263Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.0MB → 0.3MB (6.3x), 10 JPEGs deleted\n2026-04-24T17:21:00.120027Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.3MB → 0.4MB (6.2x), 10 JPEGs deleted\n2026-04-24T17:22:48.235588Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-885508568992678447, trigger=click)\n2026-04-24T17:22:48.306917Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-885508568992678447, trigger=click)\n2026-04-24T17:23:41.318200Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-885508568992678447, trigger=click)\n2026-04-24T17:24:30.499216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3481376117812878957, trigger=click)\n2026-04-24T17:24:30.601163Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3481376117812878957, trigger=click)\n2026-04-24T17:26:07.575025Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=28 elapsed=7.43131375s\n2026-04-24T17:26:07.578806Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames\n2026-04-24T17:26:08.478709Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 2.2MB → 0.3MB (6.9x), 11 JPEGs deleted\n2026-04-24T17:26:09.770241Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.6MB → 1.0MB (2.6x), 15 JPEGs deleted\n2026-04-24T17:26:26.261981Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-885508568992678447, trigger=click)\n2026-04-24T17:26:26.307896Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-885508568992678447, trigger=click)\n2026-04-24T17:27:22.914133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4993652597681536640, trigger=visual_change)\n2026-04-24T17:27:25.987598Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4993652597681536640, trigger=visual_change)\n2026-04-24T17:27:36.063544Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4993652597681536640, trigger=click)\n2026-04-24T17:27:36.152346Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4993652597681536640, trigger=click)\n2026-04-24T17:27:37.655642Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4993652597681536640, trigger=click)\n2026-04-24T17:27:37.736988Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4993652597681536640, trigger=click)\n2026-04-24T17:28:50.370801Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2329310517310230610, trigger=visual_change)\n2026-04-24T17:28:53.414236Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2329310517310230610, trigger=visual_change)\n2026-04-24T17:30:29.079371Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4689761151685344628, trigger=click)\n2026-04-24T17:31:20.181507Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=10.402847208s\n2026-04-24T17:31:20.182328Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T17:31:21.411366Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.0MB → 0.3MB (6.3x), 10 JPEGs deleted\n2026-04-24T17:31:22.811363Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.3MB (5.0x), 10 JPEGs deleted\n2026-04-24T17:36:28.935203Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=30 elapsed=6.117179292s\n2026-04-24T17:36:28.935662Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 30 eligible frames\n2026-04-24T17:36:29.883792Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.4MB → 0.3MB (7.6x), 12 JPEGs deleted\n2026-04-24T17:36:31.835587Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 3.5MB → 2.2MB (1.6x), 16 JPEGs deleted\n2026-04-24T17:40:48.995186Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)\n2026-04-24T17:41:03.317324Z INFO sck_rs::stream_manager: recreating stream for display 1 (resolution change)\n2026-04-24T17:41:33.869852Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=71 elapsed=2.026336375s\n2026-04-24T17:41:33.870011Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 71 eligible frames\n2026-04-24T17:41:35.708466Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 4.3MB → 1.0MB (4.3x), 28 JPEGs deleted\n2026-04-24T17:41:39.154076Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 41 frames, 7.8MB → 4.0MB (1.9x), 41 JPEGs deleted\n2026-04-24T17:46:42.848481Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=3.698421708s\n2026-04-24T17:46:42.848607Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T17:46:43.688440Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.4MB → 0.2MB (7.1x), 10 JPEGs deleted\n2026-04-24T17:46:44.602870Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.1MB → 0.3MB (6.2x), 10 JPEGs deleted\n2026-04-24T17:51:46.433154Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=18 elapsed=1.824613292s\n2026-04-24T17:51:46.433266Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 18 eligible frames\n2026-04-24T17:51:47.242571Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 1.1MB → 0.2MB (5.7x), 8 JPEGs deleted\n2026-04-24T17:51:48.089907Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 1.7MB → 0.3MB (4.9x), 8 JPEGs deleted\n2026-04-24T17:56:48.271988Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-24T18:06:52.357796Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=3.681285375s\n2026-04-24T18:11:53.610064Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.24532775s\n2026-04-24T18:21:57.920293Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=3.397249084s\n2026-04-24T18:29:38.025317Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)\n2026-04-24T18:29:38.953316Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-24T18:29:39.990915Z INFO sck_rs::stream_manager: invalidated persistent stream for display 1\n2026-04-24T18:29:42.006323Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2\n2026-04-24T18:29:42.016400Z INFO sck_rs::stream_manager: stopped 1 persistent stream(s)\n2026-04-24T18:29:42.642320Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)\n2026-04-24T18:29:49.028954Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-24T18:32:05.848216Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=7.764342958s\n2026-04-24T18:33:14.785220Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=324 elapsed=2.553840125s\n2026-04-24T18:33:49.369572Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=324 elapsed=1.115000042s\n2026-04-24T18:37:14.506363Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=8.566333417s\n2026-04-24T18:40:58.336306Z WARN sqlx::query: summary=\"COMMIT\" db.statement=\"\" rows_affected=1 rows_returned=0 elapsed=1.263114459s\n2026-04-24T18:41:21.420281Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6180934582104161978, trigger=click)\n2026-04-24T18:41:27.763060Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6180934582104161978, trigger=click)\n2026-04-24T18:42:24.498553Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=20 elapsed=9.978308334s\n2026-04-24T18:42:24.499587Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 20 eligible frames\n2026-04-24T18:42:25.603951Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 1.1MB → 0.3MB (3.4x), 8 JPEGs deleted\n2026-04-24T18:42:28.504479Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.5MB → 1.2MB (2.0x), 12 JPEGs deleted\n2026-04-24T18:44:50.719406Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6180934582104161978, trigger=click)\n2026-04-24T18:44:50.719753Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6180934582104161978, trigger=click)\n2026-04-24T18:44:58.486531Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6180934582104161978, trigger=visual_change)\n2026-04-24T18:47:39.149925Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=26 elapsed=10.64528525s\n2026-04-24T18:47:39.150528Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 26 eligible frames\n2026-04-24T18:47:40.470355Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 1.7MB → 0.2MB (8.5x), 12 JPEGs deleted\n2026-04-24T18:47:43.706191Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.9MB → 0.8MB (3.4x), 12 JPEGs deleted\n2026-04-24T18:48:14.799887Z WARN sqlx::query: summary=\"COMMIT\" db.statement=\"\" rows_affected=1 rows_returned=0 elapsed=1.072590208s\n2026-04-24T18:52:53.240638Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=20 elapsed=9.508751833s\n2026-04-24T18:52:53.244355Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 20 eligible frames\n2026-04-24T18:52:56.915294Z WARN sqlx::query: summary=\"COMMIT\" db.statement=\"\" rows_affected=9 rows_returned=0 elapsed=1.283165708s\n2026-04-24T18:52:56.985001Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.7MB (2.2x), 10 JPEGs deleted\n2026-04-24T18:52:59.878416Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 1.6MB → 0.8MB (2.0x), 8 JPEGs deleted\n2026-04-24T18:56:01.036223Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2731140152445727259, trigger=click)\n2026-04-24T18:56:01.113964Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2731140152445727259, trigger=click)\n2026-04-24T18:56:11.335029Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664861859994574679, trigger=click)\n2026-04-24T18:56:50.415616Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664861859994574679, trigger=click)\n2026-04-24T18:56:50.493028Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6664861859994574679, trigger=click)\n2026-04-24T18:58:22.557319Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=18 elapsed=22.668022666s\n2026-04-24T18:58:22.568272Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 18 eligible frames\n2026-04-24T18:58:25.146362Z WARN sqlx::query: summary=\"COMMIT\" db.statement=\"\" rows_affected=1 rows_returned=0 elapsed=2.240168209s\n2026-04-24T18:58:28.254865Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 1.4MB → 0.5MB (2.9x), 8 JPEGs deleted\n2026-04-24T18:58:31.423883Z WARN sqlx::query: summary=\"UPDATE frames SET video_chunk_id …\" db.statement=\"\\n\\nUPDATE\\n frames\\nSET\\n video_chunk_id = ?1,\\n offset_index = CASE\\n id\\n WHEN 79235 THEN 0\\n WHEN 79237 THEN 1\\n WHEN 79239 THEN 2\\n WHEN 79241 THEN 3\\n WHEN 79244 THEN 4\\n WHEN 79245 THEN 5\\n WHEN 79247 THEN 6\\n WHEN 79249 THEN 7\\n ELSE offset_index\\n END,\\n snapshot_path = NULL\\nWHERE\\n id IN (?, ?, ?, ?, ?, ?, ?, ?)\\n AND snapshot_path IS NOT NULL\\n\" rows_affected=7 rows_returned=0 elapsed=1.353156208s\n2026-04-24T18:58:32.168304Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 1.7MB → 0.6MB (3.0x), 8 JPEGs deleted\n2026-04-24T19:00:34.200745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2633736204851875642, trigger=visual_change)\n2026-04-24T19:03:42.648869Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=21 elapsed=10.469428875s\n2026-04-24T19:03:42.649266Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames\n2026-04-24T19:03:47.221976Z WARN sqlx::query: summary=\"COMMIT\" db.statement=\"\" rows_affected=9 rows_returned=0 elapsed=2.732148417s\n2026-04-24T19:03:47.281943Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.3MB → 0.4MB (3.5x), 10 JPEGs deleted\n2026-04-24T19:03:51.044797Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=325 elapsed=1.428669917s\n2026-04-24T19:03:51.493678Z WARN sqlx::query: summary=\"UPDATE frames SET video_chunk_id …\" db.statement=\"\\n\\nUPDATE\\n frames\\nSET\\n video_chunk_id = ?1,\\n offset_index = CASE\\n id\\n WHEN 79251 THEN 0\\n WHEN 79253 THEN 1\\n WHEN 79255 THEN 2\\n WHEN 79257 THEN 3\\n WHEN 79259 THEN 4\\n WHEN 79261 THEN 5\\n WHEN 79263 THEN 6\\n WHEN 79265 THEN 7\\n WHEN 79267 THEN 8\\n ELSE offset_index\\n END,\\n snapshot_path = NULL\\nWHERE\\n id IN (?, ?, ?, ?, ?, ?, ?, ?, ?)\\n AND snapshot_path IS NOT NULL\\n\" rows_affected=8 rows_returned=0 elapsed=2.333241875s\n2026-04-24T19:03:51.989250Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 1.7MB → 0.4MB (4.1x), 9 JPEGs deleted\n2026-04-24T19:03:57.096586Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1983107603547392376, trigger=visual_change)\n2026-04-24T19:04:15.657189Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=325 elapsed=1.620111334s\n2026-04-24T19:09:02.520076Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=35 elapsed=10.555084084s\n2026-04-24T19:09:02.527474Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 35 eligible frames\n2026-04-24T19:09:05.895377Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 3.4MB → 2.0MB (1.7x), 19 JPEGs deleted\n2026-04-24T19:09:07.469280Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.7MB → 0.3MB (8.2x), 14 JPEGs deleted\n2026-04-24T19:09:57.251779Z WARN sqlx::query: summary=\"COMMIT\" db.statement=\"\" rows_affected=1 rows_returned=0 elapsed=4.745247667s\n2026-04-24T19:14:12.013184Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=25 elapsed=4.537452375s\n2026-04-24T19:14:12.013308Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames\n2026-04-24T19:14:13.317257Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 2.9MB → 2.0MB (1.5x), 11 JPEGs deleted\n2026-04-24T19:14:14.155197Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.3MB → 0.3MB (7.7x), 12 JPEGs deleted\n2026-04-24T19:18:14.342159Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4640414213682758812, trigger=visual_change)\n2026-04-24T19:19:14.283192Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 27 eligible frames\n2026-04-24T19:19:15.949548Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.7MB → 0.3MB (5.6x), 10 JPEGs deleted\n2026-04-24T19:19:17.065775Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 3.5MB → 0.9MB (3.8x), 15 JPEGs deleted\n2026-04-24T19:24:17.184625Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 31 eligible frames\n2026-04-24T19:24:18.465268Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.3MB → 1.3MB (1.8x), 14 JPEGs deleted\n2026-04-24T19:24:19.846627Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.5MB → 1.0MB (2.4x), 15 JPEGs deleted\n2026-04-24T19:27:58.636176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=521047434990944918, trigger=click)\n2026-04-24T19:27:58.680403Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=521047434990944918, trigger=click)\n2026-04-24T19:29:20.060029Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 24 eligible frames\n2026-04-24T19:29:20.848005Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.9MB → 0.3MB (7.1x), 11 JPEGs deleted\n2026-04-24T19:29:21.684126Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.9MB → 0.3MB (6.2x), 11 JPEGs deleted\n2026-04-24T19:32:13.986044Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7609021786321165751, trigger=click)\n2026-04-24T19:34:23.034168Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=33 elapsed=1.338599334s\n2026-04-24T19:34:23.034624Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 33 eligible frames\n2026-04-24T19:34:24.035874Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.6MB → 0.4MB (7.3x), 15 JPEGs deleted\n2026-04-24T19:34:25.161399Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.6MB → 0.5MB (5.1x), 16 JPEGs deleted\n2026-04-24T19:39:18.161885Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6714512521313448666, trigger=click)\n2026-04-24T19:39:25.957117Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 85 eligible frames\n2026-04-24T19:39:27.906153Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 33 frames, 5.8MB → 0.4MB (13.6x), 33 JPEGs deleted\n2026-04-24T19:39:30.899433Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 50 frames, 6.8MB → 1.8MB (3.8x), 50 JPEGs deleted\n2026-04-24T19:44:31.027546Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 43 eligible frames\n2026-04-24T19:44:32.013833Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.6MB → 0.3MB (9.6x), 15 JPEGs deleted\n2026-04-24T19:44:33.722498Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 3.7MB → 1.0MB (3.8x), 26 JPEGs deleted\n2026-04-24T19:49:35.482938Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=57 elapsed=1.710919583s\n2026-04-24T19:49:35.483025Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 57 eligible frames\n2026-04-24T19:49:37.082103Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.4MB → 0.4MB (12.4x), 25 JPEGs deleted\n2026-04-24T19:49:39.018101Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 3.7MB → 0.6MB (6.1x), 30 JPEGs deleted\n2026-04-24T19:54:39.741828Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 27 eligible frames\n2026-04-24T19:54:40.531639Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.1MB → 0.3MB (7.8x), 12 JPEGs deleted\n2026-04-24T19:54:41.370466Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.3MB → 0.2MB (5.6x), 13 JPEGs deleted\n2026-04-24T19:59:41.944435Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 35 eligible frames\n2026-04-24T19:59:42.986438Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.8MB → 0.3MB (10.3x), 16 JPEGs deleted\n2026-04-24T19:59:44.105897Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 1.8MB → 0.2MB (9.7x), 17 JPEGs deleted\n2026-04-24T20:04:44.760939Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 34 eligible frames\n2026-04-24T20:04:45.759943Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.6MB → 0.3MB (9.7x), 15 JPEGs deleted\n2026-04-24T20:04:46.812125Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.0MB → 0.3MB (6.5x), 17 JPEGs deleted\n2026-04-24T20:09:46.972479Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 29 eligible frames\n2026-04-24T20:09:47.996075Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.4MB → 0.4MB (5.6x), 14 JPEGs deleted\n2026-04-24T20:09:48.971843Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.6MB → 0.4MB (4.2x), 13 JPEGs deleted\n2026-04-24T20:11:39.105679Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5878930124418572902, trigger=click)\n2026-04-24T20:11:44.633970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5878930124418572902, trigger=click)\n2026-04-24T20:11:44.745222Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5878930124418572902, trigger=click)\n2026-04-24T20:11:53.929841Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5878930124418572902, trigger=click)\n2026-04-24T20:11:54.751076Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5878930124418572902, trigger=click)\n2026-04-24T20:12:03.883243Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5878930124418572902, trigger=click)\n2026-04-24T20:12:04.880520Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5878930124418572902, trigger=click)\n2026-04-24T20:12:07.138284Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5478133607093606798, trigger=click)\n2026-04-24T20:12:09.366721Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1976051674119031319, trigger=click)\n2026-04-24T20:14:49.083937Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 24 eligible frames\n2026-04-24T20:14:49.831397Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.9MB → 0.3MB (7.1x), 11 JPEGs deleted\n2026-04-24T20:14:50.568615Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.3MB → 0.2MB (5.4x), 11 JPEGs deleted\n2026-04-24T20:16:55.531003Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7236530931752786537, trigger=click)\n2026-04-24T20:16:57.786919Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7236530931752786537, trigger=click)\n2026-04-24T20:17:50.622639Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7637073125528108913, trigger=click)\n2026-04-24T20:18:24.567158Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3106110712420029149, trigger=click)\n2026-04-24T20:18:24.953535Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3106110712420029149, trigger=click)\n2026-04-24T20:18:25.113868Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3106110712420029149, trigger=click)\n2026-04-24T20:18:25.516188Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3106110712420029149, trigger=click)\n2026-04-24T20:18:25.578786Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3106110712420029149, trigger=click)\n2026-04-24T20:18:25.879921Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3106110712420029149, trigger=click)\n2026-04-24T20:18:26.045175Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3106110712420029149, trigger=click)\n2026-04-24T20:18:26.521966Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3106110712420029149, trigger=click)\n2026-04-24T20:18:26.584707Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3106110712420029149, trigger=click)\n2026-04-24T20:19:50.676522Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 41 eligible frames\n2026-04-24T20:19:51.646458Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.6MB → 0.3MB (9.6x), 15 JPEGs deleted\n2026-04-24T20:19:53.145898Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 2.8MB → 0.4MB (6.5x), 24 JPEGs deleted\n2026-04-24T20:24:53.257193Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 51 eligible frames\n2026-04-24T20:24:54.402014Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.1MB → 0.3MB (11.5x), 18 JPEGs deleted\n2026-04-24T20:24:56.377255Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 3.8MB → 0.8MB (4.7x), 31 JPEGs deleted\n2026-04-24T20:25:10.402164Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3106110712420029149, trigger=click)\n2026-04-24T20:29:19.308490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8949863932749715123, trigger=visual_change)\n2026-04-24T20:29:31.322538Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8744464076014281490, trigger=click)\n2026-04-24T20:29:56.486436Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 108 eligible frames\n2026-04-24T20:29:59.304643Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 8.5MB → 0.4MB (23.0x), 49 JPEGs deleted\n2026-04-24T20:30:02.871082Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 57 frames, 7.0MB → 1.9MB (3.8x), 57 JPEGs deleted\n2026-04-24T20:30:27.093299Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4461348727040718412, trigger=visual_change)\n2026-04-24T20:30:28.165565Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4750571448063687198, trigger=click)\n2026-04-24T20:30:44.003985Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2710571727549817545, trigger=click)\n2026-04-24T20:30:44.686420Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2710571727549817545, trigger=click)\n2026-04-24T20:30:44.744525Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2710571727549817545, trigger=click)\n2026-04-24T20:30:47.229135Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2710571727549817545, trigger=click)\n2026-04-24T20:30:47.264811Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2710571727549817545, trigger=click)\n2026-04-24T20:30:48.290372Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2710571727549817545, trigger=click)\n2026-04-24T20:30:48.354183Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2710571727549817545, trigger=click)\n2026-04-24T20:30:48.737643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2710571727549817545, trigger=visual_change)\n2026-04-24T20:30:49.019346Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2710571727549817545, trigger=click)\n2026-04-24T20:30:51.563433Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2710571727549817545, trigger=click)\n2026-04-24T20:30:51.629541Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2710571727549817545, trigger=click)\n2026-04-24T20:31:02.677713Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2710571727549817545, trigger=click)\n2026-04-24T20:31:02.733654Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2710571727549817545, trigger=click)\n2026-04-24T20:31:22.251277Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2710571727549817545, trigger=visual_change)\n2026-04-24T20:35:02.980238Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 23 eligible frames\n2026-04-24T20:35:03.733101Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.7MB → 0.3MB (6.5x), 10 JPEGs deleted\n2026-04-24T20:35:04.512692Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.3MB → 0.2MB (6.5x), 11 JPEGs deleted\n2026-04-24T20:40:04.622649Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 42 eligible frames\n2026-04-24T20:40:05.762156Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.1MB → 0.4MB (8.7x), 18 JPEGs deleted\n2026-04-24T20:40:07.216987Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 2.7MB → 0.7MB (3.6x), 22 JPEGs deleted\n2026-04-24T20:42:07.103966Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)\n2026-04-24T20:42:18.251905Z INFO sck_rs::stream_manager: recreating stream for display 1 (resolution change)\n2026-04-24T20:42:33.021190Z INFO sck_rs::stream_manager: recreating stream for display 2 (resolution change)\n2026-04-24T20:45:07.340583Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 46 eligible frames\n2026-04-24T20:45:08.580125Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 3.5MB → 0.3MB (12.8x), 20 JPEGs deleted\n2026-04-24T20:45:10.219587Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 3.3MB → 1.1MB (3.2x), 24 JPEGs deleted\n2026-04-24T20:50:11.638292Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=1.408088167s\n2026-04-24T20:50:11.638476Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T20:50:12.336327Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.7MB → 0.3MB (6.5x), 10 JPEGs deleted\n2026-04-24T20:50:13.038553Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.3MB → 0.2MB (7.9x), 10 JPEGs deleted\n2026-04-24T20:50:54.690485Z WARN screenpipe_engine::resource_monitor: PostHog request timed out\n2026-04-24T20:51:02.880460Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)\n2026-04-24T20:51:02.932072Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2\n2026-04-24T20:51:03.132354Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-24T20:51:17.456775Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-24T20:55:16.847972Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=9 elapsed=3.803582541s\n2026-04-24T20:55:16.848079Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 9 eligible frames\n2026-04-24T20:55:17.285370Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 3 frames, 0.5MB → 0.3MB (2.1x), 3 JPEGs deleted\n2026-04-24T20:55:17.707652Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 4 frames, 0.5MB → 0.2MB (3.2x), 4 JPEGs deleted\n2026-04-24T20:57:16.073846Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8744464076014281490, trigger=click)\n2026-04-24T20:57:17.368379Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8744464076014281490, trigger=click)\n2026-04-24T20:57:17.421200Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8744464076014281490, trigger=click)\n2026-04-24T20:57:20.458119Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8744464076014281490, trigger=click)\n2026-04-24T20:59:31.783847Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4750571448063687198, trigger=click)\n2026-04-24T20:59:34.211064Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4750571448063687198, trigger=click)\n2026-04-24T20:59:47.417854Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4750571448063687198, trigger=click)\n2026-04-24T21:00:17.839015Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-24T21:05:17.985387Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 19 eligible frames\n2026-04-24T21:05:18.703160Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 1.4MB → 0.3MB (5.2x), 8 JPEGs deleted\n2026-04-24T21:05:19.440635Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.5MB → 0.2MB (7.6x), 11 JPEGs deleted\n2026-04-24T21:07:00.844258Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4750571448063687198, trigger=click)\n2026-04-24T21:07:03.877839Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4750571448063687198, trigger=click)\n2026-04-24T21:07:25.748518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1082535405972275214, trigger=visual_change)\n2026-04-24T21:10:19.553950Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 65 eligible frames\n2026-04-24T21:10:21.337256Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 5.2MB → 0.4MB (14.3x), 30 JPEGs deleted\n2026-04-24T21:10:23.420320Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 33 frames, 4.2MB → 1.2MB (3.6x), 33 JPEGs deleted\n2026-04-24T21:15:23.505718Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 42 eligible frames\n2026-04-24T21:15:24.592459Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.0MB → 0.3MB (10.9x), 17 JPEGs deleted\n2026-04-24T21:15:26.028507Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 2.8MB → 0.5MB (5.7x), 23 JPEGs deleted\n2026-04-24T21:20:27.421190Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=41 elapsed=1.386641125s\n2026-04-24T21:20:27.421401Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 41 eligible frames\n2026-04-24T21:20:28.288951Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.3MB → 0.3MB (8.4x), 13 JPEGs deleted\n2026-04-24T21:20:30.075512Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 3.4MB → 1.0MB (3.6x), 26 JPEGs deleted\n2026-04-24T21:25:33.913058Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=24 elapsed=3.832303084s\n2026-04-24T21:25:33.913222Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 24 eligible frames\n2026-04-24T21:25:34.659159Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.7MB → 0.3MB (6.5x), 10 JPEGs deleted\n2026-04-24T21:25:35.654072Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 1.6MB → 0.5MB (3.5x), 12 JPEGs deleted\n2026-04-24T21:26:28.683188Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9215443531147982391, trigger=visual_change)\n2026-04-24T21:26:40.773786Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9215443531147982391, trigger=visual_change)\n2026-04-24T21:26:52.240691Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9215443531147982391, trigger=visual_change)\n2026-04-24T21:30:35.796792Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 23 eligible frames\n2026-04-24T21:30:36.549307Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.7MB → 0.3MB (6.5x), 10 JPEGs deleted\n2026-04-24T21:30:37.299172Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.5MB → 0.3MB (5.5x), 11 JPEGs deleted\n2026-04-24T21:35:37.420689Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T21:35:38.188735Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.7MB → 0.3MB (6.5x), 10 JPEGs deleted\n2026-04-24T21:35:38.941661Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.3MB → 0.3MB (4.6x), 10 JPEGs deleted\n2026-04-24T21:35:53.194121Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=341509084316959528, trigger=click)\n2026-04-24T21:35:53.240769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=341509084316959528, trigger=click)\n2026-04-24T21:37:29.592864Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=341509084316959528, trigger=click)\n2026-04-24T21:37:35.109916Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=341509084316959528, trigger=visual_change)\n2026-04-24T21:38:17.385574Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=341509084316959528, trigger=visual_change)\n2026-04-24T21:38:53.663144Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=341509084316959528, trigger=visual_change)\n2026-04-24T21:39:03.161570Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=341509084316959528, trigger=click)\n2026-04-24T21:40:39.080108Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 44 eligible frames\n2026-04-24T21:40:40.201264Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.0MB → 0.4MB (8.2x), 17 JPEGs deleted\n2026-04-24T21:40:41.781884Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 3.1MB → 0.9MB (3.4x), 25 JPEGs deleted\n2026-04-24T21:45:15.578328Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=341509084316959528, trigger=click)\n2026-04-24T21:45:15.635252Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=341509084316959528, trigger=click)\n2026-04-24T21:45:17.748385Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=341509084316959528, trigger=click)\n2026-04-24T21:45:17.817038Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=341509084316959528, trigger=click)\n2026-04-24T21:45:41.894640Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T21:45:42.715481Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.7MB → 0.3MB (6.5x), 10 JPEGs deleted\n2026-04-24T21:45:43.418068Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.3MB → 0.2MB (7.8x), 10 JPEGs deleted\n2026-04-24T21:46:03.365851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2054959361674030309, trigger=visual_change)\n2026-04-24T21:46:06.405831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4750571448063687198, trigger=click)\n2026-04-24T21:46:08.909389Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4750571448063687198, trigger=click)\n2026-04-24T21:46:09.915564Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1853829974648413344, trigger=visual_change)\n2026-04-24T21:46:16.120235Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4750571448063687198, trigger=click)\n2026-04-24T21:50:43.557928Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T21:50:44.310539Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.7MB → 0.3MB (6.5x), 10 JPEGs deleted\n2026-04-24T21:50:45.056687Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.3MB → 0.3MB (4.3x), 10 JPEGs deleted\n2026-04-24T21:55:45.182142Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 31 eligible frames\n2026-04-24T21:55:46.056016Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.3MB → 0.3MB (8.4x), 13 JPEGs deleted\n2026-04-24T21:55:47.304265Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.0MB → 0.5MB (4.4x), 16 JPEGs deleted\n2026-04-24T21:56:32.421403Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)\n2026-04-24T22:00:47.444500Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 37 eligible frames\n2026-04-24T22:00:48.209538Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.9MB → 0.3MB (7.1x), 11 JPEGs deleted\n2026-04-24T22:00:49.759016Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 3.4MB → 1.0MB (3.3x), 24 JPEGs deleted\n2026-04-24T22:05:49.868079Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T22:05:50.618796Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.7MB → 0.3MB (6.5x), 10 JPEGs deleted\n2026-04-24T22:05:51.305558Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.2MB → 0.2MB (7.6x), 10 JPEGs deleted\n2026-04-24T22:06:59.050577Z INFO sck_rs::stream_manager: invalidated persistent stream for display 1\n2026-04-24T22:07:13.086092Z WARN screenpipe_engine::resource_monitor: PostHog request timed out\n2026-04-24T22:07:33.786348Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)\n2026-04-24T22:07:33.834401Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2\n2026-04-24T22:07:33.896428Z INFO sck_rs::stream_manager: stopped 1 persistent stream(s)\n2026-04-24T22:07:34.025901Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-24T22:07:34.139823Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-24T22:07:46.957004Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2054959361674030309, trigger=visual_change)\n2026-04-24T22:07:47.692981Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4750571448063687198, trigger=click)\n2026-04-24T22:07:48.699426Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4750571448063687198, trigger=click)\n2026-04-24T22:07:48.732518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4750571448063687198, trigger=click)\n2026-04-24T22:08:07.919141Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8949863932749715123, trigger=visual_change)\n2026-04-24T22:10:03.669907Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=341509084316959528, trigger=visual_change)\n2026-04-24T22:10:06.722692Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=341509084316959528, trigger=visual_change)\n2026-04-24T22:10:18.871886Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=341509084316959528, trigger=visual_change)\n2026-04-24T22:10:37.094344Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=341509084316959528, trigger=visual_change)\n2026-04-24T22:10:43.130336Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=341509084316959528, trigger=visual_change)\n2026-04-24T22:10:53.482693Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=5 elapsed=2.1725865s\n2026-04-24T22:10:53.482887Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 5 eligible frames\n2026-04-24T22:10:53.837380Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 2 frames, 0.3MB → 0.2MB (1.4x), 2 JPEGs deleted\n2026-04-24T22:10:54.041509Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 1 frames, 0.1MB → 0.1MB (1.1x), 1 JPEGs deleted\n2026-04-24T22:10:55.213564Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=341509084316959528, trigger=visual_change)\n2026-04-24T22:11:04.259918Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=341509084316959528, trigger=visual_change)\n2026-04-24T22:11:28.438394Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=341509084316959528, trigger=visual_change)\n2026-04-24T22:11:37.488474Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=341509084316959528, trigger=visual_change)\n2026-04-24T22:15:54.117473Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-24T22:18:59.797832Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)\n2026-04-24T22:19:13.433149Z INFO sck_rs::stream_manager: recreating stream for display 1 (resolution change)\n2026-04-24T22:19:28.223705Z INFO sck_rs::stream_manager: recreating stream for display 2 (resolution change)\n2026-04-24T22:20:54.256021Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T22:20:54.984522Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 1.6MB → 0.3MB (5.8x), 9 JPEGs deleted\n2026-04-24T22:20:56.035039Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.7MB → 0.7MB (2.6x), 13 JPEGs deleted\n2026-04-24T22:25:56.125721Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T22:25:56.864851Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.7MB → 0.3MB (6.5x), 10 JPEGs deleted\n2026-04-24T22:25:57.581205Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.4MB → 0.2MB (5.8x), 10 JPEGs deleted\n2026-04-24T22:30:57.712015Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 14 eligible frames\n2026-04-24T22:30:58.337622Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 6 frames, 1.0MB → 0.3MB (3.9x), 6 JPEGs deleted\n2026-04-24T22:30:58.911832Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 6 frames, 0.8MB → 0.2MB (4.5x), 6 JPEGs deleted\n2026-04-24T22:35:59.025118Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-25T00:31:03.532748Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.403754542s\n2026-04-25T00:36:04.888212Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.355033833s\n2026-04-25T02:26:09.381064Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.752063917s\n2026-04-25T02:36:10.551753Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.050235167s\n2026-04-25T02:51:12.734441Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.9489485s\n2026-04-25T03:01:06.935149Z WARN screenpipe_engine::resource_monitor: PostHog request timed out\n2026-04-25T03:02:06.966335Z ERROR screenpipe_engine::resource_monitor: Failed to send resource usage to PostHog: error sending request for url (https://us.i.posthog.com/capture/)\n2026-04-25T04:36:20.831709Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.323757458s\n2026-04-25T04:46:23.391499Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.59293325s\n2026-04-25T05:06:26.020217Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.550194958s\n2026-04-25T06:36:31.641080Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.410231334s\n2026-04-25T07:51:35.485001Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.275606209s\n2026-04-25T08:21:38.394114Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.058651125s\n2026-04-25T08:56:44.679601Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.899231459s\n2026-04-25T09:01:45.790944Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.111638125s\n2026-04-25T09:06:47.451286Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.659418875s\n2026-04-25T09:11:50.605191Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=3.139225667s\n2026-04-25T09:16:53.333463Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=2.728748083s\n2026-04-25T09:21:54.829483Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.481694292s\n2026-04-25T09:26:56.691352Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.860160708s\n2026-04-25T09:31:59.318916Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=2.641507875s\n2026-04-25T09:37:00.846974Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.527240458s\n2026-04-25T09:47:02.746275Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.46771125s\n2026-04-25T10:07:04.702110Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.4512865s\n2026-04-25T10:12:06.514003Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.851845375s\n2026-04-25T10:17:09.145447Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=2.633306292s\n2026-04-25T10:32:12.617468Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=3.183533083s\n2026-04-25T10:52:14.712931Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.739192166s\n2026-04-25T11:17:19.449162Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=3.216377375s\n2026-04-25T11:22:20.715206Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.267409208s\n2026-04-25T11:52:27.083139Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=4.271213042s\n2026-04-25T12:17:31.033541Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.234918584s\n2026-04-25T12:22:34.030483Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=2.994751291s\n2026-04-25T12:27:35.182859Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.152736542s\n2026-04-25T12:42:41.216480Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=5.033096125s\n2026-04-25T13:07:44.656373Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.798177625s\n2026-04-25T13:12:48.550581Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=3.894991833s\n2026-04-25T13:17:50.993975Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=2.444900041s\n2026-04-25T13:22:53.791038Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=2.819025041s\n2026-04-25T13:27:54.822046Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.033900666s\n2026-04-25T13:42:57.280689Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=2.170261167s\n2026-04-25T13:48:00.341641Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=3.063761209s\n2026-04-25T13:58:02.155594Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.003461708s\n2026-04-25T14:03:03.435953Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.263781791s\n2026-04-25T14:13:06.727837Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=3.164951708s\n2026-04-25T14:18:09.541408Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=2.816421959s\n2026-04-25T14:23:11.032066Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.466058042s\n2026-04-25T14:28:12.850148Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.810514583s\n2026-04-25T14:43:15.922744Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=2.212433625s\n2026-04-25T14:48:18.547263Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=2.611123083s\n2026-04-25T14:53:19.667474Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.11755375s\n2026-04-25T15:03:21.308350Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.46300375s\n2026-04-25T15:13:29.897768Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=7.888686584s\n2026-04-25T15:33:32.174288Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.381808625s\n2026-04-25T15:43:34.105473Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.801180792s\n2026-04-25T15:48:36.478523Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=2.368007208s\n2026-04-25T16:18:39.844947Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=2.086581708s\n2026-04-25T16:43:47.926061Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=5.962960083s\n2026-04-25T16:58:49.502984Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.049299875s\n2026-04-25T17:03:54.050957Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=4.550855625s\n2026-04-25T17:13:55.479571Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.285178292s\n2026-04-25T17:18:56.727113Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.216977333s\n2026-04-25T17:24:00.252789Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=3.525427875s\n2026-04-25T17:25:46.308689Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)\n2026-04-25T17:25:46.346123Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2\n2026-04-25T17:25:46.511136Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-25T17:25:47.036757Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: day rollover (114 -> 115), clearing cache\n2026-04-25T17:26:02.744027Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1534360647489461776, trigger=click)\n2026-04-25T17:26:09.883472Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-25T17:26:10.274955Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1200437610819337959, trigger=click)","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.39444444,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3986111,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.59166664,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.59583336,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.7888889,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.79305553,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"screenpipe\"","depth":1,"bounds":{"left":0.4722222,"top":0.033333335,"width":0.058333334,"height":0.017777778},"role_description":"text"}]...
|
306756539166388455
|
338236606034315123
|
visual_change
|
accessibility
|
NULL
|
┌────────────────────────┬──────────────────────── ┌────────────────────────┬────────────────────────────────────┐
│ setting │ value │
├────────────────────────┼────────────────────────────────────┤
│ audio chunk duration │ 30 seconds │
│ port │ 3030 │
│ audio disabled │ true │
│ vision disabled │ false │
│ pause on DRM content │ false │
│ audio engine │ Parakeet │
│ vad engine │ Silero │
│ data directory │ /Users/lukas/.screenpipe │
│ debug mode │ false │
│ telemetry │ true │
│ use pii removal │ true │
│ use all monitors │ true │
│ ignored windows │ ["Boosteroid"] │
│ included windows │ [] │
│ cloud sync │ disabled │
│ auto-destruct pid │ 0 │
│ deepgram key │ not set │
│ api auth │ enabled │
2026-04-24T13:24:23.186334Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)
2026-04-24T13:24:23.198489Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh
│ encrypt secrets │ disabled │
│ retention days │ 14 │
├────────────────────────┼────────────────────────────────────┤
│ languages │ │
│ │ all languages │
├────────────────────────┼────────────────────────────────────┤
│ monitors │ │
│ │ id: 1 │
│ │ id: 2 │
├────────────────────────┼────────────────────────────────────┤
│ audio devices │ │
│ │ disabled │
└────────────────────────┴────────────────────────────────────┘
you are using local processing. all your data stays on your computer.
warning: telemetry is enabled. only error-level data will be sent.
to disable, use the --disable-telemetry flag.
check latest changes here: https://github.com/screenpipe/screenpipe/releases
2026-04-24T13:24:23.216198Z INFO screenpipe: starting UI event capture
2026-04-24T13:24:23.238868Z INFO screenpipe_engine::ui_recorder: Starting UI event capture
2026-04-24T13:24:23.260906Z INFO screenpipe_engine::ui_recorder: UI recording session started: 9676eafd-ea8f-4e1a-a5f1-de7bdb79c071
2026-04-24T13:24:23.260911Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)
2026-04-24T13:24:23.260972Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-23 10:24:23.260965 UTC to 2026-04-24 10:24:23.260965 UTC)
2026-04-24T13:24:23.261685Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)
2026-04-24T13:24:23.262214Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))
2026-04-24T13:24:23.273443Z INFO screenpipe_engine::server: Server listening on [IP_ADDRESS]:3030
2026-04-24T13:24:23.304240Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030
2026-04-24T13:24:23.567248Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)
2026-04-24T13:24:23.567289Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)
2026-04-24T13:24:23.567346Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)
2026-04-24T13:24:23.850835Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-04-24T13:24:23.850880Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-04-24T13:24:23.850893Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)
2026-04-24T13:24:23.850901Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)
2026-04-24T13:24:23.850941Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-04-24T13:24:25.197204Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)
2026-04-24T13:24:25.589436Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=77673, dur=103ms
2026-04-24T13:24:25.630980Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)
2026-04-24T13:24:25.652818Z INFO sck_rs::stream_manager: invalidated persistent stream for display 1
2026-04-24T13:24:26.160345Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=77674, dur=198ms
2026-04-24T13:24:27.471087Z WARN sqlx::query: summary="SELECT f.id, f.timestamp, f.offset_index, …" db.statement="\n\nSELECT\n f.id,\n f.timestamp,\n f.offset_index,\n COALESCE(\n SUBSTR(f.full_text, 1, 200),\n SUBSTR(f.accessibility_text, 1, 200),\n (\n SELECT\n SUBSTR(ot.text, 1, 200)\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as text,\n COALESCE(\n f.app_name,\n (\n SELECT\n ot.app_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as app_name,\n COALESCE(\n f.window_name,\n (\n SELECT\n ot.window_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as window_name,\n COALESCE(vc.device_name, f.device_name) as screen_device,\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\n COALESCE(vc.fps, 0.033) as chunk_fps,\n f.browser_url,\n f.machine_id\nFROM\n frames f\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\nWHERE\n f.timestamp >= ?1\n AND f.timestamp <= ?2\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\nORDER BY\n f.timestamp DESC,\n f.offset_index DESC\nLIMIT\n 10000\n" rows_affected=0 rows_returned=2758 elapsed=4.209235542s
2026-04-24T13:24:27.488504Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 2758 frame entries, coverage from 2026-04-23 10:24:23.260965 UTC
2026-04-24T13:24:56.108522Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)
2026-04-24T13:25:34.118891Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=82 elapsed=10.985025625s
2026-04-24T13:25:34.121032Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 82 eligible frames
2026-04-24T13:25:37.475066Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 6.5MB → 0.2MB (30.1x), 39 JPEGs deleted
2026-04-24T13:25:41.147418Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 41 frames, 9.1MB → 0.3MB (26.4x), 41 JPEGs deleted
2026-04-24T13:26:53.913464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3587331842305982393, trigger=click)
2026-04-24T13:30:52.310748Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=2 elapsed=11.152255s
2026-04-24T13:30:52.313747Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
2026-04-24T13:36:00.069099Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=9 elapsed=7.594933541s
2026-04-24T13:36:00.071113Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 9 eligible frames
2026-04-24T13:36:00.617576Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 4 frames, 0.3MB → 0.1MB (3.6x), 4 JPEGs deleted
2026-04-24T13:36:01.402540Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 5 frames, 1.0MB → 0.4MB (2.4x), 5 JPEGs deleted
2026-04-24T13:40:06.828525Z WARN sqlx::query: summary="BEGIN IMMEDIATE" db.statement="" rows_affected=1 rows_returned=0 elapsed=1.076759291s
2026-04-24T13:40:07.002782Z WARN sqlx::query: summary="SELECT DISTINCT app_name, window_name, …" db.statement="\n\nSELECT\n DISTINCT app_name,\n window_name,\n browser_url\nFROM\n frames\nWHERE\n timestamp > datetime('now', '-30 seconds')\n AND app_name IS NOT NULL\n AND window_name IS NOT NULL\n" rows_affected=0 rows_returned=195 elapsed=1.250257875s
2026-04-24T13:41:11.559513Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=92 elapsed=10.151735042s
2026-04-24T13:41:11.559741Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 92 eligible frames
2026-04-24T13:41:14.043784Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 2.3MB → 0.1MB (32.3x), 37 JPEGs deleted
2026-04-24T13:41:21.303349Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 53 frames, 8.7MB → 3.1MB (2.8x), 53 JPEGs deleted
2026-04-24T13:41:40.887689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7539785768983157715, trigger=click)
2026-04-24T13:42:34.136767Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3059269999432289894, trigger=click)
2026-04-24T13:42:45.942807Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3777488472456223409, trigger=click)
2026-04-24T13:43:01.921357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1871207218552190145, trigger=click)
2026-04-24T13:44:01.878037Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8495661271621520850, trigger=click)
2026-04-24T13:46:28.021146Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=40 elapsed=6.713739708s
2026-04-24T13:46:28.021348Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames
2026-04-24T13:46:29.141090Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 1.1MB → 0.1MB (17.9x), 18 JPEGs deleted
2026-04-24T13:46:31.601195Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.7MB → 2.9MB (1.6x), 20 JPEGs deleted
2026-04-24T13:51:31.692283Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames
2026-04-24T13:51:32.570330Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.0MB → 0.2MB (4.8x), 13 JPEGs deleted
2026-04-24T13:51:33.760542Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.9MB → 1.0MB (1.9x), 10 JPEGs deleted
2026-04-24T13:55:31.626192Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2977185087332333124, trigger=click)
2026-04-24T13:56:33.924925Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 105 eligible frames
2026-04-24T13:56:37.179833Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 55 frames, 5.1MB → 1.4MB (3.6x), 55 JPEGs deleted
2026-04-24T13:56:40.328768Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 48 frames, 7.6MB → 1.3MB (6.0x), 48 JPEGs deleted
2026-04-24T14:00:47.136298Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Firefox, signals=2)
2026-04-24T14:00:47.857419Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2938651853865790585, trigger=click)
2026-04-24T14:00:52.374476Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Firefox, signals=2, browser=true)
2026-04-24T14:00:52.378086Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=12, app=Firefox, title=None)
2026-04-24T14:01:40.650767Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 62 eligible frames
2026-04-24T14:01:42.431196Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 1.9MB → 0.1MB (32.0x), 30 JPEGs deleted
2026-04-24T14:01:44.259623Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 4.8MB → 0.2MB (23.8x), 30 JPEGs deleted
2026-04-24T14:06:51.687604Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=54 elapsed=7.415698459s
2026-04-24T14:06:51.691163Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 54 eligible frames
2026-04-24T14:06:53.324710Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 1.7MB → 0.1MB (29.0x), 27 JPEGs deleted
2026-04-24T14:06:54.826559Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.0MB → 0.2MB (19.9x), 25 JPEGs deleted
2026-04-24T14:11:54.984165Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 93 eligible frames
2026-04-24T14:11:57.808857Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 48 frames, 3.1MB → 0.1MB (49.5x), 48 JPEGs deleted
2026-04-24T14:12:00.396251Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 43 frames, 6.8MB → 0.2MB (33.8x), 43 JPEGs deleted
2026-04-24T14:17:06.109470Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=49 elapsed=5.652470541s
2026-04-24T14:17:06.109602Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 49 eligible frames
2026-04-24T14:17:07.677608Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 1.6MB → 0.1MB (27.0x), 25 JPEGs deleted
2026-04-24T14:17:09.097967Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 3.5MB → 0.2MB (17.6x), 22 JPEGs deleted
2026-04-24T14:22:13.316698Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=24 elapsed=4.206937709s
2026-04-24T14:22:13.317436Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 24 eligible frames
2026-04-24T14:22:14.074811Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 0.7MB → 0.1MB (12.2x), 11 JPEGs deleted
2026-04-24T14:22:14.844321Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.7MB → 0.2MB (8.9x), 11 JPEGs deleted
2026-04-24T14:27:16.330019Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=22 elapsed=1.474471542s
2026-04-24T14:27:16.330265Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames
2026-04-24T14:27:17.027734Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted
2026-04-24T14:27:17.792405Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted
2026-04-24T14:32:18.770983Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames
2026-04-24T14:32:19.478630Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted
2026-04-24T14:32:20.241056Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted
2026-04-24T14:37:27.349741Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=22 elapsed=7.096181584s
2026-04-24T14:37:27.353187Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames
2026-04-24T14:37:28.066685Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted
2026-04-24T14:37:28.851355Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted
2026-04-24T14:38:19.407454Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=12, grace=300s)
2026-04-24T14:39:19.637322Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8577329830578954505, trigger=click)
2026-04-24T14:39:21.680425Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8317095871263557761, trigger=click)
2026-04-24T14:39:21.707871Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8317095871263557761, trigger=click)
2026-04-24T14:40:10.148981Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5676671508452457688, trigger=click)
2026-04-24T14:42:02.876165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3644563293578755711, trigger=click)
2026-04-24T14:42:12.151008Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3644563293578755711, trigger=click)
2026-04-24T14:42:36.098708Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=22 elapsed=7.2363725s
2026-04-24T14:42:36.098834Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames
2026-04-24T14:42:36.816811Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted
2026-04-24T14:42:37.598382Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted
2026-04-24T14:42:43.884371Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1901203473704384943, trigger=click)
2026-04-24T14:42:43.916542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1901203473704384943, trigger=click)
2026-04-24T14:43:24.413233Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Idle (timeout=300s, app=Firefox, id=12)
2026-04-24T14:43:24.855747Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting ended (id=12)
2026-04-24T14:44:38.941315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1557697903749375374, trigger=click)
2026-04-24T14:44:38.962591Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1557697903749375374, trigger=click)
2026-04-24T14:44:39.438011Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1557697903749375374, trigger=click)
2026-04-24T14:45:24.198550Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8167839925779509873, trigger=click)
2026-04-24T14:45:25.110117Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8167839925779509873, trigger=click)
2026-04-24T14:45:38.880039Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3644563293578755711, trigger=click)
2026-04-24T14:46:09.691532Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8167839925779509873, trigger=click)
2026-04-24T14:46:23.813781Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4533509598273890786, trigger=click)
2026-04-24T14:46:23.859560Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4533509598273890786, trigger=click)
2026-04-24T14:47:44.514826Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2503176719318141451, trigger=click)
2026-04-24T14:47:44.539391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2503176719318141451, trigger=click)
2026-04-24T14:47:44.764903Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=21 elapsed=7.257808167s
2026-04-24T14:47:44.764982Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames
2026-04-24T14:47:45.473419Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 0.6MB → 0.1MB (10.0x), 9 JPEGs deleted
2026-04-24T14:47:46.188394Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted
2026-04-24T14:47:50.085052Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2503176719318141451, trigger=click)
2026-04-24T14:47:50.106335Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2503176719318141451, trigger=click)
2026-04-24T14:52:53.441281Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=100 elapsed=7.256992167s
2026-04-24T14:52:53.441665Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 100 eligible frames
2026-04-24T14:52:56.554743Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 3.2MB → 0.1MB (50.4x), 49 JPEGs deleted
2026-04-24T14:52:59.416988Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 7.8MB → 0.2MB (38.4x), 49 JPEGs deleted
2026-04-24T14:53:50.050387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4956080981675052788, trigger=click)
2026-04-24T14:55:36.318507Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-991319035522409710, trigger=click)
2026-04-24T14:55:36.391576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-991319035522409710, trigger=click)
2026-04-24T14:57:59.569859Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 57 eligible frames
2026-04-24T14:58:01.300455Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 1.6MB → 0.1MB (25.9x), 24 JPEGs deleted
2026-04-24T14:58:03.198608Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 4.9MB → 0.2MB (24.6x), 31 JPEGs deleted
2026-04-24T15:03:08.612242Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=30 elapsed=5.295343459s
2026-04-24T15:03:08.612821Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 30 eligible frames
2026-04-24T15:03:09.620798Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 0.9MB → 0.1MB (15.4x), 14 JPEGs deleted
2026-04-24T15:03:10.811697Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.2MB → 0.2MB (11.3x), 14 JPEGs deleted
2026-04-24T15:04:26.269378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5667957418966591499, trigger=click)
2026-04-24T15:04:26.321219Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5667957418966591499, trigger=click)
2026-04-24T15:08:14.307499Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=25 elapsed=3.392988s
2026-04-24T15:08:14.307671Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames
2026-04-24T15:08:15.302981Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 0.7MB → 0.1MB (12.2x), 11 JPEGs deleted
2026-04-24T15:08:16.186177Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 1.9MB → 0.2MB (9.7x), 12 JPEGs deleted
2026-04-24T15:13:18.963807Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=37 elapsed=2.767425042s
2026-04-24T15:13:18.963934Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 37 eligible frames
2026-04-24T15:13:20.113690Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 1.2MB → 0.1MB (19.7x), 18 JPEGs deleted
2026-04-24T15:13:21.236764Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.7MB → 0.2MB (13.6x), 17 JPEGs deleted
2026-04-24T15:14:48.156237Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)
2026-04-24T15:15:01.132168Z INFO sck_rs::stream_manager: recreating stream for display 1 (resolution change)
2026-04-24T15:15:01.221025Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=app_switch, monitor=1) — DB pool may be saturated
2026-04-24T15:15:01.375924Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=app_switch, monitor=2) — DB pool may be saturated
2026-04-24T15:15:15.842371Z INFO sck_rs::stream_manager: recreating stream for display 2 (resolution change)
2026-04-24T15:18:28.531831Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=36 elapsed=7.26041775s
2026-04-24T15:18:28.531955Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 36 eligible frames
2026-04-24T15:18:29.658166Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 1.1MB → 0.1MB (18.6x), 17 JPEGs deleted
2026-04-24T15:18:30.768761Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.7MB → 0.2MB (13.6x), 17 JPEGs deleted
2026-04-24T15:23:31.928536Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=22 elapsed=1.148790625s
2026-04-24T15:23:31.928649Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames
2026-04-24T15:23:32.642076Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted
2026-04-24T15:23:33.401791Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted
2026-04-24T15:28:34.810366Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=8 elapsed=1.39738375s
2026-04-24T15:28:34.810546Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 8 eligible frames
2026-04-24T15:28:35.187466Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 3 frames, 0.2MB → 0.1MB (3.5x), 3 JPEGs deleted
2026-04-24T15:28:35.591687Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 3 frames, 0.5MB → 0.2MB (2.6x), 3 JPEGs deleted
2026-04-24T15:33:39.031121Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=2 elapsed=3.484074667s
2026-04-24T15:33:39.031286Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
2026-04-24T15:43:41.373431Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=0 elapsed=2.126509208s
2026-04-24T15:48:45.005960Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=0 elapsed=3.630826208s
2026-04-24T15:53:46.452410Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=0 elapsed=1.442133375s
2026-04-24T16:03:50.813556Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=0 elapsed=3.725817875s
2026-04-24T16:08:52.104712Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=0 elapsed=1.289955292s
2026-04-24T16:14:48.860304Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)
2026-04-24T16:14:48.885031Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2
2026-04-24T16:14:49.085988Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)
2026-04-24T16:14:49.951727Z INFO screenpipe_engine::event_driven_capture: monitor 2 capture recovered after 1 consecutive errors
2026-04-24T16:15:14.957591Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)
2026-04-24T16:15:15.344344Z INFO screenpipe_engine::event_driven_capture: monitor 1 capture recovered after 1 consecutive errors
2026-04-24T16:17:13.975782Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7172393451066325016, trigger=click)
2026-04-24T16:19:00.805923Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=0 elapsed=7.986969166s
2026-04-24T16:19:29.124240Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3129461629380798674, trigger=click)
2026-04-24T16:19:29.165320Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=click)
2026-04-24T16:20:57.221933Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=click)
2026-04-24T16:21:34.158304Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=visual_change)
2026-04-24T16:21:52.258518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=visual_change)
2026-04-24T16:24:07.960303Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=0 elapsed=7.148022208s
2026-04-24T16:25:38.292462Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8773909165376335292, trigger=click)
2026-04-24T16:28:02.880424Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=826123905625364471, trigger=click)
2026-04-24T16:28:02.928317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=826123905625364471, trigger=click)
2026-04-24T16:29:02.161685Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5156992524424370675, trigger=visual_change)
2026-04-24T16:29:11.119509Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5156992524424370675, trigger=visual_change)
2026-04-24T16:29:15.437543Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=42 elapsed=7.45073025s
2026-04-24T16:29:15.438417Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 42 eligible frames
2026-04-24T16:29:17.083173Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 3.2MB → 0.4MB (9.1x), 20 JPEGs deleted
2026-04-24T16:29:18.972223Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 5.2MB → 1.7MB (3.0x), 22 JPEGs deleted
2026-04-24T16:29:34.388891Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5156992524424370675, trigger=click)
2026-04-24T16:29:45.796969Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4817563232530793650, trigger=click)
2026-04-24T16:32:36.877636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=visual_change)
2026-04-24T16:32:42.134384Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=visual_change)
2026-04-24T16:32:44.378087Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)
2026-04-24T16:32:45.243874Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=visual_change)
2026-04-24T16:32:54.163388Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8550622008733264339, trigger=click)
2026-04-24T16:32:54.176256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)
2026-04-24T16:32:57.087323Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8550622008733264339, trigger=click)
2026-04-24T16:32:57.117211Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)
2026-04-24T16:34:03.172812Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:34:13.599521Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:34:23.371635Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=21 elapsed=4.397149916s
2026-04-24T16:34:23.371744Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames
2026-04-24T16:34:24.346821Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.6MB → 0.4MB (4.0x), 11 JPEGs deleted
2026-04-24T16:34:25.323782Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 2.0MB → 0.7MB (2.7x), 8 JPEGs deleted
2026-04-24T16:35:16.265905Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:35:16.396499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:37:09.981293Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=visual_change)
2026-04-24T16:38:45.635162Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:38:47.663267Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:39:10.322134Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:39:27.552784Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=33 elapsed=2.228011375s
2026-04-24T16:39:27.552915Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 33 eligible frames
2026-04-24T16:39:28.615455Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.8MB → 0.6MB (4.8x), 14 JPEGs deleted
2026-04-24T16:39:30.390392Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.1MB → 1.6MB (2.0x), 17 JPEGs deleted
2026-04-24T16:40:01.437647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7218881400109780070, trigger=click)
2026-04-24T16:40:12.586378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:41:05.997041Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6861826947729846030, trigger=click)
2026-04-24T16:41:11.184592Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6861826947729846030, trigger=click)
2026-04-24T16:43:15.433697Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8550622008733264339, trigger=click)
2026-04-24T16:43:15.515804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)
2026-04-24T16:43:51.515815Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5576357006515458390, trigger=click)
2026-04-24T16:43:59.714706Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5576357006515458390, trigger=click)
2026-04-24T16:43:59.785731Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5576357006515458390, trigger=click)
2026-04-24T16:44:38.173037Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=20 elapsed=7.796779s
2026-04-24T16:44:38.174424Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 20 eligible frames
2026-04-24T16:44:39.258439Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 1.8MB → 0.3MB (5.7x), 9 JPEGs deleted
2026-04-24T16:44:41.729154Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 2.3MB → 1.7MB (1.4x), 9 JPEGs deleted
2026-04-24T16:48:00.989535Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5576357006515458390, trigger=click)
2026-04-24T16:48:17.430932Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5576357006515458390, trigger=click)
2026-04-24T16:49:49.135916Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=17 elapsed=7.403764583s
2026-04-24T16:49:49.136082Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 17 eligible frames
2026-04-24T16:49:50.004132Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 1.6MB → 0.3MB (5.1x), 8 JPEGs deleted
2026-04-24T16:49:50.898114Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 7 frames, 1.9MB → 0.7MB (2.6x), 7 JPEGs deleted
2026-04-24T16:50:09.364175Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8409739779266792278, trigger=visual_change)
2026-04-24T16:50:11.237105Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8409739779266792278, trigger=click)
2026-04-24T16:51:37.931779Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1423930385844614485, trigger=click)
2026-04-24T16:53:14.381283Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7564119013552971576, trigger=click)
2026-04-24T16:54:12.231394Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1423930385844614485, trigger=visual_change)
2026-04-24T16:54:15.266343Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1423930385844614485, trigger=visual_change)
2026-04-24T16:55:01.568514Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=58 elapsed=10.558641542s
2026-04-24T16:55:01.569579Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 58 eligible frames
2026-04-24T16:55:04.609017Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 5.7MB → 1.1MB (5.0x), 28 JPEGs deleted
2026-04-24T16:55:09.392416Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 5.5MB → 3.1MB (1.8x), 28 JPEGs deleted
2026-04-24T16:55:39.774741Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3617611630109587613, trigger=click)
2026-04-24T16:55:39.852272Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3617611630109587613, trigger=click)
2026-04-24T16:56:40.038632Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-426150959945983082, trigger=click)
2026-04-24T16:59:26.437906Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-426150959945983082, trigger=visual_change)
2026-04-24T17:00:21.026565Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=53 elapsed=11.620753209s
2026-04-24T17:00:21.027475Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 53 eligible frames
2026-04-24T17:00:24.007228Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 4.3MB → 0.5MB (7.8x),...
|
NULL
|
|
79071
|
2034
|
1
|
2026-04-24T14:27:32.511070+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-24/1777 /Users/lukas/.screenpipe/data/data/2026-04-24/1777040852511_m2.jpg...
|
iTerm2
|
screenpipe"
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Last login: Fri Apr 24 12:59:23 on ttys007
Poetry Last login: Fri Apr 24 12:59:23 on ttys007
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-start
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-04-24T13:24:21.985779Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store
checking permissions...
screen recording: ok
accessibility: ok
2026-04-24T13:24:22.124681Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-04-24T13:24:23.055922Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-04-24T13:24:23.059528Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-04-24T13:24:23.061097Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-04-24T13:24:23.132247Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-04-24T13:24:23.132303Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-04-24T13:24:23.132592Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-04-24T13:24:23.132606Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-04-24T13:24:23.132938Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-04-24T13:24:23.132999Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-04-24T13:24:23.132808Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-04-24T13:24:23.180699Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-04-24T13:24:23.180978Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-04-24T13:24:23.181420Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-04-24T13:24:23.181613Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-04-24T13:24:23.181801Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-04-24T13:24:23.182313Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary
2026-04-24T13:24:23.182341Z INFO screenpipe_core::pipes: loaded 6 pipes from "/Users/lukas/.screenpipe/pipes"
_
__________________ ___ ____ ____ (_____ ___
/ ___/ ___/ ___/ _ \/ _ \/ __ \ / __ \/ / __ \/ _ \
(__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/
/____/\___/_/ \___/\___/_/ /_/ / .___/_/ .___/\___/
/_/ /_/
power AI by everything you've seen, said or heard
open source | runs locally | developer friendly
┌────────────────────────┬────────────────────────────────────┐
│ setting │ value │
├────────────────────────┼────────────────────────────────────┤
│ audio chunk duration │ 30 seconds │
│ port │ 3030 │
│ audio disabled │ true │
│ vision disabled │ false │
│ pause on DRM content │ false │
│ audio engine │ Parakeet │
│ vad engine │ Silero │
│ data directory │ /Users/lukas/.screenpipe │
│ debug mode │ false │
│ telemetry │ true │
│ use pii removal │ true │
│ use all monitors │ true │
│ ignored windows │ ["Boosteroid"] │
│ included windows │ [] │
│ cloud sync │ disabled │
│ auto-destruct pid │ 0 │
│ deepgram key │ not set │
│ api auth │ enabled │
2026-04-24T13:24:23.186334Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)
2026-04-24T13:24:23.198489Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh
│ encrypt secrets │ disabled │
│ retention days │ 14 │
├────────────────────────┼────────────────────────────────────┤
│ languages │ │
│ │ all languages │
├────────────────────────┼────────────────────────────────────┤
│ monitors │ │
│ │ id: 1 │
│ │ id: 2 │
├────────────────────────┼────────────────────────────────────┤
│ audio devices │ │
│ │ disabled │
└────────────────────────┴────────────────────────────────────┘
you are using local processing. all your data stays on your computer.
warning: telemetry is enabled. only error-level data will be sent.
to disable, use the --disable-telemetry flag.
check latest changes here: https://github.com/screenpipe/screenpipe/releases
2026-04-24T13:24:23.216198Z INFO screenpipe: starting UI event capture
2026-04-24T13:24:23.238868Z INFO screenpipe_engine::ui_recorder: Starting UI event capture
2026-04-24T13:24:23.260906Z INFO screenpipe_engine::ui_recorder: UI recording session started: 9676eafd-ea8f-4e1a-a5f1-de7bdb79c071
2026-04-24T13:24:23.260911Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)
2026-04-24T13:24:23.260972Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-23 10:24:23.260965 UTC to 2026-04-24 10:24:23.260965 UTC)
2026-04-24T13:24:23.261685Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)
2026-04-24T13:24:23.262214Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))
2026-04-24T13:24:23.273443Z INFO screenpipe_engine::server: Server listening on [IP_ADDRESS]:3030
2026-04-24T13:24:23.304240Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030
2026-04-24T13:24:23.567248Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)
2026-04-24T13:24:23.567289Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)
2026-04-24T13:24:23.567346Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)
2026-04-24T13:24:23.850835Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-04-24T13:24:23.850880Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-04-24T13:24:23.850893Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)
2026-04-24T13:24:23.850901Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)
2026-04-24T13:24:23.850941Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-04-24T13:24:25.197204Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)
2026-04-24T13:24:25.589436Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=77673, dur=103ms
2026-04-24T13:24:25.630980Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)
2026-04-24T13:24:25.652818Z INFO sck_rs::stream_manager: invalidated persistent stream for display 1
2026-04-24T13:24:26.160345Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=77674, dur=198ms
2026-04-24T13:24:27.471087Z WARN sqlx::query: summary="SELECT f.id, f.timestamp, f.offset_index, …" db.statement="\n\nSELECT\n f.id,\n f.timestamp,\n f.offset_index,\n COALESCE(\n SUBSTR(f.full_text, 1, 200),\n SUBSTR(f.accessibility_text, 1, 200),\n (\n SELECT\n SUBSTR(ot.text, 1, 200)\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as text,\n COALESCE(\n f.app_name,\n (\n SELECT\n ot.app_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as app_name,\n COALESCE(\n f.window_name,\n (\n SELECT\n ot.window_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as window_name,\n COALESCE(vc.device_name, f.device_name) as screen_device,\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\n COALESCE(vc.fps, 0.033) as chunk_fps,\n f.browser_url,\n f.machine_id\nFROM\n frames f\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\nWHERE\n f.timestamp >= ?1\n AND f.timestamp <= ?2\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\nORDER BY\n f.timestamp DESC,\n f.offset_index DESC\nLIMIT\n 10000\n" rows_affected=0 rows_returned=2758 elapsed=4.209235542s
2026-04-24T13:24:27.488504Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 2758 frame entries, coverage from 2026-04-23 10:24:23.260965 UTC
2026-04-24T13:24:56.108522Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)
2026-04-24T13:25:34.118891Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=82 elapsed=10.985025625s
2026-04-24T13:25:34.121032Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 82 eligible frames
2026-04-24T13:25:37.475066Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 6.5MB → 0.2MB (30.1x), 39 JPEGs deleted
2026-04-24T13:25:41.147418Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 41 frames, 9.1MB → 0.3MB (26.4x), 41 JPEGs deleted
2026-04-24T13:26:53.913464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3587331842305982393, trigger=click)
2026-04-24T13:30:52.310748Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=2 elapsed=11.152255s
2026-04-24T13:30:52.313747Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
2026-04-24T13:36:00.069099Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=9 elapsed=7.594933541s
2026-04-24T13:36:00.071113Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 9 eligible frames
2026-04-24T13:36:00.617576Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 4 frames, 0.3MB → 0.1MB (3.6x), 4 JPEGs deleted
2026-04-24T13:36:01.402540Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 5 frames, 1.0MB → 0.4MB (2.4x), 5 JPEGs deleted
2026-04-24T13:40:06.828525Z WARN sqlx::query: summary="BEGIN IMMEDIATE" db.statement="" rows_affected=1 rows_returned=0 elapsed=1.076759291s
2026-04-24T13:40:07.002782Z WARN sqlx::query: summary="SELECT DISTINCT app_name, window_name, …" db.statement="\n\nSELECT\n DISTINCT app_name,\n window_name,\n browser_url\nFROM\n frames\nWHERE\n timestamp > datetime('now', '-30 seconds')\n AND app_name IS NOT NULL\n AND window_name IS NOT NULL\n" rows_affected=0 rows_returned=195 elapsed=1.250257875s
2026-04-24T13:41:11.559513Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=92 elapsed=10.151735042s
2026-04-24T13:41:11.559741Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 92 eligible frames
2026-04-24T13:41:14.043784Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 2.3MB → 0.1MB (32.3x), 37 JPEGs deleted
2026-04-24T13:41:21.303349Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 53 frames, 8.7MB → 3.1MB (2.8x), 53 JPEGs deleted
2026-04-24T13:41:40.887689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7539785768983157715, trigger=click)
2026-04-24T13:42:34.136767Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3059269999432289894, trigger=click)
2026-04-24T13:42:45.942807Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3777488472456223409, trigger=click)
2026-04-24T13:43:01.921357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1871207218552190145, trigger=click)
2026-04-24T13:44:01.878037Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8495661271621520850, trigger=click)
2026-04-24T13:46:28.021146Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=40 elapsed=6.713739708s
2026-04-24T13:46:28.021348Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames
2026-04-24T13:46:29.141090Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 1.1MB → 0.1MB (17.9x), 18 JPEGs deleted
2026-04-24T13:46:31.601195Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.7MB → 2.9MB (1.6x), 20 JPEGs deleted
2026-04-24T13:51:31.692283Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames
2026-04-24T13:51:32.570330Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.0MB → 0.2MB (4.8x), 13 JPEGs deleted
2026-04-24T13:51:33.760542Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.9MB → 1.0MB (1.9x), 10 JPEGs deleted
2026-04-24T13:55:31.626192Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2977185087332333124, trigger=click)
2026-04-24T13:56:33.924925Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 105 eligible frames
2026-04-24T13:56:37.179833Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 55 frames, 5.1MB → 1.4MB (3.6x), 55 JPEGs deleted
2026-04-24T13:56:40.328768Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 48 frames, 7.6MB → 1.3MB (6.0x), 48 JPEGs deleted
2026-04-24T14:00:47.136298Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Firefox, signals=2)
2026-04-24T14:00:47.857419Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2938651853865790585, trigger=click)
2026-04-24T14:00:52.374476Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Firefox, signals=2, browser=true)
2026-04-24T14:00:52.378086Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=12, app=Firefox, title=None)
2026-04-24T14:01:40.650767Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 62 eligible frames
2026-04-24T14:01:42.431196Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 1.9MB → 0.1MB (32.0x), 30 JPEGs deleted
2026-04-24T14:01:44.259623Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 4.8MB → 0.2MB (23.8x), 30 JPEGs deleted
2026-04-24T14:06:51.687604Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=54 elapsed=7.415698459s
2026-04-24T14:06:51.691163Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 54 eligible frames
2026-04-24T14:06:53.324710Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 1.7MB → 0.1MB (29.0x), 27 JPEGs deleted
2026-04-24T14:06:54.826559Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.0MB → 0.2MB (19.9x), 25 JPEGs deleted
2026-04-24T14:11:54.984165Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 93 eligible frames
2026-04-24T14:11:57.808857Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 48 frames, 3.1MB → 0.1MB (49.5x), 48 JPEGs deleted
2026-04-24T14:12:00.396251Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 43 frames, 6.8MB → 0.2MB (33.8x), 43 JPEGs deleted
2026-04-24T14:17:06.109470Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=49 elapsed=5.652470541s
2026-04-24T14:17:06.109602Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 49 eligible frames
2026-04-24T14:17:07.677608Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 1.6MB → 0.1MB (27.0x), 25 JPEGs deleted
2026-04-24T14:17:09.097967Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 3.5MB → 0.2MB (17.6x), 22 JPEGs deleted
2026-04-24T14:22:13.316698Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=24 elapsed=4.206937709s
2026-04-24T14:22:13.317436Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 24 eligible frames
2026-04-24T14:22:14.074811Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 0.7MB → 0.1MB (12.2x), 11 JPEGs deleted
2026-04-24T14:22:14.844321Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.7MB → 0.2MB (8.9x), 11 JPEGs deleted
2026-04-24T14:27:16.330019Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=22 elapsed=1.474471542s
2026-04-24T14:27:16.330265Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames
2026-04-24T14:27:17.027734Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted
2026-04-24T14:27:17.792405Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted
2026-04-24T14:32:18.770983Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames
2026-04-24T14:32:19.478630Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted
2026-04-24T14:32:20.241056Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted
2026-04-24T14:37:27.349741Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=22 elapsed=7.096181584s
2026-04-24T14:37:27.353187Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames
2026-04-24T14:37:28.066685Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted
2026-04-24T14:37:28.851355Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted
2026-04-24T14:38:19.407454Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=12, grace=300s)
2026-04-24T14:39:19.637322Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8577329830578954505, trigger=click)
2026-04-24T14:39:21.680425Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8317095871263557761, trigger=click)
2026-04-24T14:39:21.707871Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8317095871263557761, trigger=click)
2026-04-24T14:40:10.148981Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5676671508452457688, trigger=click)
2026-04-24T14:42:02.876165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3644563293578755711, trigger=click)
2026-04-24T14:42:12.151008Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3644563293578755711, trigger=click)
2026-04-24T14:42:36.098708Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=22 elapsed=7.2363725s
2026-04-24T14:42:36.098834Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames
2026-04-24T14:42:36.816811Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted
2026-04-24T14:42:37.598382Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted
2026-04-24T14:42:43.884371Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1901203473704384943, trigger=click)
2026-04-24T14:42:43.916542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1901203473704384943, trigger=click)
2026-04-24T14:43:24.413233Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Idle (timeout=300s, app=Firefox, id=12)
2026-04-24T14:43:24.855747Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting ended (id=12)
2026-04-24T14:44:38.941315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1557697903749375374, trigger=click)
2026-04-24T14:44:38.962591Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1557697903749375374, trigger=click)
2026-04-24T14:44:39.438011Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1557697903749375374, trigger=click)
2026-04-24T14:45:24.198550Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8167839925779509873, trigger=click)
2026-04-24T14:45:25.110117Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8167839925779509873, trigger=click)
2026-04-24T14:45:38.880039Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3644563293578755711, trigger=click)
2026-04-24T14:46:09.691532Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8167839925779509873, trigger=click)
2026-04-24T14:46:23.813781Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4533509598273890786, trigger=click)
2026-04-24T14:46:23.859560Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4533509598273890786, trigger=click)
2026-04-24T14:47:44.514826Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2503176719318141451, trigger=click)
2026-04-24T14:47:44.539391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2503176719318141451, trigger=click)
2026-04-24T14:47:44.764903Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=21 elapsed=7.257808167s
2026-04-24T14:47:44.764982Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames
2026-04-24T14:47:45.473419Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 0.6MB → 0.1MB (10.0x), 9 JPEGs deleted
2026-04-24T14:47:46.188394Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted
2026-04-24T14:47:50.085052Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2503176719318141451, trigger=click)
2026-04-24T14:47:50.106335Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2503176719318141451, trigger=click)
2026-04-24T14:52:53.441281Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=100 elapsed=7.256992167s
2026-04-24T14:52:53.441665Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 100 eligible frames
2026-04-24T14:52:56.554743Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 3.2MB → 0.1MB (50.4x), 49 JPEGs deleted
2026-04-24T14:52:59.416988Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 7.8MB → 0.2MB (38.4x), 49 JPEGs deleted
2026-04-24T14:53:50.050387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4956080981675052788, trigger=click)
2026-04-24T14:55:36.318507Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-991319035522409710, trigger=click)
2026-04-24T14:55:36.391576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-991319035522409710, trigger=click)
2026-04-24T14:57:59.569859Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 57 eligible frames
2026-04-24T14:58:01.300455Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 1.6MB → 0.1MB (25.9x), 24 JPEGs deleted
2026-04-24T14:58:03.198608Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 4.9MB → 0.2MB (24.6x), 31 JPEGs deleted
2026-04-24T15:03:08.612242Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=30 elapsed=5.295343459s
2026-04-24T15:03:08.612821Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 30 eligible frames
2026-04-24T15:03:09.620798Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 0.9MB → 0.1MB (15.4x), 14 JPEGs deleted
2026-04-24T15:03:10.811697Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.2MB → 0.2MB (11.3x), 14 JPEGs deleted
2026-04-24T15:04:26.269378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5667957418966591499, trigger=click)
2026-04-24T15:04:26.321219Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5667957418966591499, trigger=click)
2026-04-24T15:08:14.307499Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=25 elapsed=3.392988s
2026-04-24T15:08:14.307671Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames
2026-04-24T15:08:15.302981Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 0.7MB → 0.1MB (12.2x), 11 JPEGs deleted
2026-04-24T15:08:16.186177Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 1.9MB → 0.2MB (9.7x), 12 JPEGs deleted
2026-04-24T15:13:18.963807Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=37 elapsed=2.767425042s
2026-04-24T15:13:18.963934Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 37 eligible frames
2026-04-24T15:13:20.113690Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 1.2MB → 0.1MB (19.7x), 18 JPEGs deleted
2026-04-24T15:13:21.236764Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.7MB → 0.2MB (13.6x), 17 JPEGs deleted
2026-04-24T15:14:48.156237Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)
2026-04-24T15:15:01.132168Z INFO sck_rs::stream_manager: recreating stream for display 1 (resolution change)
2026-04-24T15:15:01.221025Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=app_switch, monitor=1) — DB pool may be saturated
2026-04-24T15:15:01.375924Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=app_switch, monitor=2) — DB pool may be saturated
2026-04-24T15:15:15.842371Z INFO sck_rs::stream_manager: recreating stream for display 2 (resolution change)
2026-04-24T15:18:28.531831Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=36 elapsed=7.26041775s
2026-04-24T15:18:28.531955Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 36 eligible frames
2026-04-24T15:18:29.658166Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 1.1MB → 0.1MB (18.6x), 17 JPEGs deleted
2026-04-24T15:18:30.768761Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.7MB → 0.2MB (13.6x), 17 JPEGs deleted
2026-04-24T15:23:31.928536Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=22 elapsed=1.148790625s
2026-04-24T15:23:31.928649Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames
2026-04-24T15:23:32.642076Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted
2026-04-24T15:23:33.401791Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted
2026-04-24T15:28:34.810366Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=8 elapsed=1.39738375s
2026-04-24T15:28:34.810546Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 8 eligible frames
2026-04-24T15:28:35.187466Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 3 frames, 0.2MB → 0.1MB (3.5x), 3 JPEGs deleted
2026-04-24T15:28:35.591687Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 3 frames, 0.5MB → 0.2MB (2.6x), 3 JPEGs deleted
2026-04-24T15:33:39.031121Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=2 elapsed=3.484074667s
2026-04-24T15:33:39.031286Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
2026-04-24T15:43:41.373431Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=0 elapsed=2.126509208s
2026-04-24T15:48:45.005960Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=0 elapsed=3.630826208s
2026-04-24T15:53:46.452410Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=0 elapsed=1.442133375s
2026-04-24T16:03:50.813556Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=0 elapsed=3.725817875s
2026-04-24T16:08:52.104712Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=0 elapsed=1.289955292s
2026-04-24T16:14:48.860304Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)
2026-04-24T16:14:48.885031Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2
2026-04-24T16:14:49.085988Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)
2026-04-24T16:14:49.951727Z INFO screenpipe_engine::event_driven_capture: monitor 2 capture recovered after 1 consecutive errors
2026-04-24T16:15:14.957591Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)
2026-04-24T16:15:15.344344Z INFO screenpipe_engine::event_driven_capture: monitor 1 capture recovered after 1 consecutive errors
2026-04-24T16:17:13.975782Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7172393451066325016, trigger=click)
2026-04-24T16:19:00.805923Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=0 elapsed=7.986969166s
2026-04-24T16:19:29.124240Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3129461629380798674, trigger=click)
2026-04-24T16:19:29.165320Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=click)
2026-04-24T16:20:57.221933Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=click)
2026-04-24T16:21:34.158304Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=visual_change)
2026-04-24T16:21:52.258518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=visual_change)
2026-04-24T16:24:07.960303Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=0 elapsed=7.148022208s
2026-04-24T16:25:38.292462Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8773909165376335292, trigger=click)
2026-04-24T16:28:02.880424Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=826123905625364471, trigger=click)
2026-04-24T16:28:02.928317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=826123905625364471, trigger=click)
2026-04-24T16:29:02.161685Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5156992524424370675, trigger=visual_change)
2026-04-24T16:29:11.119509Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5156992524424370675, trigger=visual_change)
2026-04-24T16:29:15.437543Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=42 elapsed=7.45073025s
2026-04-24T16:29:15.438417Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 42 eligible frames
2026-04-24T16:29:17.083173Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 3.2MB → 0.4MB (9.1x), 20 JPEGs deleted
2026-04-24T16:29:18.972223Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 5.2MB → 1.7MB (3.0x), 22 JPEGs deleted
2026-04-24T16:29:34.388891Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5156992524424370675, trigger=click)
2026-04-24T16:29:45.796969Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4817563232530793650, trigger=click)
2026-04-24T16:32:36.877636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=visual_change)
2026-04-24T16:32:42.134384Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=visual_change)
2026-04-24T16:32:44.378087Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)
2026-04-24T16:32:45.243874Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=visual_change)
2026-04-24T16:32:54.163388Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8550622008733264339, trigger=click)
2026-04-24T16:32:54.176256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)
2026-04-24T16:32:57.087323Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8550622008733264339, trigger=click)
2026-04-24T16:32:57.117211Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)
2026-04-24T16:34:03.172812Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:34:13.599521Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:34:23.371635Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=21 elapsed=4.397149916s
2026-04-24T16:34:23.371744Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames
2026-04-24T16:34:24.346821Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.6MB → 0.4MB (4.0x), 11 JPEGs deleted
2026-04-24T16:34:25.323782Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 2.0MB → 0.7MB (2.7x), 8 JPEGs deleted
2026-04-24T16:35:16.265905Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:35:16.396499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:37:09.981293Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=visual_change)
2026-04-24T16:38:45.635162Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:38:47.663267Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:39:10.322134Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:39:27.552784Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=33 elapsed=2.228011375s
2026-04-24T16:39:27.552915Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 33 eligible frames
2026-04-24T16:39:28.615455Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.8MB → 0.6MB (4.8x), 14 JPEGs deleted
2026-04-24T16:39:30.390392Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.1MB → 1.6MB (2.0x), 17 JPEGs deleted
2026-04-24T16:40:01.437647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7218881400109780070, trigger=click)
2026-04-24T16:40:12.586378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:41:05.997041Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6861826947729846030, trigger=click)
2026-04-24T16:41:11.184592Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6861826947729846030, trigger=click)
2026-04-24T16:43:15.433697Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8550622008733264339, trigger=click)
2026-04-24T16:43:15.515804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)
2026-04-24T16:43:51.515815Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5576357006515458390, trigger=click)
2026-04-24T16:43:59.714706Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5576357006515458390, trigger=click)
2026-04-24T16:43:59.785731Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5576357006515458390, trigger=click)
2026-04-24T16:44:38.173037Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=20 elapsed=7.796779s
2026-04-24T16:44:38.174424Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 20 eligible frames
2026-04-24T16:44:39.258439Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 1.8MB → 0.3MB (5.7x), 9 JPEGs deleted
2026-04-24T16:44:41.729154Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 2.3MB → 1.7MB (1.4x), 9 JPEGs deleted
2026-04-24T16:48:00.989535Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5576357006515458390, trigger=click)
2026-04-24T16:48:17.430932Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5576357006515458390, trigger=click)
2026-04-24T16:49:49.135916Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=17 elapsed=7.403764583s
2026-04-24T16:49:49.136082Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 17 eligible frames
2026-04-24T16:49:50.004132Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 1.6MB → 0.3MB (5.1x), 8 JPEGs deleted
2026-04-24T16:49:50.898114Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 7 frames, 1.9MB → 0.7MB (2.6x), 7 JPEGs deleted
2026-04-24T16:50:09.364175Z INFO screenpipe_engine::event_driven_capture: content d...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"Last login: Fri Apr 24 12:59:23 on ttys007\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-start\ndetected hardware tier: Mid\nwarning: parakeet is not supported on this platform, using whisper-tiny instead\n2026-04-24T13:24:21.985779Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store\nchecking permissions...\n screen recording: ok\n accessibility: ok\n2026-04-24T13:24:22.124681Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6\n2026-04-24T13:24:23.055922Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor\n2026-04-24T13:24:23.059528Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)\n2026-04-24T13:24:23.061097Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)\n2026-04-24T13:24:23.132247Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true\n2026-04-24T13:24:23.132303Z INFO screenpipe: meeting detector enabled — independent of transcription mode\n2026-04-24T13:24:23.132592Z INFO screenpipe: API server listening on 127.0.0.1:3030 (localhost only)\n2026-04-24T13:24:23.132606Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key\n2026-04-24T13:24:23.132938Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)\n2026-04-24T13:24:23.132999Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager\n2026-04-24T13:24:23.132808Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)\n2026-04-24T13:24:23.180699Z INFO screenpipe_core::pipes: loaded pipe: day-recap\n2026-04-24T13:24:23.180978Z INFO screenpipe_core::pipes: loaded pipe: standup-update\n2026-04-24T13:24:23.181420Z INFO screenpipe_core::pipes: loaded pipe: ai-habits\n2026-04-24T13:24:23.181613Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown\n2026-04-24T13:24:23.181801Z INFO screenpipe_core::pipes: loaded pipe: video-export\n2026-04-24T13:24:23.182313Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary\n2026-04-24T13:24:23.182341Z INFO screenpipe_core::pipes: loaded 6 pipes from \"/Users/lukas/.screenpipe/pipes\"\n\n\n\n _ \n __________________ ___ ____ ____ (_____ ___ \n / ___/ ___/ ___/ _ \\/ _ \\/ __ \\ / __ \\/ / __ \\/ _ \\\n (__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/\n/____/\\___/_/ \\___/\\___/_/ /_/ / .___/_/ .___/\\___/ \n /_/ /_/ \n\n\n\npower AI by everything you've seen, said or heard\nopen source | runs locally | developer friendly\n\n\n┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ true │\n│ vision disabled │ false │\n│ pause on DRM content │ false │\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n│ ignored windows │ [\"Boosteroid\"] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n│ api auth │ enabled │\n2026-04-24T13:24:23.186334Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n2026-04-24T13:24:23.198489Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n│ encrypt secrets │ disabled │\n│ retention days │ 14 │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ id: 1 │\n│ │ id: 2 │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ disabled │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-24T13:24:23.216198Z INFO screenpipe: starting UI event capture\n2026-04-24T13:24:23.238868Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-24T13:24:23.260906Z INFO screenpipe_engine::ui_recorder: UI recording session started: 9676eafd-ea8f-4e1a-a5f1-de7bdb79c071\n2026-04-24T13:24:23.260911Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-24T13:24:23.260972Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-23 10:24:23.260965 UTC to 2026-04-24 10:24:23.260965 UTC)\n2026-04-24T13:24:23.261685Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-24T13:24:23.262214Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-24T13:24:23.273443Z INFO screenpipe_engine::server: Server listening on 127.0.0.1:3030\n2026-04-24T13:24:23.304240Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-24T13:24:23.567248Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-24T13:24:23.567289Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-24T13:24:23.567346Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-24T13:24:23.850835Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-24T13:24:23.850880Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-24T13:24:23.850893Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)\n2026-04-24T13:24:23.850901Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)\n2026-04-24T13:24:23.850941Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-24T13:24:25.197204Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)\n2026-04-24T13:24:25.589436Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=77673, dur=103ms\n2026-04-24T13:24:25.630980Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)\n2026-04-24T13:24:25.652818Z INFO sck_rs::stream_manager: invalidated persistent stream for display 1\n2026-04-24T13:24:26.160345Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=77674, dur=198ms\n2026-04-24T13:24:27.471087Z WARN sqlx::query: summary=\"SELECT f.id, f.timestamp, f.offset_index, …\" db.statement=\"\\n\\nSELECT\\n f.id,\\n f.timestamp,\\n f.offset_index,\\n COALESCE(\\n SUBSTR(f.full_text, 1, 200),\\n SUBSTR(f.accessibility_text, 1, 200),\\n (\\n SELECT\\n SUBSTR(ot.text, 1, 200)\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as text,\\n COALESCE(\\n f.app_name,\\n (\\n SELECT\\n ot.app_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as app_name,\\n COALESCE(\\n f.window_name,\\n (\\n SELECT\\n ot.window_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as window_name,\\n COALESCE(vc.device_name, f.device_name) as screen_device,\\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\\n COALESCE(vc.fps, 0.033) as chunk_fps,\\n f.browser_url,\\n f.machine_id\\nFROM\\n frames f\\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\\nWHERE\\n f.timestamp >= ?1\\n AND f.timestamp <= ?2\\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\\nORDER BY\\n f.timestamp DESC,\\n f.offset_index DESC\\nLIMIT\\n 10000\\n\" rows_affected=0 rows_returned=2758 elapsed=4.209235542s\n2026-04-24T13:24:27.488504Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 2758 frame entries, coverage from 2026-04-23 10:24:23.260965 UTC\n2026-04-24T13:24:56.108522Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)\n2026-04-24T13:25:34.118891Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=82 elapsed=10.985025625s\n2026-04-24T13:25:34.121032Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 82 eligible frames\n2026-04-24T13:25:37.475066Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 6.5MB → 0.2MB (30.1x), 39 JPEGs deleted\n2026-04-24T13:25:41.147418Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 41 frames, 9.1MB → 0.3MB (26.4x), 41 JPEGs deleted\n2026-04-24T13:26:53.913464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3587331842305982393, trigger=click)\n2026-04-24T13:30:52.310748Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=2 elapsed=11.152255s\n2026-04-24T13:30:52.313747Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-24T13:36:00.069099Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=9 elapsed=7.594933541s\n2026-04-24T13:36:00.071113Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 9 eligible frames\n2026-04-24T13:36:00.617576Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 4 frames, 0.3MB → 0.1MB (3.6x), 4 JPEGs deleted\n2026-04-24T13:36:01.402540Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 5 frames, 1.0MB → 0.4MB (2.4x), 5 JPEGs deleted\n2026-04-24T13:40:06.828525Z WARN sqlx::query: summary=\"BEGIN IMMEDIATE\" db.statement=\"\" rows_affected=1 rows_returned=0 elapsed=1.076759291s\n2026-04-24T13:40:07.002782Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=195 elapsed=1.250257875s\n2026-04-24T13:41:11.559513Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=92 elapsed=10.151735042s\n2026-04-24T13:41:11.559741Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 92 eligible frames\n2026-04-24T13:41:14.043784Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 2.3MB → 0.1MB (32.3x), 37 JPEGs deleted\n2026-04-24T13:41:21.303349Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 53 frames, 8.7MB → 3.1MB (2.8x), 53 JPEGs deleted\n2026-04-24T13:41:40.887689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7539785768983157715, trigger=click)\n2026-04-24T13:42:34.136767Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3059269999432289894, trigger=click)\n2026-04-24T13:42:45.942807Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3777488472456223409, trigger=click)\n2026-04-24T13:43:01.921357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1871207218552190145, trigger=click)\n2026-04-24T13:44:01.878037Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8495661271621520850, trigger=click)\n2026-04-24T13:46:28.021146Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=40 elapsed=6.713739708s\n2026-04-24T13:46:28.021348Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames\n2026-04-24T13:46:29.141090Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 1.1MB → 0.1MB (17.9x), 18 JPEGs deleted\n2026-04-24T13:46:31.601195Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.7MB → 2.9MB (1.6x), 20 JPEGs deleted\n2026-04-24T13:51:31.692283Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames\n2026-04-24T13:51:32.570330Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.0MB → 0.2MB (4.8x), 13 JPEGs deleted\n2026-04-24T13:51:33.760542Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.9MB → 1.0MB (1.9x), 10 JPEGs deleted\n2026-04-24T13:55:31.626192Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2977185087332333124, trigger=click)\n2026-04-24T13:56:33.924925Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 105 eligible frames\n2026-04-24T13:56:37.179833Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 55 frames, 5.1MB → 1.4MB (3.6x), 55 JPEGs deleted\n2026-04-24T13:56:40.328768Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 48 frames, 7.6MB → 1.3MB (6.0x), 48 JPEGs deleted\n2026-04-24T14:00:47.136298Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Firefox, signals=2)\n2026-04-24T14:00:47.857419Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2938651853865790585, trigger=click)\n2026-04-24T14:00:52.374476Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Firefox, signals=2, browser=true)\n2026-04-24T14:00:52.378086Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=12, app=Firefox, title=None)\n2026-04-24T14:01:40.650767Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 62 eligible frames\n2026-04-24T14:01:42.431196Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 1.9MB → 0.1MB (32.0x), 30 JPEGs deleted\n2026-04-24T14:01:44.259623Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 4.8MB → 0.2MB (23.8x), 30 JPEGs deleted\n2026-04-24T14:06:51.687604Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=54 elapsed=7.415698459s\n2026-04-24T14:06:51.691163Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 54 eligible frames\n2026-04-24T14:06:53.324710Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 1.7MB → 0.1MB (29.0x), 27 JPEGs deleted\n2026-04-24T14:06:54.826559Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.0MB → 0.2MB (19.9x), 25 JPEGs deleted\n2026-04-24T14:11:54.984165Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 93 eligible frames\n2026-04-24T14:11:57.808857Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 48 frames, 3.1MB → 0.1MB (49.5x), 48 JPEGs deleted\n2026-04-24T14:12:00.396251Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 43 frames, 6.8MB → 0.2MB (33.8x), 43 JPEGs deleted\n2026-04-24T14:17:06.109470Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=49 elapsed=5.652470541s\n2026-04-24T14:17:06.109602Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 49 eligible frames\n2026-04-24T14:17:07.677608Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 1.6MB → 0.1MB (27.0x), 25 JPEGs deleted\n2026-04-24T14:17:09.097967Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 3.5MB → 0.2MB (17.6x), 22 JPEGs deleted\n2026-04-24T14:22:13.316698Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=24 elapsed=4.206937709s\n2026-04-24T14:22:13.317436Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 24 eligible frames\n2026-04-24T14:22:14.074811Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 0.7MB → 0.1MB (12.2x), 11 JPEGs deleted\n2026-04-24T14:22:14.844321Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.7MB → 0.2MB (8.9x), 11 JPEGs deleted\n2026-04-24T14:27:16.330019Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=1.474471542s\n2026-04-24T14:27:16.330265Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T14:27:17.027734Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted\n2026-04-24T14:27:17.792405Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted\n2026-04-24T14:32:18.770983Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T14:32:19.478630Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted\n2026-04-24T14:32:20.241056Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted\n2026-04-24T14:37:27.349741Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=7.096181584s\n2026-04-24T14:37:27.353187Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T14:37:28.066685Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted\n2026-04-24T14:37:28.851355Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted\n2026-04-24T14:38:19.407454Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=12, grace=300s)\n2026-04-24T14:39:19.637322Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8577329830578954505, trigger=click)\n2026-04-24T14:39:21.680425Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8317095871263557761, trigger=click)\n2026-04-24T14:39:21.707871Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8317095871263557761, trigger=click)\n2026-04-24T14:40:10.148981Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5676671508452457688, trigger=click)\n2026-04-24T14:42:02.876165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3644563293578755711, trigger=click)\n2026-04-24T14:42:12.151008Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3644563293578755711, trigger=click)\n2026-04-24T14:42:36.098708Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=7.2363725s\n2026-04-24T14:42:36.098834Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T14:42:36.816811Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted\n2026-04-24T14:42:37.598382Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted\n2026-04-24T14:42:43.884371Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1901203473704384943, trigger=click)\n2026-04-24T14:42:43.916542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1901203473704384943, trigger=click)\n2026-04-24T14:43:24.413233Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Idle (timeout=300s, app=Firefox, id=12)\n2026-04-24T14:43:24.855747Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting ended (id=12)\n2026-04-24T14:44:38.941315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1557697903749375374, trigger=click)\n2026-04-24T14:44:38.962591Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1557697903749375374, trigger=click)\n2026-04-24T14:44:39.438011Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1557697903749375374, trigger=click)\n2026-04-24T14:45:24.198550Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8167839925779509873, trigger=click)\n2026-04-24T14:45:25.110117Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8167839925779509873, trigger=click)\n2026-04-24T14:45:38.880039Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3644563293578755711, trigger=click)\n2026-04-24T14:46:09.691532Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8167839925779509873, trigger=click)\n2026-04-24T14:46:23.813781Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4533509598273890786, trigger=click)\n2026-04-24T14:46:23.859560Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4533509598273890786, trigger=click)\n2026-04-24T14:47:44.514826Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2503176719318141451, trigger=click)\n2026-04-24T14:47:44.539391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2503176719318141451, trigger=click)\n2026-04-24T14:47:44.764903Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=21 elapsed=7.257808167s\n2026-04-24T14:47:44.764982Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames\n2026-04-24T14:47:45.473419Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 0.6MB → 0.1MB (10.0x), 9 JPEGs deleted\n2026-04-24T14:47:46.188394Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted\n2026-04-24T14:47:50.085052Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2503176719318141451, trigger=click)\n2026-04-24T14:47:50.106335Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2503176719318141451, trigger=click)\n2026-04-24T14:52:53.441281Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=100 elapsed=7.256992167s\n2026-04-24T14:52:53.441665Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 100 eligible frames\n2026-04-24T14:52:56.554743Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 3.2MB → 0.1MB (50.4x), 49 JPEGs deleted\n2026-04-24T14:52:59.416988Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 7.8MB → 0.2MB (38.4x), 49 JPEGs deleted\n2026-04-24T14:53:50.050387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4956080981675052788, trigger=click)\n2026-04-24T14:55:36.318507Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-991319035522409710, trigger=click)\n2026-04-24T14:55:36.391576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-991319035522409710, trigger=click)\n2026-04-24T14:57:59.569859Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 57 eligible frames\n2026-04-24T14:58:01.300455Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 1.6MB → 0.1MB (25.9x), 24 JPEGs deleted\n2026-04-24T14:58:03.198608Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 4.9MB → 0.2MB (24.6x), 31 JPEGs deleted\n2026-04-24T15:03:08.612242Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=30 elapsed=5.295343459s\n2026-04-24T15:03:08.612821Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 30 eligible frames\n2026-04-24T15:03:09.620798Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 0.9MB → 0.1MB (15.4x), 14 JPEGs deleted\n2026-04-24T15:03:10.811697Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.2MB → 0.2MB (11.3x), 14 JPEGs deleted\n2026-04-24T15:04:26.269378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5667957418966591499, trigger=click)\n2026-04-24T15:04:26.321219Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5667957418966591499, trigger=click)\n2026-04-24T15:08:14.307499Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=25 elapsed=3.392988s\n2026-04-24T15:08:14.307671Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames\n2026-04-24T15:08:15.302981Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 0.7MB → 0.1MB (12.2x), 11 JPEGs deleted\n2026-04-24T15:08:16.186177Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 1.9MB → 0.2MB (9.7x), 12 JPEGs deleted\n2026-04-24T15:13:18.963807Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=37 elapsed=2.767425042s\n2026-04-24T15:13:18.963934Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 37 eligible frames\n2026-04-24T15:13:20.113690Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 1.2MB → 0.1MB (19.7x), 18 JPEGs deleted\n2026-04-24T15:13:21.236764Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.7MB → 0.2MB (13.6x), 17 JPEGs deleted\n2026-04-24T15:14:48.156237Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)\n2026-04-24T15:15:01.132168Z INFO sck_rs::stream_manager: recreating stream for display 1 (resolution change)\n2026-04-24T15:15:01.221025Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=app_switch, monitor=1) — DB pool may be saturated\n2026-04-24T15:15:01.375924Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=app_switch, monitor=2) — DB pool may be saturated\n2026-04-24T15:15:15.842371Z INFO sck_rs::stream_manager: recreating stream for display 2 (resolution change)\n2026-04-24T15:18:28.531831Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=36 elapsed=7.26041775s\n2026-04-24T15:18:28.531955Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 36 eligible frames\n2026-04-24T15:18:29.658166Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 1.1MB → 0.1MB (18.6x), 17 JPEGs deleted\n2026-04-24T15:18:30.768761Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.7MB → 0.2MB (13.6x), 17 JPEGs deleted\n2026-04-24T15:23:31.928536Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=1.148790625s\n2026-04-24T15:23:31.928649Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T15:23:32.642076Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted\n2026-04-24T15:23:33.401791Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted\n2026-04-24T15:28:34.810366Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=8 elapsed=1.39738375s\n2026-04-24T15:28:34.810546Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 8 eligible frames\n2026-04-24T15:28:35.187466Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 3 frames, 0.2MB → 0.1MB (3.5x), 3 JPEGs deleted\n2026-04-24T15:28:35.591687Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 3 frames, 0.5MB → 0.2MB (2.6x), 3 JPEGs deleted\n2026-04-24T15:33:39.031121Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=2 elapsed=3.484074667s\n2026-04-24T15:33:39.031286Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-24T15:43:41.373431Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=2.126509208s\n2026-04-24T15:48:45.005960Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=3.630826208s\n2026-04-24T15:53:46.452410Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.442133375s\n2026-04-24T16:03:50.813556Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=3.725817875s\n2026-04-24T16:08:52.104712Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.289955292s\n2026-04-24T16:14:48.860304Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)\n2026-04-24T16:14:48.885031Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2\n2026-04-24T16:14:49.085988Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)\n2026-04-24T16:14:49.951727Z INFO screenpipe_engine::event_driven_capture: monitor 2 capture recovered after 1 consecutive errors\n2026-04-24T16:15:14.957591Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-24T16:15:15.344344Z INFO screenpipe_engine::event_driven_capture: monitor 1 capture recovered after 1 consecutive errors\n2026-04-24T16:17:13.975782Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7172393451066325016, trigger=click)\n2026-04-24T16:19:00.805923Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=7.986969166s\n2026-04-24T16:19:29.124240Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3129461629380798674, trigger=click)\n2026-04-24T16:19:29.165320Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=click)\n2026-04-24T16:20:57.221933Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=click)\n2026-04-24T16:21:34.158304Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=visual_change)\n2026-04-24T16:21:52.258518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=visual_change)\n2026-04-24T16:24:07.960303Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=7.148022208s\n2026-04-24T16:25:38.292462Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8773909165376335292, trigger=click)\n2026-04-24T16:28:02.880424Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=826123905625364471, trigger=click)\n2026-04-24T16:28:02.928317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=826123905625364471, trigger=click)\n2026-04-24T16:29:02.161685Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5156992524424370675, trigger=visual_change)\n2026-04-24T16:29:11.119509Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5156992524424370675, trigger=visual_change)\n2026-04-24T16:29:15.437543Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=42 elapsed=7.45073025s\n2026-04-24T16:29:15.438417Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 42 eligible frames\n2026-04-24T16:29:17.083173Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 3.2MB → 0.4MB (9.1x), 20 JPEGs deleted\n2026-04-24T16:29:18.972223Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 5.2MB → 1.7MB (3.0x), 22 JPEGs deleted\n2026-04-24T16:29:34.388891Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5156992524424370675, trigger=click)\n2026-04-24T16:29:45.796969Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4817563232530793650, trigger=click)\n2026-04-24T16:32:36.877636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=visual_change)\n2026-04-24T16:32:42.134384Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=visual_change)\n2026-04-24T16:32:44.378087Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)\n2026-04-24T16:32:45.243874Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=visual_change)\n2026-04-24T16:32:54.163388Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8550622008733264339, trigger=click)\n2026-04-24T16:32:54.176256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)\n2026-04-24T16:32:57.087323Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8550622008733264339, trigger=click)\n2026-04-24T16:32:57.117211Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)\n2026-04-24T16:34:03.172812Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:34:13.599521Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:34:23.371635Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=21 elapsed=4.397149916s\n2026-04-24T16:34:23.371744Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames\n2026-04-24T16:34:24.346821Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.6MB → 0.4MB (4.0x), 11 JPEGs deleted\n2026-04-24T16:34:25.323782Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 2.0MB → 0.7MB (2.7x), 8 JPEGs deleted\n2026-04-24T16:35:16.265905Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:35:16.396499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:37:09.981293Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=visual_change)\n2026-04-24T16:38:45.635162Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:38:47.663267Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:39:10.322134Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:39:27.552784Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=33 elapsed=2.228011375s\n2026-04-24T16:39:27.552915Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 33 eligible frames\n2026-04-24T16:39:28.615455Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.8MB → 0.6MB (4.8x), 14 JPEGs deleted\n2026-04-24T16:39:30.390392Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.1MB → 1.6MB (2.0x), 17 JPEGs deleted\n2026-04-24T16:40:01.437647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7218881400109780070, trigger=click)\n2026-04-24T16:40:12.586378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:41:05.997041Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6861826947729846030, trigger=click)\n2026-04-24T16:41:11.184592Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6861826947729846030, trigger=click)\n2026-04-24T16:43:15.433697Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8550622008733264339, trigger=click)\n2026-04-24T16:43:15.515804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)\n2026-04-24T16:43:51.515815Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5576357006515458390, trigger=click)\n2026-04-24T16:43:59.714706Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5576357006515458390, trigger=click)\n2026-04-24T16:43:59.785731Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5576357006515458390, trigger=click)\n2026-04-24T16:44:38.173037Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=20 elapsed=7.796779s\n2026-04-24T16:44:38.174424Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 20 eligible frames\n2026-04-24T16:44:39.258439Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 1.8MB → 0.3MB (5.7x), 9 JPEGs deleted\n2026-04-24T16:44:41.729154Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 2.3MB → 1.7MB (1.4x), 9 JPEGs deleted\n2026-04-24T16:48:00.989535Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5576357006515458390, trigger=click)\n2026-04-24T16:48:17.430932Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5576357006515458390, trigger=click)\n2026-04-24T16:49:49.135916Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=17 elapsed=7.403764583s\n2026-04-24T16:49:49.136082Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 17 eligible frames\n2026-04-24T16:49:50.004132Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 1.6MB → 0.3MB (5.1x), 8 JPEGs deleted\n2026-04-24T16:49:50.898114Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 7 frames, 1.9MB → 0.7MB (2.6x), 7 JPEGs deleted\n2026-04-24T16:50:09.364175Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8409739779266792278, trigger=visual_change)\n2026-04-24T16:50:11.237105Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8409739779266792278, trigger=click)\n2026-04-24T16:51:37.931779Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1423930385844614485, trigger=click)\n2026-04-24T16:53:14.381283Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7564119013552971576, trigger=click)\n2026-04-24T16:54:12.231394Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1423930385844614485, trigger=visual_change)\n2026-04-24T16:54:15.266343Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1423930385844614485, trigger=visual_change)\n2026-04-24T16:55:01.568514Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=58 elapsed=10.558641542s\n2026-04-24T16:55:01.569579Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 58 eligible frames\n2026-04-24T16:55:04.609017Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 5.7MB → 1.1MB (5.0x), 28 JPEGs deleted\n2026-04-24T16:55:09.392416Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 5.5MB → 3.1MB (1.8x), 28 JPEGs deleted\n2026-04-24T16:55:39.774741Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3617611630109587613, trigger=click)\n2026-04-24T16:55:39.852272Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3617611630109587613, trigger=click)\n2026-04-24T16:56:40.038632Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-426150959945983082, trigger=click)\n2026-04-24T16:59:26.437906Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-426150959945983082, trigger=visual_change)\n2026-04-24T17:00:21.026565Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=53 elapsed=11.620753209s\n2026-04-24T17:00:21.027475Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 53 eligible frames\n2026-04-24T17:00:24.007228Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 4.3MB → 0.5MB (7.8x), 21 JPEGs deleted\n2026-04-24T17:00:30.315443Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 6.2MB → 3.1MB (2.0x), 30 JPEGs deleted\n2026-04-24T17:01:31.749742Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4978074472044237669, trigger=click)\n2026-04-24T17:02:32.676946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6528076374554576690, trigger=click)\n2026-04-24T17:03:24.566715Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5730479857460890072, trigger=click)\n2026-04-24T17:03:24.646165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5730479857460890072, trigger=click)\n2026-04-24T17:04:36.724352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2722349336895059815, trigger=click)\n2026-04-24T17:05:26.414686Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-255140549253982666, trigger=click)\n2026-04-24T17:05:38.960944Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=49 elapsed=8.570160541s\n2026-04-24T17:05:38.961851Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 49 eligible frames\n2026-04-24T17:05:40.770553Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.8MB → 0.5MB (10.1x), 24 JPEGs deleted\n2026-04-24T17:05:44.093500Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 4.3MB → 2.0MB (2.1x), 23 JPEGs deleted\n2026-04-24T17:10:45.665278Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=57 elapsed=1.565954333s\n2026-04-24T17:10:45.665510Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 57 eligible frames\n2026-04-24T17:10:47.346256Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.1MB → 0.3MB (15.5x), 25 JPEGs deleted\n2026-04-24T17:10:49.931994Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 5.2MB → 2.6MB (2.0x), 30 JPEGs deleted\n2026-04-24T17:12:35.862404Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2722349336895059815, trigger=visual_change)\n2026-04-24T17:15:54.006030Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=35 elapsed=4.067925709s\n2026-04-24T17:15:54.006151Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 35 eligible frames\n2026-04-24T17:15:55.261287Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.6MB → 0.3MB (11.3x), 18 JPEGs deleted\n2026-04-24T17:15:56.815522Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 3.2MB → 1.3MB (2.4x), 15 JPEGs deleted\n2026-04-24T17:20:58.288264Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=1.467426625s\n2026-04-24T17:20:58.288415Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T17:20:59.175263Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.0MB → 0.3MB (6.3x), 10 JPEGs deleted\n2026-04-24T17:21:00.120027Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.3MB → 0.4MB (6.2x), 10 JPEGs deleted\n2026-04-24T17:22:48.235588Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-885508568992678447, trigger=click)\n2026-04-24T17:22:48.306917Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-885508568992678447, trigger=click)\n2026-04-24T17:23:41.318200Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-885508568992678447, trigger=click)\n2026-04-24T17:24:30.499216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3481376117812878957, trigger=click)\n2026-04-24T17:24:30.601163Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3481376117812878957, trigger=click)\n2026-04-24T17:26:07.575025Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=28 elapsed=7.43131375s\n2026-04-24T17:26:07.578806Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames\n2026-04-24T17:26:08.478709Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 2.2MB → 0.3MB (6.9x), 11 JPEGs deleted\n2026-04-24T17:26:09.770241Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.6MB → 1.0MB (2.6x), 15 JPEGs deleted\n2026-04-24T17:26:26.261981Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-885508568992678447, trigger=click)\n2026-04-24T17:26:26.307896Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-885508568992678447, trigger=click)\n2026-04-24T17:27:22.914133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4993652597681536640, trigger=visual_change)\n2026-04-24T17:27:25.987598Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4993652597681536640, trigger=visual_change)","depth":4,"bounds":{"left":0.27027926,"top":0.3735036,"width":0.4800532,"height":0.62649643},"value":"Last login: Fri Apr 24 12:59:23 on ttys007\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-start\ndetected hardware tier: Mid\nwarning: parakeet is not supported on this platform, using whisper-tiny instead\n2026-04-24T13:24:21.985779Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store\nchecking permissions...\n screen recording: ok\n accessibility: ok\n2026-04-24T13:24:22.124681Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6\n2026-04-24T13:24:23.055922Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor\n2026-04-24T13:24:23.059528Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)\n2026-04-24T13:24:23.061097Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)\n2026-04-24T13:24:23.132247Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true\n2026-04-24T13:24:23.132303Z INFO screenpipe: meeting detector enabled — independent of transcription mode\n2026-04-24T13:24:23.132592Z INFO screenpipe: API server listening on 127.0.0.1:3030 (localhost only)\n2026-04-24T13:24:23.132606Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key\n2026-04-24T13:24:23.132938Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)\n2026-04-24T13:24:23.132999Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager\n2026-04-24T13:24:23.132808Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)\n2026-04-24T13:24:23.180699Z INFO screenpipe_core::pipes: loaded pipe: day-recap\n2026-04-24T13:24:23.180978Z INFO screenpipe_core::pipes: loaded pipe: standup-update\n2026-04-24T13:24:23.181420Z INFO screenpipe_core::pipes: loaded pipe: ai-habits\n2026-04-24T13:24:23.181613Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown\n2026-04-24T13:24:23.181801Z INFO screenpipe_core::pipes: loaded pipe: video-export\n2026-04-24T13:24:23.182313Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary\n2026-04-24T13:24:23.182341Z INFO screenpipe_core::pipes: loaded 6 pipes from \"/Users/lukas/.screenpipe/pipes\"\n\n\n\n _ \n __________________ ___ ____ ____ (_____ ___ \n / ___/ ___/ ___/ _ \\/ _ \\/ __ \\ / __ \\/ / __ \\/ _ \\\n (__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/\n/____/\\___/_/ \\___/\\___/_/ /_/ / .___/_/ .___/\\___/ \n /_/ /_/ \n\n\n\npower AI by everything you've seen, said or heard\nopen source | runs locally | developer friendly\n\n\n┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ true │\n│ vision disabled │ false │\n│ pause on DRM content │ false │\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n│ ignored windows │ [\"Boosteroid\"] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n│ api auth │ enabled │\n2026-04-24T13:24:23.186334Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n2026-04-24T13:24:23.198489Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n│ encrypt secrets │ disabled │\n│ retention days │ 14 │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ id: 1 │\n│ │ id: 2 │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ disabled │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-24T13:24:23.216198Z INFO screenpipe: starting UI event capture\n2026-04-24T13:24:23.238868Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-24T13:24:23.260906Z INFO screenpipe_engine::ui_recorder: UI recording session started: 9676eafd-ea8f-4e1a-a5f1-de7bdb79c071\n2026-04-24T13:24:23.260911Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-24T13:24:23.260972Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-23 10:24:23.260965 UTC to 2026-04-24 10:24:23.260965 UTC)\n2026-04-24T13:24:23.261685Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-24T13:24:23.262214Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-24T13:24:23.273443Z INFO screenpipe_engine::server: Server listening on 127.0.0.1:3030\n2026-04-24T13:24:23.304240Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-24T13:24:23.567248Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-24T13:24:23.567289Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-24T13:24:23.567346Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-24T13:24:23.850835Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-24T13:24:23.850880Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-24T13:24:23.850893Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)\n2026-04-24T13:24:23.850901Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)\n2026-04-24T13:24:23.850941Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-24T13:24:25.197204Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)\n2026-04-24T13:24:25.589436Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=77673, dur=103ms\n2026-04-24T13:24:25.630980Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)\n2026-04-24T13:24:25.652818Z INFO sck_rs::stream_manager: invalidated persistent stream for display 1\n2026-04-24T13:24:26.160345Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=77674, dur=198ms\n2026-04-24T13:24:27.471087Z WARN sqlx::query: summary=\"SELECT f.id, f.timestamp, f.offset_index, …\" db.statement=\"\\n\\nSELECT\\n f.id,\\n f.timestamp,\\n f.offset_index,\\n COALESCE(\\n SUBSTR(f.full_text, 1, 200),\\n SUBSTR(f.accessibility_text, 1, 200),\\n (\\n SELECT\\n SUBSTR(ot.text, 1, 200)\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as text,\\n COALESCE(\\n f.app_name,\\n (\\n SELECT\\n ot.app_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as app_name,\\n COALESCE(\\n f.window_name,\\n (\\n SELECT\\n ot.window_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as window_name,\\n COALESCE(vc.device_name, f.device_name) as screen_device,\\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\\n COALESCE(vc.fps, 0.033) as chunk_fps,\\n f.browser_url,\\n f.machine_id\\nFROM\\n frames f\\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\\nWHERE\\n f.timestamp >= ?1\\n AND f.timestamp <= ?2\\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\\nORDER BY\\n f.timestamp DESC,\\n f.offset_index DESC\\nLIMIT\\n 10000\\n\" rows_affected=0 rows_returned=2758 elapsed=4.209235542s\n2026-04-24T13:24:27.488504Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 2758 frame entries, coverage from 2026-04-23 10:24:23.260965 UTC\n2026-04-24T13:24:56.108522Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)\n2026-04-24T13:25:34.118891Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=82 elapsed=10.985025625s\n2026-04-24T13:25:34.121032Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 82 eligible frames\n2026-04-24T13:25:37.475066Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 6.5MB → 0.2MB (30.1x), 39 JPEGs deleted\n2026-04-24T13:25:41.147418Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 41 frames, 9.1MB → 0.3MB (26.4x), 41 JPEGs deleted\n2026-04-24T13:26:53.913464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3587331842305982393, trigger=click)\n2026-04-24T13:30:52.310748Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=2 elapsed=11.152255s\n2026-04-24T13:30:52.313747Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-24T13:36:00.069099Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=9 elapsed=7.594933541s\n2026-04-24T13:36:00.071113Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 9 eligible frames\n2026-04-24T13:36:00.617576Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 4 frames, 0.3MB → 0.1MB (3.6x), 4 JPEGs deleted\n2026-04-24T13:36:01.402540Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 5 frames, 1.0MB → 0.4MB (2.4x), 5 JPEGs deleted\n2026-04-24T13:40:06.828525Z WARN sqlx::query: summary=\"BEGIN IMMEDIATE\" db.statement=\"\" rows_affected=1 rows_returned=0 elapsed=1.076759291s\n2026-04-24T13:40:07.002782Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=195 elapsed=1.250257875s\n2026-04-24T13:41:11.559513Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=92 elapsed=10.151735042s\n2026-04-24T13:41:11.559741Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 92 eligible frames\n2026-04-24T13:41:14.043784Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 2.3MB → 0.1MB (32.3x), 37 JPEGs deleted\n2026-04-24T13:41:21.303349Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 53 frames, 8.7MB → 3.1MB (2.8x), 53 JPEGs deleted\n2026-04-24T13:41:40.887689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7539785768983157715, trigger=click)\n2026-04-24T13:42:34.136767Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3059269999432289894, trigger=click)\n2026-04-24T13:42:45.942807Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3777488472456223409, trigger=click)\n2026-04-24T13:43:01.921357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1871207218552190145, trigger=click)\n2026-04-24T13:44:01.878037Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8495661271621520850, trigger=click)\n2026-04-24T13:46:28.021146Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=40 elapsed=6.713739708s\n2026-04-24T13:46:28.021348Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames\n2026-04-24T13:46:29.141090Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 1.1MB → 0.1MB (17.9x), 18 JPEGs deleted\n2026-04-24T13:46:31.601195Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.7MB → 2.9MB (1.6x), 20 JPEGs deleted\n2026-04-24T13:51:31.692283Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames\n2026-04-24T13:51:32.570330Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.0MB → 0.2MB (4.8x), 13 JPEGs deleted\n2026-04-24T13:51:33.760542Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.9MB → 1.0MB (1.9x), 10 JPEGs deleted\n2026-04-24T13:55:31.626192Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2977185087332333124, trigger=click)\n2026-04-24T13:56:33.924925Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 105 eligible frames\n2026-04-24T13:56:37.179833Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 55 frames, 5.1MB → 1.4MB (3.6x), 55 JPEGs deleted\n2026-04-24T13:56:40.328768Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 48 frames, 7.6MB → 1.3MB (6.0x), 48 JPEGs deleted\n2026-04-24T14:00:47.136298Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Firefox, signals=2)\n2026-04-24T14:00:47.857419Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2938651853865790585, trigger=click)\n2026-04-24T14:00:52.374476Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Firefox, signals=2, browser=true)\n2026-04-24T14:00:52.378086Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=12, app=Firefox, title=None)\n2026-04-24T14:01:40.650767Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 62 eligible frames\n2026-04-24T14:01:42.431196Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 1.9MB → 0.1MB (32.0x), 30 JPEGs deleted\n2026-04-24T14:01:44.259623Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 4.8MB → 0.2MB (23.8x), 30 JPEGs deleted\n2026-04-24T14:06:51.687604Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=54 elapsed=7.415698459s\n2026-04-24T14:06:51.691163Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 54 eligible frames\n2026-04-24T14:06:53.324710Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 1.7MB → 0.1MB (29.0x), 27 JPEGs deleted\n2026-04-24T14:06:54.826559Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.0MB → 0.2MB (19.9x), 25 JPEGs deleted\n2026-04-24T14:11:54.984165Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 93 eligible frames\n2026-04-24T14:11:57.808857Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 48 frames, 3.1MB → 0.1MB (49.5x), 48 JPEGs deleted\n2026-04-24T14:12:00.396251Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 43 frames, 6.8MB → 0.2MB (33.8x), 43 JPEGs deleted\n2026-04-24T14:17:06.109470Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=49 elapsed=5.652470541s\n2026-04-24T14:17:06.109602Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 49 eligible frames\n2026-04-24T14:17:07.677608Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 1.6MB → 0.1MB (27.0x), 25 JPEGs deleted\n2026-04-24T14:17:09.097967Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 3.5MB → 0.2MB (17.6x), 22 JPEGs deleted\n2026-04-24T14:22:13.316698Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=24 elapsed=4.206937709s\n2026-04-24T14:22:13.317436Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 24 eligible frames\n2026-04-24T14:22:14.074811Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 0.7MB → 0.1MB (12.2x), 11 JPEGs deleted\n2026-04-24T14:22:14.844321Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.7MB → 0.2MB (8.9x), 11 JPEGs deleted\n2026-04-24T14:27:16.330019Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=1.474471542s\n2026-04-24T14:27:16.330265Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T14:27:17.027734Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted\n2026-04-24T14:27:17.792405Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted\n2026-04-24T14:32:18.770983Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T14:32:19.478630Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted\n2026-04-24T14:32:20.241056Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted\n2026-04-24T14:37:27.349741Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=7.096181584s\n2026-04-24T14:37:27.353187Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T14:37:28.066685Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted\n2026-04-24T14:37:28.851355Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted\n2026-04-24T14:38:19.407454Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=12, grace=300s)\n2026-04-24T14:39:19.637322Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8577329830578954505, trigger=click)\n2026-04-24T14:39:21.680425Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8317095871263557761, trigger=click)\n2026-04-24T14:39:21.707871Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8317095871263557761, trigger=click)\n2026-04-24T14:40:10.148981Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5676671508452457688, trigger=click)\n2026-04-24T14:42:02.876165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3644563293578755711, trigger=click)\n2026-04-24T14:42:12.151008Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3644563293578755711, trigger=click)\n2026-04-24T14:42:36.098708Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=7.2363725s\n2026-04-24T14:42:36.098834Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T14:42:36.816811Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted\n2026-04-24T14:42:37.598382Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted\n2026-04-24T14:42:43.884371Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1901203473704384943, trigger=click)\n2026-04-24T14:42:43.916542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1901203473704384943, trigger=click)\n2026-04-24T14:43:24.413233Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Idle (timeout=300s, app=Firefox, id=12)\n2026-04-24T14:43:24.855747Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting ended (id=12)\n2026-04-24T14:44:38.941315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1557697903749375374, trigger=click)\n2026-04-24T14:44:38.962591Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1557697903749375374, trigger=click)\n2026-04-24T14:44:39.438011Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1557697903749375374, trigger=click)\n2026-04-24T14:45:24.198550Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8167839925779509873, trigger=click)\n2026-04-24T14:45:25.110117Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8167839925779509873, trigger=click)\n2026-04-24T14:45:38.880039Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3644563293578755711, trigger=click)\n2026-04-24T14:46:09.691532Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8167839925779509873, trigger=click)\n2026-04-24T14:46:23.813781Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4533509598273890786, trigger=click)\n2026-04-24T14:46:23.859560Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4533509598273890786, trigger=click)\n2026-04-24T14:47:44.514826Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2503176719318141451, trigger=click)\n2026-04-24T14:47:44.539391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2503176719318141451, trigger=click)\n2026-04-24T14:47:44.764903Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=21 elapsed=7.257808167s\n2026-04-24T14:47:44.764982Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames\n2026-04-24T14:47:45.473419Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 0.6MB → 0.1MB (10.0x), 9 JPEGs deleted\n2026-04-24T14:47:46.188394Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted\n2026-04-24T14:47:50.085052Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2503176719318141451, trigger=click)\n2026-04-24T14:47:50.106335Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2503176719318141451, trigger=click)\n2026-04-24T14:52:53.441281Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=100 elapsed=7.256992167s\n2026-04-24T14:52:53.441665Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 100 eligible frames\n2026-04-24T14:52:56.554743Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 3.2MB → 0.1MB (50.4x), 49 JPEGs deleted\n2026-04-24T14:52:59.416988Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 7.8MB → 0.2MB (38.4x), 49 JPEGs deleted\n2026-04-24T14:53:50.050387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4956080981675052788, trigger=click)\n2026-04-24T14:55:36.318507Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-991319035522409710, trigger=click)\n2026-04-24T14:55:36.391576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-991319035522409710, trigger=click)\n2026-04-24T14:57:59.569859Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 57 eligible frames\n2026-04-24T14:58:01.300455Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 1.6MB → 0.1MB (25.9x), 24 JPEGs deleted\n2026-04-24T14:58:03.198608Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 4.9MB → 0.2MB (24.6x), 31 JPEGs deleted\n2026-04-24T15:03:08.612242Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=30 elapsed=5.295343459s\n2026-04-24T15:03:08.612821Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 30 eligible frames\n2026-04-24T15:03:09.620798Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 0.9MB → 0.1MB (15.4x), 14 JPEGs deleted\n2026-04-24T15:03:10.811697Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.2MB → 0.2MB (11.3x), 14 JPEGs deleted\n2026-04-24T15:04:26.269378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5667957418966591499, trigger=click)\n2026-04-24T15:04:26.321219Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5667957418966591499, trigger=click)\n2026-04-24T15:08:14.307499Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=25 elapsed=3.392988s\n2026-04-24T15:08:14.307671Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames\n2026-04-24T15:08:15.302981Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 0.7MB → 0.1MB (12.2x), 11 JPEGs deleted\n2026-04-24T15:08:16.186177Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 1.9MB → 0.2MB (9.7x), 12 JPEGs deleted\n2026-04-24T15:13:18.963807Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=37 elapsed=2.767425042s\n2026-04-24T15:13:18.963934Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 37 eligible frames\n2026-04-24T15:13:20.113690Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 1.2MB → 0.1MB (19.7x), 18 JPEGs deleted\n2026-04-24T15:13:21.236764Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.7MB → 0.2MB (13.6x), 17 JPEGs deleted\n2026-04-24T15:14:48.156237Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)\n2026-04-24T15:15:01.132168Z INFO sck_rs::stream_manager: recreating stream for display 1 (resolution change)\n2026-04-24T15:15:01.221025Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=app_switch, monitor=1) — DB pool may be saturated\n2026-04-24T15:15:01.375924Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=app_switch, monitor=2) — DB pool may be saturated\n2026-04-24T15:15:15.842371Z INFO sck_rs::stream_manager: recreating stream for display 2 (resolution change)\n2026-04-24T15:18:28.531831Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=36 elapsed=7.26041775s\n2026-04-24T15:18:28.531955Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 36 eligible frames\n2026-04-24T15:18:29.658166Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 1.1MB → 0.1MB (18.6x), 17 JPEGs deleted\n2026-04-24T15:18:30.768761Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.7MB → 0.2MB (13.6x), 17 JPEGs deleted\n2026-04-24T15:23:31.928536Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=1.148790625s\n2026-04-24T15:23:31.928649Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T15:23:32.642076Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted\n2026-04-24T15:23:33.401791Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted\n2026-04-24T15:28:34.810366Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=8 elapsed=1.39738375s\n2026-04-24T15:28:34.810546Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 8 eligible frames\n2026-04-24T15:28:35.187466Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 3 frames, 0.2MB → 0.1MB (3.5x), 3 JPEGs deleted\n2026-04-24T15:28:35.591687Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 3 frames, 0.5MB → 0.2MB (2.6x), 3 JPEGs deleted\n2026-04-24T15:33:39.031121Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=2 elapsed=3.484074667s\n2026-04-24T15:33:39.031286Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-24T15:43:41.373431Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=2.126509208s\n2026-04-24T15:48:45.005960Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=3.630826208s\n2026-04-24T15:53:46.452410Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.442133375s\n2026-04-24T16:03:50.813556Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=3.725817875s\n2026-04-24T16:08:52.104712Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.289955292s\n2026-04-24T16:14:48.860304Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)\n2026-04-24T16:14:48.885031Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2\n2026-04-24T16:14:49.085988Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)\n2026-04-24T16:14:49.951727Z INFO screenpipe_engine::event_driven_capture: monitor 2 capture recovered after 1 consecutive errors\n2026-04-24T16:15:14.957591Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-24T16:15:15.344344Z INFO screenpipe_engine::event_driven_capture: monitor 1 capture recovered after 1 consecutive errors\n2026-04-24T16:17:13.975782Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7172393451066325016, trigger=click)\n2026-04-24T16:19:00.805923Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=7.986969166s\n2026-04-24T16:19:29.124240Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3129461629380798674, trigger=click)\n2026-04-24T16:19:29.165320Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=click)\n2026-04-24T16:20:57.221933Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=click)\n2026-04-24T16:21:34.158304Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=visual_change)\n2026-04-24T16:21:52.258518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=visual_change)\n2026-04-24T16:24:07.960303Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=7.148022208s\n2026-04-24T16:25:38.292462Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8773909165376335292, trigger=click)\n2026-04-24T16:28:02.880424Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=826123905625364471, trigger=click)\n2026-04-24T16:28:02.928317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=826123905625364471, trigger=click)\n2026-04-24T16:29:02.161685Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5156992524424370675, trigger=visual_change)\n2026-04-24T16:29:11.119509Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5156992524424370675, trigger=visual_change)\n2026-04-24T16:29:15.437543Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=42 elapsed=7.45073025s\n2026-04-24T16:29:15.438417Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 42 eligible frames\n2026-04-24T16:29:17.083173Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 3.2MB → 0.4MB (9.1x), 20 JPEGs deleted\n2026-04-24T16:29:18.972223Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 5.2MB → 1.7MB (3.0x), 22 JPEGs deleted\n2026-04-24T16:29:34.388891Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5156992524424370675, trigger=click)\n2026-04-24T16:29:45.796969Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4817563232530793650, trigger=click)\n2026-04-24T16:32:36.877636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=visual_change)\n2026-04-24T16:32:42.134384Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=visual_change)\n2026-04-24T16:32:44.378087Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)\n2026-04-24T16:32:45.243874Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=visual_change)\n2026-04-24T16:32:54.163388Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8550622008733264339, trigger=click)\n2026-04-24T16:32:54.176256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)\n2026-04-24T16:32:57.087323Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8550622008733264339, trigger=click)\n2026-04-24T16:32:57.117211Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)\n2026-04-24T16:34:03.172812Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:34:13.599521Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:34:23.371635Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=21 elapsed=4.397149916s\n2026-04-24T16:34:23.371744Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames\n2026-04-24T16:34:24.346821Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.6MB → 0.4MB (4.0x), 11 JPEGs deleted\n2026-04-24T16:34:25.323782Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 2.0MB → 0.7MB (2.7x), 8 JPEGs deleted\n2026-04-24T16:35:16.265905Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:35:16.396499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:37:09.981293Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=visual_change)\n2026-04-24T16:38:45.635162Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:38:47.663267Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:39:10.322134Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:39:27.552784Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=33 elapsed=2.228011375s\n2026-04-24T16:39:27.552915Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 33 eligible frames\n2026-04-24T16:39:28.615455Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.8MB → 0.6MB (4.8x), 14 JPEGs deleted\n2026-04-24T16:39:30.390392Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.1MB → 1.6MB (2.0x), 17 JPEGs deleted\n2026-04-24T16:40:01.437647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7218881400109780070, trigger=click)\n2026-04-24T16:40:12.586378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:41:05.997041Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6861826947729846030, trigger=click)\n2026-04-24T16:41:11.184592Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6861826947729846030, trigger=click)\n2026-04-24T16:43:15.433697Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8550622008733264339, trigger=click)\n2026-04-24T16:43:15.515804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)\n2026-04-24T16:43:51.515815Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5576357006515458390, trigger=click)\n2026-04-24T16:43:59.714706Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5576357006515458390, trigger=click)\n2026-04-24T16:43:59.785731Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5576357006515458390, trigger=click)\n2026-04-24T16:44:38.173037Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=20 elapsed=7.796779s\n2026-04-24T16:44:38.174424Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 20 eligible frames\n2026-04-24T16:44:39.258439Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 1.8MB → 0.3MB (5.7x), 9 JPEGs deleted\n2026-04-24T16:44:41.729154Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 2.3MB → 1.7MB (1.4x), 9 JPEGs deleted\n2026-04-24T16:48:00.989535Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5576357006515458390, trigger=click)\n2026-04-24T16:48:17.430932Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5576357006515458390, trigger=click)\n2026-04-24T16:49:49.135916Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=17 elapsed=7.403764583s\n2026-04-24T16:49:49.136082Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 17 eligible frames\n2026-04-24T16:49:50.004132Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 1.6MB → 0.3MB (5.1x), 8 JPEGs deleted\n2026-04-24T16:49:50.898114Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 7 frames, 1.9MB → 0.7MB (2.6x), 7 JPEGs deleted\n2026-04-24T16:50:09.364175Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8409739779266792278, trigger=visual_change)\n2026-04-24T16:50:11.237105Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8409739779266792278, trigger=click)\n2026-04-24T16:51:37.931779Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1423930385844614485, trigger=click)\n2026-04-24T16:53:14.381283Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7564119013552971576, trigger=click)\n2026-04-24T16:54:12.231394Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1423930385844614485, trigger=visual_change)\n2026-04-24T16:54:15.266343Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1423930385844614485, trigger=visual_change)\n2026-04-24T16:55:01.568514Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=58 elapsed=10.558641542s\n2026-04-24T16:55:01.569579Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 58 eligible frames\n2026-04-24T16:55:04.609017Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 5.7MB → 1.1MB (5.0x), 28 JPEGs deleted\n2026-04-24T16:55:09.392416Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 5.5MB → 3.1MB (1.8x), 28 JPEGs deleted\n2026-04-24T16:55:39.774741Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3617611630109587613, trigger=click)\n2026-04-24T16:55:39.852272Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3617611630109587613, trigger=click)\n2026-04-24T16:56:40.038632Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-426150959945983082, trigger=click)\n2026-04-24T16:59:26.437906Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-426150959945983082, trigger=visual_change)\n2026-04-24T17:00:21.026565Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=53 elapsed=11.620753209s\n2026-04-24T17:00:21.027475Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 53 eligible frames\n2026-04-24T17:00:24.007228Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 4.3MB → 0.5MB (7.8x), 21 JPEGs deleted\n2026-04-24T17:00:30.315443Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 6.2MB → 3.1MB (2.0x), 30 JPEGs deleted\n2026-04-24T17:01:31.749742Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4978074472044237669, trigger=click)\n2026-04-24T17:02:32.676946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6528076374554576690, trigger=click)\n2026-04-24T17:03:24.566715Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5730479857460890072, trigger=click)\n2026-04-24T17:03:24.646165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5730479857460890072, trigger=click)\n2026-04-24T17:04:36.724352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2722349336895059815, trigger=click)\n2026-04-24T17:05:26.414686Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-255140549253982666, trigger=click)\n2026-04-24T17:05:38.960944Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=49 elapsed=8.570160541s\n2026-04-24T17:05:38.961851Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 49 eligible frames\n2026-04-24T17:05:40.770553Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.8MB → 0.5MB (10.1x), 24 JPEGs deleted\n2026-04-24T17:05:44.093500Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 4.3MB → 2.0MB (2.1x), 23 JPEGs deleted\n2026-04-24T17:10:45.665278Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=57 elapsed=1.565954333s\n2026-04-24T17:10:45.665510Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 57 eligible frames\n2026-04-24T17:10:47.346256Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.1MB → 0.3MB (15.5x), 25 JPEGs deleted\n2026-04-24T17:10:49.931994Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 5.2MB → 2.6MB (2.0x), 30 JPEGs deleted\n2026-04-24T17:12:35.862404Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2722349336895059815, trigger=visual_change)\n2026-04-24T17:15:54.006030Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=35 elapsed=4.067925709s\n2026-04-24T17:15:54.006151Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 35 eligible frames\n2026-04-24T17:15:55.261287Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.6MB → 0.3MB (11.3x), 18 JPEGs deleted\n2026-04-24T17:15:56.815522Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 3.2MB → 1.3MB (2.4x), 15 JPEGs deleted\n2026-04-24T17:20:58.288264Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=1.467426625s\n2026-04-24T17:20:58.288415Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T17:20:59.175263Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.0MB → 0.3MB (6.3x), 10 JPEGs deleted\n2026-04-24T17:21:00.120027Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.3MB → 0.4MB (6.2x), 10 JPEGs deleted\n2026-04-24T17:22:48.235588Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-885508568992678447, trigger=click)\n2026-04-24T17:22:48.306917Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-885508568992678447, trigger=click)\n2026-04-24T17:23:41.318200Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-885508568992678447, trigger=click)\n2026-04-24T17:24:30.499216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3481376117812878957, trigger=click)\n2026-04-24T17:24:30.601163Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3481376117812878957, trigger=click)\n2026-04-24T17:26:07.575025Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=28 elapsed=7.43131375s\n2026-04-24T17:26:07.578806Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames\n2026-04-24T17:26:08.478709Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 2.2MB → 0.3MB (6.9x), 11 JPEGs deleted\n2026-04-24T17:26:09.770241Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.6MB → 1.0MB (2.6x), 15 JPEGs deleted\n2026-04-24T17:26:26.261981Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-885508568992678447, trigger=click)\n2026-04-24T17:26:26.307896Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-885508568992678447, trigger=click)\n2026-04-24T17:27:22.914133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4993652597681536640, trigger=visual_change)\n2026-04-24T17:27:25.987598Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4993652597681536640, trigger=visual_change)","is_focused":true},{"role":"AXTextField","text":"retention","depth":3,"bounds":{"left":0.6492686,"top":1.0,"width":0.0625,"height":-0.07581806},"automation_id":"_NS:65","value":"retention","role_description":"search text field","subrole":"AXSearchField","is_enabled":true,"is_focused":true},{"role":"AXButton","text":"search","depth":4,"bounds":{"left":0.6499335,"top":1.0,"width":0.00831117,"height":-0.07581806},"role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXButton","text":"cancel","depth":4,"bounds":{"left":0.703125,"top":1.0,"width":0.00731383,"height":-0.07581806},"role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXButton","text":"go left","depth":3,"bounds":{"left":0.7144282,"top":1.0,"width":0.006981383,"height":-0.07661617},"automation_id":"_NS:59","role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXButton","text":"go right","depth":3,"bounds":{"left":0.72140956,"top":1.0,"width":0.006981383,"height":-0.07661617},"automation_id":"_NS:49","role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.36469415,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.36668882,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.45910904,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.46110374,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.55352396,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5555186,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.64793885,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6499335,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7287234,"top":1.0,"width":0.01861702,"height":-0.023144484},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"screenpipe\"","depth":1,"bounds":{"left":0.49634308,"top":1.0,"width":0.027925532,"height":-0.02394259},"role_description":"text"}]...
|
-4993652597681536640
|
338254198220359539
|
idle
|
accessibility
|
NULL
|
Last login: Fri Apr 24 12:59:23 on ttys007
Poetry Last login: Fri Apr 24 12:59:23 on ttys007
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-start
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-04-24T13:24:21.985779Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store
checking permissions...
screen recording: ok
accessibility: ok
2026-04-24T13:24:22.124681Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-04-24T13:24:23.055922Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-04-24T13:24:23.059528Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-04-24T13:24:23.061097Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-04-24T13:24:23.132247Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-04-24T13:24:23.132303Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-04-24T13:24:23.132592Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-04-24T13:24:23.132606Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-04-24T13:24:23.132938Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-04-24T13:24:23.132999Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-04-24T13:24:23.132808Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-04-24T13:24:23.180699Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-04-24T13:24:23.180978Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-04-24T13:24:23.181420Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-04-24T13:24:23.181613Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-04-24T13:24:23.181801Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-04-24T13:24:23.182313Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary
2026-04-24T13:24:23.182341Z INFO screenpipe_core::pipes: loaded 6 pipes from "/Users/lukas/.screenpipe/pipes"
_
__________________ ___ ____ ____ (_____ ___
/ ___/ ___/ ___/ _ \/ _ \/ __ \ / __ \/ / __ \/ _ \
(__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/
/____/\___/_/ \___/\___/_/ /_/ / .___/_/ .___/\___/
/_/ /_/
power AI by everything you've seen, said or heard
open source | runs locally | developer friendly
┌────────────────────────┬────────────────────────────────────┐
│ setting │ value │
├────────────────────────┼────────────────────────────────────┤
│ audio chunk duration │ 30 seconds │
│ port │ 3030 │
│ audio disabled │ true │
│ vision disabled │ false │
│ pause on DRM content │ false │
│ audio engine │ Parakeet │
│ vad engine │ Silero │
│ data directory │ /Users/lukas/.screenpipe │
│ debug mode │ false │
│ telemetry │ true │
│ use pii removal │ true │
│ use all monitors │ true │
│ ignored windows │ ["Boosteroid"] │
│ included windows │ [] │
│ cloud sync │ disabled │
│ auto-destruct pid │ 0 │
│ deepgram key │ not set │
│ api auth │ enabled │
2026-04-24T13:24:23.186334Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)
2026-04-24T13:24:23.198489Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh
│ encrypt secrets │ disabled │
│ retention days │ 14 │
├────────────────────────┼────────────────────────────────────┤
│ languages │ │
│ │ all languages │
├────────────────────────┼────────────────────────────────────┤
│ monitors │ │
│ │ id: 1 │
│ │ id: 2 │
├────────────────────────┼────────────────────────────────────┤
│ audio devices │ │
│ │ disabled │
└────────────────────────┴────────────────────────────────────┘
you are using local processing. all your data stays on your computer.
warning: telemetry is enabled. only error-level data will be sent.
to disable, use the --disable-telemetry flag.
check latest changes here: https://github.com/screenpipe/screenpipe/releases
2026-04-24T13:24:23.216198Z INFO screenpipe: starting UI event capture
2026-04-24T13:24:23.238868Z INFO screenpipe_engine::ui_recorder: Starting UI event capture
2026-04-24T13:24:23.260906Z INFO screenpipe_engine::ui_recorder: UI recording session started: 9676eafd-ea8f-4e1a-a5f1-de7bdb79c071
2026-04-24T13:24:23.260911Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)
2026-04-24T13:24:23.260972Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-23 10:24:23.260965 UTC to 2026-04-24 10:24:23.260965 UTC)
2026-04-24T13:24:23.261685Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)
2026-04-24T13:24:23.262214Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))
2026-04-24T13:24:23.273443Z INFO screenpipe_engine::server: Server listening on [IP_ADDRESS]:3030
2026-04-24T13:24:23.304240Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030
2026-04-24T13:24:23.567248Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)
2026-04-24T13:24:23.567289Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)
2026-04-24T13:24:23.567346Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)
2026-04-24T13:24:23.850835Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-04-24T13:24:23.850880Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-04-24T13:24:23.850893Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)
2026-04-24T13:24:23.850901Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)
2026-04-24T13:24:23.850941Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-04-24T13:24:25.197204Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)
2026-04-24T13:24:25.589436Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=77673, dur=103ms
2026-04-24T13:24:25.630980Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)
2026-04-24T13:24:25.652818Z INFO sck_rs::stream_manager: invalidated persistent stream for display 1
2026-04-24T13:24:26.160345Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=77674, dur=198ms
2026-04-24T13:24:27.471087Z WARN sqlx::query: summary="SELECT f.id, f.timestamp, f.offset_index, …" db.statement="\n\nSELECT\n f.id,\n f.timestamp,\n f.offset_index,\n COALESCE(\n SUBSTR(f.full_text, 1, 200),\n SUBSTR(f.accessibility_text, 1, 200),\n (\n SELECT\n SUBSTR(ot.text, 1, 200)\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as text,\n COALESCE(\n f.app_name,\n (\n SELECT\n ot.app_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as app_name,\n COALESCE(\n f.window_name,\n (\n SELECT\n ot.window_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as window_name,\n COALESCE(vc.device_name, f.device_name) as screen_device,\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\n COALESCE(vc.fps, 0.033) as chunk_fps,\n f.browser_url,\n f.machine_id\nFROM\n frames f\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\nWHERE\n f.timestamp >= ?1\n AND f.timestamp <= ?2\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\nORDER BY\n f.timestamp DESC,\n f.offset_index DESC\nLIMIT\n 10000\n" rows_affected=0 rows_returned=2758 elapsed=4.209235542s
2026-04-24T13:24:27.488504Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 2758 frame entries, coverage from 2026-04-23 10:24:23.260965 UTC
2026-04-24T13:24:56.108522Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)
2026-04-24T13:25:34.118891Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=82 elapsed=10.985025625s
2026-04-24T13:25:34.121032Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 82 eligible frames
2026-04-24T13:25:37.475066Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 6.5MB → 0.2MB (30.1x), 39 JPEGs deleted
2026-04-24T13:25:41.147418Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 41 frames, 9.1MB → 0.3MB (26.4x), 41 JPEGs deleted
2026-04-24T13:26:53.913464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3587331842305982393, trigger=click)
2026-04-24T13:30:52.310748Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=2 elapsed=11.152255s
2026-04-24T13:30:52.313747Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
2026-04-24T13:36:00.069099Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=9 elapsed=7.594933541s
2026-04-24T13:36:00.071113Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 9 eligible frames
2026-04-24T13:36:00.617576Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 4 frames, 0.3MB → 0.1MB (3.6x), 4 JPEGs deleted
2026-04-24T13:36:01.402540Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 5 frames, 1.0MB → 0.4MB (2.4x), 5 JPEGs deleted
2026-04-24T13:40:06.828525Z WARN sqlx::query: summary="BEGIN IMMEDIATE" db.statement="" rows_affected=1 rows_returned=0 elapsed=1.076759291s
2026-04-24T13:40:07.002782Z WARN sqlx::query: summary="SELECT DISTINCT app_name, window_name, …" db.statement="\n\nSELECT\n DISTINCT app_name,\n window_name,\n browser_url\nFROM\n frames\nWHERE\n timestamp > datetime('now', '-30 seconds')\n AND app_name IS NOT NULL\n AND window_name IS NOT NULL\n" rows_affected=0 rows_returned=195 elapsed=1.250257875s
2026-04-24T13:41:11.559513Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=92 elapsed=10.151735042s
2026-04-24T13:41:11.559741Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 92 eligible frames
2026-04-24T13:41:14.043784Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 2.3MB → 0.1MB (32.3x), 37 JPEGs deleted
2026-04-24T13:41:21.303349Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 53 frames, 8.7MB → 3.1MB (2.8x), 53 JPEGs deleted
2026-04-24T13:41:40.887689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7539785768983157715, trigger=click)
2026-04-24T13:42:34.136767Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3059269999432289894, trigger=click)
2026-04-24T13:42:45.942807Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3777488472456223409, trigger=click)
2026-04-24T13:43:01.921357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1871207218552190145, trigger=click)
2026-04-24T13:44:01.878037Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8495661271621520850, trigger=click)
2026-04-24T13:46:28.021146Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=40 elapsed=6.713739708s
2026-04-24T13:46:28.021348Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames
2026-04-24T13:46:29.141090Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 1.1MB → 0.1MB (17.9x), 18 JPEGs deleted
2026-04-24T13:46:31.601195Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.7MB → 2.9MB (1.6x), 20 JPEGs deleted
2026-04-24T13:51:31.692283Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames
2026-04-24T13:51:32.570330Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.0MB → 0.2MB (4.8x), 13 JPEGs deleted
2026-04-24T13:51:33.760542Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.9MB → 1.0MB (1.9x), 10 JPEGs deleted
2026-04-24T13:55:31.626192Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2977185087332333124, trigger=click)
2026-04-24T13:56:33.924925Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 105 eligible frames
2026-04-24T13:56:37.179833Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 55 frames, 5.1MB → 1.4MB (3.6x), 55 JPEGs deleted
2026-04-24T13:56:40.328768Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 48 frames, 7.6MB → 1.3MB (6.0x), 48 JPEGs deleted
2026-04-24T14:00:47.136298Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Firefox, signals=2)
2026-04-24T14:00:47.857419Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2938651853865790585, trigger=click)
2026-04-24T14:00:52.374476Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Firefox, signals=2, browser=true)
2026-04-24T14:00:52.378086Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=12, app=Firefox, title=None)
2026-04-24T14:01:40.650767Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 62 eligible frames
2026-04-24T14:01:42.431196Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 1.9MB → 0.1MB (32.0x), 30 JPEGs deleted
2026-04-24T14:01:44.259623Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 4.8MB → 0.2MB (23.8x), 30 JPEGs deleted
2026-04-24T14:06:51.687604Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=54 elapsed=7.415698459s
2026-04-24T14:06:51.691163Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 54 eligible frames
2026-04-24T14:06:53.324710Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 1.7MB → 0.1MB (29.0x), 27 JPEGs deleted
2026-04-24T14:06:54.826559Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.0MB → 0.2MB (19.9x), 25 JPEGs deleted
2026-04-24T14:11:54.984165Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 93 eligible frames
2026-04-24T14:11:57.808857Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 48 frames, 3.1MB → 0.1MB (49.5x), 48 JPEGs deleted
2026-04-24T14:12:00.396251Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 43 frames, 6.8MB → 0.2MB (33.8x), 43 JPEGs deleted
2026-04-24T14:17:06.109470Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=49 elapsed=5.652470541s
2026-04-24T14:17:06.109602Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 49 eligible frames
2026-04-24T14:17:07.677608Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 1.6MB → 0.1MB (27.0x), 25 JPEGs deleted
2026-04-24T14:17:09.097967Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 3.5MB → 0.2MB (17.6x), 22 JPEGs deleted
2026-04-24T14:22:13.316698Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=24 elapsed=4.206937709s
2026-04-24T14:22:13.317436Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 24 eligible frames
2026-04-24T14:22:14.074811Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 0.7MB → 0.1MB (12.2x), 11 JPEGs deleted
2026-04-24T14:22:14.844321Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.7MB → 0.2MB (8.9x), 11 JPEGs deleted
2026-04-24T14:27:16.330019Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=22 elapsed=1.474471542s
2026-04-24T14:27:16.330265Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames
2026-04-24T14:27:17.027734Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted
2026-04-24T14:27:17.792405Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted
2026-04-24T14:32:18.770983Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames
2026-04-24T14:32:19.478630Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted
2026-04-24T14:32:20.241056Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted
2026-04-24T14:37:27.349741Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=22 elapsed=7.096181584s
2026-04-24T14:37:27.353187Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames
2026-04-24T14:37:28.066685Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted
2026-04-24T14:37:28.851355Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted
2026-04-24T14:38:19.407454Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=12, grace=300s)
2026-04-24T14:39:19.637322Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8577329830578954505, trigger=click)
2026-04-24T14:39:21.680425Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8317095871263557761, trigger=click)
2026-04-24T14:39:21.707871Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8317095871263557761, trigger=click)
2026-04-24T14:40:10.148981Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5676671508452457688, trigger=click)
2026-04-24T14:42:02.876165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3644563293578755711, trigger=click)
2026-04-24T14:42:12.151008Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3644563293578755711, trigger=click)
2026-04-24T14:42:36.098708Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=22 elapsed=7.2363725s
2026-04-24T14:42:36.098834Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames
2026-04-24T14:42:36.816811Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted
2026-04-24T14:42:37.598382Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted
2026-04-24T14:42:43.884371Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1901203473704384943, trigger=click)
2026-04-24T14:42:43.916542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1901203473704384943, trigger=click)
2026-04-24T14:43:24.413233Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Idle (timeout=300s, app=Firefox, id=12)
2026-04-24T14:43:24.855747Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting ended (id=12)
2026-04-24T14:44:38.941315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1557697903749375374, trigger=click)
2026-04-24T14:44:38.962591Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1557697903749375374, trigger=click)
2026-04-24T14:44:39.438011Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1557697903749375374, trigger=click)
2026-04-24T14:45:24.198550Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8167839925779509873, trigger=click)
2026-04-24T14:45:25.110117Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8167839925779509873, trigger=click)
2026-04-24T14:45:38.880039Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3644563293578755711, trigger=click)
2026-04-24T14:46:09.691532Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8167839925779509873, trigger=click)
2026-04-24T14:46:23.813781Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4533509598273890786, trigger=click)
2026-04-24T14:46:23.859560Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4533509598273890786, trigger=click)
2026-04-24T14:47:44.514826Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2503176719318141451, trigger=click)
2026-04-24T14:47:44.539391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2503176719318141451, trigger=click)
2026-04-24T14:47:44.764903Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=21 elapsed=7.257808167s
2026-04-24T14:47:44.764982Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames
2026-04-24T14:47:45.473419Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 0.6MB → 0.1MB (10.0x), 9 JPEGs deleted
2026-04-24T14:47:46.188394Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted
2026-04-24T14:47:50.085052Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2503176719318141451, trigger=click)
2026-04-24T14:47:50.106335Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2503176719318141451, trigger=click)
2026-04-24T14:52:53.441281Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=100 elapsed=7.256992167s
2026-04-24T14:52:53.441665Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 100 eligible frames
2026-04-24T14:52:56.554743Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 3.2MB → 0.1MB (50.4x), 49 JPEGs deleted
2026-04-24T14:52:59.416988Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 7.8MB → 0.2MB (38.4x), 49 JPEGs deleted
2026-04-24T14:53:50.050387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4956080981675052788, trigger=click)
2026-04-24T14:55:36.318507Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-991319035522409710, trigger=click)
2026-04-24T14:55:36.391576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-991319035522409710, trigger=click)
2026-04-24T14:57:59.569859Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 57 eligible frames
2026-04-24T14:58:01.300455Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 1.6MB → 0.1MB (25.9x), 24 JPEGs deleted
2026-04-24T14:58:03.198608Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 4.9MB → 0.2MB (24.6x), 31 JPEGs deleted
2026-04-24T15:03:08.612242Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=30 elapsed=5.295343459s
2026-04-24T15:03:08.612821Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 30 eligible frames
2026-04-24T15:03:09.620798Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 0.9MB → 0.1MB (15.4x), 14 JPEGs deleted
2026-04-24T15:03:10.811697Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.2MB → 0.2MB (11.3x), 14 JPEGs deleted
2026-04-24T15:04:26.269378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5667957418966591499, trigger=click)
2026-04-24T15:04:26.321219Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5667957418966591499, trigger=click)
2026-04-24T15:08:14.307499Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=25 elapsed=3.392988s
2026-04-24T15:08:14.307671Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames
2026-04-24T15:08:15.302981Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 0.7MB → 0.1MB (12.2x), 11 JPEGs deleted
2026-04-24T15:08:16.186177Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 1.9MB → 0.2MB (9.7x), 12 JPEGs deleted
2026-04-24T15:13:18.963807Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=37 elapsed=2.767425042s
2026-04-24T15:13:18.963934Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 37 eligible frames
2026-04-24T15:13:20.113690Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 1.2MB → 0.1MB (19.7x), 18 JPEGs deleted
2026-04-24T15:13:21.236764Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.7MB → 0.2MB (13.6x), 17 JPEGs deleted
2026-04-24T15:14:48.156237Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)
2026-04-24T15:15:01.132168Z INFO sck_rs::stream_manager: recreating stream for display 1 (resolution change)
2026-04-24T15:15:01.221025Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=app_switch, monitor=1) — DB pool may be saturated
2026-04-24T15:15:01.375924Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=app_switch, monitor=2) — DB pool may be saturated
2026-04-24T15:15:15.842371Z INFO sck_rs::stream_manager: recreating stream for display 2 (resolution change)
2026-04-24T15:18:28.531831Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=36 elapsed=7.26041775s
2026-04-24T15:18:28.531955Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 36 eligible frames
2026-04-24T15:18:29.658166Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 1.1MB → 0.1MB (18.6x), 17 JPEGs deleted
2026-04-24T15:18:30.768761Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.7MB → 0.2MB (13.6x), 17 JPEGs deleted
2026-04-24T15:23:31.928536Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=22 elapsed=1.148790625s
2026-04-24T15:23:31.928649Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames
2026-04-24T15:23:32.642076Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted
2026-04-24T15:23:33.401791Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted
2026-04-24T15:28:34.810366Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=8 elapsed=1.39738375s
2026-04-24T15:28:34.810546Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 8 eligible frames
2026-04-24T15:28:35.187466Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 3 frames, 0.2MB → 0.1MB (3.5x), 3 JPEGs deleted
2026-04-24T15:28:35.591687Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 3 frames, 0.5MB → 0.2MB (2.6x), 3 JPEGs deleted
2026-04-24T15:33:39.031121Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=2 elapsed=3.484074667s
2026-04-24T15:33:39.031286Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
2026-04-24T15:43:41.373431Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=0 elapsed=2.126509208s
2026-04-24T15:48:45.005960Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=0 elapsed=3.630826208s
2026-04-24T15:53:46.452410Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=0 elapsed=1.442133375s
2026-04-24T16:03:50.813556Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=0 elapsed=3.725817875s
2026-04-24T16:08:52.104712Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=0 elapsed=1.289955292s
2026-04-24T16:14:48.860304Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)
2026-04-24T16:14:48.885031Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2
2026-04-24T16:14:49.085988Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)
2026-04-24T16:14:49.951727Z INFO screenpipe_engine::event_driven_capture: monitor 2 capture recovered after 1 consecutive errors
2026-04-24T16:15:14.957591Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)
2026-04-24T16:15:15.344344Z INFO screenpipe_engine::event_driven_capture: monitor 1 capture recovered after 1 consecutive errors
2026-04-24T16:17:13.975782Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7172393451066325016, trigger=click)
2026-04-24T16:19:00.805923Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=0 elapsed=7.986969166s
2026-04-24T16:19:29.124240Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3129461629380798674, trigger=click)
2026-04-24T16:19:29.165320Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=click)
2026-04-24T16:20:57.221933Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=click)
2026-04-24T16:21:34.158304Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=visual_change)
2026-04-24T16:21:52.258518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=visual_change)
2026-04-24T16:24:07.960303Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=0 elapsed=7.148022208s
2026-04-24T16:25:38.292462Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8773909165376335292, trigger=click)
2026-04-24T16:28:02.880424Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=826123905625364471, trigger=click)
2026-04-24T16:28:02.928317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=826123905625364471, trigger=click)
2026-04-24T16:29:02.161685Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5156992524424370675, trigger=visual_change)
2026-04-24T16:29:11.119509Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5156992524424370675, trigger=visual_change)
2026-04-24T16:29:15.437543Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=42 elapsed=7.45073025s
2026-04-24T16:29:15.438417Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 42 eligible frames
2026-04-24T16:29:17.083173Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 3.2MB → 0.4MB (9.1x), 20 JPEGs deleted
2026-04-24T16:29:18.972223Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 5.2MB → 1.7MB (3.0x), 22 JPEGs deleted
2026-04-24T16:29:34.388891Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5156992524424370675, trigger=click)
2026-04-24T16:29:45.796969Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4817563232530793650, trigger=click)
2026-04-24T16:32:36.877636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=visual_change)
2026-04-24T16:32:42.134384Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=visual_change)
2026-04-24T16:32:44.378087Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)
2026-04-24T16:32:45.243874Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=visual_change)
2026-04-24T16:32:54.163388Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8550622008733264339, trigger=click)
2026-04-24T16:32:54.176256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)
2026-04-24T16:32:57.087323Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8550622008733264339, trigger=click)
2026-04-24T16:32:57.117211Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)
2026-04-24T16:34:03.172812Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:34:13.599521Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:34:23.371635Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=21 elapsed=4.397149916s
2026-04-24T16:34:23.371744Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames
2026-04-24T16:34:24.346821Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.6MB → 0.4MB (4.0x), 11 JPEGs deleted
2026-04-24T16:34:25.323782Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 2.0MB → 0.7MB (2.7x), 8 JPEGs deleted
2026-04-24T16:35:16.265905Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:35:16.396499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:37:09.981293Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=visual_change)
2026-04-24T16:38:45.635162Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:38:47.663267Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:39:10.322134Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:39:27.552784Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=33 elapsed=2.228011375s
2026-04-24T16:39:27.552915Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 33 eligible frames
2026-04-24T16:39:28.615455Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.8MB → 0.6MB (4.8x), 14 JPEGs deleted
2026-04-24T16:39:30.390392Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.1MB → 1.6MB (2.0x), 17 JPEGs deleted
2026-04-24T16:40:01.437647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7218881400109780070, trigger=click)
2026-04-24T16:40:12.586378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:41:05.997041Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6861826947729846030, trigger=click)
2026-04-24T16:41:11.184592Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6861826947729846030, trigger=click)
2026-04-24T16:43:15.433697Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8550622008733264339, trigger=click)
2026-04-24T16:43:15.515804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)
2026-04-24T16:43:51.515815Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5576357006515458390, trigger=click)
2026-04-24T16:43:59.714706Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5576357006515458390, trigger=click)
2026-04-24T16:43:59.785731Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5576357006515458390, trigger=click)
2026-04-24T16:44:38.173037Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=20 elapsed=7.796779s
2026-04-24T16:44:38.174424Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 20 eligible frames
2026-04-24T16:44:39.258439Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 1.8MB → 0.3MB (5.7x), 9 JPEGs deleted
2026-04-24T16:44:41.729154Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 2.3MB → 1.7MB (1.4x), 9 JPEGs deleted
2026-04-24T16:48:00.989535Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5576357006515458390, trigger=click)
2026-04-24T16:48:17.430932Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5576357006515458390, trigger=click)
2026-04-24T16:49:49.135916Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=17 elapsed=7.403764583s
2026-04-24T16:49:49.136082Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 17 eligible frames
2026-04-24T16:49:50.004132Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 1.6MB → 0.3MB (5.1x), 8 JPEGs deleted
2026-04-24T16:49:50.898114Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 7 frames, 1.9MB → 0.7MB (2.6x), 7 JPEGs deleted
2026-04-24T16:50:09.364175Z INFO screenpipe_engine::event_driven_capture: content d...
|
79068
|
|
79070
|
2033
|
2
|
2026-04-24T14:27:31.935862+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-24/1777 /Users/lukas/.screenpipe/data/data/2026-04-24/1777040851935_m1.jpg...
|
iTerm2
|
screenpipe"
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Last login: Fri Apr 24 12:59:23 on ttys007
Poetry Last login: Fri Apr 24 12:59:23 on ttys007
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-start
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-04-24T13:24:21.985779Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store
checking permissions...
screen recording: ok
accessibility: ok
2026-04-24T13:24:22.124681Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-04-24T13:24:23.055922Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-04-24T13:24:23.059528Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-04-24T13:24:23.061097Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-04-24T13:24:23.132247Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-04-24T13:24:23.132303Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-04-24T13:24:23.132592Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-04-24T13:24:23.132606Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-04-24T13:24:23.132938Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-04-24T13:24:23.132999Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-04-24T13:24:23.132808Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-04-24T13:24:23.180699Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-04-24T13:24:23.180978Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-04-24T13:24:23.181420Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-04-24T13:24:23.181613Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-04-24T13:24:23.181801Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-04-24T13:24:23.182313Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary
2026-04-24T13:24:23.182341Z INFO screenpipe_core::pipes: loaded 6 pipes from "/Users/lukas/.screenpipe/pipes"
_
__________________ ___ ____ ____ (_____ ___
/ ___/ ___/ ___/ _ \/ _ \/ __ \ / __ \/ / __ \/ _ \
(__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/
/____/\___/_/ \___/\___/_/ /_/ / .___/_/ .___/\___/
/_/ /_/
power AI by everything you've seen, said or heard
open source | runs locally | developer friendly
┌────────────────────────┬────────────────────────────────────┐
│ setting │ value │
├────────────────────────┼────────────────────────────────────┤
│ audio chunk duration │ 30 seconds │
│ port │ 3030 │
│ audio disabled │ true │
│ vision disabled │ false │
│ pause on DRM content │ false │
│ audio engine │ Parakeet │
│ vad engine │ Silero │
│ data directory │ /Users/lukas/.screenpipe │
│ debug mode │ false │
│ telemetry │ true │
│ use pii removal │ true │
│ use all monitors │ true │
│ ignored windows │ ["Boosteroid"] │
│ included windows │ [] │
│ cloud sync │ disabled │
│ auto-destruct pid │ 0 │
│ deepgram key │ not set │
│ api auth │ enabled │
2026-04-24T13:24:23.186334Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)
2026-04-24T13:24:23.198489Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh
│ encrypt secrets │ disabled │
│ retention days │ 14 │
├────────────────────────┼────────────────────────────────────┤
│ languages │ │
│ │ all languages │
├────────────────────────┼────────────────────────────────────┤
│ monitors │ │
│ │ id: 1 │
│ │ id: 2 │
├────────────────────────┼────────────────────────────────────┤
│ audio devices │ │
│ │ disabled │
└────────────────────────┴────────────────────────────────────┘
you are using local processing. all your data stays on your computer.
warning: telemetry is enabled. only error-level data will be sent.
to disable, use the --disable-telemetry flag.
check latest changes here: https://github.com/screenpipe/screenpipe/releases
2026-04-24T13:24:23.216198Z INFO screenpipe: starting UI event capture
2026-04-24T13:24:23.238868Z INFO screenpipe_engine::ui_recorder: Starting UI event capture
2026-04-24T13:24:23.260906Z INFO screenpipe_engine::ui_recorder: UI recording session started: 9676eafd-ea8f-4e1a-a5f1-de7bdb79c071
2026-04-24T13:24:23.260911Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)
2026-04-24T13:24:23.260972Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-23 10:24:23.260965 UTC to 2026-04-24 10:24:23.260965 UTC)
2026-04-24T13:24:23.261685Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)
2026-04-24T13:24:23.262214Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))
2026-04-24T13:24:23.273443Z INFO screenpipe_engine::server: Server listening on [IP_ADDRESS]:3030
2026-04-24T13:24:23.304240Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030
2026-04-24T13:24:23.567248Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)
2026-04-24T13:24:23.567289Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)
2026-04-24T13:24:23.567346Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)
2026-04-24T13:24:23.850835Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-04-24T13:24:23.850880Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-04-24T13:24:23.850893Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)
2026-04-24T13:24:23.850901Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)
2026-04-24T13:24:23.850941Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-04-24T13:24:25.197204Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)
2026-04-24T13:24:25.589436Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=77673, dur=103ms
2026-04-24T13:24:25.630980Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)
2026-04-24T13:24:25.652818Z INFO sck_rs::stream_manager: invalidated persistent stream for display 1
2026-04-24T13:24:26.160345Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=77674, dur=198ms
2026-04-24T13:24:27.471087Z WARN sqlx::query: summary="SELECT f.id, f.timestamp, f.offset_index, …" db.statement="\n\nSELECT\n f.id,\n f.timestamp,\n f.offset_index,\n COALESCE(\n SUBSTR(f.full_text, 1, 200),\n SUBSTR(f.accessibility_text, 1, 200),\n (\n SELECT\n SUBSTR(ot.text, 1, 200)\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as text,\n COALESCE(\n f.app_name,\n (\n SELECT\n ot.app_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as app_name,\n COALESCE(\n f.window_name,\n (\n SELECT\n ot.window_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as window_name,\n COALESCE(vc.device_name, f.device_name) as screen_device,\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\n COALESCE(vc.fps, 0.033) as chunk_fps,\n f.browser_url,\n f.machine_id\nFROM\n frames f\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\nWHERE\n f.timestamp >= ?1\n AND f.timestamp <= ?2\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\nORDER BY\n f.timestamp DESC,\n f.offset_index DESC\nLIMIT\n 10000\n" rows_affected=0 rows_returned=2758 elapsed=4.209235542s
2026-04-24T13:24:27.488504Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 2758 frame entries, coverage from 2026-04-23 10:24:23.260965 UTC
2026-04-24T13:24:56.108522Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)
2026-04-24T13:25:34.118891Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=82 elapsed=10.985025625s
2026-04-24T13:25:34.121032Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 82 eligible frames
2026-04-24T13:25:37.475066Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 6.5MB → 0.2MB (30.1x), 39 JPEGs deleted
2026-04-24T13:25:41.147418Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 41 frames, 9.1MB → 0.3MB (26.4x), 41 JPEGs deleted
2026-04-24T13:26:53.913464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3587331842305982393, trigger=click)
2026-04-24T13:30:52.310748Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=2 elapsed=11.152255s
2026-04-24T13:30:52.313747Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
2026-04-24T13:36:00.069099Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=9 elapsed=7.594933541s
2026-04-24T13:36:00.071113Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 9 eligible frames
2026-04-24T13:36:00.617576Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 4 frames, 0.3MB → 0.1MB (3.6x), 4 JPEGs deleted
2026-04-24T13:36:01.402540Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 5 frames, 1.0MB → 0.4MB (2.4x), 5 JPEGs deleted
2026-04-24T13:40:06.828525Z WARN sqlx::query: summary="BEGIN IMMEDIATE" db.statement="" rows_affected=1 rows_returned=0 elapsed=1.076759291s
2026-04-24T13:40:07.002782Z WARN sqlx::query: summary="SELECT DISTINCT app_name, window_name, …" db.statement="\n\nSELECT\n DISTINCT app_name,\n window_name,\n browser_url\nFROM\n frames\nWHERE\n timestamp > datetime('now', '-30 seconds')\n AND app_name IS NOT NULL\n AND window_name IS NOT NULL\n" rows_affected=0 rows_returned=195 elapsed=1.250257875s
2026-04-24T13:41:11.559513Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=92 elapsed=10.151735042s
2026-04-24T13:41:11.559741Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 92 eligible frames
2026-04-24T13:41:14.043784Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 2.3MB → 0.1MB (32.3x), 37 JPEGs deleted
2026-04-24T13:41:21.303349Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 53 frames, 8.7MB → 3.1MB (2.8x), 53 JPEGs deleted
2026-04-24T13:41:40.887689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7539785768983157715, trigger=click)
2026-04-24T13:42:34.136767Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3059269999432289894, trigger=click)
2026-04-24T13:42:45.942807Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3777488472456223409, trigger=click)
2026-04-24T13:43:01.921357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1871207218552190145, trigger=click)
2026-04-24T13:44:01.878037Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8495661271621520850, trigger=click)
2026-04-24T13:46:28.021146Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=40 elapsed=6.713739708s
2026-04-24T13:46:28.021348Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames
2026-04-24T13:46:29.141090Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 1.1MB → 0.1MB (17.9x), 18 JPEGs deleted
2026-04-24T13:46:31.601195Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.7MB → 2.9MB (1.6x), 20 JPEGs deleted
2026-04-24T13:51:31.692283Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames
2026-04-24T13:51:32.570330Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.0MB → 0.2MB (4.8x), 13 JPEGs deleted
2026-04-24T13:51:33.760542Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.9MB → 1.0MB (1.9x), 10 JPEGs deleted
2026-04-24T13:55:31.626192Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2977185087332333124, trigger=click)
2026-04-24T13:56:33.924925Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 105 eligible frames
2026-04-24T13:56:37.179833Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 55 frames, 5.1MB → 1.4MB (3.6x), 55 JPEGs deleted
2026-04-24T13:56:40.328768Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 48 frames, 7.6MB → 1.3MB (6.0x), 48 JPEGs deleted
2026-04-24T14:00:47.136298Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Firefox, signals=2)
2026-04-24T14:00:47.857419Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2938651853865790585, trigger=click)
2026-04-24T14:00:52.374476Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Firefox, signals=2, browser=true)
2026-04-24T14:00:52.378086Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=12, app=Firefox, title=None)
2026-04-24T14:01:40.650767Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 62 eligible frames
2026-04-24T14:01:42.431196Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 1.9MB → 0.1MB (32.0x), 30 JPEGs deleted
2026-04-24T14:01:44.259623Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 4.8MB → 0.2MB (23.8x), 30 JPEGs deleted
2026-04-24T14:06:51.687604Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=54 elapsed=7.415698459s
2026-04-24T14:06:51.691163Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 54 eligible frames
2026-04-24T14:06:53.324710Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 1.7MB → 0.1MB (29.0x), 27 JPEGs deleted
2026-04-24T14:06:54.826559Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.0MB → 0.2MB (19.9x), 25 JPEGs deleted
2026-04-24T14:11:54.984165Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 93 eligible frames
2026-04-24T14:11:57.808857Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 48 frames, 3.1MB → 0.1MB (49.5x), 48 JPEGs deleted
2026-04-24T14:12:00.396251Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 43 frames, 6.8MB → 0.2MB (33.8x), 43 JPEGs deleted
2026-04-24T14:17:06.109470Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=49 elapsed=5.652470541s
2026-04-24T14:17:06.109602Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 49 eligible frames
2026-04-24T14:17:07.677608Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 1.6MB → 0.1MB (27.0x), 25 JPEGs deleted
2026-04-24T14:17:09.097967Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 3.5MB → 0.2MB (17.6x), 22 JPEGs deleted
2026-04-24T14:22:13.316698Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=24 elapsed=4.206937709s
2026-04-24T14:22:13.317436Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 24 eligible frames
2026-04-24T14:22:14.074811Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 0.7MB → 0.1MB (12.2x), 11 JPEGs deleted
2026-04-24T14:22:14.844321Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.7MB → 0.2MB (8.9x), 11 JPEGs deleted
2026-04-24T14:27:16.330019Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=22 elapsed=1.474471542s
2026-04-24T14:27:16.330265Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames
2026-04-24T14:27:17.027734Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted
2026-04-24T14:27:17.792405Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted
2026-04-24T14:32:18.770983Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames
2026-04-24T14:32:19.478630Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted
2026-04-24T14:32:20.241056Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted
2026-04-24T14:37:27.349741Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=22 elapsed=7.096181584s
2026-04-24T14:37:27.353187Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames
2026-04-24T14:37:28.066685Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted
2026-04-24T14:37:28.851355Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted
2026-04-24T14:38:19.407454Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=12, grace=300s)
2026-04-24T14:39:19.637322Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8577329830578954505, trigger=click)
2026-04-24T14:39:21.680425Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8317095871263557761, trigger=click)
2026-04-24T14:39:21.707871Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8317095871263557761, trigger=click)
2026-04-24T14:40:10.148981Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5676671508452457688, trigger=click)
2026-04-24T14:42:02.876165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3644563293578755711, trigger=click)
2026-04-24T14:42:12.151008Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3644563293578755711, trigger=click)
2026-04-24T14:42:36.098708Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=22 elapsed=7.2363725s
2026-04-24T14:42:36.098834Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames
2026-04-24T14:42:36.816811Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted
2026-04-24T14:42:37.598382Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted
2026-04-24T14:42:43.884371Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1901203473704384943, trigger=click)
2026-04-24T14:42:43.916542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1901203473704384943, trigger=click)
2026-04-24T14:43:24.413233Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Idle (timeout=300s, app=Firefox, id=12)
2026-04-24T14:43:24.855747Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting ended (id=12)
2026-04-24T14:44:38.941315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1557697903749375374, trigger=click)
2026-04-24T14:44:38.962591Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1557697903749375374, trigger=click)
2026-04-24T14:44:39.438011Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1557697903749375374, trigger=click)
2026-04-24T14:45:24.198550Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8167839925779509873, trigger=click)
2026-04-24T14:45:25.110117Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8167839925779509873, trigger=click)
2026-04-24T14:45:38.880039Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3644563293578755711, trigger=click)
2026-04-24T14:46:09.691532Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8167839925779509873, trigger=click)
2026-04-24T14:46:23.813781Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4533509598273890786, trigger=click)
2026-04-24T14:46:23.859560Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4533509598273890786, trigger=click)
2026-04-24T14:47:44.514826Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2503176719318141451, trigger=click)
2026-04-24T14:47:44.539391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2503176719318141451, trigger=click)
2026-04-24T14:47:44.764903Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=21 elapsed=7.257808167s
2026-04-24T14:47:44.764982Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames
2026-04-24T14:47:45.473419Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 0.6MB → 0.1MB (10.0x), 9 JPEGs deleted
2026-04-24T14:47:46.188394Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted
2026-04-24T14:47:50.085052Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2503176719318141451, trigger=click)
2026-04-24T14:47:50.106335Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2503176719318141451, trigger=click)
2026-04-24T14:52:53.441281Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=100 elapsed=7.256992167s
2026-04-24T14:52:53.441665Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 100 eligible frames
2026-04-24T14:52:56.554743Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 3.2MB → 0.1MB (50.4x), 49 JPEGs deleted
2026-04-24T14:52:59.416988Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 7.8MB → 0.2MB (38.4x), 49 JPEGs deleted
2026-04-24T14:53:50.050387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4956080981675052788, trigger=click)
2026-04-24T14:55:36.318507Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-991319035522409710, trigger=click)
2026-04-24T14:55:36.391576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-991319035522409710, trigger=click)
2026-04-24T14:57:59.569859Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 57 eligible frames
2026-04-24T14:58:01.300455Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 1.6MB → 0.1MB (25.9x), 24 JPEGs deleted
2026-04-24T14:58:03.198608Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 4.9MB → 0.2MB (24.6x), 31 JPEGs deleted
2026-04-24T15:03:08.612242Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=30 elapsed=5.295343459s
2026-04-24T15:03:08.612821Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 30 eligible frames
2026-04-24T15:03:09.620798Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 0.9MB → 0.1MB (15.4x), 14 JPEGs deleted
2026-04-24T15:03:10.811697Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.2MB → 0.2MB (11.3x), 14 JPEGs deleted
2026-04-24T15:04:26.269378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5667957418966591499, trigger=click)
2026-04-24T15:04:26.321219Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5667957418966591499, trigger=click)
2026-04-24T15:08:14.307499Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=25 elapsed=3.392988s
2026-04-24T15:08:14.307671Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames
2026-04-24T15:08:15.302981Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 0.7MB → 0.1MB (12.2x), 11 JPEGs deleted
2026-04-24T15:08:16.186177Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 1.9MB → 0.2MB (9.7x), 12 JPEGs deleted
2026-04-24T15:13:18.963807Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=37 elapsed=2.767425042s
2026-04-24T15:13:18.963934Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 37 eligible frames
2026-04-24T15:13:20.113690Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 1.2MB → 0.1MB (19.7x), 18 JPEGs deleted
2026-04-24T15:13:21.236764Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.7MB → 0.2MB (13.6x), 17 JPEGs deleted
2026-04-24T15:14:48.156237Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)
2026-04-24T15:15:01.132168Z INFO sck_rs::stream_manager: recreating stream for display 1 (resolution change)
2026-04-24T15:15:01.221025Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=app_switch, monitor=1) — DB pool may be saturated
2026-04-24T15:15:01.375924Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=app_switch, monitor=2) — DB pool may be saturated
2026-04-24T15:15:15.842371Z INFO sck_rs::stream_manager: recreating stream for display 2 (resolution change)
2026-04-24T15:18:28.531831Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=36 elapsed=7.26041775s
2026-04-24T15:18:28.531955Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 36 eligible frames
2026-04-24T15:18:29.658166Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 1.1MB → 0.1MB (18.6x), 17 JPEGs deleted
2026-04-24T15:18:30.768761Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.7MB → 0.2MB (13.6x), 17 JPEGs deleted
2026-04-24T15:23:31.928536Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=22 elapsed=1.148790625s
2026-04-24T15:23:31.928649Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames
2026-04-24T15:23:32.642076Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted
2026-04-24T15:23:33.401791Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted
2026-04-24T15:28:34.810366Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=8 elapsed=1.39738375s
2026-04-24T15:28:34.810546Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 8 eligible frames
2026-04-24T15:28:35.187466Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 3 frames, 0.2MB → 0.1MB (3.5x), 3 JPEGs deleted
2026-04-24T15:28:35.591687Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 3 frames, 0.5MB → 0.2MB (2.6x), 3 JPEGs deleted
2026-04-24T15:33:39.031121Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=2 elapsed=3.484074667s
2026-04-24T15:33:39.031286Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
2026-04-24T15:43:41.373431Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=0 elapsed=2.126509208s
2026-04-24T15:48:45.005960Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=0 elapsed=3.630826208s
2026-04-24T15:53:46.452410Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=0 elapsed=1.442133375s
2026-04-24T16:03:50.813556Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=0 elapsed=3.725817875s
2026-04-24T16:08:52.104712Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=0 elapsed=1.289955292s
2026-04-24T16:14:48.860304Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)
2026-04-24T16:14:48.885031Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2
2026-04-24T16:14:49.085988Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)
2026-04-24T16:14:49.951727Z INFO screenpipe_engine::event_driven_capture: monitor 2 capture recovered after 1 consecutive errors
2026-04-24T16:15:14.957591Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)
2026-04-24T16:15:15.344344Z INFO screenpipe_engine::event_driven_capture: monitor 1 capture recovered after 1 consecutive errors
2026-04-24T16:17:13.975782Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7172393451066325016, trigger=click)
2026-04-24T16:19:00.805923Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=0 elapsed=7.986969166s
2026-04-24T16:19:29.124240Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3129461629380798674, trigger=click)
2026-04-24T16:19:29.165320Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=click)
2026-04-24T16:20:57.221933Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=click)
2026-04-24T16:21:34.158304Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=visual_change)
2026-04-24T16:21:52.258518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=visual_change)
2026-04-24T16:24:07.960303Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=0 elapsed=7.148022208s
2026-04-24T16:25:38.292462Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8773909165376335292, trigger=click)
2026-04-24T16:28:02.880424Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=826123905625364471, trigger=click)
2026-04-24T16:28:02.928317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=826123905625364471, trigger=click)
2026-04-24T16:29:02.161685Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5156992524424370675, trigger=visual_change)
2026-04-24T16:29:11.119509Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5156992524424370675, trigger=visual_change)
2026-04-24T16:29:15.437543Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=42 elapsed=7.45073025s
2026-04-24T16:29:15.438417Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 42 eligible frames
2026-04-24T16:29:17.083173Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 3.2MB → 0.4MB (9.1x), 20 JPEGs deleted
2026-04-24T16:29:18.972223Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 5.2MB → 1.7MB (3.0x), 22 JPEGs deleted
2026-04-24T16:29:34.388891Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5156992524424370675, trigger=click)
2026-04-24T16:29:45.796969Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4817563232530793650, trigger=click)
2026-04-24T16:32:36.877636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=visual_change)
2026-04-24T16:32:42.134384Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=visual_change)
2026-04-24T16:32:44.378087Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)
2026-04-24T16:32:45.243874Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=visual_change)
2026-04-24T16:32:54.163388Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8550622008733264339, trigger=click)
2026-04-24T16:32:54.176256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)
2026-04-24T16:32:57.087323Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8550622008733264339, trigger=click)
2026-04-24T16:32:57.117211Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)
2026-04-24T16:34:03.172812Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:34:13.599521Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:34:23.371635Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=21 elapsed=4.397149916s
2026-04-24T16:34:23.371744Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames
2026-04-24T16:34:24.346821Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.6MB → 0.4MB (4.0x), 11 JPEGs deleted
2026-04-24T16:34:25.323782Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 2.0MB → 0.7MB (2.7x), 8 JPEGs deleted
2026-04-24T16:35:16.265905Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:35:16.396499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:37:09.981293Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=visual_change)
2026-04-24T16:38:45.635162Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:38:47.663267Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:39:10.322134Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:39:27.552784Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=33 elapsed=2.228011375s
2026-04-24T16:39:27.552915Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 33 eligible frames
2026-04-24T16:39:28.615455Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.8MB → 0.6MB (4.8x), 14 JPEGs deleted
2026-04-24T16:39:30.390392Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.1MB → 1.6MB (2.0x), 17 JPEGs deleted
2026-04-24T16:40:01.437647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7218881400109780070, trigger=click)
2026-04-24T16:40:12.586378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:41:05.997041Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6861826947729846030, trigger=click)
2026-04-24T16:41:11.184592Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6861826947729846030, trigger=click)
2026-04-24T16:43:15.433697Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8550622008733264339, trigger=click)
2026-04-24T16:43:15.515804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)
2026-04-24T16:43:51.515815Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5576357006515458390, trigger=click)
2026-04-24T16:43:59.714706Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5576357006515458390, trigger=click)
2026-04-24T16:43:59.785731Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5576357006515458390, trigger=click)
2026-04-24T16:44:38.173037Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=20 elapsed=7.796779s
2026-04-24T16:44:38.174424Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 20 eligible frames
2026-04-24T16:44:39.258439Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 1.8MB → 0.3MB (5.7x), 9 JPEGs deleted
2026-04-24T16:44:41.729154Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 2.3MB → 1.7MB (1.4x), 9 JPEGs deleted
2026-04-24T16:48:00.989535Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5576357006515458390, trigger=click)
2026-04-24T16:48:17.430932Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5576357006515458390, trigger=click)
2026-04-24T16:49:49.135916Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=17 elapsed=7.403764583s
2026-04-24T16:49:49.136082Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 17 eligible frames
2026-04-24T16:49:50.004132Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 1.6MB → 0.3MB (5.1x), 8 JPEGs deleted
2026-04-24T16:49:50.898114Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 7 frames, 1.9MB → 0.7MB (2.6x), 7 JPEGs deleted
2026-04-24T16:50:09.364175Z INFO screenpipe_engine::event_driven_capture: content d...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"Last login: Fri Apr 24 12:59:23 on ttys007\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-start\ndetected hardware tier: Mid\nwarning: parakeet is not supported on this platform, using whisper-tiny instead\n2026-04-24T13:24:21.985779Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store\nchecking permissions...\n screen recording: ok\n accessibility: ok\n2026-04-24T13:24:22.124681Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6\n2026-04-24T13:24:23.055922Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor\n2026-04-24T13:24:23.059528Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)\n2026-04-24T13:24:23.061097Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)\n2026-04-24T13:24:23.132247Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true\n2026-04-24T13:24:23.132303Z INFO screenpipe: meeting detector enabled — independent of transcription mode\n2026-04-24T13:24:23.132592Z INFO screenpipe: API server listening on 127.0.0.1:3030 (localhost only)\n2026-04-24T13:24:23.132606Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key\n2026-04-24T13:24:23.132938Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)\n2026-04-24T13:24:23.132999Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager\n2026-04-24T13:24:23.132808Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)\n2026-04-24T13:24:23.180699Z INFO screenpipe_core::pipes: loaded pipe: day-recap\n2026-04-24T13:24:23.180978Z INFO screenpipe_core::pipes: loaded pipe: standup-update\n2026-04-24T13:24:23.181420Z INFO screenpipe_core::pipes: loaded pipe: ai-habits\n2026-04-24T13:24:23.181613Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown\n2026-04-24T13:24:23.181801Z INFO screenpipe_core::pipes: loaded pipe: video-export\n2026-04-24T13:24:23.182313Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary\n2026-04-24T13:24:23.182341Z INFO screenpipe_core::pipes: loaded 6 pipes from \"/Users/lukas/.screenpipe/pipes\"\n\n\n\n _ \n __________________ ___ ____ ____ (_____ ___ \n / ___/ ___/ ___/ _ \\/ _ \\/ __ \\ / __ \\/ / __ \\/ _ \\\n (__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/\n/____/\\___/_/ \\___/\\___/_/ /_/ / .___/_/ .___/\\___/ \n /_/ /_/ \n\n\n\npower AI by everything you've seen, said or heard\nopen source | runs locally | developer friendly\n\n\n┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ true │\n│ vision disabled │ false │\n│ pause on DRM content │ false │\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n│ ignored windows │ [\"Boosteroid\"] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n│ api auth │ enabled │\n2026-04-24T13:24:23.186334Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n2026-04-24T13:24:23.198489Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n│ encrypt secrets │ disabled │\n│ retention days │ 14 │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ id: 1 │\n│ │ id: 2 │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ disabled │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-24T13:24:23.216198Z INFO screenpipe: starting UI event capture\n2026-04-24T13:24:23.238868Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-24T13:24:23.260906Z INFO screenpipe_engine::ui_recorder: UI recording session started: 9676eafd-ea8f-4e1a-a5f1-de7bdb79c071\n2026-04-24T13:24:23.260911Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-24T13:24:23.260972Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-23 10:24:23.260965 UTC to 2026-04-24 10:24:23.260965 UTC)\n2026-04-24T13:24:23.261685Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-24T13:24:23.262214Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-24T13:24:23.273443Z INFO screenpipe_engine::server: Server listening on 127.0.0.1:3030\n2026-04-24T13:24:23.304240Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-24T13:24:23.567248Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-24T13:24:23.567289Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-24T13:24:23.567346Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-24T13:24:23.850835Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-24T13:24:23.850880Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-24T13:24:23.850893Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)\n2026-04-24T13:24:23.850901Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)\n2026-04-24T13:24:23.850941Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-24T13:24:25.197204Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)\n2026-04-24T13:24:25.589436Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=77673, dur=103ms\n2026-04-24T13:24:25.630980Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)\n2026-04-24T13:24:25.652818Z INFO sck_rs::stream_manager: invalidated persistent stream for display 1\n2026-04-24T13:24:26.160345Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=77674, dur=198ms\n2026-04-24T13:24:27.471087Z WARN sqlx::query: summary=\"SELECT f.id, f.timestamp, f.offset_index, …\" db.statement=\"\\n\\nSELECT\\n f.id,\\n f.timestamp,\\n f.offset_index,\\n COALESCE(\\n SUBSTR(f.full_text, 1, 200),\\n SUBSTR(f.accessibility_text, 1, 200),\\n (\\n SELECT\\n SUBSTR(ot.text, 1, 200)\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as text,\\n COALESCE(\\n f.app_name,\\n (\\n SELECT\\n ot.app_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as app_name,\\n COALESCE(\\n f.window_name,\\n (\\n SELECT\\n ot.window_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as window_name,\\n COALESCE(vc.device_name, f.device_name) as screen_device,\\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\\n COALESCE(vc.fps, 0.033) as chunk_fps,\\n f.browser_url,\\n f.machine_id\\nFROM\\n frames f\\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\\nWHERE\\n f.timestamp >= ?1\\n AND f.timestamp <= ?2\\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\\nORDER BY\\n f.timestamp DESC,\\n f.offset_index DESC\\nLIMIT\\n 10000\\n\" rows_affected=0 rows_returned=2758 elapsed=4.209235542s\n2026-04-24T13:24:27.488504Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 2758 frame entries, coverage from 2026-04-23 10:24:23.260965 UTC\n2026-04-24T13:24:56.108522Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)\n2026-04-24T13:25:34.118891Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=82 elapsed=10.985025625s\n2026-04-24T13:25:34.121032Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 82 eligible frames\n2026-04-24T13:25:37.475066Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 6.5MB → 0.2MB (30.1x), 39 JPEGs deleted\n2026-04-24T13:25:41.147418Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 41 frames, 9.1MB → 0.3MB (26.4x), 41 JPEGs deleted\n2026-04-24T13:26:53.913464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3587331842305982393, trigger=click)\n2026-04-24T13:30:52.310748Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=2 elapsed=11.152255s\n2026-04-24T13:30:52.313747Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-24T13:36:00.069099Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=9 elapsed=7.594933541s\n2026-04-24T13:36:00.071113Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 9 eligible frames\n2026-04-24T13:36:00.617576Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 4 frames, 0.3MB → 0.1MB (3.6x), 4 JPEGs deleted\n2026-04-24T13:36:01.402540Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 5 frames, 1.0MB → 0.4MB (2.4x), 5 JPEGs deleted\n2026-04-24T13:40:06.828525Z WARN sqlx::query: summary=\"BEGIN IMMEDIATE\" db.statement=\"\" rows_affected=1 rows_returned=0 elapsed=1.076759291s\n2026-04-24T13:40:07.002782Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=195 elapsed=1.250257875s\n2026-04-24T13:41:11.559513Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=92 elapsed=10.151735042s\n2026-04-24T13:41:11.559741Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 92 eligible frames\n2026-04-24T13:41:14.043784Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 2.3MB → 0.1MB (32.3x), 37 JPEGs deleted\n2026-04-24T13:41:21.303349Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 53 frames, 8.7MB → 3.1MB (2.8x), 53 JPEGs deleted\n2026-04-24T13:41:40.887689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7539785768983157715, trigger=click)\n2026-04-24T13:42:34.136767Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3059269999432289894, trigger=click)\n2026-04-24T13:42:45.942807Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3777488472456223409, trigger=click)\n2026-04-24T13:43:01.921357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1871207218552190145, trigger=click)\n2026-04-24T13:44:01.878037Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8495661271621520850, trigger=click)\n2026-04-24T13:46:28.021146Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=40 elapsed=6.713739708s\n2026-04-24T13:46:28.021348Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames\n2026-04-24T13:46:29.141090Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 1.1MB → 0.1MB (17.9x), 18 JPEGs deleted\n2026-04-24T13:46:31.601195Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.7MB → 2.9MB (1.6x), 20 JPEGs deleted\n2026-04-24T13:51:31.692283Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames\n2026-04-24T13:51:32.570330Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.0MB → 0.2MB (4.8x), 13 JPEGs deleted\n2026-04-24T13:51:33.760542Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.9MB → 1.0MB (1.9x), 10 JPEGs deleted\n2026-04-24T13:55:31.626192Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2977185087332333124, trigger=click)\n2026-04-24T13:56:33.924925Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 105 eligible frames\n2026-04-24T13:56:37.179833Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 55 frames, 5.1MB → 1.4MB (3.6x), 55 JPEGs deleted\n2026-04-24T13:56:40.328768Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 48 frames, 7.6MB → 1.3MB (6.0x), 48 JPEGs deleted\n2026-04-24T14:00:47.136298Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Firefox, signals=2)\n2026-04-24T14:00:47.857419Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2938651853865790585, trigger=click)\n2026-04-24T14:00:52.374476Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Firefox, signals=2, browser=true)\n2026-04-24T14:00:52.378086Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=12, app=Firefox, title=None)\n2026-04-24T14:01:40.650767Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 62 eligible frames\n2026-04-24T14:01:42.431196Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 1.9MB → 0.1MB (32.0x), 30 JPEGs deleted\n2026-04-24T14:01:44.259623Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 4.8MB → 0.2MB (23.8x), 30 JPEGs deleted\n2026-04-24T14:06:51.687604Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=54 elapsed=7.415698459s\n2026-04-24T14:06:51.691163Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 54 eligible frames\n2026-04-24T14:06:53.324710Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 1.7MB → 0.1MB (29.0x), 27 JPEGs deleted\n2026-04-24T14:06:54.826559Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.0MB → 0.2MB (19.9x), 25 JPEGs deleted\n2026-04-24T14:11:54.984165Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 93 eligible frames\n2026-04-24T14:11:57.808857Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 48 frames, 3.1MB → 0.1MB (49.5x), 48 JPEGs deleted\n2026-04-24T14:12:00.396251Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 43 frames, 6.8MB → 0.2MB (33.8x), 43 JPEGs deleted\n2026-04-24T14:17:06.109470Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=49 elapsed=5.652470541s\n2026-04-24T14:17:06.109602Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 49 eligible frames\n2026-04-24T14:17:07.677608Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 1.6MB → 0.1MB (27.0x), 25 JPEGs deleted\n2026-04-24T14:17:09.097967Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 3.5MB → 0.2MB (17.6x), 22 JPEGs deleted\n2026-04-24T14:22:13.316698Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=24 elapsed=4.206937709s\n2026-04-24T14:22:13.317436Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 24 eligible frames\n2026-04-24T14:22:14.074811Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 0.7MB → 0.1MB (12.2x), 11 JPEGs deleted\n2026-04-24T14:22:14.844321Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.7MB → 0.2MB (8.9x), 11 JPEGs deleted\n2026-04-24T14:27:16.330019Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=1.474471542s\n2026-04-24T14:27:16.330265Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T14:27:17.027734Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted\n2026-04-24T14:27:17.792405Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted\n2026-04-24T14:32:18.770983Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T14:32:19.478630Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted\n2026-04-24T14:32:20.241056Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted\n2026-04-24T14:37:27.349741Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=7.096181584s\n2026-04-24T14:37:27.353187Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T14:37:28.066685Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted\n2026-04-24T14:37:28.851355Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted\n2026-04-24T14:38:19.407454Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=12, grace=300s)\n2026-04-24T14:39:19.637322Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8577329830578954505, trigger=click)\n2026-04-24T14:39:21.680425Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8317095871263557761, trigger=click)\n2026-04-24T14:39:21.707871Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8317095871263557761, trigger=click)\n2026-04-24T14:40:10.148981Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5676671508452457688, trigger=click)\n2026-04-24T14:42:02.876165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3644563293578755711, trigger=click)\n2026-04-24T14:42:12.151008Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3644563293578755711, trigger=click)\n2026-04-24T14:42:36.098708Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=7.2363725s\n2026-04-24T14:42:36.098834Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T14:42:36.816811Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted\n2026-04-24T14:42:37.598382Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted\n2026-04-24T14:42:43.884371Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1901203473704384943, trigger=click)\n2026-04-24T14:42:43.916542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1901203473704384943, trigger=click)\n2026-04-24T14:43:24.413233Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Idle (timeout=300s, app=Firefox, id=12)\n2026-04-24T14:43:24.855747Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting ended (id=12)\n2026-04-24T14:44:38.941315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1557697903749375374, trigger=click)\n2026-04-24T14:44:38.962591Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1557697903749375374, trigger=click)\n2026-04-24T14:44:39.438011Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1557697903749375374, trigger=click)\n2026-04-24T14:45:24.198550Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8167839925779509873, trigger=click)\n2026-04-24T14:45:25.110117Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8167839925779509873, trigger=click)\n2026-04-24T14:45:38.880039Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3644563293578755711, trigger=click)\n2026-04-24T14:46:09.691532Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8167839925779509873, trigger=click)\n2026-04-24T14:46:23.813781Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4533509598273890786, trigger=click)\n2026-04-24T14:46:23.859560Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4533509598273890786, trigger=click)\n2026-04-24T14:47:44.514826Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2503176719318141451, trigger=click)\n2026-04-24T14:47:44.539391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2503176719318141451, trigger=click)\n2026-04-24T14:47:44.764903Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=21 elapsed=7.257808167s\n2026-04-24T14:47:44.764982Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames\n2026-04-24T14:47:45.473419Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 0.6MB → 0.1MB (10.0x), 9 JPEGs deleted\n2026-04-24T14:47:46.188394Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted\n2026-04-24T14:47:50.085052Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2503176719318141451, trigger=click)\n2026-04-24T14:47:50.106335Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2503176719318141451, trigger=click)\n2026-04-24T14:52:53.441281Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=100 elapsed=7.256992167s\n2026-04-24T14:52:53.441665Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 100 eligible frames\n2026-04-24T14:52:56.554743Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 3.2MB → 0.1MB (50.4x), 49 JPEGs deleted\n2026-04-24T14:52:59.416988Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 7.8MB → 0.2MB (38.4x), 49 JPEGs deleted\n2026-04-24T14:53:50.050387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4956080981675052788, trigger=click)\n2026-04-24T14:55:36.318507Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-991319035522409710, trigger=click)\n2026-04-24T14:55:36.391576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-991319035522409710, trigger=click)\n2026-04-24T14:57:59.569859Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 57 eligible frames\n2026-04-24T14:58:01.300455Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 1.6MB → 0.1MB (25.9x), 24 JPEGs deleted\n2026-04-24T14:58:03.198608Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 4.9MB → 0.2MB (24.6x), 31 JPEGs deleted\n2026-04-24T15:03:08.612242Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=30 elapsed=5.295343459s\n2026-04-24T15:03:08.612821Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 30 eligible frames\n2026-04-24T15:03:09.620798Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 0.9MB → 0.1MB (15.4x), 14 JPEGs deleted\n2026-04-24T15:03:10.811697Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.2MB → 0.2MB (11.3x), 14 JPEGs deleted\n2026-04-24T15:04:26.269378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5667957418966591499, trigger=click)\n2026-04-24T15:04:26.321219Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5667957418966591499, trigger=click)\n2026-04-24T15:08:14.307499Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=25 elapsed=3.392988s\n2026-04-24T15:08:14.307671Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames\n2026-04-24T15:08:15.302981Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 0.7MB → 0.1MB (12.2x), 11 JPEGs deleted\n2026-04-24T15:08:16.186177Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 1.9MB → 0.2MB (9.7x), 12 JPEGs deleted\n2026-04-24T15:13:18.963807Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=37 elapsed=2.767425042s\n2026-04-24T15:13:18.963934Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 37 eligible frames\n2026-04-24T15:13:20.113690Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 1.2MB → 0.1MB (19.7x), 18 JPEGs deleted\n2026-04-24T15:13:21.236764Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.7MB → 0.2MB (13.6x), 17 JPEGs deleted\n2026-04-24T15:14:48.156237Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)\n2026-04-24T15:15:01.132168Z INFO sck_rs::stream_manager: recreating stream for display 1 (resolution change)\n2026-04-24T15:15:01.221025Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=app_switch, monitor=1) — DB pool may be saturated\n2026-04-24T15:15:01.375924Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=app_switch, monitor=2) — DB pool may be saturated\n2026-04-24T15:15:15.842371Z INFO sck_rs::stream_manager: recreating stream for display 2 (resolution change)\n2026-04-24T15:18:28.531831Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=36 elapsed=7.26041775s\n2026-04-24T15:18:28.531955Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 36 eligible frames\n2026-04-24T15:18:29.658166Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 1.1MB → 0.1MB (18.6x), 17 JPEGs deleted\n2026-04-24T15:18:30.768761Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.7MB → 0.2MB (13.6x), 17 JPEGs deleted\n2026-04-24T15:23:31.928536Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=1.148790625s\n2026-04-24T15:23:31.928649Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T15:23:32.642076Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted\n2026-04-24T15:23:33.401791Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted\n2026-04-24T15:28:34.810366Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=8 elapsed=1.39738375s\n2026-04-24T15:28:34.810546Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 8 eligible frames\n2026-04-24T15:28:35.187466Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 3 frames, 0.2MB → 0.1MB (3.5x), 3 JPEGs deleted\n2026-04-24T15:28:35.591687Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 3 frames, 0.5MB → 0.2MB (2.6x), 3 JPEGs deleted\n2026-04-24T15:33:39.031121Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=2 elapsed=3.484074667s\n2026-04-24T15:33:39.031286Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-24T15:43:41.373431Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=2.126509208s\n2026-04-24T15:48:45.005960Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=3.630826208s\n2026-04-24T15:53:46.452410Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.442133375s\n2026-04-24T16:03:50.813556Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=3.725817875s\n2026-04-24T16:08:52.104712Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.289955292s\n2026-04-24T16:14:48.860304Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)\n2026-04-24T16:14:48.885031Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2\n2026-04-24T16:14:49.085988Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)\n2026-04-24T16:14:49.951727Z INFO screenpipe_engine::event_driven_capture: monitor 2 capture recovered after 1 consecutive errors\n2026-04-24T16:15:14.957591Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-24T16:15:15.344344Z INFO screenpipe_engine::event_driven_capture: monitor 1 capture recovered after 1 consecutive errors\n2026-04-24T16:17:13.975782Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7172393451066325016, trigger=click)\n2026-04-24T16:19:00.805923Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=7.986969166s\n2026-04-24T16:19:29.124240Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3129461629380798674, trigger=click)\n2026-04-24T16:19:29.165320Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=click)\n2026-04-24T16:20:57.221933Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=click)\n2026-04-24T16:21:34.158304Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=visual_change)\n2026-04-24T16:21:52.258518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=visual_change)\n2026-04-24T16:24:07.960303Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=7.148022208s\n2026-04-24T16:25:38.292462Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8773909165376335292, trigger=click)\n2026-04-24T16:28:02.880424Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=826123905625364471, trigger=click)\n2026-04-24T16:28:02.928317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=826123905625364471, trigger=click)\n2026-04-24T16:29:02.161685Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5156992524424370675, trigger=visual_change)\n2026-04-24T16:29:11.119509Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5156992524424370675, trigger=visual_change)\n2026-04-24T16:29:15.437543Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=42 elapsed=7.45073025s\n2026-04-24T16:29:15.438417Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 42 eligible frames\n2026-04-24T16:29:17.083173Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 3.2MB → 0.4MB (9.1x), 20 JPEGs deleted\n2026-04-24T16:29:18.972223Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 5.2MB → 1.7MB (3.0x), 22 JPEGs deleted\n2026-04-24T16:29:34.388891Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5156992524424370675, trigger=click)\n2026-04-24T16:29:45.796969Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4817563232530793650, trigger=click)\n2026-04-24T16:32:36.877636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=visual_change)\n2026-04-24T16:32:42.134384Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=visual_change)\n2026-04-24T16:32:44.378087Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)\n2026-04-24T16:32:45.243874Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=visual_change)\n2026-04-24T16:32:54.163388Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8550622008733264339, trigger=click)\n2026-04-24T16:32:54.176256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)\n2026-04-24T16:32:57.087323Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8550622008733264339, trigger=click)\n2026-04-24T16:32:57.117211Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)\n2026-04-24T16:34:03.172812Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:34:13.599521Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:34:23.371635Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=21 elapsed=4.397149916s\n2026-04-24T16:34:23.371744Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames\n2026-04-24T16:34:24.346821Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.6MB → 0.4MB (4.0x), 11 JPEGs deleted\n2026-04-24T16:34:25.323782Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 2.0MB → 0.7MB (2.7x), 8 JPEGs deleted\n2026-04-24T16:35:16.265905Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:35:16.396499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:37:09.981293Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=visual_change)\n2026-04-24T16:38:45.635162Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:38:47.663267Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:39:10.322134Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:39:27.552784Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=33 elapsed=2.228011375s\n2026-04-24T16:39:27.552915Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 33 eligible frames\n2026-04-24T16:39:28.615455Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.8MB → 0.6MB (4.8x), 14 JPEGs deleted\n2026-04-24T16:39:30.390392Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.1MB → 1.6MB (2.0x), 17 JPEGs deleted\n2026-04-24T16:40:01.437647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7218881400109780070, trigger=click)\n2026-04-24T16:40:12.586378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:41:05.997041Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6861826947729846030, trigger=click)\n2026-04-24T16:41:11.184592Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6861826947729846030, trigger=click)\n2026-04-24T16:43:15.433697Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8550622008733264339, trigger=click)\n2026-04-24T16:43:15.515804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)\n2026-04-24T16:43:51.515815Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5576357006515458390, trigger=click)\n2026-04-24T16:43:59.714706Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5576357006515458390, trigger=click)\n2026-04-24T16:43:59.785731Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5576357006515458390, trigger=click)\n2026-04-24T16:44:38.173037Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=20 elapsed=7.796779s\n2026-04-24T16:44:38.174424Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 20 eligible frames\n2026-04-24T16:44:39.258439Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 1.8MB → 0.3MB (5.7x), 9 JPEGs deleted\n2026-04-24T16:44:41.729154Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 2.3MB → 1.7MB (1.4x), 9 JPEGs deleted\n2026-04-24T16:48:00.989535Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5576357006515458390, trigger=click)\n2026-04-24T16:48:17.430932Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5576357006515458390, trigger=click)\n2026-04-24T16:49:49.135916Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=17 elapsed=7.403764583s\n2026-04-24T16:49:49.136082Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 17 eligible frames\n2026-04-24T16:49:50.004132Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 1.6MB → 0.3MB (5.1x), 8 JPEGs deleted\n2026-04-24T16:49:50.898114Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 7 frames, 1.9MB → 0.7MB (2.6x), 7 JPEGs deleted\n2026-04-24T16:50:09.364175Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8409739779266792278, trigger=visual_change)\n2026-04-24T16:50:11.237105Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8409739779266792278, trigger=click)\n2026-04-24T16:51:37.931779Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1423930385844614485, trigger=click)\n2026-04-24T16:53:14.381283Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7564119013552971576, trigger=click)\n2026-04-24T16:54:12.231394Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1423930385844614485, trigger=visual_change)\n2026-04-24T16:54:15.266343Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1423930385844614485, trigger=visual_change)\n2026-04-24T16:55:01.568514Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=58 elapsed=10.558641542s\n2026-04-24T16:55:01.569579Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 58 eligible frames\n2026-04-24T16:55:04.609017Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 5.7MB → 1.1MB (5.0x), 28 JPEGs deleted\n2026-04-24T16:55:09.392416Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 5.5MB → 3.1MB (1.8x), 28 JPEGs deleted\n2026-04-24T16:55:39.774741Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3617611630109587613, trigger=click)\n2026-04-24T16:55:39.852272Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3617611630109587613, trigger=click)\n2026-04-24T16:56:40.038632Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-426150959945983082, trigger=click)\n2026-04-24T16:59:26.437906Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-426150959945983082, trigger=visual_change)\n2026-04-24T17:00:21.026565Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=53 elapsed=11.620753209s\n2026-04-24T17:00:21.027475Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 53 eligible frames\n2026-04-24T17:00:24.007228Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 4.3MB → 0.5MB (7.8x), 21 JPEGs deleted\n2026-04-24T17:00:30.315443Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 6.2MB → 3.1MB (2.0x), 30 JPEGs deleted\n2026-04-24T17:01:31.749742Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4978074472044237669, trigger=click)\n2026-04-24T17:02:32.676946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6528076374554576690, trigger=click)\n2026-04-24T17:03:24.566715Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5730479857460890072, trigger=click)\n2026-04-24T17:03:24.646165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5730479857460890072, trigger=click)\n2026-04-24T17:04:36.724352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2722349336895059815, trigger=click)\n2026-04-24T17:05:26.414686Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-255140549253982666, trigger=click)\n2026-04-24T17:05:38.960944Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=49 elapsed=8.570160541s\n2026-04-24T17:05:38.961851Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 49 eligible frames\n2026-04-24T17:05:40.770553Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.8MB → 0.5MB (10.1x), 24 JPEGs deleted\n2026-04-24T17:05:44.093500Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 4.3MB → 2.0MB (2.1x), 23 JPEGs deleted\n2026-04-24T17:10:45.665278Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=57 elapsed=1.565954333s\n2026-04-24T17:10:45.665510Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 57 eligible frames\n2026-04-24T17:10:47.346256Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.1MB → 0.3MB (15.5x), 25 JPEGs deleted\n2026-04-24T17:10:49.931994Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 5.2MB → 2.6MB (2.0x), 30 JPEGs deleted\n2026-04-24T17:12:35.862404Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2722349336895059815, trigger=visual_change)\n2026-04-24T17:15:54.006030Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=35 elapsed=4.067925709s\n2026-04-24T17:15:54.006151Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 35 eligible frames\n2026-04-24T17:15:55.261287Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.6MB → 0.3MB (11.3x), 18 JPEGs deleted\n2026-04-24T17:15:56.815522Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 3.2MB → 1.3MB (2.4x), 15 JPEGs deleted\n2026-04-24T17:20:58.288264Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=1.467426625s\n2026-04-24T17:20:58.288415Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T17:20:59.175263Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.0MB → 0.3MB (6.3x), 10 JPEGs deleted\n2026-04-24T17:21:00.120027Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.3MB → 0.4MB (6.2x), 10 JPEGs deleted\n2026-04-24T17:22:48.235588Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-885508568992678447, trigger=click)\n2026-04-24T17:22:48.306917Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-885508568992678447, trigger=click)\n2026-04-24T17:23:41.318200Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-885508568992678447, trigger=click)\n2026-04-24T17:24:30.499216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3481376117812878957, trigger=click)\n2026-04-24T17:24:30.601163Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3481376117812878957, trigger=click)\n2026-04-24T17:26:07.575025Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=28 elapsed=7.43131375s\n2026-04-24T17:26:07.578806Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames\n2026-04-24T17:26:08.478709Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 2.2MB → 0.3MB (6.9x), 11 JPEGs deleted\n2026-04-24T17:26:09.770241Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.6MB → 1.0MB (2.6x), 15 JPEGs deleted\n2026-04-24T17:26:26.261981Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-885508568992678447, trigger=click)\n2026-04-24T17:26:26.307896Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-885508568992678447, trigger=click)\n2026-04-24T17:27:22.914133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4993652597681536640, trigger=visual_change)\n2026-04-24T17:27:25.987598Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4993652597681536640, trigger=visual_change)","depth":4,"value":"Last login: Fri Apr 24 12:59:23 on ttys007\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-start\ndetected hardware tier: Mid\nwarning: parakeet is not supported on this platform, using whisper-tiny instead\n2026-04-24T13:24:21.985779Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store\nchecking permissions...\n screen recording: ok\n accessibility: ok\n2026-04-24T13:24:22.124681Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6\n2026-04-24T13:24:23.055922Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor\n2026-04-24T13:24:23.059528Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)\n2026-04-24T13:24:23.061097Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)\n2026-04-24T13:24:23.132247Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true\n2026-04-24T13:24:23.132303Z INFO screenpipe: meeting detector enabled — independent of transcription mode\n2026-04-24T13:24:23.132592Z INFO screenpipe: API server listening on 127.0.0.1:3030 (localhost only)\n2026-04-24T13:24:23.132606Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key\n2026-04-24T13:24:23.132938Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)\n2026-04-24T13:24:23.132999Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager\n2026-04-24T13:24:23.132808Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)\n2026-04-24T13:24:23.180699Z INFO screenpipe_core::pipes: loaded pipe: day-recap\n2026-04-24T13:24:23.180978Z INFO screenpipe_core::pipes: loaded pipe: standup-update\n2026-04-24T13:24:23.181420Z INFO screenpipe_core::pipes: loaded pipe: ai-habits\n2026-04-24T13:24:23.181613Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown\n2026-04-24T13:24:23.181801Z INFO screenpipe_core::pipes: loaded pipe: video-export\n2026-04-24T13:24:23.182313Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary\n2026-04-24T13:24:23.182341Z INFO screenpipe_core::pipes: loaded 6 pipes from \"/Users/lukas/.screenpipe/pipes\"\n\n\n\n _ \n __________________ ___ ____ ____ (_____ ___ \n / ___/ ___/ ___/ _ \\/ _ \\/ __ \\ / __ \\/ / __ \\/ _ \\\n (__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/\n/____/\\___/_/ \\___/\\___/_/ /_/ / .___/_/ .___/\\___/ \n /_/ /_/ \n\n\n\npower AI by everything you've seen, said or heard\nopen source | runs locally | developer friendly\n\n\n┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ true │\n│ vision disabled │ false │\n│ pause on DRM content │ false │\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n│ ignored windows │ [\"Boosteroid\"] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n│ api auth │ enabled │\n2026-04-24T13:24:23.186334Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n2026-04-24T13:24:23.198489Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n│ encrypt secrets │ disabled │\n│ retention days │ 14 │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ id: 1 │\n│ │ id: 2 │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ disabled │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-24T13:24:23.216198Z INFO screenpipe: starting UI event capture\n2026-04-24T13:24:23.238868Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-24T13:24:23.260906Z INFO screenpipe_engine::ui_recorder: UI recording session started: 9676eafd-ea8f-4e1a-a5f1-de7bdb79c071\n2026-04-24T13:24:23.260911Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-24T13:24:23.260972Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-23 10:24:23.260965 UTC to 2026-04-24 10:24:23.260965 UTC)\n2026-04-24T13:24:23.261685Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-24T13:24:23.262214Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-24T13:24:23.273443Z INFO screenpipe_engine::server: Server listening on 127.0.0.1:3030\n2026-04-24T13:24:23.304240Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-24T13:24:23.567248Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-24T13:24:23.567289Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-24T13:24:23.567346Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-24T13:24:23.850835Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-24T13:24:23.850880Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-24T13:24:23.850893Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)\n2026-04-24T13:24:23.850901Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)\n2026-04-24T13:24:23.850941Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-24T13:24:25.197204Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)\n2026-04-24T13:24:25.589436Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=77673, dur=103ms\n2026-04-24T13:24:25.630980Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)\n2026-04-24T13:24:25.652818Z INFO sck_rs::stream_manager: invalidated persistent stream for display 1\n2026-04-24T13:24:26.160345Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=77674, dur=198ms\n2026-04-24T13:24:27.471087Z WARN sqlx::query: summary=\"SELECT f.id, f.timestamp, f.offset_index, …\" db.statement=\"\\n\\nSELECT\\n f.id,\\n f.timestamp,\\n f.offset_index,\\n COALESCE(\\n SUBSTR(f.full_text, 1, 200),\\n SUBSTR(f.accessibility_text, 1, 200),\\n (\\n SELECT\\n SUBSTR(ot.text, 1, 200)\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as text,\\n COALESCE(\\n f.app_name,\\n (\\n SELECT\\n ot.app_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as app_name,\\n COALESCE(\\n f.window_name,\\n (\\n SELECT\\n ot.window_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as window_name,\\n COALESCE(vc.device_name, f.device_name) as screen_device,\\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\\n COALESCE(vc.fps, 0.033) as chunk_fps,\\n f.browser_url,\\n f.machine_id\\nFROM\\n frames f\\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\\nWHERE\\n f.timestamp >= ?1\\n AND f.timestamp <= ?2\\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\\nORDER BY\\n f.timestamp DESC,\\n f.offset_index DESC\\nLIMIT\\n 10000\\n\" rows_affected=0 rows_returned=2758 elapsed=4.209235542s\n2026-04-24T13:24:27.488504Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 2758 frame entries, coverage from 2026-04-23 10:24:23.260965 UTC\n2026-04-24T13:24:56.108522Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)\n2026-04-24T13:25:34.118891Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=82 elapsed=10.985025625s\n2026-04-24T13:25:34.121032Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 82 eligible frames\n2026-04-24T13:25:37.475066Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 6.5MB → 0.2MB (30.1x), 39 JPEGs deleted\n2026-04-24T13:25:41.147418Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 41 frames, 9.1MB → 0.3MB (26.4x), 41 JPEGs deleted\n2026-04-24T13:26:53.913464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3587331842305982393, trigger=click)\n2026-04-24T13:30:52.310748Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=2 elapsed=11.152255s\n2026-04-24T13:30:52.313747Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-24T13:36:00.069099Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=9 elapsed=7.594933541s\n2026-04-24T13:36:00.071113Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 9 eligible frames\n2026-04-24T13:36:00.617576Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 4 frames, 0.3MB → 0.1MB (3.6x), 4 JPEGs deleted\n2026-04-24T13:36:01.402540Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 5 frames, 1.0MB → 0.4MB (2.4x), 5 JPEGs deleted\n2026-04-24T13:40:06.828525Z WARN sqlx::query: summary=\"BEGIN IMMEDIATE\" db.statement=\"\" rows_affected=1 rows_returned=0 elapsed=1.076759291s\n2026-04-24T13:40:07.002782Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=195 elapsed=1.250257875s\n2026-04-24T13:41:11.559513Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=92 elapsed=10.151735042s\n2026-04-24T13:41:11.559741Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 92 eligible frames\n2026-04-24T13:41:14.043784Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 2.3MB → 0.1MB (32.3x), 37 JPEGs deleted\n2026-04-24T13:41:21.303349Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 53 frames, 8.7MB → 3.1MB (2.8x), 53 JPEGs deleted\n2026-04-24T13:41:40.887689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7539785768983157715, trigger=click)\n2026-04-24T13:42:34.136767Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3059269999432289894, trigger=click)\n2026-04-24T13:42:45.942807Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3777488472456223409, trigger=click)\n2026-04-24T13:43:01.921357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1871207218552190145, trigger=click)\n2026-04-24T13:44:01.878037Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8495661271621520850, trigger=click)\n2026-04-24T13:46:28.021146Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=40 elapsed=6.713739708s\n2026-04-24T13:46:28.021348Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames\n2026-04-24T13:46:29.141090Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 1.1MB → 0.1MB (17.9x), 18 JPEGs deleted\n2026-04-24T13:46:31.601195Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.7MB → 2.9MB (1.6x), 20 JPEGs deleted\n2026-04-24T13:51:31.692283Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames\n2026-04-24T13:51:32.570330Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.0MB → 0.2MB (4.8x), 13 JPEGs deleted\n2026-04-24T13:51:33.760542Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.9MB → 1.0MB (1.9x), 10 JPEGs deleted\n2026-04-24T13:55:31.626192Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2977185087332333124, trigger=click)\n2026-04-24T13:56:33.924925Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 105 eligible frames\n2026-04-24T13:56:37.179833Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 55 frames, 5.1MB → 1.4MB (3.6x), 55 JPEGs deleted\n2026-04-24T13:56:40.328768Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 48 frames, 7.6MB → 1.3MB (6.0x), 48 JPEGs deleted\n2026-04-24T14:00:47.136298Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Firefox, signals=2)\n2026-04-24T14:00:47.857419Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2938651853865790585, trigger=click)\n2026-04-24T14:00:52.374476Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Firefox, signals=2, browser=true)\n2026-04-24T14:00:52.378086Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=12, app=Firefox, title=None)\n2026-04-24T14:01:40.650767Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 62 eligible frames\n2026-04-24T14:01:42.431196Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 1.9MB → 0.1MB (32.0x), 30 JPEGs deleted\n2026-04-24T14:01:44.259623Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 4.8MB → 0.2MB (23.8x), 30 JPEGs deleted\n2026-04-24T14:06:51.687604Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=54 elapsed=7.415698459s\n2026-04-24T14:06:51.691163Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 54 eligible frames\n2026-04-24T14:06:53.324710Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 1.7MB → 0.1MB (29.0x), 27 JPEGs deleted\n2026-04-24T14:06:54.826559Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.0MB → 0.2MB (19.9x), 25 JPEGs deleted\n2026-04-24T14:11:54.984165Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 93 eligible frames\n2026-04-24T14:11:57.808857Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 48 frames, 3.1MB → 0.1MB (49.5x), 48 JPEGs deleted\n2026-04-24T14:12:00.396251Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 43 frames, 6.8MB → 0.2MB (33.8x), 43 JPEGs deleted\n2026-04-24T14:17:06.109470Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=49 elapsed=5.652470541s\n2026-04-24T14:17:06.109602Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 49 eligible frames\n2026-04-24T14:17:07.677608Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 1.6MB → 0.1MB (27.0x), 25 JPEGs deleted\n2026-04-24T14:17:09.097967Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 3.5MB → 0.2MB (17.6x), 22 JPEGs deleted\n2026-04-24T14:22:13.316698Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=24 elapsed=4.206937709s\n2026-04-24T14:22:13.317436Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 24 eligible frames\n2026-04-24T14:22:14.074811Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 0.7MB → 0.1MB (12.2x), 11 JPEGs deleted\n2026-04-24T14:22:14.844321Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.7MB → 0.2MB (8.9x), 11 JPEGs deleted\n2026-04-24T14:27:16.330019Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=1.474471542s\n2026-04-24T14:27:16.330265Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T14:27:17.027734Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted\n2026-04-24T14:27:17.792405Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted\n2026-04-24T14:32:18.770983Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T14:32:19.478630Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted\n2026-04-24T14:32:20.241056Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted\n2026-04-24T14:37:27.349741Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=7.096181584s\n2026-04-24T14:37:27.353187Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T14:37:28.066685Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted\n2026-04-24T14:37:28.851355Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted\n2026-04-24T14:38:19.407454Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=12, grace=300s)\n2026-04-24T14:39:19.637322Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8577329830578954505, trigger=click)\n2026-04-24T14:39:21.680425Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8317095871263557761, trigger=click)\n2026-04-24T14:39:21.707871Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8317095871263557761, trigger=click)\n2026-04-24T14:40:10.148981Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5676671508452457688, trigger=click)\n2026-04-24T14:42:02.876165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3644563293578755711, trigger=click)\n2026-04-24T14:42:12.151008Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3644563293578755711, trigger=click)\n2026-04-24T14:42:36.098708Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=7.2363725s\n2026-04-24T14:42:36.098834Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T14:42:36.816811Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted\n2026-04-24T14:42:37.598382Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted\n2026-04-24T14:42:43.884371Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1901203473704384943, trigger=click)\n2026-04-24T14:42:43.916542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1901203473704384943, trigger=click)\n2026-04-24T14:43:24.413233Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Idle (timeout=300s, app=Firefox, id=12)\n2026-04-24T14:43:24.855747Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting ended (id=12)\n2026-04-24T14:44:38.941315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1557697903749375374, trigger=click)\n2026-04-24T14:44:38.962591Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1557697903749375374, trigger=click)\n2026-04-24T14:44:39.438011Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1557697903749375374, trigger=click)\n2026-04-24T14:45:24.198550Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8167839925779509873, trigger=click)\n2026-04-24T14:45:25.110117Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8167839925779509873, trigger=click)\n2026-04-24T14:45:38.880039Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3644563293578755711, trigger=click)\n2026-04-24T14:46:09.691532Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8167839925779509873, trigger=click)\n2026-04-24T14:46:23.813781Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4533509598273890786, trigger=click)\n2026-04-24T14:46:23.859560Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4533509598273890786, trigger=click)\n2026-04-24T14:47:44.514826Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2503176719318141451, trigger=click)\n2026-04-24T14:47:44.539391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2503176719318141451, trigger=click)\n2026-04-24T14:47:44.764903Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=21 elapsed=7.257808167s\n2026-04-24T14:47:44.764982Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames\n2026-04-24T14:47:45.473419Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 0.6MB → 0.1MB (10.0x), 9 JPEGs deleted\n2026-04-24T14:47:46.188394Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted\n2026-04-24T14:47:50.085052Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2503176719318141451, trigger=click)\n2026-04-24T14:47:50.106335Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2503176719318141451, trigger=click)\n2026-04-24T14:52:53.441281Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=100 elapsed=7.256992167s\n2026-04-24T14:52:53.441665Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 100 eligible frames\n2026-04-24T14:52:56.554743Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 3.2MB → 0.1MB (50.4x), 49 JPEGs deleted\n2026-04-24T14:52:59.416988Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 7.8MB → 0.2MB (38.4x), 49 JPEGs deleted\n2026-04-24T14:53:50.050387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4956080981675052788, trigger=click)\n2026-04-24T14:55:36.318507Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-991319035522409710, trigger=click)\n2026-04-24T14:55:36.391576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-991319035522409710, trigger=click)\n2026-04-24T14:57:59.569859Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 57 eligible frames\n2026-04-24T14:58:01.300455Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 1.6MB → 0.1MB (25.9x), 24 JPEGs deleted\n2026-04-24T14:58:03.198608Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 4.9MB → 0.2MB (24.6x), 31 JPEGs deleted\n2026-04-24T15:03:08.612242Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=30 elapsed=5.295343459s\n2026-04-24T15:03:08.612821Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 30 eligible frames\n2026-04-24T15:03:09.620798Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 0.9MB → 0.1MB (15.4x), 14 JPEGs deleted\n2026-04-24T15:03:10.811697Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.2MB → 0.2MB (11.3x), 14 JPEGs deleted\n2026-04-24T15:04:26.269378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5667957418966591499, trigger=click)\n2026-04-24T15:04:26.321219Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5667957418966591499, trigger=click)\n2026-04-24T15:08:14.307499Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=25 elapsed=3.392988s\n2026-04-24T15:08:14.307671Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames\n2026-04-24T15:08:15.302981Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 0.7MB → 0.1MB (12.2x), 11 JPEGs deleted\n2026-04-24T15:08:16.186177Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 1.9MB → 0.2MB (9.7x), 12 JPEGs deleted\n2026-04-24T15:13:18.963807Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=37 elapsed=2.767425042s\n2026-04-24T15:13:18.963934Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 37 eligible frames\n2026-04-24T15:13:20.113690Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 1.2MB → 0.1MB (19.7x), 18 JPEGs deleted\n2026-04-24T15:13:21.236764Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.7MB → 0.2MB (13.6x), 17 JPEGs deleted\n2026-04-24T15:14:48.156237Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)\n2026-04-24T15:15:01.132168Z INFO sck_rs::stream_manager: recreating stream for display 1 (resolution change)\n2026-04-24T15:15:01.221025Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=app_switch, monitor=1) — DB pool may be saturated\n2026-04-24T15:15:01.375924Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=app_switch, monitor=2) — DB pool may be saturated\n2026-04-24T15:15:15.842371Z INFO sck_rs::stream_manager: recreating stream for display 2 (resolution change)\n2026-04-24T15:18:28.531831Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=36 elapsed=7.26041775s\n2026-04-24T15:18:28.531955Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 36 eligible frames\n2026-04-24T15:18:29.658166Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 1.1MB → 0.1MB (18.6x), 17 JPEGs deleted\n2026-04-24T15:18:30.768761Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.7MB → 0.2MB (13.6x), 17 JPEGs deleted\n2026-04-24T15:23:31.928536Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=1.148790625s\n2026-04-24T15:23:31.928649Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T15:23:32.642076Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted\n2026-04-24T15:23:33.401791Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted\n2026-04-24T15:28:34.810366Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=8 elapsed=1.39738375s\n2026-04-24T15:28:34.810546Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 8 eligible frames\n2026-04-24T15:28:35.187466Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 3 frames, 0.2MB → 0.1MB (3.5x), 3 JPEGs deleted\n2026-04-24T15:28:35.591687Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 3 frames, 0.5MB → 0.2MB (2.6x), 3 JPEGs deleted\n2026-04-24T15:33:39.031121Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=2 elapsed=3.484074667s\n2026-04-24T15:33:39.031286Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-24T15:43:41.373431Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=2.126509208s\n2026-04-24T15:48:45.005960Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=3.630826208s\n2026-04-24T15:53:46.452410Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.442133375s\n2026-04-24T16:03:50.813556Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=3.725817875s\n2026-04-24T16:08:52.104712Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.289955292s\n2026-04-24T16:14:48.860304Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)\n2026-04-24T16:14:48.885031Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2\n2026-04-24T16:14:49.085988Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)\n2026-04-24T16:14:49.951727Z INFO screenpipe_engine::event_driven_capture: monitor 2 capture recovered after 1 consecutive errors\n2026-04-24T16:15:14.957591Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-24T16:15:15.344344Z INFO screenpipe_engine::event_driven_capture: monitor 1 capture recovered after 1 consecutive errors\n2026-04-24T16:17:13.975782Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7172393451066325016, trigger=click)\n2026-04-24T16:19:00.805923Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=7.986969166s\n2026-04-24T16:19:29.124240Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3129461629380798674, trigger=click)\n2026-04-24T16:19:29.165320Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=click)\n2026-04-24T16:20:57.221933Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=click)\n2026-04-24T16:21:34.158304Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=visual_change)\n2026-04-24T16:21:52.258518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=visual_change)\n2026-04-24T16:24:07.960303Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=7.148022208s\n2026-04-24T16:25:38.292462Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8773909165376335292, trigger=click)\n2026-04-24T16:28:02.880424Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=826123905625364471, trigger=click)\n2026-04-24T16:28:02.928317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=826123905625364471, trigger=click)\n2026-04-24T16:29:02.161685Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5156992524424370675, trigger=visual_change)\n2026-04-24T16:29:11.119509Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5156992524424370675, trigger=visual_change)\n2026-04-24T16:29:15.437543Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=42 elapsed=7.45073025s\n2026-04-24T16:29:15.438417Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 42 eligible frames\n2026-04-24T16:29:17.083173Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 3.2MB → 0.4MB (9.1x), 20 JPEGs deleted\n2026-04-24T16:29:18.972223Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 5.2MB → 1.7MB (3.0x), 22 JPEGs deleted\n2026-04-24T16:29:34.388891Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5156992524424370675, trigger=click)\n2026-04-24T16:29:45.796969Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4817563232530793650, trigger=click)\n2026-04-24T16:32:36.877636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=visual_change)\n2026-04-24T16:32:42.134384Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=visual_change)\n2026-04-24T16:32:44.378087Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)\n2026-04-24T16:32:45.243874Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=visual_change)\n2026-04-24T16:32:54.163388Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8550622008733264339, trigger=click)\n2026-04-24T16:32:54.176256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)\n2026-04-24T16:32:57.087323Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8550622008733264339, trigger=click)\n2026-04-24T16:32:57.117211Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)\n2026-04-24T16:34:03.172812Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:34:13.599521Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:34:23.371635Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=21 elapsed=4.397149916s\n2026-04-24T16:34:23.371744Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames\n2026-04-24T16:34:24.346821Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.6MB → 0.4MB (4.0x), 11 JPEGs deleted\n2026-04-24T16:34:25.323782Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 2.0MB → 0.7MB (2.7x), 8 JPEGs deleted\n2026-04-24T16:35:16.265905Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:35:16.396499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:37:09.981293Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=visual_change)\n2026-04-24T16:38:45.635162Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:38:47.663267Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:39:10.322134Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:39:27.552784Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=33 elapsed=2.228011375s\n2026-04-24T16:39:27.552915Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 33 eligible frames\n2026-04-24T16:39:28.615455Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.8MB → 0.6MB (4.8x), 14 JPEGs deleted\n2026-04-24T16:39:30.390392Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.1MB → 1.6MB (2.0x), 17 JPEGs deleted\n2026-04-24T16:40:01.437647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7218881400109780070, trigger=click)\n2026-04-24T16:40:12.586378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:41:05.997041Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6861826947729846030, trigger=click)\n2026-04-24T16:41:11.184592Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6861826947729846030, trigger=click)\n2026-04-24T16:43:15.433697Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8550622008733264339, trigger=click)\n2026-04-24T16:43:15.515804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)\n2026-04-24T16:43:51.515815Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5576357006515458390, trigger=click)\n2026-04-24T16:43:59.714706Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5576357006515458390, trigger=click)\n2026-04-24T16:43:59.785731Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5576357006515458390, trigger=click)\n2026-04-24T16:44:38.173037Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=20 elapsed=7.796779s\n2026-04-24T16:44:38.174424Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 20 eligible frames\n2026-04-24T16:44:39.258439Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 1.8MB → 0.3MB (5.7x), 9 JPEGs deleted\n2026-04-24T16:44:41.729154Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 2.3MB → 1.7MB (1.4x), 9 JPEGs deleted\n2026-04-24T16:48:00.989535Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5576357006515458390, trigger=click)\n2026-04-24T16:48:17.430932Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5576357006515458390, trigger=click)\n2026-04-24T16:49:49.135916Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=17 elapsed=7.403764583s\n2026-04-24T16:49:49.136082Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 17 eligible frames\n2026-04-24T16:49:50.004132Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 1.6MB → 0.3MB (5.1x), 8 JPEGs deleted\n2026-04-24T16:49:50.898114Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 7 frames, 1.9MB → 0.7MB (2.6x), 7 JPEGs deleted\n2026-04-24T16:50:09.364175Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8409739779266792278, trigger=visual_change)\n2026-04-24T16:50:11.237105Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8409739779266792278, trigger=click)\n2026-04-24T16:51:37.931779Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1423930385844614485, trigger=click)\n2026-04-24T16:53:14.381283Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7564119013552971576, trigger=click)\n2026-04-24T16:54:12.231394Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1423930385844614485, trigger=visual_change)\n2026-04-24T16:54:15.266343Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1423930385844614485, trigger=visual_change)\n2026-04-24T16:55:01.568514Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=58 elapsed=10.558641542s\n2026-04-24T16:55:01.569579Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 58 eligible frames\n2026-04-24T16:55:04.609017Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 5.7MB → 1.1MB (5.0x), 28 JPEGs deleted\n2026-04-24T16:55:09.392416Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 5.5MB → 3.1MB (1.8x), 28 JPEGs deleted\n2026-04-24T16:55:39.774741Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3617611630109587613, trigger=click)\n2026-04-24T16:55:39.852272Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3617611630109587613, trigger=click)\n2026-04-24T16:56:40.038632Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-426150959945983082, trigger=click)\n2026-04-24T16:59:26.437906Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-426150959945983082, trigger=visual_change)\n2026-04-24T17:00:21.026565Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=53 elapsed=11.620753209s\n2026-04-24T17:00:21.027475Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 53 eligible frames\n2026-04-24T17:00:24.007228Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 4.3MB → 0.5MB (7.8x), 21 JPEGs deleted\n2026-04-24T17:00:30.315443Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 6.2MB → 3.1MB (2.0x), 30 JPEGs deleted\n2026-04-24T17:01:31.749742Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4978074472044237669, trigger=click)\n2026-04-24T17:02:32.676946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6528076374554576690, trigger=click)\n2026-04-24T17:03:24.566715Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5730479857460890072, trigger=click)\n2026-04-24T17:03:24.646165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5730479857460890072, trigger=click)\n2026-04-24T17:04:36.724352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2722349336895059815, trigger=click)\n2026-04-24T17:05:26.414686Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-255140549253982666, trigger=click)\n2026-04-24T17:05:38.960944Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=49 elapsed=8.570160541s\n2026-04-24T17:05:38.961851Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 49 eligible frames\n2026-04-24T17:05:40.770553Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.8MB → 0.5MB (10.1x), 24 JPEGs deleted\n2026-04-24T17:05:44.093500Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 4.3MB → 2.0MB (2.1x), 23 JPEGs deleted\n2026-04-24T17:10:45.665278Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=57 elapsed=1.565954333s\n2026-04-24T17:10:45.665510Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 57 eligible frames\n2026-04-24T17:10:47.346256Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.1MB → 0.3MB (15.5x), 25 JPEGs deleted\n2026-04-24T17:10:49.931994Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 5.2MB → 2.6MB (2.0x), 30 JPEGs deleted\n2026-04-24T17:12:35.862404Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2722349336895059815, trigger=visual_change)\n2026-04-24T17:15:54.006030Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=35 elapsed=4.067925709s\n2026-04-24T17:15:54.006151Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 35 eligible frames\n2026-04-24T17:15:55.261287Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.6MB → 0.3MB (11.3x), 18 JPEGs deleted\n2026-04-24T17:15:56.815522Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 3.2MB → 1.3MB (2.4x), 15 JPEGs deleted\n2026-04-24T17:20:58.288264Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=1.467426625s\n2026-04-24T17:20:58.288415Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T17:20:59.175263Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.0MB → 0.3MB (6.3x), 10 JPEGs deleted\n2026-04-24T17:21:00.120027Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.3MB → 0.4MB (6.2x), 10 JPEGs deleted\n2026-04-24T17:22:48.235588Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-885508568992678447, trigger=click)\n2026-04-24T17:22:48.306917Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-885508568992678447, trigger=click)\n2026-04-24T17:23:41.318200Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-885508568992678447, trigger=click)\n2026-04-24T17:24:30.499216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3481376117812878957, trigger=click)\n2026-04-24T17:24:30.601163Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3481376117812878957, trigger=click)\n2026-04-24T17:26:07.575025Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=28 elapsed=7.43131375s\n2026-04-24T17:26:07.578806Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames\n2026-04-24T17:26:08.478709Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 2.2MB → 0.3MB (6.9x), 11 JPEGs deleted\n2026-04-24T17:26:09.770241Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.6MB → 1.0MB (2.6x), 15 JPEGs deleted\n2026-04-24T17:26:26.261981Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-885508568992678447, trigger=click)\n2026-04-24T17:26:26.307896Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-885508568992678447, trigger=click)\n2026-04-24T17:27:22.914133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4993652597681536640, trigger=visual_change)\n2026-04-24T17:27:25.987598Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4993652597681536640, trigger=visual_change)","is_focused":true},{"role":"AXTextField","text":"retent","depth":3,"bounds":{"left":0.7916667,"top":0.10555556,"width":0.13055556,"height":0.024444444},"automation_id":"_NS:65","value":"retent","role_description":"search text field","subrole":"AXSearchField","is_enabled":true,"is_focused":true},{"role":"AXButton","text":"search","depth":4,"bounds":{"left":0.79305553,"top":0.10555556,"width":0.017361112,"height":0.024444444},"role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXButton","text":"cancel","depth":4,"bounds":{"left":0.90416664,"top":0.10555556,"width":0.015277778,"height":0.024444444},"role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXButton","text":"go left","depth":3,"bounds":{"left":0.92777777,"top":0.10666667,"width":0.014583333,"height":0.023333333},"automation_id":"_NS:59","role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXButton","text":"go right","depth":3,"bounds":{"left":0.9423611,"top":0.10666667,"width":0.014583333,"height":0.023333333},"automation_id":"_NS:49","role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.39444444,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3986111,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.59166664,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.59583336,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.7888889,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.79305553,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"screenpipe\"","depth":1,"bounds":{"left":0.4722222,"top":0.033333335,"width":0.058333334,"height":0.017777778},"role_description":"text"}]...
|
-4993652597681536640
|
338254198220359539
|
visual_change
|
accessibility
|
NULL
|
Last login: Fri Apr 24 12:59:23 on ttys007
Poetry Last login: Fri Apr 24 12:59:23 on ttys007
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-start
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-04-24T13:24:21.985779Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store
checking permissions...
screen recording: ok
accessibility: ok
2026-04-24T13:24:22.124681Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-04-24T13:24:23.055922Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-04-24T13:24:23.059528Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-04-24T13:24:23.061097Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-04-24T13:24:23.132247Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-04-24T13:24:23.132303Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-04-24T13:24:23.132592Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-04-24T13:24:23.132606Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-04-24T13:24:23.132938Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-04-24T13:24:23.132999Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-04-24T13:24:23.132808Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-04-24T13:24:23.180699Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-04-24T13:24:23.180978Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-04-24T13:24:23.181420Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-04-24T13:24:23.181613Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-04-24T13:24:23.181801Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-04-24T13:24:23.182313Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary
2026-04-24T13:24:23.182341Z INFO screenpipe_core::pipes: loaded 6 pipes from "/Users/lukas/.screenpipe/pipes"
_
__________________ ___ ____ ____ (_____ ___
/ ___/ ___/ ___/ _ \/ _ \/ __ \ / __ \/ / __ \/ _ \
(__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/
/____/\___/_/ \___/\___/_/ /_/ / .___/_/ .___/\___/
/_/ /_/
power AI by everything you've seen, said or heard
open source | runs locally | developer friendly
┌────────────────────────┬────────────────────────────────────┐
│ setting │ value │
├────────────────────────┼────────────────────────────────────┤
│ audio chunk duration │ 30 seconds │
│ port │ 3030 │
│ audio disabled │ true │
│ vision disabled │ false │
│ pause on DRM content │ false │
│ audio engine │ Parakeet │
│ vad engine │ Silero │
│ data directory │ /Users/lukas/.screenpipe │
│ debug mode │ false │
│ telemetry │ true │
│ use pii removal │ true │
│ use all monitors │ true │
│ ignored windows │ ["Boosteroid"] │
│ included windows │ [] │
│ cloud sync │ disabled │
│ auto-destruct pid │ 0 │
│ deepgram key │ not set │
│ api auth │ enabled │
2026-04-24T13:24:23.186334Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)
2026-04-24T13:24:23.198489Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh
│ encrypt secrets │ disabled │
│ retention days │ 14 │
├────────────────────────┼────────────────────────────────────┤
│ languages │ │
│ │ all languages │
├────────────────────────┼────────────────────────────────────┤
│ monitors │ │
│ │ id: 1 │
│ │ id: 2 │
├────────────────────────┼────────────────────────────────────┤
│ audio devices │ │
│ │ disabled │
└────────────────────────┴────────────────────────────────────┘
you are using local processing. all your data stays on your computer.
warning: telemetry is enabled. only error-level data will be sent.
to disable, use the --disable-telemetry flag.
check latest changes here: https://github.com/screenpipe/screenpipe/releases
2026-04-24T13:24:23.216198Z INFO screenpipe: starting UI event capture
2026-04-24T13:24:23.238868Z INFO screenpipe_engine::ui_recorder: Starting UI event capture
2026-04-24T13:24:23.260906Z INFO screenpipe_engine::ui_recorder: UI recording session started: 9676eafd-ea8f-4e1a-a5f1-de7bdb79c071
2026-04-24T13:24:23.260911Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)
2026-04-24T13:24:23.260972Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-23 10:24:23.260965 UTC to 2026-04-24 10:24:23.260965 UTC)
2026-04-24T13:24:23.261685Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)
2026-04-24T13:24:23.262214Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))
2026-04-24T13:24:23.273443Z INFO screenpipe_engine::server: Server listening on [IP_ADDRESS]:3030
2026-04-24T13:24:23.304240Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030
2026-04-24T13:24:23.567248Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)
2026-04-24T13:24:23.567289Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)
2026-04-24T13:24:23.567346Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)
2026-04-24T13:24:23.850835Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-04-24T13:24:23.850880Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-04-24T13:24:23.850893Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)
2026-04-24T13:24:23.850901Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)
2026-04-24T13:24:23.850941Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-04-24T13:24:25.197204Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)
2026-04-24T13:24:25.589436Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=77673, dur=103ms
2026-04-24T13:24:25.630980Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)
2026-04-24T13:24:25.652818Z INFO sck_rs::stream_manager: invalidated persistent stream for display 1
2026-04-24T13:24:26.160345Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=77674, dur=198ms
2026-04-24T13:24:27.471087Z WARN sqlx::query: summary="SELECT f.id, f.timestamp, f.offset_index, …" db.statement="\n\nSELECT\n f.id,\n f.timestamp,\n f.offset_index,\n COALESCE(\n SUBSTR(f.full_text, 1, 200),\n SUBSTR(f.accessibility_text, 1, 200),\n (\n SELECT\n SUBSTR(ot.text, 1, 200)\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as text,\n COALESCE(\n f.app_name,\n (\n SELECT\n ot.app_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as app_name,\n COALESCE(\n f.window_name,\n (\n SELECT\n ot.window_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as window_name,\n COALESCE(vc.device_name, f.device_name) as screen_device,\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\n COALESCE(vc.fps, 0.033) as chunk_fps,\n f.browser_url,\n f.machine_id\nFROM\n frames f\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\nWHERE\n f.timestamp >= ?1\n AND f.timestamp <= ?2\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\nORDER BY\n f.timestamp DESC,\n f.offset_index DESC\nLIMIT\n 10000\n" rows_affected=0 rows_returned=2758 elapsed=4.209235542s
2026-04-24T13:24:27.488504Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 2758 frame entries, coverage from 2026-04-23 10:24:23.260965 UTC
2026-04-24T13:24:56.108522Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)
2026-04-24T13:25:34.118891Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=82 elapsed=10.985025625s
2026-04-24T13:25:34.121032Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 82 eligible frames
2026-04-24T13:25:37.475066Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 6.5MB → 0.2MB (30.1x), 39 JPEGs deleted
2026-04-24T13:25:41.147418Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 41 frames, 9.1MB → 0.3MB (26.4x), 41 JPEGs deleted
2026-04-24T13:26:53.913464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3587331842305982393, trigger=click)
2026-04-24T13:30:52.310748Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=2 elapsed=11.152255s
2026-04-24T13:30:52.313747Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
2026-04-24T13:36:00.069099Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=9 elapsed=7.594933541s
2026-04-24T13:36:00.071113Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 9 eligible frames
2026-04-24T13:36:00.617576Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 4 frames, 0.3MB → 0.1MB (3.6x), 4 JPEGs deleted
2026-04-24T13:36:01.402540Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 5 frames, 1.0MB → 0.4MB (2.4x), 5 JPEGs deleted
2026-04-24T13:40:06.828525Z WARN sqlx::query: summary="BEGIN IMMEDIATE" db.statement="" rows_affected=1 rows_returned=0 elapsed=1.076759291s
2026-04-24T13:40:07.002782Z WARN sqlx::query: summary="SELECT DISTINCT app_name, window_name, …" db.statement="\n\nSELECT\n DISTINCT app_name,\n window_name,\n browser_url\nFROM\n frames\nWHERE\n timestamp > datetime('now', '-30 seconds')\n AND app_name IS NOT NULL\n AND window_name IS NOT NULL\n" rows_affected=0 rows_returned=195 elapsed=1.250257875s
2026-04-24T13:41:11.559513Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=92 elapsed=10.151735042s
2026-04-24T13:41:11.559741Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 92 eligible frames
2026-04-24T13:41:14.043784Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 2.3MB → 0.1MB (32.3x), 37 JPEGs deleted
2026-04-24T13:41:21.303349Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 53 frames, 8.7MB → 3.1MB (2.8x), 53 JPEGs deleted
2026-04-24T13:41:40.887689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7539785768983157715, trigger=click)
2026-04-24T13:42:34.136767Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3059269999432289894, trigger=click)
2026-04-24T13:42:45.942807Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3777488472456223409, trigger=click)
2026-04-24T13:43:01.921357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1871207218552190145, trigger=click)
2026-04-24T13:44:01.878037Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8495661271621520850, trigger=click)
2026-04-24T13:46:28.021146Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=40 elapsed=6.713739708s
2026-04-24T13:46:28.021348Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames
2026-04-24T13:46:29.141090Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 1.1MB → 0.1MB (17.9x), 18 JPEGs deleted
2026-04-24T13:46:31.601195Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.7MB → 2.9MB (1.6x), 20 JPEGs deleted
2026-04-24T13:51:31.692283Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames
2026-04-24T13:51:32.570330Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.0MB → 0.2MB (4.8x), 13 JPEGs deleted
2026-04-24T13:51:33.760542Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.9MB → 1.0MB (1.9x), 10 JPEGs deleted
2026-04-24T13:55:31.626192Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2977185087332333124, trigger=click)
2026-04-24T13:56:33.924925Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 105 eligible frames
2026-04-24T13:56:37.179833Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 55 frames, 5.1MB → 1.4MB (3.6x), 55 JPEGs deleted
2026-04-24T13:56:40.328768Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 48 frames, 7.6MB → 1.3MB (6.0x), 48 JPEGs deleted
2026-04-24T14:00:47.136298Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Firefox, signals=2)
2026-04-24T14:00:47.857419Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2938651853865790585, trigger=click)
2026-04-24T14:00:52.374476Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Firefox, signals=2, browser=true)
2026-04-24T14:00:52.378086Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=12, app=Firefox, title=None)
2026-04-24T14:01:40.650767Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 62 eligible frames
2026-04-24T14:01:42.431196Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 1.9MB → 0.1MB (32.0x), 30 JPEGs deleted
2026-04-24T14:01:44.259623Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 4.8MB → 0.2MB (23.8x), 30 JPEGs deleted
2026-04-24T14:06:51.687604Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=54 elapsed=7.415698459s
2026-04-24T14:06:51.691163Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 54 eligible frames
2026-04-24T14:06:53.324710Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 1.7MB → 0.1MB (29.0x), 27 JPEGs deleted
2026-04-24T14:06:54.826559Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.0MB → 0.2MB (19.9x), 25 JPEGs deleted
2026-04-24T14:11:54.984165Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 93 eligible frames
2026-04-24T14:11:57.808857Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 48 frames, 3.1MB → 0.1MB (49.5x), 48 JPEGs deleted
2026-04-24T14:12:00.396251Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 43 frames, 6.8MB → 0.2MB (33.8x), 43 JPEGs deleted
2026-04-24T14:17:06.109470Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=49 elapsed=5.652470541s
2026-04-24T14:17:06.109602Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 49 eligible frames
2026-04-24T14:17:07.677608Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 1.6MB → 0.1MB (27.0x), 25 JPEGs deleted
2026-04-24T14:17:09.097967Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 3.5MB → 0.2MB (17.6x), 22 JPEGs deleted
2026-04-24T14:22:13.316698Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=24 elapsed=4.206937709s
2026-04-24T14:22:13.317436Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 24 eligible frames
2026-04-24T14:22:14.074811Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 0.7MB → 0.1MB (12.2x), 11 JPEGs deleted
2026-04-24T14:22:14.844321Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.7MB → 0.2MB (8.9x), 11 JPEGs deleted
2026-04-24T14:27:16.330019Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=22 elapsed=1.474471542s
2026-04-24T14:27:16.330265Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames
2026-04-24T14:27:17.027734Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted
2026-04-24T14:27:17.792405Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted
2026-04-24T14:32:18.770983Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames
2026-04-24T14:32:19.478630Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted
2026-04-24T14:32:20.241056Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted
2026-04-24T14:37:27.349741Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=22 elapsed=7.096181584s
2026-04-24T14:37:27.353187Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames
2026-04-24T14:37:28.066685Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted
2026-04-24T14:37:28.851355Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted
2026-04-24T14:38:19.407454Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=12, grace=300s)
2026-04-24T14:39:19.637322Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8577329830578954505, trigger=click)
2026-04-24T14:39:21.680425Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8317095871263557761, trigger=click)
2026-04-24T14:39:21.707871Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8317095871263557761, trigger=click)
2026-04-24T14:40:10.148981Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5676671508452457688, trigger=click)
2026-04-24T14:42:02.876165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3644563293578755711, trigger=click)
2026-04-24T14:42:12.151008Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3644563293578755711, trigger=click)
2026-04-24T14:42:36.098708Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=22 elapsed=7.2363725s
2026-04-24T14:42:36.098834Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames
2026-04-24T14:42:36.816811Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted
2026-04-24T14:42:37.598382Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted
2026-04-24T14:42:43.884371Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1901203473704384943, trigger=click)
2026-04-24T14:42:43.916542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1901203473704384943, trigger=click)
2026-04-24T14:43:24.413233Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Idle (timeout=300s, app=Firefox, id=12)
2026-04-24T14:43:24.855747Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting ended (id=12)
2026-04-24T14:44:38.941315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1557697903749375374, trigger=click)
2026-04-24T14:44:38.962591Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1557697903749375374, trigger=click)
2026-04-24T14:44:39.438011Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1557697903749375374, trigger=click)
2026-04-24T14:45:24.198550Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8167839925779509873, trigger=click)
2026-04-24T14:45:25.110117Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8167839925779509873, trigger=click)
2026-04-24T14:45:38.880039Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3644563293578755711, trigger=click)
2026-04-24T14:46:09.691532Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8167839925779509873, trigger=click)
2026-04-24T14:46:23.813781Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4533509598273890786, trigger=click)
2026-04-24T14:46:23.859560Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4533509598273890786, trigger=click)
2026-04-24T14:47:44.514826Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2503176719318141451, trigger=click)
2026-04-24T14:47:44.539391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2503176719318141451, trigger=click)
2026-04-24T14:47:44.764903Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=21 elapsed=7.257808167s
2026-04-24T14:47:44.764982Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames
2026-04-24T14:47:45.473419Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 0.6MB → 0.1MB (10.0x), 9 JPEGs deleted
2026-04-24T14:47:46.188394Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted
2026-04-24T14:47:50.085052Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2503176719318141451, trigger=click)
2026-04-24T14:47:50.106335Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2503176719318141451, trigger=click)
2026-04-24T14:52:53.441281Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=100 elapsed=7.256992167s
2026-04-24T14:52:53.441665Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 100 eligible frames
2026-04-24T14:52:56.554743Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 3.2MB → 0.1MB (50.4x), 49 JPEGs deleted
2026-04-24T14:52:59.416988Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 7.8MB → 0.2MB (38.4x), 49 JPEGs deleted
2026-04-24T14:53:50.050387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4956080981675052788, trigger=click)
2026-04-24T14:55:36.318507Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-991319035522409710, trigger=click)
2026-04-24T14:55:36.391576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-991319035522409710, trigger=click)
2026-04-24T14:57:59.569859Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 57 eligible frames
2026-04-24T14:58:01.300455Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 1.6MB → 0.1MB (25.9x), 24 JPEGs deleted
2026-04-24T14:58:03.198608Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 4.9MB → 0.2MB (24.6x), 31 JPEGs deleted
2026-04-24T15:03:08.612242Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=30 elapsed=5.295343459s
2026-04-24T15:03:08.612821Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 30 eligible frames
2026-04-24T15:03:09.620798Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 0.9MB → 0.1MB (15.4x), 14 JPEGs deleted
2026-04-24T15:03:10.811697Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.2MB → 0.2MB (11.3x), 14 JPEGs deleted
2026-04-24T15:04:26.269378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5667957418966591499, trigger=click)
2026-04-24T15:04:26.321219Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5667957418966591499, trigger=click)
2026-04-24T15:08:14.307499Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=25 elapsed=3.392988s
2026-04-24T15:08:14.307671Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames
2026-04-24T15:08:15.302981Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 0.7MB → 0.1MB (12.2x), 11 JPEGs deleted
2026-04-24T15:08:16.186177Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 1.9MB → 0.2MB (9.7x), 12 JPEGs deleted
2026-04-24T15:13:18.963807Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=37 elapsed=2.767425042s
2026-04-24T15:13:18.963934Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 37 eligible frames
2026-04-24T15:13:20.113690Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 1.2MB → 0.1MB (19.7x), 18 JPEGs deleted
2026-04-24T15:13:21.236764Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.7MB → 0.2MB (13.6x), 17 JPEGs deleted
2026-04-24T15:14:48.156237Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)
2026-04-24T15:15:01.132168Z INFO sck_rs::stream_manager: recreating stream for display 1 (resolution change)
2026-04-24T15:15:01.221025Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=app_switch, monitor=1) — DB pool may be saturated
2026-04-24T15:15:01.375924Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=app_switch, monitor=2) — DB pool may be saturated
2026-04-24T15:15:15.842371Z INFO sck_rs::stream_manager: recreating stream for display 2 (resolution change)
2026-04-24T15:18:28.531831Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=36 elapsed=7.26041775s
2026-04-24T15:18:28.531955Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 36 eligible frames
2026-04-24T15:18:29.658166Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 1.1MB → 0.1MB (18.6x), 17 JPEGs deleted
2026-04-24T15:18:30.768761Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.7MB → 0.2MB (13.6x), 17 JPEGs deleted
2026-04-24T15:23:31.928536Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=22 elapsed=1.148790625s
2026-04-24T15:23:31.928649Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames
2026-04-24T15:23:32.642076Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted
2026-04-24T15:23:33.401791Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted
2026-04-24T15:28:34.810366Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=8 elapsed=1.39738375s
2026-04-24T15:28:34.810546Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 8 eligible frames
2026-04-24T15:28:35.187466Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 3 frames, 0.2MB → 0.1MB (3.5x), 3 JPEGs deleted
2026-04-24T15:28:35.591687Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 3 frames, 0.5MB → 0.2MB (2.6x), 3 JPEGs deleted
2026-04-24T15:33:39.031121Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=2 elapsed=3.484074667s
2026-04-24T15:33:39.031286Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
2026-04-24T15:43:41.373431Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=0 elapsed=2.126509208s
2026-04-24T15:48:45.005960Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=0 elapsed=3.630826208s
2026-04-24T15:53:46.452410Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=0 elapsed=1.442133375s
2026-04-24T16:03:50.813556Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=0 elapsed=3.725817875s
2026-04-24T16:08:52.104712Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=0 elapsed=1.289955292s
2026-04-24T16:14:48.860304Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)
2026-04-24T16:14:48.885031Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2
2026-04-24T16:14:49.085988Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)
2026-04-24T16:14:49.951727Z INFO screenpipe_engine::event_driven_capture: monitor 2 capture recovered after 1 consecutive errors
2026-04-24T16:15:14.957591Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)
2026-04-24T16:15:15.344344Z INFO screenpipe_engine::event_driven_capture: monitor 1 capture recovered after 1 consecutive errors
2026-04-24T16:17:13.975782Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7172393451066325016, trigger=click)
2026-04-24T16:19:00.805923Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=0 elapsed=7.986969166s
2026-04-24T16:19:29.124240Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3129461629380798674, trigger=click)
2026-04-24T16:19:29.165320Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=click)
2026-04-24T16:20:57.221933Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=click)
2026-04-24T16:21:34.158304Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=visual_change)
2026-04-24T16:21:52.258518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=visual_change)
2026-04-24T16:24:07.960303Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=0 elapsed=7.148022208s
2026-04-24T16:25:38.292462Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8773909165376335292, trigger=click)
2026-04-24T16:28:02.880424Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=826123905625364471, trigger=click)
2026-04-24T16:28:02.928317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=826123905625364471, trigger=click)
2026-04-24T16:29:02.161685Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5156992524424370675, trigger=visual_change)
2026-04-24T16:29:11.119509Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5156992524424370675, trigger=visual_change)
2026-04-24T16:29:15.437543Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=42 elapsed=7.45073025s
2026-04-24T16:29:15.438417Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 42 eligible frames
2026-04-24T16:29:17.083173Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 3.2MB → 0.4MB (9.1x), 20 JPEGs deleted
2026-04-24T16:29:18.972223Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 5.2MB → 1.7MB (3.0x), 22 JPEGs deleted
2026-04-24T16:29:34.388891Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5156992524424370675, trigger=click)
2026-04-24T16:29:45.796969Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4817563232530793650, trigger=click)
2026-04-24T16:32:36.877636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=visual_change)
2026-04-24T16:32:42.134384Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=visual_change)
2026-04-24T16:32:44.378087Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)
2026-04-24T16:32:45.243874Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=visual_change)
2026-04-24T16:32:54.163388Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8550622008733264339, trigger=click)
2026-04-24T16:32:54.176256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)
2026-04-24T16:32:57.087323Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8550622008733264339, trigger=click)
2026-04-24T16:32:57.117211Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)
2026-04-24T16:34:03.172812Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:34:13.599521Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:34:23.371635Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=21 elapsed=4.397149916s
2026-04-24T16:34:23.371744Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames
2026-04-24T16:34:24.346821Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.6MB → 0.4MB (4.0x), 11 JPEGs deleted
2026-04-24T16:34:25.323782Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 2.0MB → 0.7MB (2.7x), 8 JPEGs deleted
2026-04-24T16:35:16.265905Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:35:16.396499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:37:09.981293Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=visual_change)
2026-04-24T16:38:45.635162Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:38:47.663267Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:39:10.322134Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:39:27.552784Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=33 elapsed=2.228011375s
2026-04-24T16:39:27.552915Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 33 eligible frames
2026-04-24T16:39:28.615455Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.8MB → 0.6MB (4.8x), 14 JPEGs deleted
2026-04-24T16:39:30.390392Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.1MB → 1.6MB (2.0x), 17 JPEGs deleted
2026-04-24T16:40:01.437647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7218881400109780070, trigger=click)
2026-04-24T16:40:12.586378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:41:05.997041Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6861826947729846030, trigger=click)
2026-04-24T16:41:11.184592Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6861826947729846030, trigger=click)
2026-04-24T16:43:15.433697Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8550622008733264339, trigger=click)
2026-04-24T16:43:15.515804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)
2026-04-24T16:43:51.515815Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5576357006515458390, trigger=click)
2026-04-24T16:43:59.714706Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5576357006515458390, trigger=click)
2026-04-24T16:43:59.785731Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5576357006515458390, trigger=click)
2026-04-24T16:44:38.173037Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=20 elapsed=7.796779s
2026-04-24T16:44:38.174424Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 20 eligible frames
2026-04-24T16:44:39.258439Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 1.8MB → 0.3MB (5.7x), 9 JPEGs deleted
2026-04-24T16:44:41.729154Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 2.3MB → 1.7MB (1.4x), 9 JPEGs deleted
2026-04-24T16:48:00.989535Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5576357006515458390, trigger=click)
2026-04-24T16:48:17.430932Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5576357006515458390, trigger=click)
2026-04-24T16:49:49.135916Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=17 elapsed=7.403764583s
2026-04-24T16:49:49.136082Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 17 eligible frames
2026-04-24T16:49:50.004132Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 1.6MB → 0.3MB (5.1x), 8 JPEGs deleted
2026-04-24T16:49:50.898114Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 7 frames, 1.9MB → 0.7MB (2.6x), 7 JPEGs deleted
2026-04-24T16:50:09.364175Z INFO screenpipe_engine::event_driven_capture: content d...
|
NULL
|
|
79069
|
2033
|
1
|
2026-04-24T14:27:01.691940+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-24/1777 /Users/lukas/.screenpipe/data/data/2026-04-24/1777040821691_m1.jpg...
|
iTerm2
|
screenpipe"
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Last login: Fri Apr 24 12:59:23 on ttys007
Poetry Last login: Fri Apr 24 12:59:23 on ttys007
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-start
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-04-24T13:24:21.985779Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store
checking permissions...
screen recording: ok
accessibility: ok
2026-04-24T13:24:22.124681Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-04-24T13:24:23.055922Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-04-24T13:24:23.059528Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-04-24T13:24:23.061097Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-04-24T13:24:23.132247Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-04-24T13:24:23.132303Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-04-24T13:24:23.132592Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-04-24T13:24:23.132606Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-04-24T13:24:23.132938Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-04-24T13:24:23.132999Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-04-24T13:24:23.132808Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-04-24T13:24:23.180699Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-04-24T13:24:23.180978Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-04-24T13:24:23.181420Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-04-24T13:24:23.181613Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-04-24T13:24:23.181801Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-04-24T13:24:23.182313Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary
2026-04-24T13:24:23.182341Z INFO screenpipe_core::pipes: loaded 6 pipes from "/Users/lukas/.screenpipe/pipes"
_
__________________ ___ ____ ____ (_____ ___
/ ___/ ___/ ___/ _ \/ _ \/ __ \ / __ \/ / __ \/ _ \
(__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/
/____/\___/_/ \___/\___/_/ /_/ / .___/_/ .___/\___/
/_/ /_/
power AI by everything you've seen, said or heard
open source | runs locally | developer friendly
┌────────────────────────┬────────────────────────────────────┐
│ setting │ value │
├────────────────────────┼────────────────────────────────────┤
│ audio chunk duration │ 30 seconds │
│ port │ 3030 │
│ audio disabled │ true │
│ vision disabled │ false │
│ pause on DRM content │ false │
│ audio engine │ Parakeet │
│ vad engine │ Silero │
│ data directory │ /Users/lukas/.screenpipe │
│ debug mode │ false │
│ telemetry │ true │
│ use pii removal │ true │
│ use all monitors │ true │
│ ignored windows │ ["Boosteroid"] │
│ included windows │ [] │
│ cloud sync │ disabled │
│ auto-destruct pid │ 0 │
│ deepgram key │ not set │
│ api auth │ enabled │
2026-04-24T13:24:23.186334Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)
2026-04-24T13:24:23.198489Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh
│ encrypt secrets │ disabled │
│ retention days │ 14 │
├────────────────────────┼────────────────────────────────────┤
│ languages │ │
│ │ all languages │
├────────────────────────┼────────────────────────────────────┤
│ monitors │ │
│ │ id: 1 │
│ │ id: 2 │
├────────────────────────┼────────────────────────────────────┤
│ audio devices │ │
│ │ disabled │
└────────────────────────┴────────────────────────────────────┘
you are using local processing. all your data stays on your computer.
warning: telemetry is enabled. only error-level data will be sent.
to disable, use the --disable-telemetry flag.
check latest changes here: https://github.com/screenpipe/screenpipe/releases
2026-04-24T13:24:23.216198Z INFO screenpipe: starting UI event capture
2026-04-24T13:24:23.238868Z INFO screenpipe_engine::ui_recorder: Starting UI event capture
2026-04-24T13:24:23.260906Z INFO screenpipe_engine::ui_recorder: UI recording session started: 9676eafd-ea8f-4e1a-a5f1-de7bdb79c071
2026-04-24T13:24:23.260911Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)
2026-04-24T13:24:23.260972Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-23 10:24:23.260965 UTC to 2026-04-24 10:24:23.260965 UTC)
2026-04-24T13:24:23.261685Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)
2026-04-24T13:24:23.262214Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))
2026-04-24T13:24:23.273443Z INFO screenpipe_engine::server: Server listening on [IP_ADDRESS]:3030
2026-04-24T13:24:23.304240Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030
2026-04-24T13:24:23.567248Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)
2026-04-24T13:24:23.567289Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)
2026-04-24T13:24:23.567346Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)
2026-04-24T13:24:23.850835Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-04-24T13:24:23.850880Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-04-24T13:24:23.850893Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)
2026-04-24T13:24:23.850901Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)
2026-04-24T13:24:23.850941Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-04-24T13:24:25.197204Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)
2026-04-24T13:24:25.589436Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=77673, dur=103ms
2026-04-24T13:24:25.630980Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)
2026-04-24T13:24:25.652818Z INFO sck_rs::stream_manager: invalidated persistent stream for display 1
2026-04-24T13:24:26.160345Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=77674, dur=198ms
2026-04-24T13:24:27.471087Z WARN sqlx::query: summary="SELECT f.id, f.timestamp, f.offset_index, …" db.statement="\n\nSELECT\n f.id,\n f.timestamp,\n f.offset_index,\n COALESCE(\n SUBSTR(f.full_text, 1, 200),\n SUBSTR(f.accessibility_text, 1, 200),\n (\n SELECT\n SUBSTR(ot.text, 1, 200)\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as text,\n COALESCE(\n f.app_name,\n (\n SELECT\n ot.app_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as app_name,\n COALESCE(\n f.window_name,\n (\n SELECT\n ot.window_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as window_name,\n COALESCE(vc.device_name, f.device_name) as screen_device,\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\n COALESCE(vc.fps, 0.033) as chunk_fps,\n f.browser_url,\n f.machine_id\nFROM\n frames f\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\nWHERE\n f.timestamp >= ?1\n AND f.timestamp <= ?2\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\nORDER BY\n f.timestamp DESC,\n f.offset_index DESC\nLIMIT\n 10000\n" rows_affected=0 rows_returned=2758 elapsed=4.209235542s
2026-04-24T13:24:27.488504Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 2758 frame entries, coverage from 2026-04-23 10:24:23.260965 UTC
2026-04-24T13:24:56.108522Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)
2026-04-24T13:25:34.118891Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=82 elapsed=10.985025625s
2026-04-24T13:25:34.121032Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 82 eligible frames
2026-04-24T13:25:37.475066Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 6.5MB → 0.2MB (30.1x), 39 JPEGs deleted
2026-04-24T13:25:41.147418Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 41 frames, 9.1MB → 0.3MB (26.4x), 41 JPEGs deleted
2026-04-24T13:26:53.913464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3587331842305982393, trigger=click)
2026-04-24T13:30:52.310748Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=2 elapsed=11.152255s
2026-04-24T13:30:52.313747Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
2026-04-24T13:36:00.069099Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=9 elapsed=7.594933541s
2026-04-24T13:36:00.071113Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 9 eligible frames
2026-04-24T13:36:00.617576Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 4 frames, 0.3MB → 0.1MB (3.6x), 4 JPEGs deleted
2026-04-24T13:36:01.402540Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 5 frames, 1.0MB → 0.4MB (2.4x), 5 JPEGs deleted
2026-04-24T13:40:06.828525Z WARN sqlx::query: summary="BEGIN IMMEDIATE" db.statement="" rows_affected=1 rows_returned=0 elapsed=1.076759291s
2026-04-24T13:40:07.002782Z WARN sqlx::query: summary="SELECT DISTINCT app_name, window_name, …" db.statement="\n\nSELECT\n DISTINCT app_name,\n window_name,\n browser_url\nFROM\n frames\nWHERE\n timestamp > datetime('now', '-30 seconds')\n AND app_name IS NOT NULL\n AND window_name IS NOT NULL\n" rows_affected=0 rows_returned=195 elapsed=1.250257875s
2026-04-24T13:41:11.559513Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=92 elapsed=10.151735042s
2026-04-24T13:41:11.559741Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 92 eligible frames
2026-04-24T13:41:14.043784Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 2.3MB → 0.1MB (32.3x), 37 JPEGs deleted
2026-04-24T13:41:21.303349Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 53 frames, 8.7MB → 3.1MB (2.8x), 53 JPEGs deleted
2026-04-24T13:41:40.887689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7539785768983157715, trigger=click)
2026-04-24T13:42:34.136767Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3059269999432289894, trigger=click)
2026-04-24T13:42:45.942807Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3777488472456223409, trigger=click)
2026-04-24T13:43:01.921357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1871207218552190145, trigger=click)
2026-04-24T13:44:01.878037Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8495661271621520850, trigger=click)
2026-04-24T13:46:28.021146Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=40 elapsed=6.713739708s
2026-04-24T13:46:28.021348Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames
2026-04-24T13:46:29.141090Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 1.1MB → 0.1MB (17.9x), 18 JPEGs deleted
2026-04-24T13:46:31.601195Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.7MB → 2.9MB (1.6x), 20 JPEGs deleted
2026-04-24T13:51:31.692283Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames
2026-04-24T13:51:32.570330Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.0MB → 0.2MB (4.8x), 13 JPEGs deleted
2026-04-24T13:51:33.760542Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.9MB → 1.0MB (1.9x), 10 JPEGs deleted
2026-04-24T13:55:31.626192Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2977185087332333124, trigger=click)
2026-04-24T13:56:33.924925Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 105 eligible frames
2026-04-24T13:56:37.179833Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 55 frames, 5.1MB → 1.4MB (3.6x), 55 JPEGs deleted
2026-04-24T13:56:40.328768Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 48 frames, 7.6MB → 1.3MB (6.0x), 48 JPEGs deleted
2026-04-24T14:00:47.136298Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Firefox, signals=2)
2026-04-24T14:00:47.857419Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2938651853865790585, trigger=click)
2026-04-24T14:00:52.374476Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Firefox, signals=2, browser=true)
2026-04-24T14:00:52.378086Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=12, app=Firefox, title=None)
2026-04-24T14:01:40.650767Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 62 eligible frames
2026-04-24T14:01:42.431196Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 1.9MB → 0.1MB (32.0x), 30 JPEGs deleted
2026-04-24T14:01:44.259623Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 4.8MB → 0.2MB (23.8x), 30 JPEGs deleted
2026-04-24T14:06:51.687604Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=54 elapsed=7.415698459s
2026-04-24T14:06:51.691163Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 54 eligible frames
2026-04-24T14:06:53.324710Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 1.7MB → 0.1MB (29.0x), 27 JPEGs deleted
2026-04-24T14:06:54.826559Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.0MB → 0.2MB (19.9x), 25 JPEGs deleted
2026-04-24T14:11:54.984165Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 93 eligible frames
2026-04-24T14:11:57.808857Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 48 frames, 3.1MB → 0.1MB (49.5x), 48 JPEGs deleted
2026-04-24T14:12:00.396251Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 43 frames, 6.8MB → 0.2MB (33.8x), 43 JPEGs deleted
2026-04-24T14:17:06.109470Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=49 elapsed=5.652470541s
2026-04-24T14:17:06.109602Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 49 eligible frames
2026-04-24T14:17:07.677608Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 1.6MB → 0.1MB (27.0x), 25 JPEGs deleted
2026-04-24T14:17:09.097967Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 3.5MB → 0.2MB (17.6x), 22 JPEGs deleted
2026-04-24T14:22:13.316698Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=24 elapsed=4.206937709s
2026-04-24T14:22:13.317436Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 24 eligible frames
2026-04-24T14:22:14.074811Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 0.7MB → 0.1MB (12.2x), 11 JPEGs deleted
2026-04-24T14:22:14.844321Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.7MB → 0.2MB (8.9x), 11 JPEGs deleted
2026-04-24T14:27:16.330019Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=22 elapsed=1.474471542s
2026-04-24T14:27:16.330265Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames
2026-04-24T14:27:17.027734Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted
2026-04-24T14:27:17.792405Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted
2026-04-24T14:32:18.770983Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames
2026-04-24T14:32:19.478630Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted
2026-04-24T14:32:20.241056Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted
2026-04-24T14:37:27.349741Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=22 elapsed=7.096181584s
2026-04-24T14:37:27.353187Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames
2026-04-24T14:37:28.066685Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted
2026-04-24T14:37:28.851355Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted
2026-04-24T14:38:19.407454Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=12, grace=300s)
2026-04-24T14:39:19.637322Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8577329830578954505, trigger=click)
2026-04-24T14:39:21.680425Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8317095871263557761, trigger=click)
2026-04-24T14:39:21.707871Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8317095871263557761, trigger=click)
2026-04-24T14:40:10.148981Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5676671508452457688, trigger=click)
2026-04-24T14:42:02.876165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3644563293578755711, trigger=click)
2026-04-24T14:42:12.151008Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3644563293578755711, trigger=click)
2026-04-24T14:42:36.098708Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=22 elapsed=7.2363725s
2026-04-24T14:42:36.098834Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames
2026-04-24T14:42:36.816811Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted
2026-04-24T14:42:37.598382Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted
2026-04-24T14:42:43.884371Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1901203473704384943, trigger=click)
2026-04-24T14:42:43.916542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1901203473704384943, trigger=click)
2026-04-24T14:43:24.413233Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Idle (timeout=300s, app=Firefox, id=12)
2026-04-24T14:43:24.855747Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting ended (id=12)
2026-04-24T14:44:38.941315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1557697903749375374, trigger=click)
2026-04-24T14:44:38.962591Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1557697903749375374, trigger=click)
2026-04-24T14:44:39.438011Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1557697903749375374, trigger=click)
2026-04-24T14:45:24.198550Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8167839925779509873, trigger=click)
2026-04-24T14:45:25.110117Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8167839925779509873, trigger=click)
2026-04-24T14:45:38.880039Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3644563293578755711, trigger=click)
2026-04-24T14:46:09.691532Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8167839925779509873, trigger=click)
2026-04-24T14:46:23.813781Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4533509598273890786, trigger=click)
2026-04-24T14:46:23.859560Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4533509598273890786, trigger=click)
2026-04-24T14:47:44.514826Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2503176719318141451, trigger=click)
2026-04-24T14:47:44.539391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2503176719318141451, trigger=click)
2026-04-24T14:47:44.764903Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=21 elapsed=7.257808167s
2026-04-24T14:47:44.764982Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames
2026-04-24T14:47:45.473419Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 0.6MB → 0.1MB (10.0x), 9 JPEGs deleted
2026-04-24T14:47:46.188394Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted
2026-04-24T14:47:50.085052Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2503176719318141451, trigger=click)
2026-04-24T14:47:50.106335Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2503176719318141451, trigger=click)
2026-04-24T14:52:53.441281Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=100 elapsed=7.256992167s
2026-04-24T14:52:53.441665Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 100 eligible frames
2026-04-24T14:52:56.554743Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 3.2MB → 0.1MB (50.4x), 49 JPEGs deleted
2026-04-24T14:52:59.416988Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 7.8MB → 0.2MB (38.4x), 49 JPEGs deleted
2026-04-24T14:53:50.050387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4956080981675052788, trigger=click)
2026-04-24T14:55:36.318507Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-991319035522409710, trigger=click)
2026-04-24T14:55:36.391576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-991319035522409710, trigger=click)
2026-04-24T14:57:59.569859Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 57 eligible frames
2026-04-24T14:58:01.300455Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 1.6MB → 0.1MB (25.9x), 24 JPEGs deleted
2026-04-24T14:58:03.198608Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 4.9MB → 0.2MB (24.6x), 31 JPEGs deleted
2026-04-24T15:03:08.612242Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=30 elapsed=5.295343459s
2026-04-24T15:03:08.612821Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 30 eligible frames
2026-04-24T15:03:09.620798Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 0.9MB → 0.1MB (15.4x), 14 JPEGs deleted
2026-04-24T15:03:10.811697Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.2MB → 0.2MB (11.3x), 14 JPEGs deleted
2026-04-24T15:04:26.269378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5667957418966591499, trigger=click)
2026-04-24T15:04:26.321219Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5667957418966591499, trigger=click)
2026-04-24T15:08:14.307499Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=25 elapsed=3.392988s
2026-04-24T15:08:14.307671Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames
2026-04-24T15:08:15.302981Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 0.7MB → 0.1MB (12.2x), 11 JPEGs deleted
2026-04-24T15:08:16.186177Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 1.9MB → 0.2MB (9.7x), 12 JPEGs deleted
2026-04-24T15:13:18.963807Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=37 elapsed=2.767425042s
2026-04-24T15:13:18.963934Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 37 eligible frames
2026-04-24T15:13:20.113690Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 1.2MB → 0.1MB (19.7x), 18 JPEGs deleted
2026-04-24T15:13:21.236764Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.7MB → 0.2MB (13.6x), 17 JPEGs deleted
2026-04-24T15:14:48.156237Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)
2026-04-24T15:15:01.132168Z INFO sck_rs::stream_manager: recreating stream for display 1 (resolution change)
2026-04-24T15:15:01.221025Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=app_switch, monitor=1) — DB pool may be saturated
2026-04-24T15:15:01.375924Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=app_switch, monitor=2) — DB pool may be saturated
2026-04-24T15:15:15.842371Z INFO sck_rs::stream_manager: recreating stream for display 2 (resolution change)
2026-04-24T15:18:28.531831Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=36 elapsed=7.26041775s
2026-04-24T15:18:28.531955Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 36 eligible frames
2026-04-24T15:18:29.658166Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 1.1MB → 0.1MB (18.6x), 17 JPEGs deleted
2026-04-24T15:18:30.768761Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.7MB → 0.2MB (13.6x), 17 JPEGs deleted
2026-04-24T15:23:31.928536Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=22 elapsed=1.148790625s
2026-04-24T15:23:31.928649Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames
2026-04-24T15:23:32.642076Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted
2026-04-24T15:23:33.401791Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted
2026-04-24T15:28:34.810366Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=8 elapsed=1.39738375s
2026-04-24T15:28:34.810546Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 8 eligible frames
2026-04-24T15:28:35.187466Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 3 frames, 0.2MB → 0.1MB (3.5x), 3 JPEGs deleted
2026-04-24T15:28:35.591687Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 3 frames, 0.5MB → 0.2MB (2.6x), 3 JPEGs deleted
2026-04-24T15:33:39.031121Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=2 elapsed=3.484074667s
2026-04-24T15:33:39.031286Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
2026-04-24T15:43:41.373431Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=0 elapsed=2.126509208s
2026-04-24T15:48:45.005960Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=0 elapsed=3.630826208s
2026-04-24T15:53:46.452410Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=0 elapsed=1.442133375s
2026-04-24T16:03:50.813556Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=0 elapsed=3.725817875s
2026-04-24T16:08:52.104712Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=0 elapsed=1.289955292s
2026-04-24T16:14:48.860304Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)
2026-04-24T16:14:48.885031Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2
2026-04-24T16:14:49.085988Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)
2026-04-24T16:14:49.951727Z INFO screenpipe_engine::event_driven_capture: monitor 2 capture recovered after 1 consecutive errors
2026-04-24T16:15:14.957591Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)
2026-04-24T16:15:15.344344Z INFO screenpipe_engine::event_driven_capture: monitor 1 capture recovered after 1 consecutive errors
2026-04-24T16:17:13.975782Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7172393451066325016, trigger=click)
2026-04-24T16:19:00.805923Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=0 elapsed=7.986969166s
2026-04-24T16:19:29.124240Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3129461629380798674, trigger=click)
2026-04-24T16:19:29.165320Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=click)
2026-04-24T16:20:57.221933Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=click)
2026-04-24T16:21:34.158304Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=visual_change)
2026-04-24T16:21:52.258518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=visual_change)
2026-04-24T16:24:07.960303Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=0 elapsed=7.148022208s
2026-04-24T16:25:38.292462Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8773909165376335292, trigger=click)
2026-04-24T16:28:02.880424Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=826123905625364471, trigger=click)
2026-04-24T16:28:02.928317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=826123905625364471, trigger=click)
2026-04-24T16:29:02.161685Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5156992524424370675, trigger=visual_change)
2026-04-24T16:29:11.119509Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5156992524424370675, trigger=visual_change)
2026-04-24T16:29:15.437543Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=42 elapsed=7.45073025s
2026-04-24T16:29:15.438417Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 42 eligible frames
2026-04-24T16:29:17.083173Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 3.2MB → 0.4MB (9.1x), 20 JPEGs deleted
2026-04-24T16:29:18.972223Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 5.2MB → 1.7MB (3.0x), 22 JPEGs deleted
2026-04-24T16:29:34.388891Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5156992524424370675, trigger=click)
2026-04-24T16:29:45.796969Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4817563232530793650, trigger=click)
2026-04-24T16:32:36.877636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=visual_change)
2026-04-24T16:32:42.134384Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=visual_change)
2026-04-24T16:32:44.378087Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)
2026-04-24T16:32:45.243874Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=visual_change)
2026-04-24T16:32:54.163388Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8550622008733264339, trigger=click)
2026-04-24T16:32:54.176256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)
2026-04-24T16:32:57.087323Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8550622008733264339, trigger=click)
2026-04-24T16:32:57.117211Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)
2026-04-24T16:34:03.172812Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:34:13.599521Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:34:23.371635Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=21 elapsed=4.397149916s
2026-04-24T16:34:23.371744Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames
2026-04-24T16:34:24.346821Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.6MB → 0.4MB (4.0x), 11 JPEGs deleted
2026-04-24T16:34:25.323782Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 2.0MB → 0.7MB (2.7x), 8 JPEGs deleted
2026-04-24T16:35:16.265905Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:35:16.396499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:37:09.981293Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=visual_change)
2026-04-24T16:38:45.635162Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:38:47.663267Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:39:10.322134Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:39:27.552784Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=33 elapsed=2.228011375s
2026-04-24T16:39:27.552915Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 33 eligible frames
2026-04-24T16:39:28.615455Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.8MB → 0.6MB (4.8x), 14 JPEGs deleted
2026-04-24T16:39:30.390392Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.1MB → 1.6MB (2.0x), 17 JPEGs deleted
2026-04-24T16:40:01.437647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7218881400109780070, trigger=click)
2026-04-24T16:40:12.586378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:41:05.997041Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6861826947729846030, trigger=click)
2026-04-24T16:41:11.184592Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6861826947729846030, trigger=click)
2026-04-24T16:43:15.433697Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8550622008733264339, trigger=click)
2026-04-24T16:43:15.515804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)
2026-04-24T16:43:51.515815Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5576357006515458390, trigger=click)
2026-04-24T16:43:59.714706Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5576357006515458390, trigger=click)
2026-04-24T16:43:59.785731Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5576357006515458390, trigger=click)
2026-04-24T16:44:38.173037Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=20 elapsed=7.796779s
2026-04-24T16:44:38.174424Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 20 eligible frames
2026-04-24T16:44:39.258439Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 1.8MB → 0.3MB (5.7x), 9 JPEGs deleted
2026-04-24T16:44:41.729154Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 2.3MB → 1.7MB (1.4x), 9 JPEGs deleted
2026-04-24T16:48:00.989535Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5576357006515458390, trigger=click)
2026-04-24T16:48:17.430932Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5576357006515458390, trigger=click)
2026-04-24T16:49:49.135916Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=17 elapsed=7.403764583s
2026-04-24T16:49:49.136082Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 17 eligible frames
2026-04-24T16:49:50.004132Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 1.6MB → 0.3MB (5.1x), 8 JPEGs deleted
2026-04-24T16:49:50.898114Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 7 frames, 1.9MB → 0.7MB (2.6x), 7 JPEGs deleted
2026-04-24T16:50:09.364175Z INFO screenpipe_engine::event_driven_capture: content d...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"Last login: Fri Apr 24 12:59:23 on ttys007\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-start\ndetected hardware tier: Mid\nwarning: parakeet is not supported on this platform, using whisper-tiny instead\n2026-04-24T13:24:21.985779Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store\nchecking permissions...\n screen recording: ok\n accessibility: ok\n2026-04-24T13:24:22.124681Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6\n2026-04-24T13:24:23.055922Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor\n2026-04-24T13:24:23.059528Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)\n2026-04-24T13:24:23.061097Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)\n2026-04-24T13:24:23.132247Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true\n2026-04-24T13:24:23.132303Z INFO screenpipe: meeting detector enabled — independent of transcription mode\n2026-04-24T13:24:23.132592Z INFO screenpipe: API server listening on 127.0.0.1:3030 (localhost only)\n2026-04-24T13:24:23.132606Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key\n2026-04-24T13:24:23.132938Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)\n2026-04-24T13:24:23.132999Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager\n2026-04-24T13:24:23.132808Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)\n2026-04-24T13:24:23.180699Z INFO screenpipe_core::pipes: loaded pipe: day-recap\n2026-04-24T13:24:23.180978Z INFO screenpipe_core::pipes: loaded pipe: standup-update\n2026-04-24T13:24:23.181420Z INFO screenpipe_core::pipes: loaded pipe: ai-habits\n2026-04-24T13:24:23.181613Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown\n2026-04-24T13:24:23.181801Z INFO screenpipe_core::pipes: loaded pipe: video-export\n2026-04-24T13:24:23.182313Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary\n2026-04-24T13:24:23.182341Z INFO screenpipe_core::pipes: loaded 6 pipes from \"/Users/lukas/.screenpipe/pipes\"\n\n\n\n _ \n __________________ ___ ____ ____ (_____ ___ \n / ___/ ___/ ___/ _ \\/ _ \\/ __ \\ / __ \\/ / __ \\/ _ \\\n (__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/\n/____/\\___/_/ \\___/\\___/_/ /_/ / .___/_/ .___/\\___/ \n /_/ /_/ \n\n\n\npower AI by everything you've seen, said or heard\nopen source | runs locally | developer friendly\n\n\n┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ true │\n│ vision disabled │ false │\n│ pause on DRM content │ false │\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n│ ignored windows │ [\"Boosteroid\"] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n│ api auth │ enabled │\n2026-04-24T13:24:23.186334Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n2026-04-24T13:24:23.198489Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n│ encrypt secrets │ disabled │\n│ retention days │ 14 │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ id: 1 │\n│ │ id: 2 │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ disabled │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-24T13:24:23.216198Z INFO screenpipe: starting UI event capture\n2026-04-24T13:24:23.238868Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-24T13:24:23.260906Z INFO screenpipe_engine::ui_recorder: UI recording session started: 9676eafd-ea8f-4e1a-a5f1-de7bdb79c071\n2026-04-24T13:24:23.260911Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-24T13:24:23.260972Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-23 10:24:23.260965 UTC to 2026-04-24 10:24:23.260965 UTC)\n2026-04-24T13:24:23.261685Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-24T13:24:23.262214Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-24T13:24:23.273443Z INFO screenpipe_engine::server: Server listening on 127.0.0.1:3030\n2026-04-24T13:24:23.304240Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-24T13:24:23.567248Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-24T13:24:23.567289Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-24T13:24:23.567346Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-24T13:24:23.850835Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-24T13:24:23.850880Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-24T13:24:23.850893Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)\n2026-04-24T13:24:23.850901Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)\n2026-04-24T13:24:23.850941Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-24T13:24:25.197204Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)\n2026-04-24T13:24:25.589436Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=77673, dur=103ms\n2026-04-24T13:24:25.630980Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)\n2026-04-24T13:24:25.652818Z INFO sck_rs::stream_manager: invalidated persistent stream for display 1\n2026-04-24T13:24:26.160345Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=77674, dur=198ms\n2026-04-24T13:24:27.471087Z WARN sqlx::query: summary=\"SELECT f.id, f.timestamp, f.offset_index, …\" db.statement=\"\\n\\nSELECT\\n f.id,\\n f.timestamp,\\n f.offset_index,\\n COALESCE(\\n SUBSTR(f.full_text, 1, 200),\\n SUBSTR(f.accessibility_text, 1, 200),\\n (\\n SELECT\\n SUBSTR(ot.text, 1, 200)\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as text,\\n COALESCE(\\n f.app_name,\\n (\\n SELECT\\n ot.app_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as app_name,\\n COALESCE(\\n f.window_name,\\n (\\n SELECT\\n ot.window_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as window_name,\\n COALESCE(vc.device_name, f.device_name) as screen_device,\\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\\n COALESCE(vc.fps, 0.033) as chunk_fps,\\n f.browser_url,\\n f.machine_id\\nFROM\\n frames f\\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\\nWHERE\\n f.timestamp >= ?1\\n AND f.timestamp <= ?2\\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\\nORDER BY\\n f.timestamp DESC,\\n f.offset_index DESC\\nLIMIT\\n 10000\\n\" rows_affected=0 rows_returned=2758 elapsed=4.209235542s\n2026-04-24T13:24:27.488504Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 2758 frame entries, coverage from 2026-04-23 10:24:23.260965 UTC\n2026-04-24T13:24:56.108522Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)\n2026-04-24T13:25:34.118891Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=82 elapsed=10.985025625s\n2026-04-24T13:25:34.121032Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 82 eligible frames\n2026-04-24T13:25:37.475066Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 6.5MB → 0.2MB (30.1x), 39 JPEGs deleted\n2026-04-24T13:25:41.147418Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 41 frames, 9.1MB → 0.3MB (26.4x), 41 JPEGs deleted\n2026-04-24T13:26:53.913464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3587331842305982393, trigger=click)\n2026-04-24T13:30:52.310748Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=2 elapsed=11.152255s\n2026-04-24T13:30:52.313747Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-24T13:36:00.069099Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=9 elapsed=7.594933541s\n2026-04-24T13:36:00.071113Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 9 eligible frames\n2026-04-24T13:36:00.617576Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 4 frames, 0.3MB → 0.1MB (3.6x), 4 JPEGs deleted\n2026-04-24T13:36:01.402540Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 5 frames, 1.0MB → 0.4MB (2.4x), 5 JPEGs deleted\n2026-04-24T13:40:06.828525Z WARN sqlx::query: summary=\"BEGIN IMMEDIATE\" db.statement=\"\" rows_affected=1 rows_returned=0 elapsed=1.076759291s\n2026-04-24T13:40:07.002782Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=195 elapsed=1.250257875s\n2026-04-24T13:41:11.559513Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=92 elapsed=10.151735042s\n2026-04-24T13:41:11.559741Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 92 eligible frames\n2026-04-24T13:41:14.043784Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 2.3MB → 0.1MB (32.3x), 37 JPEGs deleted\n2026-04-24T13:41:21.303349Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 53 frames, 8.7MB → 3.1MB (2.8x), 53 JPEGs deleted\n2026-04-24T13:41:40.887689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7539785768983157715, trigger=click)\n2026-04-24T13:42:34.136767Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3059269999432289894, trigger=click)\n2026-04-24T13:42:45.942807Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3777488472456223409, trigger=click)\n2026-04-24T13:43:01.921357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1871207218552190145, trigger=click)\n2026-04-24T13:44:01.878037Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8495661271621520850, trigger=click)\n2026-04-24T13:46:28.021146Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=40 elapsed=6.713739708s\n2026-04-24T13:46:28.021348Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames\n2026-04-24T13:46:29.141090Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 1.1MB → 0.1MB (17.9x), 18 JPEGs deleted\n2026-04-24T13:46:31.601195Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.7MB → 2.9MB (1.6x), 20 JPEGs deleted\n2026-04-24T13:51:31.692283Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames\n2026-04-24T13:51:32.570330Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.0MB → 0.2MB (4.8x), 13 JPEGs deleted\n2026-04-24T13:51:33.760542Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.9MB → 1.0MB (1.9x), 10 JPEGs deleted\n2026-04-24T13:55:31.626192Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2977185087332333124, trigger=click)\n2026-04-24T13:56:33.924925Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 105 eligible frames\n2026-04-24T13:56:37.179833Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 55 frames, 5.1MB → 1.4MB (3.6x), 55 JPEGs deleted\n2026-04-24T13:56:40.328768Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 48 frames, 7.6MB → 1.3MB (6.0x), 48 JPEGs deleted\n2026-04-24T14:00:47.136298Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Firefox, signals=2)\n2026-04-24T14:00:47.857419Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2938651853865790585, trigger=click)\n2026-04-24T14:00:52.374476Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Firefox, signals=2, browser=true)\n2026-04-24T14:00:52.378086Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=12, app=Firefox, title=None)\n2026-04-24T14:01:40.650767Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 62 eligible frames\n2026-04-24T14:01:42.431196Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 1.9MB → 0.1MB (32.0x), 30 JPEGs deleted\n2026-04-24T14:01:44.259623Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 4.8MB → 0.2MB (23.8x), 30 JPEGs deleted\n2026-04-24T14:06:51.687604Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=54 elapsed=7.415698459s\n2026-04-24T14:06:51.691163Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 54 eligible frames\n2026-04-24T14:06:53.324710Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 1.7MB → 0.1MB (29.0x), 27 JPEGs deleted\n2026-04-24T14:06:54.826559Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.0MB → 0.2MB (19.9x), 25 JPEGs deleted\n2026-04-24T14:11:54.984165Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 93 eligible frames\n2026-04-24T14:11:57.808857Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 48 frames, 3.1MB → 0.1MB (49.5x), 48 JPEGs deleted\n2026-04-24T14:12:00.396251Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 43 frames, 6.8MB → 0.2MB (33.8x), 43 JPEGs deleted\n2026-04-24T14:17:06.109470Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=49 elapsed=5.652470541s\n2026-04-24T14:17:06.109602Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 49 eligible frames\n2026-04-24T14:17:07.677608Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 1.6MB → 0.1MB (27.0x), 25 JPEGs deleted\n2026-04-24T14:17:09.097967Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 3.5MB → 0.2MB (17.6x), 22 JPEGs deleted\n2026-04-24T14:22:13.316698Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=24 elapsed=4.206937709s\n2026-04-24T14:22:13.317436Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 24 eligible frames\n2026-04-24T14:22:14.074811Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 0.7MB → 0.1MB (12.2x), 11 JPEGs deleted\n2026-04-24T14:22:14.844321Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.7MB → 0.2MB (8.9x), 11 JPEGs deleted\n2026-04-24T14:27:16.330019Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=1.474471542s\n2026-04-24T14:27:16.330265Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T14:27:17.027734Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted\n2026-04-24T14:27:17.792405Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted\n2026-04-24T14:32:18.770983Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T14:32:19.478630Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted\n2026-04-24T14:32:20.241056Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted\n2026-04-24T14:37:27.349741Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=7.096181584s\n2026-04-24T14:37:27.353187Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T14:37:28.066685Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted\n2026-04-24T14:37:28.851355Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted\n2026-04-24T14:38:19.407454Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=12, grace=300s)\n2026-04-24T14:39:19.637322Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8577329830578954505, trigger=click)\n2026-04-24T14:39:21.680425Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8317095871263557761, trigger=click)\n2026-04-24T14:39:21.707871Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8317095871263557761, trigger=click)\n2026-04-24T14:40:10.148981Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5676671508452457688, trigger=click)\n2026-04-24T14:42:02.876165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3644563293578755711, trigger=click)\n2026-04-24T14:42:12.151008Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3644563293578755711, trigger=click)\n2026-04-24T14:42:36.098708Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=7.2363725s\n2026-04-24T14:42:36.098834Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T14:42:36.816811Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted\n2026-04-24T14:42:37.598382Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted\n2026-04-24T14:42:43.884371Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1901203473704384943, trigger=click)\n2026-04-24T14:42:43.916542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1901203473704384943, trigger=click)\n2026-04-24T14:43:24.413233Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Idle (timeout=300s, app=Firefox, id=12)\n2026-04-24T14:43:24.855747Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting ended (id=12)\n2026-04-24T14:44:38.941315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1557697903749375374, trigger=click)\n2026-04-24T14:44:38.962591Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1557697903749375374, trigger=click)\n2026-04-24T14:44:39.438011Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1557697903749375374, trigger=click)\n2026-04-24T14:45:24.198550Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8167839925779509873, trigger=click)\n2026-04-24T14:45:25.110117Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8167839925779509873, trigger=click)\n2026-04-24T14:45:38.880039Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3644563293578755711, trigger=click)\n2026-04-24T14:46:09.691532Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8167839925779509873, trigger=click)\n2026-04-24T14:46:23.813781Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4533509598273890786, trigger=click)\n2026-04-24T14:46:23.859560Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4533509598273890786, trigger=click)\n2026-04-24T14:47:44.514826Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2503176719318141451, trigger=click)\n2026-04-24T14:47:44.539391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2503176719318141451, trigger=click)\n2026-04-24T14:47:44.764903Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=21 elapsed=7.257808167s\n2026-04-24T14:47:44.764982Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames\n2026-04-24T14:47:45.473419Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 0.6MB → 0.1MB (10.0x), 9 JPEGs deleted\n2026-04-24T14:47:46.188394Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted\n2026-04-24T14:47:50.085052Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2503176719318141451, trigger=click)\n2026-04-24T14:47:50.106335Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2503176719318141451, trigger=click)\n2026-04-24T14:52:53.441281Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=100 elapsed=7.256992167s\n2026-04-24T14:52:53.441665Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 100 eligible frames\n2026-04-24T14:52:56.554743Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 3.2MB → 0.1MB (50.4x), 49 JPEGs deleted\n2026-04-24T14:52:59.416988Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 7.8MB → 0.2MB (38.4x), 49 JPEGs deleted\n2026-04-24T14:53:50.050387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4956080981675052788, trigger=click)\n2026-04-24T14:55:36.318507Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-991319035522409710, trigger=click)\n2026-04-24T14:55:36.391576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-991319035522409710, trigger=click)\n2026-04-24T14:57:59.569859Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 57 eligible frames\n2026-04-24T14:58:01.300455Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 1.6MB → 0.1MB (25.9x), 24 JPEGs deleted\n2026-04-24T14:58:03.198608Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 4.9MB → 0.2MB (24.6x), 31 JPEGs deleted\n2026-04-24T15:03:08.612242Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=30 elapsed=5.295343459s\n2026-04-24T15:03:08.612821Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 30 eligible frames\n2026-04-24T15:03:09.620798Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 0.9MB → 0.1MB (15.4x), 14 JPEGs deleted\n2026-04-24T15:03:10.811697Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.2MB → 0.2MB (11.3x), 14 JPEGs deleted\n2026-04-24T15:04:26.269378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5667957418966591499, trigger=click)\n2026-04-24T15:04:26.321219Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5667957418966591499, trigger=click)\n2026-04-24T15:08:14.307499Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=25 elapsed=3.392988s\n2026-04-24T15:08:14.307671Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames\n2026-04-24T15:08:15.302981Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 0.7MB → 0.1MB (12.2x), 11 JPEGs deleted\n2026-04-24T15:08:16.186177Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 1.9MB → 0.2MB (9.7x), 12 JPEGs deleted\n2026-04-24T15:13:18.963807Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=37 elapsed=2.767425042s\n2026-04-24T15:13:18.963934Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 37 eligible frames\n2026-04-24T15:13:20.113690Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 1.2MB → 0.1MB (19.7x), 18 JPEGs deleted\n2026-04-24T15:13:21.236764Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.7MB → 0.2MB (13.6x), 17 JPEGs deleted\n2026-04-24T15:14:48.156237Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)\n2026-04-24T15:15:01.132168Z INFO sck_rs::stream_manager: recreating stream for display 1 (resolution change)\n2026-04-24T15:15:01.221025Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=app_switch, monitor=1) — DB pool may be saturated\n2026-04-24T15:15:01.375924Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=app_switch, monitor=2) — DB pool may be saturated\n2026-04-24T15:15:15.842371Z INFO sck_rs::stream_manager: recreating stream for display 2 (resolution change)\n2026-04-24T15:18:28.531831Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=36 elapsed=7.26041775s\n2026-04-24T15:18:28.531955Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 36 eligible frames\n2026-04-24T15:18:29.658166Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 1.1MB → 0.1MB (18.6x), 17 JPEGs deleted\n2026-04-24T15:18:30.768761Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.7MB → 0.2MB (13.6x), 17 JPEGs deleted\n2026-04-24T15:23:31.928536Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=1.148790625s\n2026-04-24T15:23:31.928649Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T15:23:32.642076Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted\n2026-04-24T15:23:33.401791Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted\n2026-04-24T15:28:34.810366Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=8 elapsed=1.39738375s\n2026-04-24T15:28:34.810546Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 8 eligible frames\n2026-04-24T15:28:35.187466Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 3 frames, 0.2MB → 0.1MB (3.5x), 3 JPEGs deleted\n2026-04-24T15:28:35.591687Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 3 frames, 0.5MB → 0.2MB (2.6x), 3 JPEGs deleted\n2026-04-24T15:33:39.031121Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=2 elapsed=3.484074667s\n2026-04-24T15:33:39.031286Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-24T15:43:41.373431Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=2.126509208s\n2026-04-24T15:48:45.005960Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=3.630826208s\n2026-04-24T15:53:46.452410Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.442133375s\n2026-04-24T16:03:50.813556Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=3.725817875s\n2026-04-24T16:08:52.104712Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.289955292s\n2026-04-24T16:14:48.860304Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)\n2026-04-24T16:14:48.885031Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2\n2026-04-24T16:14:49.085988Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)\n2026-04-24T16:14:49.951727Z INFO screenpipe_engine::event_driven_capture: monitor 2 capture recovered after 1 consecutive errors\n2026-04-24T16:15:14.957591Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-24T16:15:15.344344Z INFO screenpipe_engine::event_driven_capture: monitor 1 capture recovered after 1 consecutive errors\n2026-04-24T16:17:13.975782Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7172393451066325016, trigger=click)\n2026-04-24T16:19:00.805923Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=7.986969166s\n2026-04-24T16:19:29.124240Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3129461629380798674, trigger=click)\n2026-04-24T16:19:29.165320Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=click)\n2026-04-24T16:20:57.221933Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=click)\n2026-04-24T16:21:34.158304Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=visual_change)\n2026-04-24T16:21:52.258518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=visual_change)\n2026-04-24T16:24:07.960303Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=7.148022208s\n2026-04-24T16:25:38.292462Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8773909165376335292, trigger=click)\n2026-04-24T16:28:02.880424Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=826123905625364471, trigger=click)\n2026-04-24T16:28:02.928317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=826123905625364471, trigger=click)\n2026-04-24T16:29:02.161685Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5156992524424370675, trigger=visual_change)\n2026-04-24T16:29:11.119509Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5156992524424370675, trigger=visual_change)\n2026-04-24T16:29:15.437543Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=42 elapsed=7.45073025s\n2026-04-24T16:29:15.438417Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 42 eligible frames\n2026-04-24T16:29:17.083173Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 3.2MB → 0.4MB (9.1x), 20 JPEGs deleted\n2026-04-24T16:29:18.972223Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 5.2MB → 1.7MB (3.0x), 22 JPEGs deleted\n2026-04-24T16:29:34.388891Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5156992524424370675, trigger=click)\n2026-04-24T16:29:45.796969Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4817563232530793650, trigger=click)\n2026-04-24T16:32:36.877636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=visual_change)\n2026-04-24T16:32:42.134384Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=visual_change)\n2026-04-24T16:32:44.378087Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)\n2026-04-24T16:32:45.243874Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=visual_change)\n2026-04-24T16:32:54.163388Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8550622008733264339, trigger=click)\n2026-04-24T16:32:54.176256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)\n2026-04-24T16:32:57.087323Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8550622008733264339, trigger=click)\n2026-04-24T16:32:57.117211Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)\n2026-04-24T16:34:03.172812Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:34:13.599521Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:34:23.371635Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=21 elapsed=4.397149916s\n2026-04-24T16:34:23.371744Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames\n2026-04-24T16:34:24.346821Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.6MB → 0.4MB (4.0x), 11 JPEGs deleted\n2026-04-24T16:34:25.323782Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 2.0MB → 0.7MB (2.7x), 8 JPEGs deleted\n2026-04-24T16:35:16.265905Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:35:16.396499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:37:09.981293Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=visual_change)\n2026-04-24T16:38:45.635162Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:38:47.663267Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:39:10.322134Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:39:27.552784Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=33 elapsed=2.228011375s\n2026-04-24T16:39:27.552915Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 33 eligible frames\n2026-04-24T16:39:28.615455Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.8MB → 0.6MB (4.8x), 14 JPEGs deleted\n2026-04-24T16:39:30.390392Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.1MB → 1.6MB (2.0x), 17 JPEGs deleted\n2026-04-24T16:40:01.437647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7218881400109780070, trigger=click)\n2026-04-24T16:40:12.586378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:41:05.997041Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6861826947729846030, trigger=click)\n2026-04-24T16:41:11.184592Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6861826947729846030, trigger=click)\n2026-04-24T16:43:15.433697Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8550622008733264339, trigger=click)\n2026-04-24T16:43:15.515804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)\n2026-04-24T16:43:51.515815Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5576357006515458390, trigger=click)\n2026-04-24T16:43:59.714706Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5576357006515458390, trigger=click)\n2026-04-24T16:43:59.785731Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5576357006515458390, trigger=click)\n2026-04-24T16:44:38.173037Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=20 elapsed=7.796779s\n2026-04-24T16:44:38.174424Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 20 eligible frames\n2026-04-24T16:44:39.258439Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 1.8MB → 0.3MB (5.7x), 9 JPEGs deleted\n2026-04-24T16:44:41.729154Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 2.3MB → 1.7MB (1.4x), 9 JPEGs deleted\n2026-04-24T16:48:00.989535Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5576357006515458390, trigger=click)\n2026-04-24T16:48:17.430932Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5576357006515458390, trigger=click)\n2026-04-24T16:49:49.135916Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=17 elapsed=7.403764583s\n2026-04-24T16:49:49.136082Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 17 eligible frames\n2026-04-24T16:49:50.004132Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 1.6MB → 0.3MB (5.1x), 8 JPEGs deleted\n2026-04-24T16:49:50.898114Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 7 frames, 1.9MB → 0.7MB (2.6x), 7 JPEGs deleted\n2026-04-24T16:50:09.364175Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8409739779266792278, trigger=visual_change)\n2026-04-24T16:50:11.237105Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8409739779266792278, trigger=click)\n2026-04-24T16:51:37.931779Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1423930385844614485, trigger=click)\n2026-04-24T16:53:14.381283Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7564119013552971576, trigger=click)\n2026-04-24T16:54:12.231394Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1423930385844614485, trigger=visual_change)\n2026-04-24T16:54:15.266343Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1423930385844614485, trigger=visual_change)\n2026-04-24T16:55:01.568514Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=58 elapsed=10.558641542s\n2026-04-24T16:55:01.569579Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 58 eligible frames\n2026-04-24T16:55:04.609017Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 5.7MB → 1.1MB (5.0x), 28 JPEGs deleted\n2026-04-24T16:55:09.392416Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 5.5MB → 3.1MB (1.8x), 28 JPEGs deleted\n2026-04-24T16:55:39.774741Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3617611630109587613, trigger=click)\n2026-04-24T16:55:39.852272Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3617611630109587613, trigger=click)\n2026-04-24T16:56:40.038632Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-426150959945983082, trigger=click)\n2026-04-24T16:59:26.437906Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-426150959945983082, trigger=visual_change)\n2026-04-24T17:00:21.026565Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=53 elapsed=11.620753209s\n2026-04-24T17:00:21.027475Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 53 eligible frames\n2026-04-24T17:00:24.007228Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 4.3MB → 0.5MB (7.8x), 21 JPEGs deleted\n2026-04-24T17:00:30.315443Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 6.2MB → 3.1MB (2.0x), 30 JPEGs deleted\n2026-04-24T17:01:31.749742Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4978074472044237669, trigger=click)\n2026-04-24T17:02:32.676946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6528076374554576690, trigger=click)\n2026-04-24T17:03:24.566715Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5730479857460890072, trigger=click)\n2026-04-24T17:03:24.646165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5730479857460890072, trigger=click)\n2026-04-24T17:04:36.724352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2722349336895059815, trigger=click)\n2026-04-24T17:05:26.414686Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-255140549253982666, trigger=click)\n2026-04-24T17:05:38.960944Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=49 elapsed=8.570160541s\n2026-04-24T17:05:38.961851Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 49 eligible frames\n2026-04-24T17:05:40.770553Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.8MB → 0.5MB (10.1x), 24 JPEGs deleted\n2026-04-24T17:05:44.093500Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 4.3MB → 2.0MB (2.1x), 23 JPEGs deleted\n2026-04-24T17:10:45.665278Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=57 elapsed=1.565954333s\n2026-04-24T17:10:45.665510Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 57 eligible frames\n2026-04-24T17:10:47.346256Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.1MB → 0.3MB (15.5x), 25 JPEGs deleted\n2026-04-24T17:10:49.931994Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 5.2MB → 2.6MB (2.0x), 30 JPEGs deleted\n2026-04-24T17:12:35.862404Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2722349336895059815, trigger=visual_change)\n2026-04-24T17:15:54.006030Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=35 elapsed=4.067925709s\n2026-04-24T17:15:54.006151Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 35 eligible frames\n2026-04-24T17:15:55.261287Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.6MB → 0.3MB (11.3x), 18 JPEGs deleted\n2026-04-24T17:15:56.815522Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 3.2MB → 1.3MB (2.4x), 15 JPEGs deleted\n2026-04-24T17:20:58.288264Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=1.467426625s\n2026-04-24T17:20:58.288415Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T17:20:59.175263Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.0MB → 0.3MB (6.3x), 10 JPEGs deleted\n2026-04-24T17:21:00.120027Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.3MB → 0.4MB (6.2x), 10 JPEGs deleted\n2026-04-24T17:22:48.235588Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-885508568992678447, trigger=click)\n2026-04-24T17:22:48.306917Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-885508568992678447, trigger=click)\n2026-04-24T17:23:41.318200Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-885508568992678447, trigger=click)\n2026-04-24T17:24:30.499216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3481376117812878957, trigger=click)\n2026-04-24T17:24:30.601163Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3481376117812878957, trigger=click)\n2026-04-24T17:26:07.575025Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=28 elapsed=7.43131375s\n2026-04-24T17:26:07.578806Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames\n2026-04-24T17:26:08.478709Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 2.2MB → 0.3MB (6.9x), 11 JPEGs deleted\n2026-04-24T17:26:09.770241Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.6MB → 1.0MB (2.6x), 15 JPEGs deleted\n2026-04-24T17:26:26.261981Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-885508568992678447, trigger=click)\n2026-04-24T17:26:26.307896Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-885508568992678447, trigger=click)","depth":4,"value":"Last login: Fri Apr 24 12:59:23 on ttys007\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-start\ndetected hardware tier: Mid\nwarning: parakeet is not supported on this platform, using whisper-tiny instead\n2026-04-24T13:24:21.985779Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store\nchecking permissions...\n screen recording: ok\n accessibility: ok\n2026-04-24T13:24:22.124681Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6\n2026-04-24T13:24:23.055922Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor\n2026-04-24T13:24:23.059528Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)\n2026-04-24T13:24:23.061097Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)\n2026-04-24T13:24:23.132247Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true\n2026-04-24T13:24:23.132303Z INFO screenpipe: meeting detector enabled — independent of transcription mode\n2026-04-24T13:24:23.132592Z INFO screenpipe: API server listening on 127.0.0.1:3030 (localhost only)\n2026-04-24T13:24:23.132606Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key\n2026-04-24T13:24:23.132938Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)\n2026-04-24T13:24:23.132999Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager\n2026-04-24T13:24:23.132808Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)\n2026-04-24T13:24:23.180699Z INFO screenpipe_core::pipes: loaded pipe: day-recap\n2026-04-24T13:24:23.180978Z INFO screenpipe_core::pipes: loaded pipe: standup-update\n2026-04-24T13:24:23.181420Z INFO screenpipe_core::pipes: loaded pipe: ai-habits\n2026-04-24T13:24:23.181613Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown\n2026-04-24T13:24:23.181801Z INFO screenpipe_core::pipes: loaded pipe: video-export\n2026-04-24T13:24:23.182313Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary\n2026-04-24T13:24:23.182341Z INFO screenpipe_core::pipes: loaded 6 pipes from \"/Users/lukas/.screenpipe/pipes\"\n\n\n\n _ \n __________________ ___ ____ ____ (_____ ___ \n / ___/ ___/ ___/ _ \\/ _ \\/ __ \\ / __ \\/ / __ \\/ _ \\\n (__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/\n/____/\\___/_/ \\___/\\___/_/ /_/ / .___/_/ .___/\\___/ \n /_/ /_/ \n\n\n\npower AI by everything you've seen, said or heard\nopen source | runs locally | developer friendly\n\n\n┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ true │\n│ vision disabled │ false │\n│ pause on DRM content │ false │\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n│ ignored windows │ [\"Boosteroid\"] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n│ api auth │ enabled │\n2026-04-24T13:24:23.186334Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n2026-04-24T13:24:23.198489Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n│ encrypt secrets │ disabled │\n│ retention days │ 14 │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ id: 1 │\n│ │ id: 2 │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ disabled │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-24T13:24:23.216198Z INFO screenpipe: starting UI event capture\n2026-04-24T13:24:23.238868Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-24T13:24:23.260906Z INFO screenpipe_engine::ui_recorder: UI recording session started: 9676eafd-ea8f-4e1a-a5f1-de7bdb79c071\n2026-04-24T13:24:23.260911Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-24T13:24:23.260972Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-23 10:24:23.260965 UTC to 2026-04-24 10:24:23.260965 UTC)\n2026-04-24T13:24:23.261685Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-24T13:24:23.262214Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-24T13:24:23.273443Z INFO screenpipe_engine::server: Server listening on 127.0.0.1:3030\n2026-04-24T13:24:23.304240Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-24T13:24:23.567248Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-24T13:24:23.567289Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-24T13:24:23.567346Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-24T13:24:23.850835Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-24T13:24:23.850880Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-24T13:24:23.850893Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)\n2026-04-24T13:24:23.850901Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)\n2026-04-24T13:24:23.850941Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-24T13:24:25.197204Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)\n2026-04-24T13:24:25.589436Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=77673, dur=103ms\n2026-04-24T13:24:25.630980Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)\n2026-04-24T13:24:25.652818Z INFO sck_rs::stream_manager: invalidated persistent stream for display 1\n2026-04-24T13:24:26.160345Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=77674, dur=198ms\n2026-04-24T13:24:27.471087Z WARN sqlx::query: summary=\"SELECT f.id, f.timestamp, f.offset_index, …\" db.statement=\"\\n\\nSELECT\\n f.id,\\n f.timestamp,\\n f.offset_index,\\n COALESCE(\\n SUBSTR(f.full_text, 1, 200),\\n SUBSTR(f.accessibility_text, 1, 200),\\n (\\n SELECT\\n SUBSTR(ot.text, 1, 200)\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as text,\\n COALESCE(\\n f.app_name,\\n (\\n SELECT\\n ot.app_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as app_name,\\n COALESCE(\\n f.window_name,\\n (\\n SELECT\\n ot.window_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as window_name,\\n COALESCE(vc.device_name, f.device_name) as screen_device,\\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\\n COALESCE(vc.fps, 0.033) as chunk_fps,\\n f.browser_url,\\n f.machine_id\\nFROM\\n frames f\\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\\nWHERE\\n f.timestamp >= ?1\\n AND f.timestamp <= ?2\\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\\nORDER BY\\n f.timestamp DESC,\\n f.offset_index DESC\\nLIMIT\\n 10000\\n\" rows_affected=0 rows_returned=2758 elapsed=4.209235542s\n2026-04-24T13:24:27.488504Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 2758 frame entries, coverage from 2026-04-23 10:24:23.260965 UTC\n2026-04-24T13:24:56.108522Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)\n2026-04-24T13:25:34.118891Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=82 elapsed=10.985025625s\n2026-04-24T13:25:34.121032Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 82 eligible frames\n2026-04-24T13:25:37.475066Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 6.5MB → 0.2MB (30.1x), 39 JPEGs deleted\n2026-04-24T13:25:41.147418Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 41 frames, 9.1MB → 0.3MB (26.4x), 41 JPEGs deleted\n2026-04-24T13:26:53.913464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3587331842305982393, trigger=click)\n2026-04-24T13:30:52.310748Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=2 elapsed=11.152255s\n2026-04-24T13:30:52.313747Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-24T13:36:00.069099Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=9 elapsed=7.594933541s\n2026-04-24T13:36:00.071113Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 9 eligible frames\n2026-04-24T13:36:00.617576Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 4 frames, 0.3MB → 0.1MB (3.6x), 4 JPEGs deleted\n2026-04-24T13:36:01.402540Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 5 frames, 1.0MB → 0.4MB (2.4x), 5 JPEGs deleted\n2026-04-24T13:40:06.828525Z WARN sqlx::query: summary=\"BEGIN IMMEDIATE\" db.statement=\"\" rows_affected=1 rows_returned=0 elapsed=1.076759291s\n2026-04-24T13:40:07.002782Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=195 elapsed=1.250257875s\n2026-04-24T13:41:11.559513Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=92 elapsed=10.151735042s\n2026-04-24T13:41:11.559741Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 92 eligible frames\n2026-04-24T13:41:14.043784Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 2.3MB → 0.1MB (32.3x), 37 JPEGs deleted\n2026-04-24T13:41:21.303349Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 53 frames, 8.7MB → 3.1MB (2.8x), 53 JPEGs deleted\n2026-04-24T13:41:40.887689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7539785768983157715, trigger=click)\n2026-04-24T13:42:34.136767Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3059269999432289894, trigger=click)\n2026-04-24T13:42:45.942807Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3777488472456223409, trigger=click)\n2026-04-24T13:43:01.921357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1871207218552190145, trigger=click)\n2026-04-24T13:44:01.878037Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8495661271621520850, trigger=click)\n2026-04-24T13:46:28.021146Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=40 elapsed=6.713739708s\n2026-04-24T13:46:28.021348Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames\n2026-04-24T13:46:29.141090Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 1.1MB → 0.1MB (17.9x), 18 JPEGs deleted\n2026-04-24T13:46:31.601195Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.7MB → 2.9MB (1.6x), 20 JPEGs deleted\n2026-04-24T13:51:31.692283Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames\n2026-04-24T13:51:32.570330Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.0MB → 0.2MB (4.8x), 13 JPEGs deleted\n2026-04-24T13:51:33.760542Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.9MB → 1.0MB (1.9x), 10 JPEGs deleted\n2026-04-24T13:55:31.626192Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2977185087332333124, trigger=click)\n2026-04-24T13:56:33.924925Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 105 eligible frames\n2026-04-24T13:56:37.179833Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 55 frames, 5.1MB → 1.4MB (3.6x), 55 JPEGs deleted\n2026-04-24T13:56:40.328768Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 48 frames, 7.6MB → 1.3MB (6.0x), 48 JPEGs deleted\n2026-04-24T14:00:47.136298Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Firefox, signals=2)\n2026-04-24T14:00:47.857419Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2938651853865790585, trigger=click)\n2026-04-24T14:00:52.374476Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Firefox, signals=2, browser=true)\n2026-04-24T14:00:52.378086Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=12, app=Firefox, title=None)\n2026-04-24T14:01:40.650767Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 62 eligible frames\n2026-04-24T14:01:42.431196Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 1.9MB → 0.1MB (32.0x), 30 JPEGs deleted\n2026-04-24T14:01:44.259623Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 4.8MB → 0.2MB (23.8x), 30 JPEGs deleted\n2026-04-24T14:06:51.687604Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=54 elapsed=7.415698459s\n2026-04-24T14:06:51.691163Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 54 eligible frames\n2026-04-24T14:06:53.324710Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 1.7MB → 0.1MB (29.0x), 27 JPEGs deleted\n2026-04-24T14:06:54.826559Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.0MB → 0.2MB (19.9x), 25 JPEGs deleted\n2026-04-24T14:11:54.984165Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 93 eligible frames\n2026-04-24T14:11:57.808857Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 48 frames, 3.1MB → 0.1MB (49.5x), 48 JPEGs deleted\n2026-04-24T14:12:00.396251Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 43 frames, 6.8MB → 0.2MB (33.8x), 43 JPEGs deleted\n2026-04-24T14:17:06.109470Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=49 elapsed=5.652470541s\n2026-04-24T14:17:06.109602Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 49 eligible frames\n2026-04-24T14:17:07.677608Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 1.6MB → 0.1MB (27.0x), 25 JPEGs deleted\n2026-04-24T14:17:09.097967Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 3.5MB → 0.2MB (17.6x), 22 JPEGs deleted\n2026-04-24T14:22:13.316698Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=24 elapsed=4.206937709s\n2026-04-24T14:22:13.317436Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 24 eligible frames\n2026-04-24T14:22:14.074811Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 0.7MB → 0.1MB (12.2x), 11 JPEGs deleted\n2026-04-24T14:22:14.844321Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.7MB → 0.2MB (8.9x), 11 JPEGs deleted\n2026-04-24T14:27:16.330019Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=1.474471542s\n2026-04-24T14:27:16.330265Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T14:27:17.027734Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted\n2026-04-24T14:27:17.792405Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted\n2026-04-24T14:32:18.770983Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T14:32:19.478630Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted\n2026-04-24T14:32:20.241056Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted\n2026-04-24T14:37:27.349741Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=7.096181584s\n2026-04-24T14:37:27.353187Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T14:37:28.066685Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted\n2026-04-24T14:37:28.851355Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted\n2026-04-24T14:38:19.407454Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=12, grace=300s)\n2026-04-24T14:39:19.637322Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8577329830578954505, trigger=click)\n2026-04-24T14:39:21.680425Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8317095871263557761, trigger=click)\n2026-04-24T14:39:21.707871Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8317095871263557761, trigger=click)\n2026-04-24T14:40:10.148981Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5676671508452457688, trigger=click)\n2026-04-24T14:42:02.876165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3644563293578755711, trigger=click)\n2026-04-24T14:42:12.151008Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3644563293578755711, trigger=click)\n2026-04-24T14:42:36.098708Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=7.2363725s\n2026-04-24T14:42:36.098834Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T14:42:36.816811Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted\n2026-04-24T14:42:37.598382Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted\n2026-04-24T14:42:43.884371Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1901203473704384943, trigger=click)\n2026-04-24T14:42:43.916542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1901203473704384943, trigger=click)\n2026-04-24T14:43:24.413233Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Idle (timeout=300s, app=Firefox, id=12)\n2026-04-24T14:43:24.855747Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting ended (id=12)\n2026-04-24T14:44:38.941315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1557697903749375374, trigger=click)\n2026-04-24T14:44:38.962591Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1557697903749375374, trigger=click)\n2026-04-24T14:44:39.438011Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1557697903749375374, trigger=click)\n2026-04-24T14:45:24.198550Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8167839925779509873, trigger=click)\n2026-04-24T14:45:25.110117Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8167839925779509873, trigger=click)\n2026-04-24T14:45:38.880039Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3644563293578755711, trigger=click)\n2026-04-24T14:46:09.691532Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8167839925779509873, trigger=click)\n2026-04-24T14:46:23.813781Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4533509598273890786, trigger=click)\n2026-04-24T14:46:23.859560Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4533509598273890786, trigger=click)\n2026-04-24T14:47:44.514826Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2503176719318141451, trigger=click)\n2026-04-24T14:47:44.539391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2503176719318141451, trigger=click)\n2026-04-24T14:47:44.764903Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=21 elapsed=7.257808167s\n2026-04-24T14:47:44.764982Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames\n2026-04-24T14:47:45.473419Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 0.6MB → 0.1MB (10.0x), 9 JPEGs deleted\n2026-04-24T14:47:46.188394Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted\n2026-04-24T14:47:50.085052Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2503176719318141451, trigger=click)\n2026-04-24T14:47:50.106335Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2503176719318141451, trigger=click)\n2026-04-24T14:52:53.441281Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=100 elapsed=7.256992167s\n2026-04-24T14:52:53.441665Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 100 eligible frames\n2026-04-24T14:52:56.554743Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 3.2MB → 0.1MB (50.4x), 49 JPEGs deleted\n2026-04-24T14:52:59.416988Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 7.8MB → 0.2MB (38.4x), 49 JPEGs deleted\n2026-04-24T14:53:50.050387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4956080981675052788, trigger=click)\n2026-04-24T14:55:36.318507Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-991319035522409710, trigger=click)\n2026-04-24T14:55:36.391576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-991319035522409710, trigger=click)\n2026-04-24T14:57:59.569859Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 57 eligible frames\n2026-04-24T14:58:01.300455Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 1.6MB → 0.1MB (25.9x), 24 JPEGs deleted\n2026-04-24T14:58:03.198608Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 4.9MB → 0.2MB (24.6x), 31 JPEGs deleted\n2026-04-24T15:03:08.612242Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=30 elapsed=5.295343459s\n2026-04-24T15:03:08.612821Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 30 eligible frames\n2026-04-24T15:03:09.620798Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 0.9MB → 0.1MB (15.4x), 14 JPEGs deleted\n2026-04-24T15:03:10.811697Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.2MB → 0.2MB (11.3x), 14 JPEGs deleted\n2026-04-24T15:04:26.269378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5667957418966591499, trigger=click)\n2026-04-24T15:04:26.321219Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5667957418966591499, trigger=click)\n2026-04-24T15:08:14.307499Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=25 elapsed=3.392988s\n2026-04-24T15:08:14.307671Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames\n2026-04-24T15:08:15.302981Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 0.7MB → 0.1MB (12.2x), 11 JPEGs deleted\n2026-04-24T15:08:16.186177Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 1.9MB → 0.2MB (9.7x), 12 JPEGs deleted\n2026-04-24T15:13:18.963807Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=37 elapsed=2.767425042s\n2026-04-24T15:13:18.963934Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 37 eligible frames\n2026-04-24T15:13:20.113690Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 1.2MB → 0.1MB (19.7x), 18 JPEGs deleted\n2026-04-24T15:13:21.236764Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.7MB → 0.2MB (13.6x), 17 JPEGs deleted\n2026-04-24T15:14:48.156237Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)\n2026-04-24T15:15:01.132168Z INFO sck_rs::stream_manager: recreating stream for display 1 (resolution change)\n2026-04-24T15:15:01.221025Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=app_switch, monitor=1) — DB pool may be saturated\n2026-04-24T15:15:01.375924Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=app_switch, monitor=2) — DB pool may be saturated\n2026-04-24T15:15:15.842371Z INFO sck_rs::stream_manager: recreating stream for display 2 (resolution change)\n2026-04-24T15:18:28.531831Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=36 elapsed=7.26041775s\n2026-04-24T15:18:28.531955Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 36 eligible frames\n2026-04-24T15:18:29.658166Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 1.1MB → 0.1MB (18.6x), 17 JPEGs deleted\n2026-04-24T15:18:30.768761Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.7MB → 0.2MB (13.6x), 17 JPEGs deleted\n2026-04-24T15:23:31.928536Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=1.148790625s\n2026-04-24T15:23:31.928649Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T15:23:32.642076Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted\n2026-04-24T15:23:33.401791Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted\n2026-04-24T15:28:34.810366Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=8 elapsed=1.39738375s\n2026-04-24T15:28:34.810546Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 8 eligible frames\n2026-04-24T15:28:35.187466Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 3 frames, 0.2MB → 0.1MB (3.5x), 3 JPEGs deleted\n2026-04-24T15:28:35.591687Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 3 frames, 0.5MB → 0.2MB (2.6x), 3 JPEGs deleted\n2026-04-24T15:33:39.031121Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=2 elapsed=3.484074667s\n2026-04-24T15:33:39.031286Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-24T15:43:41.373431Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=2.126509208s\n2026-04-24T15:48:45.005960Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=3.630826208s\n2026-04-24T15:53:46.452410Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.442133375s\n2026-04-24T16:03:50.813556Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=3.725817875s\n2026-04-24T16:08:52.104712Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=1.289955292s\n2026-04-24T16:14:48.860304Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)\n2026-04-24T16:14:48.885031Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2\n2026-04-24T16:14:49.085988Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)\n2026-04-24T16:14:49.951727Z INFO screenpipe_engine::event_driven_capture: monitor 2 capture recovered after 1 consecutive errors\n2026-04-24T16:15:14.957591Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-24T16:15:15.344344Z INFO screenpipe_engine::event_driven_capture: monitor 1 capture recovered after 1 consecutive errors\n2026-04-24T16:17:13.975782Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7172393451066325016, trigger=click)\n2026-04-24T16:19:00.805923Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=7.986969166s\n2026-04-24T16:19:29.124240Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3129461629380798674, trigger=click)\n2026-04-24T16:19:29.165320Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=click)\n2026-04-24T16:20:57.221933Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=click)\n2026-04-24T16:21:34.158304Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=visual_change)\n2026-04-24T16:21:52.258518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=visual_change)\n2026-04-24T16:24:07.960303Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=7.148022208s\n2026-04-24T16:25:38.292462Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8773909165376335292, trigger=click)\n2026-04-24T16:28:02.880424Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=826123905625364471, trigger=click)\n2026-04-24T16:28:02.928317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=826123905625364471, trigger=click)\n2026-04-24T16:29:02.161685Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5156992524424370675, trigger=visual_change)\n2026-04-24T16:29:11.119509Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5156992524424370675, trigger=visual_change)\n2026-04-24T16:29:15.437543Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=42 elapsed=7.45073025s\n2026-04-24T16:29:15.438417Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 42 eligible frames\n2026-04-24T16:29:17.083173Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 3.2MB → 0.4MB (9.1x), 20 JPEGs deleted\n2026-04-24T16:29:18.972223Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 5.2MB → 1.7MB (3.0x), 22 JPEGs deleted\n2026-04-24T16:29:34.388891Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5156992524424370675, trigger=click)\n2026-04-24T16:29:45.796969Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4817563232530793650, trigger=click)\n2026-04-24T16:32:36.877636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=visual_change)\n2026-04-24T16:32:42.134384Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=visual_change)\n2026-04-24T16:32:44.378087Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)\n2026-04-24T16:32:45.243874Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=visual_change)\n2026-04-24T16:32:54.163388Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8550622008733264339, trigger=click)\n2026-04-24T16:32:54.176256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)\n2026-04-24T16:32:57.087323Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8550622008733264339, trigger=click)\n2026-04-24T16:32:57.117211Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)\n2026-04-24T16:34:03.172812Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:34:13.599521Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:34:23.371635Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=21 elapsed=4.397149916s\n2026-04-24T16:34:23.371744Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames\n2026-04-24T16:34:24.346821Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.6MB → 0.4MB (4.0x), 11 JPEGs deleted\n2026-04-24T16:34:25.323782Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 2.0MB → 0.7MB (2.7x), 8 JPEGs deleted\n2026-04-24T16:35:16.265905Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:35:16.396499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:37:09.981293Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=visual_change)\n2026-04-24T16:38:45.635162Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:38:47.663267Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:39:10.322134Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:39:27.552784Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=33 elapsed=2.228011375s\n2026-04-24T16:39:27.552915Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 33 eligible frames\n2026-04-24T16:39:28.615455Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.8MB → 0.6MB (4.8x), 14 JPEGs deleted\n2026-04-24T16:39:30.390392Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.1MB → 1.6MB (2.0x), 17 JPEGs deleted\n2026-04-24T16:40:01.437647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7218881400109780070, trigger=click)\n2026-04-24T16:40:12.586378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)\n2026-04-24T16:41:05.997041Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6861826947729846030, trigger=click)\n2026-04-24T16:41:11.184592Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6861826947729846030, trigger=click)\n2026-04-24T16:43:15.433697Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8550622008733264339, trigger=click)\n2026-04-24T16:43:15.515804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)\n2026-04-24T16:43:51.515815Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5576357006515458390, trigger=click)\n2026-04-24T16:43:59.714706Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5576357006515458390, trigger=click)\n2026-04-24T16:43:59.785731Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5576357006515458390, trigger=click)\n2026-04-24T16:44:38.173037Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=20 elapsed=7.796779s\n2026-04-24T16:44:38.174424Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 20 eligible frames\n2026-04-24T16:44:39.258439Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 1.8MB → 0.3MB (5.7x), 9 JPEGs deleted\n2026-04-24T16:44:41.729154Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 2.3MB → 1.7MB (1.4x), 9 JPEGs deleted\n2026-04-24T16:48:00.989535Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5576357006515458390, trigger=click)\n2026-04-24T16:48:17.430932Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5576357006515458390, trigger=click)\n2026-04-24T16:49:49.135916Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=17 elapsed=7.403764583s\n2026-04-24T16:49:49.136082Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 17 eligible frames\n2026-04-24T16:49:50.004132Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 1.6MB → 0.3MB (5.1x), 8 JPEGs deleted\n2026-04-24T16:49:50.898114Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 7 frames, 1.9MB → 0.7MB (2.6x), 7 JPEGs deleted\n2026-04-24T16:50:09.364175Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8409739779266792278, trigger=visual_change)\n2026-04-24T16:50:11.237105Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8409739779266792278, trigger=click)\n2026-04-24T16:51:37.931779Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1423930385844614485, trigger=click)\n2026-04-24T16:53:14.381283Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7564119013552971576, trigger=click)\n2026-04-24T16:54:12.231394Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1423930385844614485, trigger=visual_change)\n2026-04-24T16:54:15.266343Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1423930385844614485, trigger=visual_change)\n2026-04-24T16:55:01.568514Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=58 elapsed=10.558641542s\n2026-04-24T16:55:01.569579Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 58 eligible frames\n2026-04-24T16:55:04.609017Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 5.7MB → 1.1MB (5.0x), 28 JPEGs deleted\n2026-04-24T16:55:09.392416Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 5.5MB → 3.1MB (1.8x), 28 JPEGs deleted\n2026-04-24T16:55:39.774741Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3617611630109587613, trigger=click)\n2026-04-24T16:55:39.852272Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3617611630109587613, trigger=click)\n2026-04-24T16:56:40.038632Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-426150959945983082, trigger=click)\n2026-04-24T16:59:26.437906Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-426150959945983082, trigger=visual_change)\n2026-04-24T17:00:21.026565Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=53 elapsed=11.620753209s\n2026-04-24T17:00:21.027475Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 53 eligible frames\n2026-04-24T17:00:24.007228Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 4.3MB → 0.5MB (7.8x), 21 JPEGs deleted\n2026-04-24T17:00:30.315443Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 6.2MB → 3.1MB (2.0x), 30 JPEGs deleted\n2026-04-24T17:01:31.749742Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4978074472044237669, trigger=click)\n2026-04-24T17:02:32.676946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6528076374554576690, trigger=click)\n2026-04-24T17:03:24.566715Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5730479857460890072, trigger=click)\n2026-04-24T17:03:24.646165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5730479857460890072, trigger=click)\n2026-04-24T17:04:36.724352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2722349336895059815, trigger=click)\n2026-04-24T17:05:26.414686Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-255140549253982666, trigger=click)\n2026-04-24T17:05:38.960944Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=49 elapsed=8.570160541s\n2026-04-24T17:05:38.961851Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 49 eligible frames\n2026-04-24T17:05:40.770553Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.8MB → 0.5MB (10.1x), 24 JPEGs deleted\n2026-04-24T17:05:44.093500Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 4.3MB → 2.0MB (2.1x), 23 JPEGs deleted\n2026-04-24T17:10:45.665278Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=57 elapsed=1.565954333s\n2026-04-24T17:10:45.665510Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 57 eligible frames\n2026-04-24T17:10:47.346256Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.1MB → 0.3MB (15.5x), 25 JPEGs deleted\n2026-04-24T17:10:49.931994Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 5.2MB → 2.6MB (2.0x), 30 JPEGs deleted\n2026-04-24T17:12:35.862404Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2722349336895059815, trigger=visual_change)\n2026-04-24T17:15:54.006030Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=35 elapsed=4.067925709s\n2026-04-24T17:15:54.006151Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 35 eligible frames\n2026-04-24T17:15:55.261287Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.6MB → 0.3MB (11.3x), 18 JPEGs deleted\n2026-04-24T17:15:56.815522Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 3.2MB → 1.3MB (2.4x), 15 JPEGs deleted\n2026-04-24T17:20:58.288264Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=1.467426625s\n2026-04-24T17:20:58.288415Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T17:20:59.175263Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.0MB → 0.3MB (6.3x), 10 JPEGs deleted\n2026-04-24T17:21:00.120027Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.3MB → 0.4MB (6.2x), 10 JPEGs deleted\n2026-04-24T17:22:48.235588Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-885508568992678447, trigger=click)\n2026-04-24T17:22:48.306917Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-885508568992678447, trigger=click)\n2026-04-24T17:23:41.318200Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-885508568992678447, trigger=click)\n2026-04-24T17:24:30.499216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3481376117812878957, trigger=click)\n2026-04-24T17:24:30.601163Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3481376117812878957, trigger=click)\n2026-04-24T17:26:07.575025Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=28 elapsed=7.43131375s\n2026-04-24T17:26:07.578806Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames\n2026-04-24T17:26:08.478709Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 2.2MB → 0.3MB (6.9x), 11 JPEGs deleted\n2026-04-24T17:26:09.770241Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.6MB → 1.0MB (2.6x), 15 JPEGs deleted\n2026-04-24T17:26:26.261981Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-885508568992678447, trigger=click)\n2026-04-24T17:26:26.307896Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-885508568992678447, trigger=click)","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.39444444,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3986111,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.59166664,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.59583336,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.7888889,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.79305553,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"screenpipe\"","depth":1,"bounds":{"left":0.4722222,"top":0.033333335,"width":0.058333334,"height":0.017777778},"role_description":"text"}]...
|
-4993652597681536640
|
338254198220359539
|
visual_change
|
accessibility
|
NULL
|
Last login: Fri Apr 24 12:59:23 on ttys007
Poetry Last login: Fri Apr 24 12:59:23 on ttys007
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-start
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-04-24T13:24:21.985779Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store
checking permissions...
screen recording: ok
accessibility: ok
2026-04-24T13:24:22.124681Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-04-24T13:24:23.055922Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-04-24T13:24:23.059528Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-04-24T13:24:23.061097Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-04-24T13:24:23.132247Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-04-24T13:24:23.132303Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-04-24T13:24:23.132592Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-04-24T13:24:23.132606Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-04-24T13:24:23.132938Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-04-24T13:24:23.132999Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-04-24T13:24:23.132808Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-04-24T13:24:23.180699Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-04-24T13:24:23.180978Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-04-24T13:24:23.181420Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-04-24T13:24:23.181613Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-04-24T13:24:23.181801Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-04-24T13:24:23.182313Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary
2026-04-24T13:24:23.182341Z INFO screenpipe_core::pipes: loaded 6 pipes from "/Users/lukas/.screenpipe/pipes"
_
__________________ ___ ____ ____ (_____ ___
/ ___/ ___/ ___/ _ \/ _ \/ __ \ / __ \/ / __ \/ _ \
(__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/
/____/\___/_/ \___/\___/_/ /_/ / .___/_/ .___/\___/
/_/ /_/
power AI by everything you've seen, said or heard
open source | runs locally | developer friendly
┌────────────────────────┬────────────────────────────────────┐
│ setting │ value │
├────────────────────────┼────────────────────────────────────┤
│ audio chunk duration │ 30 seconds │
│ port │ 3030 │
│ audio disabled │ true │
│ vision disabled │ false │
│ pause on DRM content │ false │
│ audio engine │ Parakeet │
│ vad engine │ Silero │
│ data directory │ /Users/lukas/.screenpipe │
│ debug mode │ false │
│ telemetry │ true │
│ use pii removal │ true │
│ use all monitors │ true │
│ ignored windows │ ["Boosteroid"] │
│ included windows │ [] │
│ cloud sync │ disabled │
│ auto-destruct pid │ 0 │
│ deepgram key │ not set │
│ api auth │ enabled │
2026-04-24T13:24:23.186334Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)
2026-04-24T13:24:23.198489Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh
│ encrypt secrets │ disabled │
│ retention days │ 14 │
├────────────────────────┼────────────────────────────────────┤
│ languages │ │
│ │ all languages │
├────────────────────────┼────────────────────────────────────┤
│ monitors │ │
│ │ id: 1 │
│ │ id: 2 │
├────────────────────────┼────────────────────────────────────┤
│ audio devices │ │
│ │ disabled │
└────────────────────────┴────────────────────────────────────┘
you are using local processing. all your data stays on your computer.
warning: telemetry is enabled. only error-level data will be sent.
to disable, use the --disable-telemetry flag.
check latest changes here: https://github.com/screenpipe/screenpipe/releases
2026-04-24T13:24:23.216198Z INFO screenpipe: starting UI event capture
2026-04-24T13:24:23.238868Z INFO screenpipe_engine::ui_recorder: Starting UI event capture
2026-04-24T13:24:23.260906Z INFO screenpipe_engine::ui_recorder: UI recording session started: 9676eafd-ea8f-4e1a-a5f1-de7bdb79c071
2026-04-24T13:24:23.260911Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)
2026-04-24T13:24:23.260972Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-23 10:24:23.260965 UTC to 2026-04-24 10:24:23.260965 UTC)
2026-04-24T13:24:23.261685Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)
2026-04-24T13:24:23.262214Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))
2026-04-24T13:24:23.273443Z INFO screenpipe_engine::server: Server listening on [IP_ADDRESS]:3030
2026-04-24T13:24:23.304240Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030
2026-04-24T13:24:23.567248Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)
2026-04-24T13:24:23.567289Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)
2026-04-24T13:24:23.567346Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)
2026-04-24T13:24:23.850835Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-04-24T13:24:23.850880Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-04-24T13:24:23.850893Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)
2026-04-24T13:24:23.850901Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)
2026-04-24T13:24:23.850941Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-04-24T13:24:25.197204Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)
2026-04-24T13:24:25.589436Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=77673, dur=103ms
2026-04-24T13:24:25.630980Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)
2026-04-24T13:24:25.652818Z INFO sck_rs::stream_manager: invalidated persistent stream for display 1
2026-04-24T13:24:26.160345Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=77674, dur=198ms
2026-04-24T13:24:27.471087Z WARN sqlx::query: summary="SELECT f.id, f.timestamp, f.offset_index, …" db.statement="\n\nSELECT\n f.id,\n f.timestamp,\n f.offset_index,\n COALESCE(\n SUBSTR(f.full_text, 1, 200),\n SUBSTR(f.accessibility_text, 1, 200),\n (\n SELECT\n SUBSTR(ot.text, 1, 200)\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as text,\n COALESCE(\n f.app_name,\n (\n SELECT\n ot.app_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as app_name,\n COALESCE(\n f.window_name,\n (\n SELECT\n ot.window_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as window_name,\n COALESCE(vc.device_name, f.device_name) as screen_device,\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\n COALESCE(vc.fps, 0.033) as chunk_fps,\n f.browser_url,\n f.machine_id\nFROM\n frames f\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\nWHERE\n f.timestamp >= ?1\n AND f.timestamp <= ?2\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\nORDER BY\n f.timestamp DESC,\n f.offset_index DESC\nLIMIT\n 10000\n" rows_affected=0 rows_returned=2758 elapsed=4.209235542s
2026-04-24T13:24:27.488504Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 2758 frame entries, coverage from 2026-04-23 10:24:23.260965 UTC
2026-04-24T13:24:56.108522Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)
2026-04-24T13:25:34.118891Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=82 elapsed=10.985025625s
2026-04-24T13:25:34.121032Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 82 eligible frames
2026-04-24T13:25:37.475066Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 6.5MB → 0.2MB (30.1x), 39 JPEGs deleted
2026-04-24T13:25:41.147418Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 41 frames, 9.1MB → 0.3MB (26.4x), 41 JPEGs deleted
2026-04-24T13:26:53.913464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3587331842305982393, trigger=click)
2026-04-24T13:30:52.310748Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=2 elapsed=11.152255s
2026-04-24T13:30:52.313747Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
2026-04-24T13:36:00.069099Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=9 elapsed=7.594933541s
2026-04-24T13:36:00.071113Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 9 eligible frames
2026-04-24T13:36:00.617576Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 4 frames, 0.3MB → 0.1MB (3.6x), 4 JPEGs deleted
2026-04-24T13:36:01.402540Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 5 frames, 1.0MB → 0.4MB (2.4x), 5 JPEGs deleted
2026-04-24T13:40:06.828525Z WARN sqlx::query: summary="BEGIN IMMEDIATE" db.statement="" rows_affected=1 rows_returned=0 elapsed=1.076759291s
2026-04-24T13:40:07.002782Z WARN sqlx::query: summary="SELECT DISTINCT app_name, window_name, …" db.statement="\n\nSELECT\n DISTINCT app_name,\n window_name,\n browser_url\nFROM\n frames\nWHERE\n timestamp > datetime('now', '-30 seconds')\n AND app_name IS NOT NULL\n AND window_name IS NOT NULL\n" rows_affected=0 rows_returned=195 elapsed=1.250257875s
2026-04-24T13:41:11.559513Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=92 elapsed=10.151735042s
2026-04-24T13:41:11.559741Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 92 eligible frames
2026-04-24T13:41:14.043784Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 2.3MB → 0.1MB (32.3x), 37 JPEGs deleted
2026-04-24T13:41:21.303349Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 53 frames, 8.7MB → 3.1MB (2.8x), 53 JPEGs deleted
2026-04-24T13:41:40.887689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7539785768983157715, trigger=click)
2026-04-24T13:42:34.136767Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3059269999432289894, trigger=click)
2026-04-24T13:42:45.942807Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3777488472456223409, trigger=click)
2026-04-24T13:43:01.921357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1871207218552190145, trigger=click)
2026-04-24T13:44:01.878037Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8495661271621520850, trigger=click)
2026-04-24T13:46:28.021146Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=40 elapsed=6.713739708s
2026-04-24T13:46:28.021348Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames
2026-04-24T13:46:29.141090Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 1.1MB → 0.1MB (17.9x), 18 JPEGs deleted
2026-04-24T13:46:31.601195Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.7MB → 2.9MB (1.6x), 20 JPEGs deleted
2026-04-24T13:51:31.692283Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames
2026-04-24T13:51:32.570330Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.0MB → 0.2MB (4.8x), 13 JPEGs deleted
2026-04-24T13:51:33.760542Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.9MB → 1.0MB (1.9x), 10 JPEGs deleted
2026-04-24T13:55:31.626192Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2977185087332333124, trigger=click)
2026-04-24T13:56:33.924925Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 105 eligible frames
2026-04-24T13:56:37.179833Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 55 frames, 5.1MB → 1.4MB (3.6x), 55 JPEGs deleted
2026-04-24T13:56:40.328768Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 48 frames, 7.6MB → 1.3MB (6.0x), 48 JPEGs deleted
2026-04-24T14:00:47.136298Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Firefox, signals=2)
2026-04-24T14:00:47.857419Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2938651853865790585, trigger=click)
2026-04-24T14:00:52.374476Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Firefox, signals=2, browser=true)
2026-04-24T14:00:52.378086Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=12, app=Firefox, title=None)
2026-04-24T14:01:40.650767Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 62 eligible frames
2026-04-24T14:01:42.431196Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 1.9MB → 0.1MB (32.0x), 30 JPEGs deleted
2026-04-24T14:01:44.259623Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 4.8MB → 0.2MB (23.8x), 30 JPEGs deleted
2026-04-24T14:06:51.687604Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=54 elapsed=7.415698459s
2026-04-24T14:06:51.691163Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 54 eligible frames
2026-04-24T14:06:53.324710Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 1.7MB → 0.1MB (29.0x), 27 JPEGs deleted
2026-04-24T14:06:54.826559Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.0MB → 0.2MB (19.9x), 25 JPEGs deleted
2026-04-24T14:11:54.984165Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 93 eligible frames
2026-04-24T14:11:57.808857Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 48 frames, 3.1MB → 0.1MB (49.5x), 48 JPEGs deleted
2026-04-24T14:12:00.396251Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 43 frames, 6.8MB → 0.2MB (33.8x), 43 JPEGs deleted
2026-04-24T14:17:06.109470Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=49 elapsed=5.652470541s
2026-04-24T14:17:06.109602Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 49 eligible frames
2026-04-24T14:17:07.677608Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 1.6MB → 0.1MB (27.0x), 25 JPEGs deleted
2026-04-24T14:17:09.097967Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 3.5MB → 0.2MB (17.6x), 22 JPEGs deleted
2026-04-24T14:22:13.316698Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=24 elapsed=4.206937709s
2026-04-24T14:22:13.317436Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 24 eligible frames
2026-04-24T14:22:14.074811Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 0.7MB → 0.1MB (12.2x), 11 JPEGs deleted
2026-04-24T14:22:14.844321Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.7MB → 0.2MB (8.9x), 11 JPEGs deleted
2026-04-24T14:27:16.330019Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=22 elapsed=1.474471542s
2026-04-24T14:27:16.330265Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames
2026-04-24T14:27:17.027734Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted
2026-04-24T14:27:17.792405Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted
2026-04-24T14:32:18.770983Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames
2026-04-24T14:32:19.478630Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted
2026-04-24T14:32:20.241056Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted
2026-04-24T14:37:27.349741Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=22 elapsed=7.096181584s
2026-04-24T14:37:27.353187Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames
2026-04-24T14:37:28.066685Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted
2026-04-24T14:37:28.851355Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted
2026-04-24T14:38:19.407454Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=12, grace=300s)
2026-04-24T14:39:19.637322Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8577329830578954505, trigger=click)
2026-04-24T14:39:21.680425Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8317095871263557761, trigger=click)
2026-04-24T14:39:21.707871Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8317095871263557761, trigger=click)
2026-04-24T14:40:10.148981Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5676671508452457688, trigger=click)
2026-04-24T14:42:02.876165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3644563293578755711, trigger=click)
2026-04-24T14:42:12.151008Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3644563293578755711, trigger=click)
2026-04-24T14:42:36.098708Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=22 elapsed=7.2363725s
2026-04-24T14:42:36.098834Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames
2026-04-24T14:42:36.816811Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted
2026-04-24T14:42:37.598382Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted
2026-04-24T14:42:43.884371Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1901203473704384943, trigger=click)
2026-04-24T14:42:43.916542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1901203473704384943, trigger=click)
2026-04-24T14:43:24.413233Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Idle (timeout=300s, app=Firefox, id=12)
2026-04-24T14:43:24.855747Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting ended (id=12)
2026-04-24T14:44:38.941315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1557697903749375374, trigger=click)
2026-04-24T14:44:38.962591Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1557697903749375374, trigger=click)
2026-04-24T14:44:39.438011Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1557697903749375374, trigger=click)
2026-04-24T14:45:24.198550Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8167839925779509873, trigger=click)
2026-04-24T14:45:25.110117Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8167839925779509873, trigger=click)
2026-04-24T14:45:38.880039Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3644563293578755711, trigger=click)
2026-04-24T14:46:09.691532Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8167839925779509873, trigger=click)
2026-04-24T14:46:23.813781Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4533509598273890786, trigger=click)
2026-04-24T14:46:23.859560Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4533509598273890786, trigger=click)
2026-04-24T14:47:44.514826Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2503176719318141451, trigger=click)
2026-04-24T14:47:44.539391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2503176719318141451, trigger=click)
2026-04-24T14:47:44.764903Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=21 elapsed=7.257808167s
2026-04-24T14:47:44.764982Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames
2026-04-24T14:47:45.473419Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 0.6MB → 0.1MB (10.0x), 9 JPEGs deleted
2026-04-24T14:47:46.188394Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted
2026-04-24T14:47:50.085052Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2503176719318141451, trigger=click)
2026-04-24T14:47:50.106335Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2503176719318141451, trigger=click)
2026-04-24T14:52:53.441281Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=100 elapsed=7.256992167s
2026-04-24T14:52:53.441665Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 100 eligible frames
2026-04-24T14:52:56.554743Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 3.2MB → 0.1MB (50.4x), 49 JPEGs deleted
2026-04-24T14:52:59.416988Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 7.8MB → 0.2MB (38.4x), 49 JPEGs deleted
2026-04-24T14:53:50.050387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4956080981675052788, trigger=click)
2026-04-24T14:55:36.318507Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-991319035522409710, trigger=click)
2026-04-24T14:55:36.391576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-991319035522409710, trigger=click)
2026-04-24T14:57:59.569859Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 57 eligible frames
2026-04-24T14:58:01.300455Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 1.6MB → 0.1MB (25.9x), 24 JPEGs deleted
2026-04-24T14:58:03.198608Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 4.9MB → 0.2MB (24.6x), 31 JPEGs deleted
2026-04-24T15:03:08.612242Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=30 elapsed=5.295343459s
2026-04-24T15:03:08.612821Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 30 eligible frames
2026-04-24T15:03:09.620798Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 0.9MB → 0.1MB (15.4x), 14 JPEGs deleted
2026-04-24T15:03:10.811697Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.2MB → 0.2MB (11.3x), 14 JPEGs deleted
2026-04-24T15:04:26.269378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5667957418966591499, trigger=click)
2026-04-24T15:04:26.321219Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5667957418966591499, trigger=click)
2026-04-24T15:08:14.307499Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=25 elapsed=3.392988s
2026-04-24T15:08:14.307671Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames
2026-04-24T15:08:15.302981Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 0.7MB → 0.1MB (12.2x), 11 JPEGs deleted
2026-04-24T15:08:16.186177Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 1.9MB → 0.2MB (9.7x), 12 JPEGs deleted
2026-04-24T15:13:18.963807Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=37 elapsed=2.767425042s
2026-04-24T15:13:18.963934Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 37 eligible frames
2026-04-24T15:13:20.113690Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 1.2MB → 0.1MB (19.7x), 18 JPEGs deleted
2026-04-24T15:13:21.236764Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.7MB → 0.2MB (13.6x), 17 JPEGs deleted
2026-04-24T15:14:48.156237Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)
2026-04-24T15:15:01.132168Z INFO sck_rs::stream_manager: recreating stream for display 1 (resolution change)
2026-04-24T15:15:01.221025Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=app_switch, monitor=1) — DB pool may be saturated
2026-04-24T15:15:01.375924Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=app_switch, monitor=2) — DB pool may be saturated
2026-04-24T15:15:15.842371Z INFO sck_rs::stream_manager: recreating stream for display 2 (resolution change)
2026-04-24T15:18:28.531831Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=36 elapsed=7.26041775s
2026-04-24T15:18:28.531955Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 36 eligible frames
2026-04-24T15:18:29.658166Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 1.1MB → 0.1MB (18.6x), 17 JPEGs deleted
2026-04-24T15:18:30.768761Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.7MB → 0.2MB (13.6x), 17 JPEGs deleted
2026-04-24T15:23:31.928536Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=22 elapsed=1.148790625s
2026-04-24T15:23:31.928649Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames
2026-04-24T15:23:32.642076Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.6MB → 0.1MB (11.1x), 10 JPEGs deleted
2026-04-24T15:23:33.401791Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.2MB (8.1x), 10 JPEGs deleted
2026-04-24T15:28:34.810366Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=8 elapsed=1.39738375s
2026-04-24T15:28:34.810546Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 8 eligible frames
2026-04-24T15:28:35.187466Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 3 frames, 0.2MB → 0.1MB (3.5x), 3 JPEGs deleted
2026-04-24T15:28:35.591687Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 3 frames, 0.5MB → 0.2MB (2.6x), 3 JPEGs deleted
2026-04-24T15:33:39.031121Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=2 elapsed=3.484074667s
2026-04-24T15:33:39.031286Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
2026-04-24T15:43:41.373431Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=0 elapsed=2.126509208s
2026-04-24T15:48:45.005960Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=0 elapsed=3.630826208s
2026-04-24T15:53:46.452410Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=0 elapsed=1.442133375s
2026-04-24T16:03:50.813556Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=0 elapsed=3.725817875s
2026-04-24T16:08:52.104712Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=0 elapsed=1.289955292s
2026-04-24T16:14:48.860304Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)
2026-04-24T16:14:48.885031Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2
2026-04-24T16:14:49.085988Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)
2026-04-24T16:14:49.951727Z INFO screenpipe_engine::event_driven_capture: monitor 2 capture recovered after 1 consecutive errors
2026-04-24T16:15:14.957591Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)
2026-04-24T16:15:15.344344Z INFO screenpipe_engine::event_driven_capture: monitor 1 capture recovered after 1 consecutive errors
2026-04-24T16:17:13.975782Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7172393451066325016, trigger=click)
2026-04-24T16:19:00.805923Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=0 elapsed=7.986969166s
2026-04-24T16:19:29.124240Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3129461629380798674, trigger=click)
2026-04-24T16:19:29.165320Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=click)
2026-04-24T16:20:57.221933Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=click)
2026-04-24T16:21:34.158304Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=visual_change)
2026-04-24T16:21:52.258518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3129461629380798674, trigger=visual_change)
2026-04-24T16:24:07.960303Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=0 elapsed=7.148022208s
2026-04-24T16:25:38.292462Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8773909165376335292, trigger=click)
2026-04-24T16:28:02.880424Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=826123905625364471, trigger=click)
2026-04-24T16:28:02.928317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=826123905625364471, trigger=click)
2026-04-24T16:29:02.161685Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5156992524424370675, trigger=visual_change)
2026-04-24T16:29:11.119509Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5156992524424370675, trigger=visual_change)
2026-04-24T16:29:15.437543Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=42 elapsed=7.45073025s
2026-04-24T16:29:15.438417Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 42 eligible frames
2026-04-24T16:29:17.083173Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 3.2MB → 0.4MB (9.1x), 20 JPEGs deleted
2026-04-24T16:29:18.972223Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 5.2MB → 1.7MB (3.0x), 22 JPEGs deleted
2026-04-24T16:29:34.388891Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5156992524424370675, trigger=click)
2026-04-24T16:29:45.796969Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4817563232530793650, trigger=click)
2026-04-24T16:32:36.877636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=visual_change)
2026-04-24T16:32:42.134384Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=visual_change)
2026-04-24T16:32:44.378087Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)
2026-04-24T16:32:45.243874Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=visual_change)
2026-04-24T16:32:54.163388Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8550622008733264339, trigger=click)
2026-04-24T16:32:54.176256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)
2026-04-24T16:32:57.087323Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8550622008733264339, trigger=click)
2026-04-24T16:32:57.117211Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)
2026-04-24T16:34:03.172812Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:34:13.599521Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:34:23.371635Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=21 elapsed=4.397149916s
2026-04-24T16:34:23.371744Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames
2026-04-24T16:34:24.346821Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.6MB → 0.4MB (4.0x), 11 JPEGs deleted
2026-04-24T16:34:25.323782Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 2.0MB → 0.7MB (2.7x), 8 JPEGs deleted
2026-04-24T16:35:16.265905Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:35:16.396499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:37:09.981293Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=visual_change)
2026-04-24T16:38:45.635162Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:38:47.663267Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:39:10.322134Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:39:27.552784Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=33 elapsed=2.228011375s
2026-04-24T16:39:27.552915Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 33 eligible frames
2026-04-24T16:39:28.615455Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.8MB → 0.6MB (4.8x), 14 JPEGs deleted
2026-04-24T16:39:30.390392Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.1MB → 1.6MB (2.0x), 17 JPEGs deleted
2026-04-24T16:40:01.437647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7218881400109780070, trigger=click)
2026-04-24T16:40:12.586378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1782535141790504250, trigger=click)
2026-04-24T16:41:05.997041Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6861826947729846030, trigger=click)
2026-04-24T16:41:11.184592Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6861826947729846030, trigger=click)
2026-04-24T16:43:15.433697Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8550622008733264339, trigger=click)
2026-04-24T16:43:15.515804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8550622008733264339, trigger=click)
2026-04-24T16:43:51.515815Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5576357006515458390, trigger=click)
2026-04-24T16:43:59.714706Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5576357006515458390, trigger=click)
2026-04-24T16:43:59.785731Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5576357006515458390, trigger=click)
2026-04-24T16:44:38.173037Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=20 elapsed=7.796779s
2026-04-24T16:44:38.174424Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 20 eligible frames
2026-04-24T16:44:39.258439Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 1.8MB → 0.3MB (5.7x), 9 JPEGs deleted
2026-04-24T16:44:41.729154Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 2.3MB → 1.7MB (1.4x), 9 JPEGs deleted
2026-04-24T16:48:00.989535Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5576357006515458390, trigger=click)
2026-04-24T16:48:17.430932Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5576357006515458390, trigger=click)
2026-04-24T16:49:49.135916Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=17 elapsed=7.403764583s
2026-04-24T16:49:49.136082Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 17 eligible frames
2026-04-24T16:49:50.004132Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 1.6MB → 0.3MB (5.1x), 8 JPEGs deleted
2026-04-24T16:49:50.898114Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 7 frames, 1.9MB → 0.7MB (2.6x), 7 JPEGs deleted
2026-04-24T16:50:09.364175Z INFO screenpipe_engine::event_driven_capture: content d...
|
79065
|
|
78146
|
1976
|
3
|
2026-04-24T11:02:05.773341+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-24/1777 /Users/lukas/.screenpipe/data/data/2026-04-24/1777028525773_m2.jpg...
|
iTerm2
|
screenpipe"
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Last login: Fri Apr 24 12:59:23 on ttys007
Poetry Last login: Fri Apr 24 12:59:23 on ttys007
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-start
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-04-24T13:24:21.985779Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store
checking permissions...
screen recording: ok
accessibility: ok
2026-04-24T13:24:22.124681Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-04-24T13:24:23.055922Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-04-24T13:24:23.059528Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-04-24T13:24:23.061097Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-04-24T13:24:23.132247Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-04-24T13:24:23.132303Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-04-24T13:24:23.132592Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-04-24T13:24:23.132606Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-04-24T13:24:23.132938Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-04-24T13:24:23.132999Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-04-24T13:24:23.132808Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-04-24T13:24:23.180699Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-04-24T13:24:23.180978Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-04-24T13:24:23.181420Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-04-24T13:24:23.181613Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-04-24T13:24:23.181801Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-04-24T13:24:23.182313Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary
2026-04-24T13:24:23.182341Z INFO screenpipe_core::pipes: loaded 6 pipes from "/Users/lukas/.screenpipe/pipes"
_
__________________ ___ ____ ____ (_____ ___
/ ___/ ___/ ___/ _ \/ _ \/ __ \ / __ \/ / __ \/ _ \
(__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/
/____/\___/_/ \___/\___/_/ /_/ / .___/_/ .___/\___/
/_/ /_/
power AI by everything you've seen, said or heard
open source | runs locally | developer friendly
┌────────────────────────┬────────────────────────────────────┐
│ setting │ value │
├────────────────────────┼────────────────────────────────────┤
│ audio chunk duration │ 30 seconds │
│ port │ 3030 │
│ audio disabled │ true │
│ vision disabled │ false │
│ pause on DRM content │ false │
│ audio engine │ Parakeet │
│ vad engine │ Silero │
│ data directory │ /Users/lukas/.screenpipe │
│ debug mode │ false │
│ telemetry │ true │
│ use pii removal │ true │
│ use all monitors │ true │
│ ignored windows │ ["Boosteroid"] │
│ included windows │ [] │
│ cloud sync │ disabled │
│ auto-destruct pid │ 0 │
│ deepgram key │ not set │
│ api auth │ enabled │
2026-04-24T13:24:23.186334Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)
2026-04-24T13:24:23.198489Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh
│ encrypt secrets │ disabled │
│ retention days │ 14 │
├────────────────────────┼────────────────────────────────────┤
│ languages │ │
│ │ all languages │
├────────────────────────┼────────────────────────────────────┤
│ monitors │ │
│ │ id: 1 │
│ │ id: 2 │
├────────────────────────┼────────────────────────────────────┤
│ audio devices │ │
│ │ disabled │
└────────────────────────┴────────────────────────────────────┘
you are using local processing. all your data stays on your computer.
warning: telemetry is enabled. only error-level data will be sent.
to disable, use the --disable-telemetry flag.
check latest changes here: https://github.com/screenpipe/screenpipe/releases
2026-04-24T13:24:23.216198Z INFO screenpipe: starting UI event capture
2026-04-24T13:24:23.238868Z INFO screenpipe_engine::ui_recorder: Starting UI event capture
2026-04-24T13:24:23.260906Z INFO screenpipe_engine::ui_recorder: UI recording session started: 9676eafd-ea8f-4e1a-a5f1-de7bdb79c071
2026-04-24T13:24:23.260911Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)
2026-04-24T13:24:23.260972Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-23 10:24:23.260965 UTC to 2026-04-24 10:24:23.260965 UTC)
2026-04-24T13:24:23.261685Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)
2026-04-24T13:24:23.262214Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))
2026-04-24T13:24:23.273443Z INFO screenpipe_engine::server: Server listening on [IP_ADDRESS]:3030
2026-04-24T13:24:23.304240Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030
2026-04-24T13:24:23.567248Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)
2026-04-24T13:24:23.567289Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)
2026-04-24T13:24:23.567346Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)
2026-04-24T13:24:23.850835Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-04-24T13:24:23.850880Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-04-24T13:24:23.850893Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)
2026-04-24T13:24:23.850901Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)
2026-04-24T13:24:23.850941Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-04-24T13:24:25.197204Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)
2026-04-24T13:24:25.589436Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=77673, dur=103ms
2026-04-24T13:24:25.630980Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)
2026-04-24T13:24:25.652818Z INFO sck_rs::stream_manager: invalidated persistent stream for display 1
2026-04-24T13:24:26.160345Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=77674, dur=198ms
2026-04-24T13:24:27.471087Z WARN sqlx::query: summary="SELECT f.id, f.timestamp, f.offset_index, …" db.statement="\n\nSELECT\n f.id,\n f.timestamp,\n f.offset_index,\n COALESCE(\n SUBSTR(f.full_text, 1, 200),\n SUBSTR(f.accessibility_text, 1, 200),\n (\n SELECT\n SUBSTR(ot.text, 1, 200)\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as text,\n COALESCE(\n f.app_name,\n (\n SELECT\n ot.app_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as app_name,\n COALESCE(\n f.window_name,\n (\n SELECT\n ot.window_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as window_name,\n COALESCE(vc.device_name, f.device_name) as screen_device,\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\n COALESCE(vc.fps, 0.033) as chunk_fps,\n f.browser_url,\n f.machine_id\nFROM\n frames f\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\nWHERE\n f.timestamp >= ?1\n AND f.timestamp <= ?2\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\nORDER BY\n f.timestamp DESC,\n f.offset_index DESC\nLIMIT\n 10000\n" rows_affected=0 rows_returned=2758 elapsed=4.209235542s
2026-04-24T13:24:27.488504Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 2758 frame entries, coverage from 2026-04-23 10:24:23.260965 UTC
2026-04-24T13:24:56.108522Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)
2026-04-24T13:25:34.118891Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=82 elapsed=10.985025625s
2026-04-24T13:25:34.121032Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 82 eligible frames
2026-04-24T13:25:37.475066Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 6.5MB → 0.2MB (30.1x), 39 JPEGs deleted
2026-04-24T13:25:41.147418Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 41 frames, 9.1MB → 0.3MB (26.4x), 41 JPEGs deleted
2026-04-24T13:26:53.913464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3587331842305982393, trigger=click)
2026-04-24T13:30:52.310748Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=2 elapsed=11.152255s
2026-04-24T13:30:52.313747Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
2026-04-24T13:36:00.069099Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=9 elapsed=7.594933541s
2026-04-24T13:36:00.071113Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 9 eligible frames
2026-04-24T13:36:00.617576Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 4 frames, 0.3MB → 0.1MB (3.6x), 4 JPEGs deleted
2026-04-24T13:36:01.402540Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 5 frames, 1.0MB → 0.4MB (2.4x), 5 JPEGs deleted
2026-04-24T13:40:06.828525Z WARN sqlx::query: summary="BEGIN IMMEDIATE" db.statement="" rows_affected=1 rows_returned=0 elapsed=1.076759291s
2026-04-24T13:40:07.002782Z WARN sqlx::query: summary="SELECT DISTINCT app_name, window_name, …" db.statement="\n\nSELECT\n DISTINCT app_name,\n window_name,\n browser_url\nFROM\n frames\nWHERE\n timestamp > datetime('now', '-30 seconds')\n AND app_name IS NOT NULL\n AND window_name IS NOT NULL\n" rows_affected=0 rows_returned=195 elapsed=1.250257875s
2026-04-24T13:41:11.559513Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=92 elapsed=10.151735042s
2026-04-24T13:41:11.559741Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 92 eligible frames
2026-04-24T13:41:14.043784Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 2.3MB → 0.1MB (32.3x), 37 JPEGs deleted
2026-04-24T13:41:21.303349Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 53 frames, 8.7MB → 3.1MB (2.8x), 53 JPEGs deleted
2026-04-24T13:41:40.887689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7539785768983157715, trigger=click)
2026-04-24T13:42:34.136767Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3059269999432289894, trigger=click)
2026-04-24T13:42:45.942807Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3777488472456223409, trigger=click)
2026-04-24T13:43:01.921357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1871207218552190145, trigger=click)
2026-04-24T13:44:01.878037Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8495661271621520850, trigger=click)
2026-04-24T13:46:28.021146Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=40 elapsed=6.713739708s
2026-04-24T13:46:28.021348Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames
2026-04-24T13:46:29.141090Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 1.1MB → 0.1MB (17.9x), 18 JPEGs deleted
2026-04-24T13:46:31.601195Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.7MB → 2.9MB (1.6x), 20 JPEGs deleted
2026-04-24T13:51:31.692283Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames
2026-04-24T13:51:32.570330Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.0MB → 0.2MB (4.8x), 13 JPEGs deleted
2026-04-24T13:51:33.760542Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.9MB → 1.0MB (1.9x), 10 JPEGs deleted
2026-04-24T13:55:31.626192Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2977185087332333124, trigger=click)
2026-04-24T13:56:33.924925Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 105 eligible frames
2026-04-24T13:56:37.179833Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 55 frames, 5.1MB → 1.4MB (3.6x), 55 JPEGs deleted
2026-04-24T13:56:40.328768Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 48 frames, 7.6MB → 1.3MB (6.0x), 48 JPEGs deleted
2026-04-24T14:00:47.136298Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Firefox, signals=2)
2026-04-24T14:00:47.857419Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2938651853865790585, trigger=click)
2026-04-24T14:00:52.374476Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Firefox, signals=2, browser=true)
2026-04-24T14:00:52.378086Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=12, app=Firefox, title=None)
2026-04-24T14:01:40.650767Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 62 eligible frames
2026-04-24T14:01:42.431196Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 1.9MB → 0.1MB (32.0x), 30 JPEGs deleted
2026-04-24T14:01:44.259623Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 4.8MB → 0.2MB (23.8x), 30 JPEGs deleted
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
screenpipe"...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"Last login: Fri Apr 24 12:59:23 on ttys007\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-start\ndetected hardware tier: Mid\nwarning: parakeet is not supported on this platform, using whisper-tiny instead\n2026-04-24T13:24:21.985779Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store\nchecking permissions...\n screen recording: ok\n accessibility: ok\n2026-04-24T13:24:22.124681Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6\n2026-04-24T13:24:23.055922Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor\n2026-04-24T13:24:23.059528Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)\n2026-04-24T13:24:23.061097Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)\n2026-04-24T13:24:23.132247Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true\n2026-04-24T13:24:23.132303Z INFO screenpipe: meeting detector enabled — independent of transcription mode\n2026-04-24T13:24:23.132592Z INFO screenpipe: API server listening on 127.0.0.1:3030 (localhost only)\n2026-04-24T13:24:23.132606Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key\n2026-04-24T13:24:23.132938Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)\n2026-04-24T13:24:23.132999Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager\n2026-04-24T13:24:23.132808Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)\n2026-04-24T13:24:23.180699Z INFO screenpipe_core::pipes: loaded pipe: day-recap\n2026-04-24T13:24:23.180978Z INFO screenpipe_core::pipes: loaded pipe: standup-update\n2026-04-24T13:24:23.181420Z INFO screenpipe_core::pipes: loaded pipe: ai-habits\n2026-04-24T13:24:23.181613Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown\n2026-04-24T13:24:23.181801Z INFO screenpipe_core::pipes: loaded pipe: video-export\n2026-04-24T13:24:23.182313Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary\n2026-04-24T13:24:23.182341Z INFO screenpipe_core::pipes: loaded 6 pipes from \"/Users/lukas/.screenpipe/pipes\"\n\n\n\n _ \n __________________ ___ ____ ____ (_____ ___ \n / ___/ ___/ ___/ _ \\/ _ \\/ __ \\ / __ \\/ / __ \\/ _ \\\n (__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/\n/____/\\___/_/ \\___/\\___/_/ /_/ / .___/_/ .___/\\___/ \n /_/ /_/ \n\n\n\npower AI by everything you've seen, said or heard\nopen source | runs locally | developer friendly\n\n\n┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ true │\n│ vision disabled │ false │\n│ pause on DRM content │ false │\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n│ ignored windows │ [\"Boosteroid\"] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n│ api auth │ enabled │\n2026-04-24T13:24:23.186334Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n2026-04-24T13:24:23.198489Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n│ encrypt secrets │ disabled │\n│ retention days │ 14 │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ id: 1 │\n│ │ id: 2 │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ disabled │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-24T13:24:23.216198Z INFO screenpipe: starting UI event capture\n2026-04-24T13:24:23.238868Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-24T13:24:23.260906Z INFO screenpipe_engine::ui_recorder: UI recording session started: 9676eafd-ea8f-4e1a-a5f1-de7bdb79c071\n2026-04-24T13:24:23.260911Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-24T13:24:23.260972Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-23 10:24:23.260965 UTC to 2026-04-24 10:24:23.260965 UTC)\n2026-04-24T13:24:23.261685Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-24T13:24:23.262214Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-24T13:24:23.273443Z INFO screenpipe_engine::server: Server listening on 127.0.0.1:3030\n2026-04-24T13:24:23.304240Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-24T13:24:23.567248Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-24T13:24:23.567289Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-24T13:24:23.567346Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-24T13:24:23.850835Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-24T13:24:23.850880Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-24T13:24:23.850893Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)\n2026-04-24T13:24:23.850901Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)\n2026-04-24T13:24:23.850941Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-24T13:24:25.197204Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)\n2026-04-24T13:24:25.589436Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=77673, dur=103ms\n2026-04-24T13:24:25.630980Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)\n2026-04-24T13:24:25.652818Z INFO sck_rs::stream_manager: invalidated persistent stream for display 1\n2026-04-24T13:24:26.160345Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=77674, dur=198ms\n2026-04-24T13:24:27.471087Z WARN sqlx::query: summary=\"SELECT f.id, f.timestamp, f.offset_index, …\" db.statement=\"\\n\\nSELECT\\n f.id,\\n f.timestamp,\\n f.offset_index,\\n COALESCE(\\n SUBSTR(f.full_text, 1, 200),\\n SUBSTR(f.accessibility_text, 1, 200),\\n (\\n SELECT\\n SUBSTR(ot.text, 1, 200)\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as text,\\n COALESCE(\\n f.app_name,\\n (\\n SELECT\\n ot.app_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as app_name,\\n COALESCE(\\n f.window_name,\\n (\\n SELECT\\n ot.window_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as window_name,\\n COALESCE(vc.device_name, f.device_name) as screen_device,\\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\\n COALESCE(vc.fps, 0.033) as chunk_fps,\\n f.browser_url,\\n f.machine_id\\nFROM\\n frames f\\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\\nWHERE\\n f.timestamp >= ?1\\n AND f.timestamp <= ?2\\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\\nORDER BY\\n f.timestamp DESC,\\n f.offset_index DESC\\nLIMIT\\n 10000\\n\" rows_affected=0 rows_returned=2758 elapsed=4.209235542s\n2026-04-24T13:24:27.488504Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 2758 frame entries, coverage from 2026-04-23 10:24:23.260965 UTC\n2026-04-24T13:24:56.108522Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)\n2026-04-24T13:25:34.118891Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=82 elapsed=10.985025625s\n2026-04-24T13:25:34.121032Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 82 eligible frames\n2026-04-24T13:25:37.475066Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 6.5MB → 0.2MB (30.1x), 39 JPEGs deleted\n2026-04-24T13:25:41.147418Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 41 frames, 9.1MB → 0.3MB (26.4x), 41 JPEGs deleted\n2026-04-24T13:26:53.913464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3587331842305982393, trigger=click)\n2026-04-24T13:30:52.310748Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=2 elapsed=11.152255s\n2026-04-24T13:30:52.313747Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-24T13:36:00.069099Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=9 elapsed=7.594933541s\n2026-04-24T13:36:00.071113Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 9 eligible frames\n2026-04-24T13:36:00.617576Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 4 frames, 0.3MB → 0.1MB (3.6x), 4 JPEGs deleted\n2026-04-24T13:36:01.402540Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 5 frames, 1.0MB → 0.4MB (2.4x), 5 JPEGs deleted\n2026-04-24T13:40:06.828525Z WARN sqlx::query: summary=\"BEGIN IMMEDIATE\" db.statement=\"\" rows_affected=1 rows_returned=0 elapsed=1.076759291s\n2026-04-24T13:40:07.002782Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=195 elapsed=1.250257875s\n2026-04-24T13:41:11.559513Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=92 elapsed=10.151735042s\n2026-04-24T13:41:11.559741Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 92 eligible frames\n2026-04-24T13:41:14.043784Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 2.3MB → 0.1MB (32.3x), 37 JPEGs deleted\n2026-04-24T13:41:21.303349Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 53 frames, 8.7MB → 3.1MB (2.8x), 53 JPEGs deleted\n2026-04-24T13:41:40.887689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7539785768983157715, trigger=click)\n2026-04-24T13:42:34.136767Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3059269999432289894, trigger=click)\n2026-04-24T13:42:45.942807Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3777488472456223409, trigger=click)\n2026-04-24T13:43:01.921357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1871207218552190145, trigger=click)\n2026-04-24T13:44:01.878037Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8495661271621520850, trigger=click)\n2026-04-24T13:46:28.021146Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=40 elapsed=6.713739708s\n2026-04-24T13:46:28.021348Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames\n2026-04-24T13:46:29.141090Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 1.1MB → 0.1MB (17.9x), 18 JPEGs deleted\n2026-04-24T13:46:31.601195Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.7MB → 2.9MB (1.6x), 20 JPEGs deleted\n2026-04-24T13:51:31.692283Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames\n2026-04-24T13:51:32.570330Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.0MB → 0.2MB (4.8x), 13 JPEGs deleted\n2026-04-24T13:51:33.760542Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.9MB → 1.0MB (1.9x), 10 JPEGs deleted\n2026-04-24T13:55:31.626192Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2977185087332333124, trigger=click)\n2026-04-24T13:56:33.924925Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 105 eligible frames\n2026-04-24T13:56:37.179833Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 55 frames, 5.1MB → 1.4MB (3.6x), 55 JPEGs deleted\n2026-04-24T13:56:40.328768Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 48 frames, 7.6MB → 1.3MB (6.0x), 48 JPEGs deleted\n2026-04-24T14:00:47.136298Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Firefox, signals=2)\n2026-04-24T14:00:47.857419Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2938651853865790585, trigger=click)\n2026-04-24T14:00:52.374476Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Firefox, signals=2, browser=true)\n2026-04-24T14:00:52.378086Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=12, app=Firefox, title=None)\n2026-04-24T14:01:40.650767Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 62 eligible frames\n2026-04-24T14:01:42.431196Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 1.9MB → 0.1MB (32.0x), 30 JPEGs deleted\n2026-04-24T14:01:44.259623Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 4.8MB → 0.2MB (23.8x), 30 JPEGs deleted","depth":4,"value":"Last login: Fri Apr 24 12:59:23 on ttys007\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-start\ndetected hardware tier: Mid\nwarning: parakeet is not supported on this platform, using whisper-tiny instead\n2026-04-24T13:24:21.985779Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store\nchecking permissions...\n screen recording: ok\n accessibility: ok\n2026-04-24T13:24:22.124681Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6\n2026-04-24T13:24:23.055922Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor\n2026-04-24T13:24:23.059528Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)\n2026-04-24T13:24:23.061097Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)\n2026-04-24T13:24:23.132247Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true\n2026-04-24T13:24:23.132303Z INFO screenpipe: meeting detector enabled — independent of transcription mode\n2026-04-24T13:24:23.132592Z INFO screenpipe: API server listening on 127.0.0.1:3030 (localhost only)\n2026-04-24T13:24:23.132606Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key\n2026-04-24T13:24:23.132938Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)\n2026-04-24T13:24:23.132999Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager\n2026-04-24T13:24:23.132808Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)\n2026-04-24T13:24:23.180699Z INFO screenpipe_core::pipes: loaded pipe: day-recap\n2026-04-24T13:24:23.180978Z INFO screenpipe_core::pipes: loaded pipe: standup-update\n2026-04-24T13:24:23.181420Z INFO screenpipe_core::pipes: loaded pipe: ai-habits\n2026-04-24T13:24:23.181613Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown\n2026-04-24T13:24:23.181801Z INFO screenpipe_core::pipes: loaded pipe: video-export\n2026-04-24T13:24:23.182313Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary\n2026-04-24T13:24:23.182341Z INFO screenpipe_core::pipes: loaded 6 pipes from \"/Users/lukas/.screenpipe/pipes\"\n\n\n\n _ \n __________________ ___ ____ ____ (_____ ___ \n / ___/ ___/ ___/ _ \\/ _ \\/ __ \\ / __ \\/ / __ \\/ _ \\\n (__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/\n/____/\\___/_/ \\___/\\___/_/ /_/ / .___/_/ .___/\\___/ \n /_/ /_/ \n\n\n\npower AI by everything you've seen, said or heard\nopen source | runs locally | developer friendly\n\n\n┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ true │\n│ vision disabled │ false │\n│ pause on DRM content │ false │\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n│ ignored windows │ [\"Boosteroid\"] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n│ api auth │ enabled │\n2026-04-24T13:24:23.186334Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n2026-04-24T13:24:23.198489Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n│ encrypt secrets │ disabled │\n│ retention days │ 14 │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ id: 1 │\n│ │ id: 2 │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ disabled │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-24T13:24:23.216198Z INFO screenpipe: starting UI event capture\n2026-04-24T13:24:23.238868Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-24T13:24:23.260906Z INFO screenpipe_engine::ui_recorder: UI recording session started: 9676eafd-ea8f-4e1a-a5f1-de7bdb79c071\n2026-04-24T13:24:23.260911Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-24T13:24:23.260972Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-23 10:24:23.260965 UTC to 2026-04-24 10:24:23.260965 UTC)\n2026-04-24T13:24:23.261685Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-24T13:24:23.262214Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-24T13:24:23.273443Z INFO screenpipe_engine::server: Server listening on 127.0.0.1:3030\n2026-04-24T13:24:23.304240Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-24T13:24:23.567248Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-24T13:24:23.567289Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-24T13:24:23.567346Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-24T13:24:23.850835Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-24T13:24:23.850880Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-24T13:24:23.850893Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)\n2026-04-24T13:24:23.850901Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)\n2026-04-24T13:24:23.850941Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-24T13:24:25.197204Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)\n2026-04-24T13:24:25.589436Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=77673, dur=103ms\n2026-04-24T13:24:25.630980Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)\n2026-04-24T13:24:25.652818Z INFO sck_rs::stream_manager: invalidated persistent stream for display 1\n2026-04-24T13:24:26.160345Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=77674, dur=198ms\n2026-04-24T13:24:27.471087Z WARN sqlx::query: summary=\"SELECT f.id, f.timestamp, f.offset_index, …\" db.statement=\"\\n\\nSELECT\\n f.id,\\n f.timestamp,\\n f.offset_index,\\n COALESCE(\\n SUBSTR(f.full_text, 1, 200),\\n SUBSTR(f.accessibility_text, 1, 200),\\n (\\n SELECT\\n SUBSTR(ot.text, 1, 200)\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as text,\\n COALESCE(\\n f.app_name,\\n (\\n SELECT\\n ot.app_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as app_name,\\n COALESCE(\\n f.window_name,\\n (\\n SELECT\\n ot.window_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as window_name,\\n COALESCE(vc.device_name, f.device_name) as screen_device,\\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\\n COALESCE(vc.fps, 0.033) as chunk_fps,\\n f.browser_url,\\n f.machine_id\\nFROM\\n frames f\\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\\nWHERE\\n f.timestamp >= ?1\\n AND f.timestamp <= ?2\\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\\nORDER BY\\n f.timestamp DESC,\\n f.offset_index DESC\\nLIMIT\\n 10000\\n\" rows_affected=0 rows_returned=2758 elapsed=4.209235542s\n2026-04-24T13:24:27.488504Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 2758 frame entries, coverage from 2026-04-23 10:24:23.260965 UTC\n2026-04-24T13:24:56.108522Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)\n2026-04-24T13:25:34.118891Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=82 elapsed=10.985025625s\n2026-04-24T13:25:34.121032Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 82 eligible frames\n2026-04-24T13:25:37.475066Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 6.5MB → 0.2MB (30.1x), 39 JPEGs deleted\n2026-04-24T13:25:41.147418Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 41 frames, 9.1MB → 0.3MB (26.4x), 41 JPEGs deleted\n2026-04-24T13:26:53.913464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3587331842305982393, trigger=click)\n2026-04-24T13:30:52.310748Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=2 elapsed=11.152255s\n2026-04-24T13:30:52.313747Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-24T13:36:00.069099Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=9 elapsed=7.594933541s\n2026-04-24T13:36:00.071113Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 9 eligible frames\n2026-04-24T13:36:00.617576Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 4 frames, 0.3MB → 0.1MB (3.6x), 4 JPEGs deleted\n2026-04-24T13:36:01.402540Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 5 frames, 1.0MB → 0.4MB (2.4x), 5 JPEGs deleted\n2026-04-24T13:40:06.828525Z WARN sqlx::query: summary=\"BEGIN IMMEDIATE\" db.statement=\"\" rows_affected=1 rows_returned=0 elapsed=1.076759291s\n2026-04-24T13:40:07.002782Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=195 elapsed=1.250257875s\n2026-04-24T13:41:11.559513Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=92 elapsed=10.151735042s\n2026-04-24T13:41:11.559741Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 92 eligible frames\n2026-04-24T13:41:14.043784Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 2.3MB → 0.1MB (32.3x), 37 JPEGs deleted\n2026-04-24T13:41:21.303349Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 53 frames, 8.7MB → 3.1MB (2.8x), 53 JPEGs deleted\n2026-04-24T13:41:40.887689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7539785768983157715, trigger=click)\n2026-04-24T13:42:34.136767Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3059269999432289894, trigger=click)\n2026-04-24T13:42:45.942807Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3777488472456223409, trigger=click)\n2026-04-24T13:43:01.921357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1871207218552190145, trigger=click)\n2026-04-24T13:44:01.878037Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8495661271621520850, trigger=click)\n2026-04-24T13:46:28.021146Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=40 elapsed=6.713739708s\n2026-04-24T13:46:28.021348Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames\n2026-04-24T13:46:29.141090Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 1.1MB → 0.1MB (17.9x), 18 JPEGs deleted\n2026-04-24T13:46:31.601195Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.7MB → 2.9MB (1.6x), 20 JPEGs deleted\n2026-04-24T13:51:31.692283Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames\n2026-04-24T13:51:32.570330Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.0MB → 0.2MB (4.8x), 13 JPEGs deleted\n2026-04-24T13:51:33.760542Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.9MB → 1.0MB (1.9x), 10 JPEGs deleted\n2026-04-24T13:55:31.626192Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2977185087332333124, trigger=click)\n2026-04-24T13:56:33.924925Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 105 eligible frames\n2026-04-24T13:56:37.179833Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 55 frames, 5.1MB → 1.4MB (3.6x), 55 JPEGs deleted\n2026-04-24T13:56:40.328768Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 48 frames, 7.6MB → 1.3MB (6.0x), 48 JPEGs deleted\n2026-04-24T14:00:47.136298Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Firefox, signals=2)\n2026-04-24T14:00:47.857419Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2938651853865790585, trigger=click)\n2026-04-24T14:00:52.374476Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Firefox, signals=2, browser=true)\n2026-04-24T14:00:52.378086Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=12, app=Firefox, title=None)\n2026-04-24T14:01:40.650767Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 62 eligible frames\n2026-04-24T14:01:42.431196Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 1.9MB → 0.1MB (32.0x), 30 JPEGs deleted\n2026-04-24T14:01:44.259623Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 4.8MB → 0.2MB (23.8x), 30 JPEGs deleted","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.36469415,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.36668882,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.45910904,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.46110374,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.55352396,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5555186,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.64793885,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6499335,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7287234,"top":1.0,"width":0.01861702,"height":-0.023144484},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"screenpipe\"","depth":1,"bounds":{"left":0.49634308,"top":1.0,"width":0.027925532,"height":-0.02394259},"role_description":"text"}]...
|
6051727294386219693
|
4662868725517376883
|
app_switch
|
accessibility
|
NULL
|
Last login: Fri Apr 24 12:59:23 on ttys007
Poetry Last login: Fri Apr 24 12:59:23 on ttys007
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-start
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-04-24T13:24:21.985779Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store
checking permissions...
screen recording: ok
accessibility: ok
2026-04-24T13:24:22.124681Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-04-24T13:24:23.055922Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-04-24T13:24:23.059528Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-04-24T13:24:23.061097Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-04-24T13:24:23.132247Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-04-24T13:24:23.132303Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-04-24T13:24:23.132592Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-04-24T13:24:23.132606Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-04-24T13:24:23.132938Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-04-24T13:24:23.132999Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-04-24T13:24:23.132808Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-04-24T13:24:23.180699Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-04-24T13:24:23.180978Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-04-24T13:24:23.181420Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-04-24T13:24:23.181613Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-04-24T13:24:23.181801Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-04-24T13:24:23.182313Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary
2026-04-24T13:24:23.182341Z INFO screenpipe_core::pipes: loaded 6 pipes from "/Users/lukas/.screenpipe/pipes"
_
__________________ ___ ____ ____ (_____ ___
/ ___/ ___/ ___/ _ \/ _ \/ __ \ / __ \/ / __ \/ _ \
(__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/
/____/\___/_/ \___/\___/_/ /_/ / .___/_/ .___/\___/
/_/ /_/
power AI by everything you've seen, said or heard
open source | runs locally | developer friendly
┌────────────────────────┬────────────────────────────────────┐
│ setting │ value │
├────────────────────────┼────────────────────────────────────┤
│ audio chunk duration │ 30 seconds │
│ port │ 3030 │
│ audio disabled │ true │
│ vision disabled │ false │
│ pause on DRM content │ false │
│ audio engine │ Parakeet │
│ vad engine │ Silero │
│ data directory │ /Users/lukas/.screenpipe │
│ debug mode │ false │
│ telemetry │ true │
│ use pii removal │ true │
│ use all monitors │ true │
│ ignored windows │ ["Boosteroid"] │
│ included windows │ [] │
│ cloud sync │ disabled │
│ auto-destruct pid │ 0 │
│ deepgram key │ not set │
│ api auth │ enabled │
2026-04-24T13:24:23.186334Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)
2026-04-24T13:24:23.198489Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh
│ encrypt secrets │ disabled │
│ retention days │ 14 │
├────────────────────────┼────────────────────────────────────┤
│ languages │ │
│ │ all languages │
├────────────────────────┼────────────────────────────────────┤
│ monitors │ │
│ │ id: 1 │
│ │ id: 2 │
├────────────────────────┼────────────────────────────────────┤
│ audio devices │ │
│ │ disabled │
└────────────────────────┴────────────────────────────────────┘
you are using local processing. all your data stays on your computer.
warning: telemetry is enabled. only error-level data will be sent.
to disable, use the --disable-telemetry flag.
check latest changes here: https://github.com/screenpipe/screenpipe/releases
2026-04-24T13:24:23.216198Z INFO screenpipe: starting UI event capture
2026-04-24T13:24:23.238868Z INFO screenpipe_engine::ui_recorder: Starting UI event capture
2026-04-24T13:24:23.260906Z INFO screenpipe_engine::ui_recorder: UI recording session started: 9676eafd-ea8f-4e1a-a5f1-de7bdb79c071
2026-04-24T13:24:23.260911Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)
2026-04-24T13:24:23.260972Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-23 10:24:23.260965 UTC to 2026-04-24 10:24:23.260965 UTC)
2026-04-24T13:24:23.261685Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)
2026-04-24T13:24:23.262214Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))
2026-04-24T13:24:23.273443Z INFO screenpipe_engine::server: Server listening on [IP_ADDRESS]:3030
2026-04-24T13:24:23.304240Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030
2026-04-24T13:24:23.567248Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)
2026-04-24T13:24:23.567289Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)
2026-04-24T13:24:23.567346Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)
2026-04-24T13:24:23.850835Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-04-24T13:24:23.850880Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-04-24T13:24:23.850893Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)
2026-04-24T13:24:23.850901Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)
2026-04-24T13:24:23.850941Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-04-24T13:24:25.197204Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)
2026-04-24T13:24:25.589436Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=77673, dur=103ms
2026-04-24T13:24:25.630980Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)
2026-04-24T13:24:25.652818Z INFO sck_rs::stream_manager: invalidated persistent stream for display 1
2026-04-24T13:24:26.160345Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=77674, dur=198ms
2026-04-24T13:24:27.471087Z WARN sqlx::query: summary="SELECT f.id, f.timestamp, f.offset_index, …" db.statement="\n\nSELECT\n f.id,\n f.timestamp,\n f.offset_index,\n COALESCE(\n SUBSTR(f.full_text, 1, 200),\n SUBSTR(f.accessibility_text, 1, 200),\n (\n SELECT\n SUBSTR(ot.text, 1, 200)\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as text,\n COALESCE(\n f.app_name,\n (\n SELECT\n ot.app_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as app_name,\n COALESCE(\n f.window_name,\n (\n SELECT\n ot.window_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as window_name,\n COALESCE(vc.device_name, f.device_name) as screen_device,\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\n COALESCE(vc.fps, 0.033) as chunk_fps,\n f.browser_url,\n f.machine_id\nFROM\n frames f\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\nWHERE\n f.timestamp >= ?1\n AND f.timestamp <= ?2\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\nORDER BY\n f.timestamp DESC,\n f.offset_index DESC\nLIMIT\n 10000\n" rows_affected=0 rows_returned=2758 elapsed=4.209235542s
2026-04-24T13:24:27.488504Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 2758 frame entries, coverage from 2026-04-23 10:24:23.260965 UTC
2026-04-24T13:24:56.108522Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)
2026-04-24T13:25:34.118891Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=82 elapsed=10.985025625s
2026-04-24T13:25:34.121032Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 82 eligible frames
2026-04-24T13:25:37.475066Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 6.5MB → 0.2MB (30.1x), 39 JPEGs deleted
2026-04-24T13:25:41.147418Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 41 frames, 9.1MB → 0.3MB (26.4x), 41 JPEGs deleted
2026-04-24T13:26:53.913464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3587331842305982393, trigger=click)
2026-04-24T13:30:52.310748Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=2 elapsed=11.152255s
2026-04-24T13:30:52.313747Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
2026-04-24T13:36:00.069099Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=9 elapsed=7.594933541s
2026-04-24T13:36:00.071113Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 9 eligible frames
2026-04-24T13:36:00.617576Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 4 frames, 0.3MB → 0.1MB (3.6x), 4 JPEGs deleted
2026-04-24T13:36:01.402540Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 5 frames, 1.0MB → 0.4MB (2.4x), 5 JPEGs deleted
2026-04-24T13:40:06.828525Z WARN sqlx::query: summary="BEGIN IMMEDIATE" db.statement="" rows_affected=1 rows_returned=0 elapsed=1.076759291s
2026-04-24T13:40:07.002782Z WARN sqlx::query: summary="SELECT DISTINCT app_name, window_name, …" db.statement="\n\nSELECT\n DISTINCT app_name,\n window_name,\n browser_url\nFROM\n frames\nWHERE\n timestamp > datetime('now', '-30 seconds')\n AND app_name IS NOT NULL\n AND window_name IS NOT NULL\n" rows_affected=0 rows_returned=195 elapsed=1.250257875s
2026-04-24T13:41:11.559513Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=92 elapsed=10.151735042s
2026-04-24T13:41:11.559741Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 92 eligible frames
2026-04-24T13:41:14.043784Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 2.3MB → 0.1MB (32.3x), 37 JPEGs deleted
2026-04-24T13:41:21.303349Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 53 frames, 8.7MB → 3.1MB (2.8x), 53 JPEGs deleted
2026-04-24T13:41:40.887689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7539785768983157715, trigger=click)
2026-04-24T13:42:34.136767Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3059269999432289894, trigger=click)
2026-04-24T13:42:45.942807Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3777488472456223409, trigger=click)
2026-04-24T13:43:01.921357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1871207218552190145, trigger=click)
2026-04-24T13:44:01.878037Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8495661271621520850, trigger=click)
2026-04-24T13:46:28.021146Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=40 elapsed=6.713739708s
2026-04-24T13:46:28.021348Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames
2026-04-24T13:46:29.141090Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 1.1MB → 0.1MB (17.9x), 18 JPEGs deleted
2026-04-24T13:46:31.601195Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.7MB → 2.9MB (1.6x), 20 JPEGs deleted
2026-04-24T13:51:31.692283Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames
2026-04-24T13:51:32.570330Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.0MB → 0.2MB (4.8x), 13 JPEGs deleted
2026-04-24T13:51:33.760542Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.9MB → 1.0MB (1.9x), 10 JPEGs deleted
2026-04-24T13:55:31.626192Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2977185087332333124, trigger=click)
2026-04-24T13:56:33.924925Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 105 eligible frames
2026-04-24T13:56:37.179833Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 55 frames, 5.1MB → 1.4MB (3.6x), 55 JPEGs deleted
2026-04-24T13:56:40.328768Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 48 frames, 7.6MB → 1.3MB (6.0x), 48 JPEGs deleted
2026-04-24T14:00:47.136298Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Firefox, signals=2)
2026-04-24T14:00:47.857419Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2938651853865790585, trigger=click)
2026-04-24T14:00:52.374476Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Firefox, signals=2, browser=true)
2026-04-24T14:00:52.378086Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=12, app=Firefox, title=None)
2026-04-24T14:01:40.650767Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 62 eligible frames
2026-04-24T14:01:42.431196Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 1.9MB → 0.1MB (32.0x), 30 JPEGs deleted
2026-04-24T14:01:44.259623Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 4.8MB → 0.2MB (23.8x), 30 JPEGs deleted
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
screenpipe"...
|
NULL
|
|
78145
|
1975
|
3
|
2026-04-24T11:02:05.671499+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-24/1777 /Users/lukas/.screenpipe/data/data/2026-04-24/1777028525671_m1.jpg...
|
iTerm2
|
screenpipe"
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Last login: Fri Apr 24 12:59:23 on ttys007
Poetry Last login: Fri Apr 24 12:59:23 on ttys007
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-start
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-04-24T13:24:21.985779Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store
checking permissions...
screen recording: ok
accessibility: ok
2026-04-24T13:24:22.124681Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-04-24T13:24:23.055922Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-04-24T13:24:23.059528Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-04-24T13:24:23.061097Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-04-24T13:24:23.132247Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-04-24T13:24:23.132303Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-04-24T13:24:23.132592Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-04-24T13:24:23.132606Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-04-24T13:24:23.132938Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-04-24T13:24:23.132999Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-04-24T13:24:23.132808Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-04-24T13:24:23.180699Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-04-24T13:24:23.180978Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-04-24T13:24:23.181420Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-04-24T13:24:23.181613Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-04-24T13:24:23.181801Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-04-24T13:24:23.182313Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary
2026-04-24T13:24:23.182341Z INFO screenpipe_core::pipes: loaded 6 pipes from "/Users/lukas/.screenpipe/pipes"
_
__________________ ___ ____ ____ (_____ ___
/ ___/ ___/ ___/ _ \/ _ \/ __ \ / __ \/ / __ \/ _ \
(__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/
/____/\___/_/ \___/\___/_/ /_/ / .___/_/ .___/\___/
/_/ /_/
power AI by everything you've seen, said or heard
open source | runs locally | developer friendly
┌────────────────────────┬────────────────────────────────────┐
│ setting │ value │
├────────────────────────┼────────────────────────────────────┤
│ audio chunk duration │ 30 seconds │
│ port │ 3030 │
│ audio disabled │ true │
│ vision disabled │ false │
│ pause on DRM content │ false │
│ audio engine │ Parakeet │
│ vad engine │ Silero │
│ data directory │ /Users/lukas/.screenpipe │
│ debug mode │ false │
│ telemetry │ true │
│ use pii removal │ true │
│ use all monitors │ true │
│ ignored windows │ ["Boosteroid"] │
│ included windows │ [] │
│ cloud sync │ disabled │
│ auto-destruct pid │ 0 │
│ deepgram key │ not set │
│ api auth │ enabled │
2026-04-24T13:24:23.186334Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)
2026-04-24T13:24:23.198489Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh
│ encrypt secrets │ disabled │
│ retention days │ 14 │
├────────────────────────┼────────────────────────────────────┤
│ languages │ │
│ │ all languages │
├────────────────────────┼────────────────────────────────────┤
│ monitors │ │
│ │ id: 1 │
│ │ id: 2 │
├────────────────────────┼────────────────────────────────────┤
│ audio devices │ │
│ │ disabled │
└────────────────────────┴────────────────────────────────────┘
you are using local processing. all your data stays on your computer.
warning: telemetry is enabled. only error-level data will be sent.
to disable, use the --disable-telemetry flag.
check latest changes here: https://github.com/screenpipe/screenpipe/releases
2026-04-24T13:24:23.216198Z INFO screenpipe: starting UI event capture
2026-04-24T13:24:23.238868Z INFO screenpipe_engine::ui_recorder: Starting UI event capture
2026-04-24T13:24:23.260906Z INFO screenpipe_engine::ui_recorder: UI recording session started: 9676eafd-ea8f-4e1a-a5f1-de7bdb79c071
2026-04-24T13:24:23.260911Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)
2026-04-24T13:24:23.260972Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-23 10:24:23.260965 UTC to 2026-04-24 10:24:23.260965 UTC)
2026-04-24T13:24:23.261685Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)
2026-04-24T13:24:23.262214Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))
2026-04-24T13:24:23.273443Z INFO screenpipe_engine::server: Server listening on [IP_ADDRESS]:3030
2026-04-24T13:24:23.304240Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030
2026-04-24T13:24:23.567248Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)
2026-04-24T13:24:23.567289Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)
2026-04-24T13:24:23.567346Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)
2026-04-24T13:24:23.850835Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-04-24T13:24:23.850880Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-04-24T13:24:23.850893Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)
2026-04-24T13:24:23.850901Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)
2026-04-24T13:24:23.850941Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-04-24T13:24:25.197204Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)
2026-04-24T13:24:25.589436Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=77673, dur=103ms
2026-04-24T13:24:25.630980Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)
2026-04-24T13:24:25.652818Z INFO sck_rs::stream_manager: invalidated persistent stream for display 1
2026-04-24T13:24:26.160345Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=77674, dur=198ms
2026-04-24T13:24:27.471087Z WARN sqlx::query: summary="SELECT f.id, f.timestamp, f.offset_index, …" db.statement="\n\nSELECT\n f.id,\n f.timestamp,\n f.offset_index,\n COALESCE(\n SUBSTR(f.full_text, 1, 200),\n SUBSTR(f.accessibility_text, 1, 200),\n (\n SELECT\n SUBSTR(ot.text, 1, 200)\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as text,\n COALESCE(\n f.app_name,\n (\n SELECT\n ot.app_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as app_name,\n COALESCE(\n f.window_name,\n (\n SELECT\n ot.window_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as window_name,\n COALESCE(vc.device_name, f.device_name) as screen_device,\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\n COALESCE(vc.fps, 0.033) as chunk_fps,\n f.browser_url,\n f.machine_id\nFROM\n frames f\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\nWHERE\n f.timestamp >= ?1\n AND f.timestamp <= ?2\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\nORDER BY\n f.timestamp DESC,\n f.offset_index DESC\nLIMIT\n 10000\n" rows_affected=0 rows_returned=2758 elapsed=4.209235542s
2026-04-24T13:24:27.488504Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 2758 frame entries, coverage from 2026-04-23 10:24:23.260965 UTC
2026-04-24T13:24:56.108522Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)
2026-04-24T13:25:34.118891Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=82 elapsed=10.985025625s
2026-04-24T13:25:34.121032Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 82 eligible frames
2026-04-24T13:25:37.475066Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 6.5MB → 0.2MB (30.1x), 39 JPEGs deleted
2026-04-24T13:25:41.147418Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 41 frames, 9.1MB → 0.3MB (26.4x), 41 JPEGs deleted
2026-04-24T13:26:53.913464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3587331842305982393, trigger=click)
2026-04-24T13:30:52.310748Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=2 elapsed=11.152255s
2026-04-24T13:30:52.313747Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
2026-04-24T13:36:00.069099Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=9 elapsed=7.594933541s
2026-04-24T13:36:00.071113Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 9 eligible frames
2026-04-24T13:36:00.617576Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 4 frames, 0.3MB → 0.1MB (3.6x), 4 JPEGs deleted
2026-04-24T13:36:01.402540Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 5 frames, 1.0MB → 0.4MB (2.4x), 5 JPEGs deleted
2026-04-24T13:40:06.828525Z WARN sqlx::query: summary="BEGIN IMMEDIATE" db.statement="" rows_affected=1 rows_returned=0 elapsed=1.076759291s
2026-04-24T13:40:07.002782Z WARN sqlx::query: summary="SELECT DISTINCT app_name, window_name, …" db.statement="\n\nSELECT\n DISTINCT app_name,\n window_name,\n browser_url\nFROM\n frames\nWHERE\n timestamp > datetime('now', '-30 seconds')\n AND app_name IS NOT NULL\n AND window_name IS NOT NULL\n" rows_affected=0 rows_returned=195 elapsed=1.250257875s
2026-04-24T13:41:11.559513Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=92 elapsed=10.151735042s
2026-04-24T13:41:11.559741Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 92 eligible frames
2026-04-24T13:41:14.043784Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 2.3MB → 0.1MB (32.3x), 37 JPEGs deleted
2026-04-24T13:41:21.303349Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 53 frames, 8.7MB → 3.1MB (2.8x), 53 JPEGs deleted
2026-04-24T13:41:40.887689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7539785768983157715, trigger=click)
2026-04-24T13:42:34.136767Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3059269999432289894, trigger=click)
2026-04-24T13:42:45.942807Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3777488472456223409, trigger=click)
2026-04-24T13:43:01.921357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1871207218552190145, trigger=click)
2026-04-24T13:44:01.878037Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8495661271621520850, trigger=click)
2026-04-24T13:46:28.021146Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=40 elapsed=6.713739708s
2026-04-24T13:46:28.021348Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames
2026-04-24T13:46:29.141090Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 1.1MB → 0.1MB (17.9x), 18 JPEGs deleted
2026-04-24T13:46:31.601195Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.7MB → 2.9MB (1.6x), 20 JPEGs deleted
2026-04-24T13:51:31.692283Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames
2026-04-24T13:51:32.570330Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.0MB → 0.2MB (4.8x), 13 JPEGs deleted
2026-04-24T13:51:33.760542Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.9MB → 1.0MB (1.9x), 10 JPEGs deleted
2026-04-24T13:55:31.626192Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2977185087332333124, trigger=click)
2026-04-24T13:56:33.924925Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 105 eligible frames
2026-04-24T13:56:37.179833Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 55 frames, 5.1MB → 1.4MB (3.6x), 55 JPEGs deleted
2026-04-24T13:56:40.328768Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 48 frames, 7.6MB → 1.3MB (6.0x), 48 JPEGs deleted
2026-04-24T14:00:47.136298Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Firefox, signals=2)
2026-04-24T14:00:47.857419Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2938651853865790585, trigger=click)
2026-04-24T14:00:52.374476Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Firefox, signals=2, browser=true)
2026-04-24T14:00:52.378086Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=12, app=Firefox, title=None)
2026-04-24T14:01:40.650767Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 62 eligible frames
2026-04-24T14:01:42.431196Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 1.9MB → 0.1MB (32.0x), 30 JPEGs deleted
2026-04-24T14:01:44.259623Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 4.8MB → 0.2MB (23.8x), 30 JPEGs deleted
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
screenpipe"...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"Last login: Fri Apr 24 12:59:23 on ttys007\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-start\ndetected hardware tier: Mid\nwarning: parakeet is not supported on this platform, using whisper-tiny instead\n2026-04-24T13:24:21.985779Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store\nchecking permissions...\n screen recording: ok\n accessibility: ok\n2026-04-24T13:24:22.124681Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6\n2026-04-24T13:24:23.055922Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor\n2026-04-24T13:24:23.059528Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)\n2026-04-24T13:24:23.061097Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)\n2026-04-24T13:24:23.132247Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true\n2026-04-24T13:24:23.132303Z INFO screenpipe: meeting detector enabled — independent of transcription mode\n2026-04-24T13:24:23.132592Z INFO screenpipe: API server listening on 127.0.0.1:3030 (localhost only)\n2026-04-24T13:24:23.132606Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key\n2026-04-24T13:24:23.132938Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)\n2026-04-24T13:24:23.132999Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager\n2026-04-24T13:24:23.132808Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)\n2026-04-24T13:24:23.180699Z INFO screenpipe_core::pipes: loaded pipe: day-recap\n2026-04-24T13:24:23.180978Z INFO screenpipe_core::pipes: loaded pipe: standup-update\n2026-04-24T13:24:23.181420Z INFO screenpipe_core::pipes: loaded pipe: ai-habits\n2026-04-24T13:24:23.181613Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown\n2026-04-24T13:24:23.181801Z INFO screenpipe_core::pipes: loaded pipe: video-export\n2026-04-24T13:24:23.182313Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary\n2026-04-24T13:24:23.182341Z INFO screenpipe_core::pipes: loaded 6 pipes from \"/Users/lukas/.screenpipe/pipes\"\n\n\n\n _ \n __________________ ___ ____ ____ (_____ ___ \n / ___/ ___/ ___/ _ \\/ _ \\/ __ \\ / __ \\/ / __ \\/ _ \\\n (__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/\n/____/\\___/_/ \\___/\\___/_/ /_/ / .___/_/ .___/\\___/ \n /_/ /_/ \n\n\n\npower AI by everything you've seen, said or heard\nopen source | runs locally | developer friendly\n\n\n┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ true │\n│ vision disabled │ false │\n│ pause on DRM content │ false │\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n│ ignored windows │ [\"Boosteroid\"] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n│ api auth │ enabled │\n2026-04-24T13:24:23.186334Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n2026-04-24T13:24:23.198489Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n│ encrypt secrets │ disabled │\n│ retention days │ 14 │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ id: 1 │\n│ │ id: 2 │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ disabled │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-24T13:24:23.216198Z INFO screenpipe: starting UI event capture\n2026-04-24T13:24:23.238868Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-24T13:24:23.260906Z INFO screenpipe_engine::ui_recorder: UI recording session started: 9676eafd-ea8f-4e1a-a5f1-de7bdb79c071\n2026-04-24T13:24:23.260911Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-24T13:24:23.260972Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-23 10:24:23.260965 UTC to 2026-04-24 10:24:23.260965 UTC)\n2026-04-24T13:24:23.261685Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-24T13:24:23.262214Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-24T13:24:23.273443Z INFO screenpipe_engine::server: Server listening on 127.0.0.1:3030\n2026-04-24T13:24:23.304240Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-24T13:24:23.567248Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-24T13:24:23.567289Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-24T13:24:23.567346Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-24T13:24:23.850835Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-24T13:24:23.850880Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-24T13:24:23.850893Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)\n2026-04-24T13:24:23.850901Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)\n2026-04-24T13:24:23.850941Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-24T13:24:25.197204Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)\n2026-04-24T13:24:25.589436Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=77673, dur=103ms\n2026-04-24T13:24:25.630980Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)\n2026-04-24T13:24:25.652818Z INFO sck_rs::stream_manager: invalidated persistent stream for display 1\n2026-04-24T13:24:26.160345Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=77674, dur=198ms\n2026-04-24T13:24:27.471087Z WARN sqlx::query: summary=\"SELECT f.id, f.timestamp, f.offset_index, …\" db.statement=\"\\n\\nSELECT\\n f.id,\\n f.timestamp,\\n f.offset_index,\\n COALESCE(\\n SUBSTR(f.full_text, 1, 200),\\n SUBSTR(f.accessibility_text, 1, 200),\\n (\\n SELECT\\n SUBSTR(ot.text, 1, 200)\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as text,\\n COALESCE(\\n f.app_name,\\n (\\n SELECT\\n ot.app_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as app_name,\\n COALESCE(\\n f.window_name,\\n (\\n SELECT\\n ot.window_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as window_name,\\n COALESCE(vc.device_name, f.device_name) as screen_device,\\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\\n COALESCE(vc.fps, 0.033) as chunk_fps,\\n f.browser_url,\\n f.machine_id\\nFROM\\n frames f\\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\\nWHERE\\n f.timestamp >= ?1\\n AND f.timestamp <= ?2\\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\\nORDER BY\\n f.timestamp DESC,\\n f.offset_index DESC\\nLIMIT\\n 10000\\n\" rows_affected=0 rows_returned=2758 elapsed=4.209235542s\n2026-04-24T13:24:27.488504Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 2758 frame entries, coverage from 2026-04-23 10:24:23.260965 UTC\n2026-04-24T13:24:56.108522Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)\n2026-04-24T13:25:34.118891Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=82 elapsed=10.985025625s\n2026-04-24T13:25:34.121032Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 82 eligible frames\n2026-04-24T13:25:37.475066Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 6.5MB → 0.2MB (30.1x), 39 JPEGs deleted\n2026-04-24T13:25:41.147418Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 41 frames, 9.1MB → 0.3MB (26.4x), 41 JPEGs deleted\n2026-04-24T13:26:53.913464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3587331842305982393, trigger=click)\n2026-04-24T13:30:52.310748Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=2 elapsed=11.152255s\n2026-04-24T13:30:52.313747Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-24T13:36:00.069099Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=9 elapsed=7.594933541s\n2026-04-24T13:36:00.071113Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 9 eligible frames\n2026-04-24T13:36:00.617576Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 4 frames, 0.3MB → 0.1MB (3.6x), 4 JPEGs deleted\n2026-04-24T13:36:01.402540Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 5 frames, 1.0MB → 0.4MB (2.4x), 5 JPEGs deleted\n2026-04-24T13:40:06.828525Z WARN sqlx::query: summary=\"BEGIN IMMEDIATE\" db.statement=\"\" rows_affected=1 rows_returned=0 elapsed=1.076759291s\n2026-04-24T13:40:07.002782Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=195 elapsed=1.250257875s\n2026-04-24T13:41:11.559513Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=92 elapsed=10.151735042s\n2026-04-24T13:41:11.559741Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 92 eligible frames\n2026-04-24T13:41:14.043784Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 2.3MB → 0.1MB (32.3x), 37 JPEGs deleted\n2026-04-24T13:41:21.303349Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 53 frames, 8.7MB → 3.1MB (2.8x), 53 JPEGs deleted\n2026-04-24T13:41:40.887689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7539785768983157715, trigger=click)\n2026-04-24T13:42:34.136767Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3059269999432289894, trigger=click)\n2026-04-24T13:42:45.942807Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3777488472456223409, trigger=click)\n2026-04-24T13:43:01.921357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1871207218552190145, trigger=click)\n2026-04-24T13:44:01.878037Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8495661271621520850, trigger=click)\n2026-04-24T13:46:28.021146Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=40 elapsed=6.713739708s\n2026-04-24T13:46:28.021348Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames\n2026-04-24T13:46:29.141090Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 1.1MB → 0.1MB (17.9x), 18 JPEGs deleted\n2026-04-24T13:46:31.601195Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.7MB → 2.9MB (1.6x), 20 JPEGs deleted\n2026-04-24T13:51:31.692283Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames\n2026-04-24T13:51:32.570330Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.0MB → 0.2MB (4.8x), 13 JPEGs deleted\n2026-04-24T13:51:33.760542Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.9MB → 1.0MB (1.9x), 10 JPEGs deleted\n2026-04-24T13:55:31.626192Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2977185087332333124, trigger=click)\n2026-04-24T13:56:33.924925Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 105 eligible frames\n2026-04-24T13:56:37.179833Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 55 frames, 5.1MB → 1.4MB (3.6x), 55 JPEGs deleted\n2026-04-24T13:56:40.328768Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 48 frames, 7.6MB → 1.3MB (6.0x), 48 JPEGs deleted\n2026-04-24T14:00:47.136298Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Firefox, signals=2)\n2026-04-24T14:00:47.857419Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2938651853865790585, trigger=click)\n2026-04-24T14:00:52.374476Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Firefox, signals=2, browser=true)\n2026-04-24T14:00:52.378086Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=12, app=Firefox, title=None)\n2026-04-24T14:01:40.650767Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 62 eligible frames\n2026-04-24T14:01:42.431196Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 1.9MB → 0.1MB (32.0x), 30 JPEGs deleted\n2026-04-24T14:01:44.259623Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 4.8MB → 0.2MB (23.8x), 30 JPEGs deleted","depth":4,"value":"Last login: Fri Apr 24 12:59:23 on ttys007\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-start\ndetected hardware tier: Mid\nwarning: parakeet is not supported on this platform, using whisper-tiny instead\n2026-04-24T13:24:21.985779Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store\nchecking permissions...\n screen recording: ok\n accessibility: ok\n2026-04-24T13:24:22.124681Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6\n2026-04-24T13:24:23.055922Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor\n2026-04-24T13:24:23.059528Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)\n2026-04-24T13:24:23.061097Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)\n2026-04-24T13:24:23.132247Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true\n2026-04-24T13:24:23.132303Z INFO screenpipe: meeting detector enabled — independent of transcription mode\n2026-04-24T13:24:23.132592Z INFO screenpipe: API server listening on 127.0.0.1:3030 (localhost only)\n2026-04-24T13:24:23.132606Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key\n2026-04-24T13:24:23.132938Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)\n2026-04-24T13:24:23.132999Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager\n2026-04-24T13:24:23.132808Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)\n2026-04-24T13:24:23.180699Z INFO screenpipe_core::pipes: loaded pipe: day-recap\n2026-04-24T13:24:23.180978Z INFO screenpipe_core::pipes: loaded pipe: standup-update\n2026-04-24T13:24:23.181420Z INFO screenpipe_core::pipes: loaded pipe: ai-habits\n2026-04-24T13:24:23.181613Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown\n2026-04-24T13:24:23.181801Z INFO screenpipe_core::pipes: loaded pipe: video-export\n2026-04-24T13:24:23.182313Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary\n2026-04-24T13:24:23.182341Z INFO screenpipe_core::pipes: loaded 6 pipes from \"/Users/lukas/.screenpipe/pipes\"\n\n\n\n _ \n __________________ ___ ____ ____ (_____ ___ \n / ___/ ___/ ___/ _ \\/ _ \\/ __ \\ / __ \\/ / __ \\/ _ \\\n (__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/\n/____/\\___/_/ \\___/\\___/_/ /_/ / .___/_/ .___/\\___/ \n /_/ /_/ \n\n\n\npower AI by everything you've seen, said or heard\nopen source | runs locally | developer friendly\n\n\n┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ true │\n│ vision disabled │ false │\n│ pause on DRM content │ false │\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n│ ignored windows │ [\"Boosteroid\"] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n│ api auth │ enabled │\n2026-04-24T13:24:23.186334Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n2026-04-24T13:24:23.198489Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n│ encrypt secrets │ disabled │\n│ retention days │ 14 │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ id: 1 │\n│ │ id: 2 │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ disabled │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-24T13:24:23.216198Z INFO screenpipe: starting UI event capture\n2026-04-24T13:24:23.238868Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-24T13:24:23.260906Z INFO screenpipe_engine::ui_recorder: UI recording session started: 9676eafd-ea8f-4e1a-a5f1-de7bdb79c071\n2026-04-24T13:24:23.260911Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-24T13:24:23.260972Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-23 10:24:23.260965 UTC to 2026-04-24 10:24:23.260965 UTC)\n2026-04-24T13:24:23.261685Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-24T13:24:23.262214Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-24T13:24:23.273443Z INFO screenpipe_engine::server: Server listening on 127.0.0.1:3030\n2026-04-24T13:24:23.304240Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-24T13:24:23.567248Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-24T13:24:23.567289Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-24T13:24:23.567346Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-24T13:24:23.850835Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-24T13:24:23.850880Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-24T13:24:23.850893Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)\n2026-04-24T13:24:23.850901Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)\n2026-04-24T13:24:23.850941Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-24T13:24:25.197204Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)\n2026-04-24T13:24:25.589436Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=77673, dur=103ms\n2026-04-24T13:24:25.630980Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)\n2026-04-24T13:24:25.652818Z INFO sck_rs::stream_manager: invalidated persistent stream for display 1\n2026-04-24T13:24:26.160345Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=77674, dur=198ms\n2026-04-24T13:24:27.471087Z WARN sqlx::query: summary=\"SELECT f.id, f.timestamp, f.offset_index, …\" db.statement=\"\\n\\nSELECT\\n f.id,\\n f.timestamp,\\n f.offset_index,\\n COALESCE(\\n SUBSTR(f.full_text, 1, 200),\\n SUBSTR(f.accessibility_text, 1, 200),\\n (\\n SELECT\\n SUBSTR(ot.text, 1, 200)\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as text,\\n COALESCE(\\n f.app_name,\\n (\\n SELECT\\n ot.app_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as app_name,\\n COALESCE(\\n f.window_name,\\n (\\n SELECT\\n ot.window_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as window_name,\\n COALESCE(vc.device_name, f.device_name) as screen_device,\\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\\n COALESCE(vc.fps, 0.033) as chunk_fps,\\n f.browser_url,\\n f.machine_id\\nFROM\\n frames f\\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\\nWHERE\\n f.timestamp >= ?1\\n AND f.timestamp <= ?2\\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\\nORDER BY\\n f.timestamp DESC,\\n f.offset_index DESC\\nLIMIT\\n 10000\\n\" rows_affected=0 rows_returned=2758 elapsed=4.209235542s\n2026-04-24T13:24:27.488504Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 2758 frame entries, coverage from 2026-04-23 10:24:23.260965 UTC\n2026-04-24T13:24:56.108522Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)\n2026-04-24T13:25:34.118891Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=82 elapsed=10.985025625s\n2026-04-24T13:25:34.121032Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 82 eligible frames\n2026-04-24T13:25:37.475066Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 6.5MB → 0.2MB (30.1x), 39 JPEGs deleted\n2026-04-24T13:25:41.147418Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 41 frames, 9.1MB → 0.3MB (26.4x), 41 JPEGs deleted\n2026-04-24T13:26:53.913464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3587331842305982393, trigger=click)\n2026-04-24T13:30:52.310748Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=2 elapsed=11.152255s\n2026-04-24T13:30:52.313747Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-24T13:36:00.069099Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=9 elapsed=7.594933541s\n2026-04-24T13:36:00.071113Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 9 eligible frames\n2026-04-24T13:36:00.617576Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 4 frames, 0.3MB → 0.1MB (3.6x), 4 JPEGs deleted\n2026-04-24T13:36:01.402540Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 5 frames, 1.0MB → 0.4MB (2.4x), 5 JPEGs deleted\n2026-04-24T13:40:06.828525Z WARN sqlx::query: summary=\"BEGIN IMMEDIATE\" db.statement=\"\" rows_affected=1 rows_returned=0 elapsed=1.076759291s\n2026-04-24T13:40:07.002782Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=195 elapsed=1.250257875s\n2026-04-24T13:41:11.559513Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=92 elapsed=10.151735042s\n2026-04-24T13:41:11.559741Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 92 eligible frames\n2026-04-24T13:41:14.043784Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 2.3MB → 0.1MB (32.3x), 37 JPEGs deleted\n2026-04-24T13:41:21.303349Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 53 frames, 8.7MB → 3.1MB (2.8x), 53 JPEGs deleted\n2026-04-24T13:41:40.887689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7539785768983157715, trigger=click)\n2026-04-24T13:42:34.136767Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3059269999432289894, trigger=click)\n2026-04-24T13:42:45.942807Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3777488472456223409, trigger=click)\n2026-04-24T13:43:01.921357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1871207218552190145, trigger=click)\n2026-04-24T13:44:01.878037Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8495661271621520850, trigger=click)\n2026-04-24T13:46:28.021146Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=40 elapsed=6.713739708s\n2026-04-24T13:46:28.021348Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames\n2026-04-24T13:46:29.141090Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 1.1MB → 0.1MB (17.9x), 18 JPEGs deleted\n2026-04-24T13:46:31.601195Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.7MB → 2.9MB (1.6x), 20 JPEGs deleted\n2026-04-24T13:51:31.692283Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames\n2026-04-24T13:51:32.570330Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.0MB → 0.2MB (4.8x), 13 JPEGs deleted\n2026-04-24T13:51:33.760542Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.9MB → 1.0MB (1.9x), 10 JPEGs deleted\n2026-04-24T13:55:31.626192Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2977185087332333124, trigger=click)\n2026-04-24T13:56:33.924925Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 105 eligible frames\n2026-04-24T13:56:37.179833Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 55 frames, 5.1MB → 1.4MB (3.6x), 55 JPEGs deleted\n2026-04-24T13:56:40.328768Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 48 frames, 7.6MB → 1.3MB (6.0x), 48 JPEGs deleted\n2026-04-24T14:00:47.136298Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Firefox, signals=2)\n2026-04-24T14:00:47.857419Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2938651853865790585, trigger=click)\n2026-04-24T14:00:52.374476Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Firefox, signals=2, browser=true)\n2026-04-24T14:00:52.378086Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=12, app=Firefox, title=None)\n2026-04-24T14:01:40.650767Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 62 eligible frames\n2026-04-24T14:01:42.431196Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 1.9MB → 0.1MB (32.0x), 30 JPEGs deleted\n2026-04-24T14:01:44.259623Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 4.8MB → 0.2MB (23.8x), 30 JPEGs deleted","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.39444444,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3986111,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.59166664,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.59583336,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.7888889,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.79305553,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"screenpipe\"","depth":1,"bounds":{"left":0.4722222,"top":0.033333335,"width":0.058333334,"height":0.017777778},"role_description":"text"}]...
|
6051727294386219693
|
4662868725517376883
|
app_switch
|
accessibility
|
NULL
|
Last login: Fri Apr 24 12:59:23 on ttys007
Poetry Last login: Fri Apr 24 12:59:23 on ttys007
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-start
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-04-24T13:24:21.985779Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store
checking permissions...
screen recording: ok
accessibility: ok
2026-04-24T13:24:22.124681Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-04-24T13:24:23.055922Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-04-24T13:24:23.059528Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-04-24T13:24:23.061097Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-04-24T13:24:23.132247Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-04-24T13:24:23.132303Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-04-24T13:24:23.132592Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-04-24T13:24:23.132606Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-04-24T13:24:23.132938Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-04-24T13:24:23.132999Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-04-24T13:24:23.132808Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-04-24T13:24:23.180699Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-04-24T13:24:23.180978Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-04-24T13:24:23.181420Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-04-24T13:24:23.181613Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-04-24T13:24:23.181801Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-04-24T13:24:23.182313Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary
2026-04-24T13:24:23.182341Z INFO screenpipe_core::pipes: loaded 6 pipes from "/Users/lukas/.screenpipe/pipes"
_
__________________ ___ ____ ____ (_____ ___
/ ___/ ___/ ___/ _ \/ _ \/ __ \ / __ \/ / __ \/ _ \
(__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/
/____/\___/_/ \___/\___/_/ /_/ / .___/_/ .___/\___/
/_/ /_/
power AI by everything you've seen, said or heard
open source | runs locally | developer friendly
┌────────────────────────┬────────────────────────────────────┐
│ setting │ value │
├────────────────────────┼────────────────────────────────────┤
│ audio chunk duration │ 30 seconds │
│ port │ 3030 │
│ audio disabled │ true │
│ vision disabled │ false │
│ pause on DRM content │ false │
│ audio engine │ Parakeet │
│ vad engine │ Silero │
│ data directory │ /Users/lukas/.screenpipe │
│ debug mode │ false │
│ telemetry │ true │
│ use pii removal │ true │
│ use all monitors │ true │
│ ignored windows │ ["Boosteroid"] │
│ included windows │ [] │
│ cloud sync │ disabled │
│ auto-destruct pid │ 0 │
│ deepgram key │ not set │
│ api auth │ enabled │
2026-04-24T13:24:23.186334Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)
2026-04-24T13:24:23.198489Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh
│ encrypt secrets │ disabled │
│ retention days │ 14 │
├────────────────────────┼────────────────────────────────────┤
│ languages │ │
│ │ all languages │
├────────────────────────┼────────────────────────────────────┤
│ monitors │ │
│ │ id: 1 │
│ │ id: 2 │
├────────────────────────┼────────────────────────────────────┤
│ audio devices │ │
│ │ disabled │
└────────────────────────┴────────────────────────────────────┘
you are using local processing. all your data stays on your computer.
warning: telemetry is enabled. only error-level data will be sent.
to disable, use the --disable-telemetry flag.
check latest changes here: https://github.com/screenpipe/screenpipe/releases
2026-04-24T13:24:23.216198Z INFO screenpipe: starting UI event capture
2026-04-24T13:24:23.238868Z INFO screenpipe_engine::ui_recorder: Starting UI event capture
2026-04-24T13:24:23.260906Z INFO screenpipe_engine::ui_recorder: UI recording session started: 9676eafd-ea8f-4e1a-a5f1-de7bdb79c071
2026-04-24T13:24:23.260911Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)
2026-04-24T13:24:23.260972Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-23 10:24:23.260965 UTC to 2026-04-24 10:24:23.260965 UTC)
2026-04-24T13:24:23.261685Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)
2026-04-24T13:24:23.262214Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))
2026-04-24T13:24:23.273443Z INFO screenpipe_engine::server: Server listening on [IP_ADDRESS]:3030
2026-04-24T13:24:23.304240Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030
2026-04-24T13:24:23.567248Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)
2026-04-24T13:24:23.567289Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)
2026-04-24T13:24:23.567346Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)
2026-04-24T13:24:23.850835Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-04-24T13:24:23.850880Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-04-24T13:24:23.850893Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)
2026-04-24T13:24:23.850901Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)
2026-04-24T13:24:23.850941Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-04-24T13:24:25.197204Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)
2026-04-24T13:24:25.589436Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=77673, dur=103ms
2026-04-24T13:24:25.630980Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)
2026-04-24T13:24:25.652818Z INFO sck_rs::stream_manager: invalidated persistent stream for display 1
2026-04-24T13:24:26.160345Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=77674, dur=198ms
2026-04-24T13:24:27.471087Z WARN sqlx::query: summary="SELECT f.id, f.timestamp, f.offset_index, …" db.statement="\n\nSELECT\n f.id,\n f.timestamp,\n f.offset_index,\n COALESCE(\n SUBSTR(f.full_text, 1, 200),\n SUBSTR(f.accessibility_text, 1, 200),\n (\n SELECT\n SUBSTR(ot.text, 1, 200)\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as text,\n COALESCE(\n f.app_name,\n (\n SELECT\n ot.app_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as app_name,\n COALESCE(\n f.window_name,\n (\n SELECT\n ot.window_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as window_name,\n COALESCE(vc.device_name, f.device_name) as screen_device,\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\n COALESCE(vc.fps, 0.033) as chunk_fps,\n f.browser_url,\n f.machine_id\nFROM\n frames f\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\nWHERE\n f.timestamp >= ?1\n AND f.timestamp <= ?2\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\nORDER BY\n f.timestamp DESC,\n f.offset_index DESC\nLIMIT\n 10000\n" rows_affected=0 rows_returned=2758 elapsed=4.209235542s
2026-04-24T13:24:27.488504Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 2758 frame entries, coverage from 2026-04-23 10:24:23.260965 UTC
2026-04-24T13:24:56.108522Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)
2026-04-24T13:25:34.118891Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=82 elapsed=10.985025625s
2026-04-24T13:25:34.121032Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 82 eligible frames
2026-04-24T13:25:37.475066Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 6.5MB → 0.2MB (30.1x), 39 JPEGs deleted
2026-04-24T13:25:41.147418Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 41 frames, 9.1MB → 0.3MB (26.4x), 41 JPEGs deleted
2026-04-24T13:26:53.913464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3587331842305982393, trigger=click)
2026-04-24T13:30:52.310748Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=2 elapsed=11.152255s
2026-04-24T13:30:52.313747Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
2026-04-24T13:36:00.069099Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=9 elapsed=7.594933541s
2026-04-24T13:36:00.071113Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 9 eligible frames
2026-04-24T13:36:00.617576Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 4 frames, 0.3MB → 0.1MB (3.6x), 4 JPEGs deleted
2026-04-24T13:36:01.402540Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 5 frames, 1.0MB → 0.4MB (2.4x), 5 JPEGs deleted
2026-04-24T13:40:06.828525Z WARN sqlx::query: summary="BEGIN IMMEDIATE" db.statement="" rows_affected=1 rows_returned=0 elapsed=1.076759291s
2026-04-24T13:40:07.002782Z WARN sqlx::query: summary="SELECT DISTINCT app_name, window_name, …" db.statement="\n\nSELECT\n DISTINCT app_name,\n window_name,\n browser_url\nFROM\n frames\nWHERE\n timestamp > datetime('now', '-30 seconds')\n AND app_name IS NOT NULL\n AND window_name IS NOT NULL\n" rows_affected=0 rows_returned=195 elapsed=1.250257875s
2026-04-24T13:41:11.559513Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=92 elapsed=10.151735042s
2026-04-24T13:41:11.559741Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 92 eligible frames
2026-04-24T13:41:14.043784Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 2.3MB → 0.1MB (32.3x), 37 JPEGs deleted
2026-04-24T13:41:21.303349Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 53 frames, 8.7MB → 3.1MB (2.8x), 53 JPEGs deleted
2026-04-24T13:41:40.887689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7539785768983157715, trigger=click)
2026-04-24T13:42:34.136767Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3059269999432289894, trigger=click)
2026-04-24T13:42:45.942807Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3777488472456223409, trigger=click)
2026-04-24T13:43:01.921357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1871207218552190145, trigger=click)
2026-04-24T13:44:01.878037Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8495661271621520850, trigger=click)
2026-04-24T13:46:28.021146Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=40 elapsed=6.713739708s
2026-04-24T13:46:28.021348Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames
2026-04-24T13:46:29.141090Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 1.1MB → 0.1MB (17.9x), 18 JPEGs deleted
2026-04-24T13:46:31.601195Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.7MB → 2.9MB (1.6x), 20 JPEGs deleted
2026-04-24T13:51:31.692283Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames
2026-04-24T13:51:32.570330Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.0MB → 0.2MB (4.8x), 13 JPEGs deleted
2026-04-24T13:51:33.760542Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.9MB → 1.0MB (1.9x), 10 JPEGs deleted
2026-04-24T13:55:31.626192Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2977185087332333124, trigger=click)
2026-04-24T13:56:33.924925Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 105 eligible frames
2026-04-24T13:56:37.179833Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 55 frames, 5.1MB → 1.4MB (3.6x), 55 JPEGs deleted
2026-04-24T13:56:40.328768Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 48 frames, 7.6MB → 1.3MB (6.0x), 48 JPEGs deleted
2026-04-24T14:00:47.136298Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Firefox, signals=2)
2026-04-24T14:00:47.857419Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2938651853865790585, trigger=click)
2026-04-24T14:00:52.374476Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Firefox, signals=2, browser=true)
2026-04-24T14:00:52.378086Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=12, app=Firefox, title=None)
2026-04-24T14:01:40.650767Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 62 eligible frames
2026-04-24T14:01:42.431196Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 1.9MB → 0.1MB (32.0x), 30 JPEGs deleted
2026-04-24T14:01:44.259623Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 4.8MB → 0.2MB (23.8x), 30 JPEGs deleted
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
screenpipe"...
|
NULL
|
|
78035
|
1972
|
18
|
2026-04-24T10:54:35.746647+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-24/1777 /Users/lukas/.screenpipe/data/data/2026-04-24/1777028075746_m2.jpg...
|
iTerm2
|
screenpipe"
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Last login: Fri Apr 24 12:59:23 on ttys007
Poetry Last login: Fri Apr 24 12:59:23 on ttys007
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-start
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-04-24T13:24:21.985779Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store
checking permissions...
screen recording: ok
accessibility: ok
2026-04-24T13:24:22.124681Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-04-24T13:24:23.055922Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-04-24T13:24:23.059528Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-04-24T13:24:23.061097Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-04-24T13:24:23.132247Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-04-24T13:24:23.132303Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-04-24T13:24:23.132592Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-04-24T13:24:23.132606Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-04-24T13:24:23.132938Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-04-24T13:24:23.132999Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-04-24T13:24:23.132808Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-04-24T13:24:23.180699Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-04-24T13:24:23.180978Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-04-24T13:24:23.181420Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-04-24T13:24:23.181613Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-04-24T13:24:23.181801Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-04-24T13:24:23.182313Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary
2026-04-24T13:24:23.182341Z INFO screenpipe_core::pipes: loaded 6 pipes from "/Users/lukas/.screenpipe/pipes"
_
__________________ ___ ____ ____ (_____ ___
/ ___/ ___/ ___/ _ \/ _ \/ __ \ / __ \/ / __ \/ _ \
(__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/
/____/\___/_/ \___/\___/_/ /_/ / .___/_/ .___/\___/
/_/ /_/
power AI by everything you've seen, said or heard
open source | runs locally | developer friendly
┌────────────────────────┬────────────────────────────────────┐
│ setting │ value │
├────────────────────────┼────────────────────────────────────┤
│ audio chunk duration │ 30 seconds │
│ port │ 3030 │
│ audio disabled │ true │
│ vision disabled │ false │
│ pause on DRM content │ false │
│ audio engine │ Parakeet │
│ vad engine │ Silero │
│ data directory │ /Users/lukas/.screenpipe │
│ debug mode │ false │
│ telemetry │ true │
│ use pii removal │ true │
│ use all monitors │ true │
│ ignored windows │ ["Boosteroid"] │
│ included windows │ [] │
│ cloud sync │ disabled │
│ auto-destruct pid │ 0 │
│ deepgram key │ not set │
│ api auth │ enabled │
2026-04-24T13:24:23.186334Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)
2026-04-24T13:24:23.198489Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh
│ encrypt secrets │ disabled │
│ retention days │ 14 │
├────────────────────────┼────────────────────────────────────┤
│ languages │ │
│ │ all languages │
├────────────────────────┼────────────────────────────────────┤
│ monitors │ │
│ │ id: 1 │
│ │ id: 2 │
├────────────────────────┼────────────────────────────────────┤
│ audio devices │ │
│ │ disabled │
└────────────────────────┴────────────────────────────────────┘
you are using local processing. all your data stays on your computer.
warning: telemetry is enabled. only error-level data will be sent.
to disable, use the --disable-telemetry flag.
check latest changes here: https://github.com/screenpipe/screenpipe/releases
2026-04-24T13:24:23.216198Z INFO screenpipe: starting UI event capture
2026-04-24T13:24:23.238868Z INFO screenpipe_engine::ui_recorder: Starting UI event capture
2026-04-24T13:24:23.260906Z INFO screenpipe_engine::ui_recorder: UI recording session started: 9676eafd-ea8f-4e1a-a5f1-de7bdb79c071
2026-04-24T13:24:23.260911Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)
2026-04-24T13:24:23.260972Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-23 10:24:23.260965 UTC to 2026-04-24 10:24:23.260965 UTC)
2026-04-24T13:24:23.261685Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)
2026-04-24T13:24:23.262214Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))
2026-04-24T13:24:23.273443Z INFO screenpipe_engine::server: Server listening on [IP_ADDRESS]:3030
2026-04-24T13:24:23.304240Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030
2026-04-24T13:24:23.567248Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)
2026-04-24T13:24:23.567289Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)
2026-04-24T13:24:23.567346Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)
2026-04-24T13:24:23.850835Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-04-24T13:24:23.850880Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-04-24T13:24:23.850893Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)
2026-04-24T13:24:23.850901Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)
2026-04-24T13:24:23.850941Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-04-24T13:24:25.197204Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)
2026-04-24T13:24:25.589436Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=77673, dur=103ms
2026-04-24T13:24:25.630980Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)
2026-04-24T13:24:25.652818Z INFO sck_rs::stream_manager: invalidated persistent stream for display 1
2026-04-24T13:24:26.160345Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=77674, dur=198ms
2026-04-24T13:24:27.471087Z WARN sqlx::query: summary="SELECT f.id, f.timestamp, f.offset_index, …" db.statement="\n\nSELECT\n f.id,\n f.timestamp,\n f.offset_index,\n COALESCE(\n SUBSTR(f.full_text, 1, 200),\n SUBSTR(f.accessibility_text, 1, 200),\n (\n SELECT\n SUBSTR(ot.text, 1, 200)\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as text,\n COALESCE(\n f.app_name,\n (\n SELECT\n ot.app_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as app_name,\n COALESCE(\n f.window_name,\n (\n SELECT\n ot.window_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as window_name,\n COALESCE(vc.device_name, f.device_name) as screen_device,\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\n COALESCE(vc.fps, 0.033) as chunk_fps,\n f.browser_url,\n f.machine_id\nFROM\n frames f\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\nWHERE\n f.timestamp >= ?1\n AND f.timestamp <= ?2\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\nORDER BY\n f.timestamp DESC,\n f.offset_index DESC\nLIMIT\n 10000\n" rows_affected=0 rows_returned=2758 elapsed=4.209235542s
2026-04-24T13:24:27.488504Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 2758 frame entries, coverage from 2026-04-23 10:24:23.260965 UTC
2026-04-24T13:24:56.108522Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)
2026-04-24T13:25:34.118891Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=82 elapsed=10.985025625s
2026-04-24T13:25:34.121032Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 82 eligible frames
2026-04-24T13:25:37.475066Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 6.5MB → 0.2MB (30.1x), 39 JPEGs deleted
2026-04-24T13:25:41.147418Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 41 frames, 9.1MB → 0.3MB (26.4x), 41 JPEGs deleted
2026-04-24T13:26:53.913464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3587331842305982393, trigger=click)
2026-04-24T13:30:52.310748Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=2 elapsed=11.152255s
2026-04-24T13:30:52.313747Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
2026-04-24T13:36:00.069099Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=9 elapsed=7.594933541s
2026-04-24T13:36:00.071113Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 9 eligible frames
2026-04-24T13:36:00.617576Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 4 frames, 0.3MB → 0.1MB (3.6x), 4 JPEGs deleted
2026-04-24T13:36:01.402540Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 5 frames, 1.0MB → 0.4MB (2.4x), 5 JPEGs deleted
2026-04-24T13:40:06.828525Z WARN sqlx::query: summary="BEGIN IMMEDIATE" db.statement="" rows_affected=1 rows_returned=0 elapsed=1.076759291s
2026-04-24T13:40:07.002782Z WARN sqlx::query: summary="SELECT DISTINCT app_name, window_name, …" db.statement="\n\nSELECT\n DISTINCT app_name,\n window_name,\n browser_url\nFROM\n frames\nWHERE\n timestamp > datetime('now', '-30 seconds')\n AND app_name IS NOT NULL\n AND window_name IS NOT NULL\n" rows_affected=0 rows_returned=195 elapsed=1.250257875s
2026-04-24T13:41:11.559513Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=92 elapsed=10.151735042s
2026-04-24T13:41:11.559741Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 92 eligible frames
2026-04-24T13:41:14.043784Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 2.3MB → 0.1MB (32.3x), 37 JPEGs deleted
2026-04-24T13:41:21.303349Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 53 frames, 8.7MB → 3.1MB (2.8x), 53 JPEGs deleted
2026-04-24T13:41:40.887689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7539785768983157715, trigger=click)
2026-04-24T13:42:34.136767Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3059269999432289894, trigger=click)
2026-04-24T13:42:45.942807Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3777488472456223409, trigger=click)
2026-04-24T13:43:01.921357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1871207218552190145, trigger=click)
2026-04-24T13:44:01.878037Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8495661271621520850, trigger=click)
2026-04-24T13:46:28.021146Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=40 elapsed=6.713739708s
2026-04-24T13:46:28.021348Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames
2026-04-24T13:46:29.141090Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 1.1MB → 0.1MB (17.9x), 18 JPEGs deleted
2026-04-24T13:46:31.601195Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.7MB → 2.9MB (1.6x), 20 JPEGs deleted
2026-04-24T13:51:31.692283Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames
2026-04-24T13:51:32.570330Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.0MB → 0.2MB (4.8x), 13 JPEGs deleted
2026-04-24T13:51:33.760542Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.9MB → 1.0MB (1.9x), 10 JPEGs deleted
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
screenpipe"...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"Last login: Fri Apr 24 12:59:23 on ttys007\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-start\ndetected hardware tier: Mid\nwarning: parakeet is not supported on this platform, using whisper-tiny instead\n2026-04-24T13:24:21.985779Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store\nchecking permissions...\n screen recording: ok\n accessibility: ok\n2026-04-24T13:24:22.124681Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6\n2026-04-24T13:24:23.055922Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor\n2026-04-24T13:24:23.059528Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)\n2026-04-24T13:24:23.061097Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)\n2026-04-24T13:24:23.132247Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true\n2026-04-24T13:24:23.132303Z INFO screenpipe: meeting detector enabled — independent of transcription mode\n2026-04-24T13:24:23.132592Z INFO screenpipe: API server listening on 127.0.0.1:3030 (localhost only)\n2026-04-24T13:24:23.132606Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key\n2026-04-24T13:24:23.132938Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)\n2026-04-24T13:24:23.132999Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager\n2026-04-24T13:24:23.132808Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)\n2026-04-24T13:24:23.180699Z INFO screenpipe_core::pipes: loaded pipe: day-recap\n2026-04-24T13:24:23.180978Z INFO screenpipe_core::pipes: loaded pipe: standup-update\n2026-04-24T13:24:23.181420Z INFO screenpipe_core::pipes: loaded pipe: ai-habits\n2026-04-24T13:24:23.181613Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown\n2026-04-24T13:24:23.181801Z INFO screenpipe_core::pipes: loaded pipe: video-export\n2026-04-24T13:24:23.182313Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary\n2026-04-24T13:24:23.182341Z INFO screenpipe_core::pipes: loaded 6 pipes from \"/Users/lukas/.screenpipe/pipes\"\n\n\n\n _ \n __________________ ___ ____ ____ (_____ ___ \n / ___/ ___/ ___/ _ \\/ _ \\/ __ \\ / __ \\/ / __ \\/ _ \\\n (__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/\n/____/\\___/_/ \\___/\\___/_/ /_/ / .___/_/ .___/\\___/ \n /_/ /_/ \n\n\n\npower AI by everything you've seen, said or heard\nopen source | runs locally | developer friendly\n\n\n┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ true │\n│ vision disabled │ false │\n│ pause on DRM content │ false │\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n│ ignored windows │ [\"Boosteroid\"] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n│ api auth │ enabled │\n2026-04-24T13:24:23.186334Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n2026-04-24T13:24:23.198489Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n│ encrypt secrets │ disabled │\n│ retention days │ 14 │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ id: 1 │\n│ │ id: 2 │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ disabled │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-24T13:24:23.216198Z INFO screenpipe: starting UI event capture\n2026-04-24T13:24:23.238868Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-24T13:24:23.260906Z INFO screenpipe_engine::ui_recorder: UI recording session started: 9676eafd-ea8f-4e1a-a5f1-de7bdb79c071\n2026-04-24T13:24:23.260911Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-24T13:24:23.260972Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-23 10:24:23.260965 UTC to 2026-04-24 10:24:23.260965 UTC)\n2026-04-24T13:24:23.261685Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-24T13:24:23.262214Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-24T13:24:23.273443Z INFO screenpipe_engine::server: Server listening on 127.0.0.1:3030\n2026-04-24T13:24:23.304240Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-24T13:24:23.567248Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-24T13:24:23.567289Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-24T13:24:23.567346Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-24T13:24:23.850835Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-24T13:24:23.850880Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-24T13:24:23.850893Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)\n2026-04-24T13:24:23.850901Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)\n2026-04-24T13:24:23.850941Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-24T13:24:25.197204Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)\n2026-04-24T13:24:25.589436Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=77673, dur=103ms\n2026-04-24T13:24:25.630980Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)\n2026-04-24T13:24:25.652818Z INFO sck_rs::stream_manager: invalidated persistent stream for display 1\n2026-04-24T13:24:26.160345Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=77674, dur=198ms\n2026-04-24T13:24:27.471087Z WARN sqlx::query: summary=\"SELECT f.id, f.timestamp, f.offset_index, …\" db.statement=\"\\n\\nSELECT\\n f.id,\\n f.timestamp,\\n f.offset_index,\\n COALESCE(\\n SUBSTR(f.full_text, 1, 200),\\n SUBSTR(f.accessibility_text, 1, 200),\\n (\\n SELECT\\n SUBSTR(ot.text, 1, 200)\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as text,\\n COALESCE(\\n f.app_name,\\n (\\n SELECT\\n ot.app_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as app_name,\\n COALESCE(\\n f.window_name,\\n (\\n SELECT\\n ot.window_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as window_name,\\n COALESCE(vc.device_name, f.device_name) as screen_device,\\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\\n COALESCE(vc.fps, 0.033) as chunk_fps,\\n f.browser_url,\\n f.machine_id\\nFROM\\n frames f\\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\\nWHERE\\n f.timestamp >= ?1\\n AND f.timestamp <= ?2\\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\\nORDER BY\\n f.timestamp DESC,\\n f.offset_index DESC\\nLIMIT\\n 10000\\n\" rows_affected=0 rows_returned=2758 elapsed=4.209235542s\n2026-04-24T13:24:27.488504Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 2758 frame entries, coverage from 2026-04-23 10:24:23.260965 UTC\n2026-04-24T13:24:56.108522Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)\n2026-04-24T13:25:34.118891Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=82 elapsed=10.985025625s\n2026-04-24T13:25:34.121032Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 82 eligible frames\n2026-04-24T13:25:37.475066Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 6.5MB → 0.2MB (30.1x), 39 JPEGs deleted\n2026-04-24T13:25:41.147418Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 41 frames, 9.1MB → 0.3MB (26.4x), 41 JPEGs deleted\n2026-04-24T13:26:53.913464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3587331842305982393, trigger=click)\n2026-04-24T13:30:52.310748Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=2 elapsed=11.152255s\n2026-04-24T13:30:52.313747Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-24T13:36:00.069099Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=9 elapsed=7.594933541s\n2026-04-24T13:36:00.071113Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 9 eligible frames\n2026-04-24T13:36:00.617576Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 4 frames, 0.3MB → 0.1MB (3.6x), 4 JPEGs deleted\n2026-04-24T13:36:01.402540Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 5 frames, 1.0MB → 0.4MB (2.4x), 5 JPEGs deleted\n2026-04-24T13:40:06.828525Z WARN sqlx::query: summary=\"BEGIN IMMEDIATE\" db.statement=\"\" rows_affected=1 rows_returned=0 elapsed=1.076759291s\n2026-04-24T13:40:07.002782Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=195 elapsed=1.250257875s\n2026-04-24T13:41:11.559513Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=92 elapsed=10.151735042s\n2026-04-24T13:41:11.559741Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 92 eligible frames\n2026-04-24T13:41:14.043784Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 2.3MB → 0.1MB (32.3x), 37 JPEGs deleted\n2026-04-24T13:41:21.303349Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 53 frames, 8.7MB → 3.1MB (2.8x), 53 JPEGs deleted\n2026-04-24T13:41:40.887689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7539785768983157715, trigger=click)\n2026-04-24T13:42:34.136767Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3059269999432289894, trigger=click)\n2026-04-24T13:42:45.942807Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3777488472456223409, trigger=click)\n2026-04-24T13:43:01.921357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1871207218552190145, trigger=click)\n2026-04-24T13:44:01.878037Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8495661271621520850, trigger=click)\n2026-04-24T13:46:28.021146Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=40 elapsed=6.713739708s\n2026-04-24T13:46:28.021348Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames\n2026-04-24T13:46:29.141090Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 1.1MB → 0.1MB (17.9x), 18 JPEGs deleted\n2026-04-24T13:46:31.601195Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.7MB → 2.9MB (1.6x), 20 JPEGs deleted\n2026-04-24T13:51:31.692283Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames\n2026-04-24T13:51:32.570330Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.0MB → 0.2MB (4.8x), 13 JPEGs deleted\n2026-04-24T13:51:33.760542Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.9MB → 1.0MB (1.9x), 10 JPEGs deleted","depth":4,"value":"Last login: Fri Apr 24 12:59:23 on ttys007\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-start\ndetected hardware tier: Mid\nwarning: parakeet is not supported on this platform, using whisper-tiny instead\n2026-04-24T13:24:21.985779Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store\nchecking permissions...\n screen recording: ok\n accessibility: ok\n2026-04-24T13:24:22.124681Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6\n2026-04-24T13:24:23.055922Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor\n2026-04-24T13:24:23.059528Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)\n2026-04-24T13:24:23.061097Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)\n2026-04-24T13:24:23.132247Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true\n2026-04-24T13:24:23.132303Z INFO screenpipe: meeting detector enabled — independent of transcription mode\n2026-04-24T13:24:23.132592Z INFO screenpipe: API server listening on 127.0.0.1:3030 (localhost only)\n2026-04-24T13:24:23.132606Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key\n2026-04-24T13:24:23.132938Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)\n2026-04-24T13:24:23.132999Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager\n2026-04-24T13:24:23.132808Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)\n2026-04-24T13:24:23.180699Z INFO screenpipe_core::pipes: loaded pipe: day-recap\n2026-04-24T13:24:23.180978Z INFO screenpipe_core::pipes: loaded pipe: standup-update\n2026-04-24T13:24:23.181420Z INFO screenpipe_core::pipes: loaded pipe: ai-habits\n2026-04-24T13:24:23.181613Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown\n2026-04-24T13:24:23.181801Z INFO screenpipe_core::pipes: loaded pipe: video-export\n2026-04-24T13:24:23.182313Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary\n2026-04-24T13:24:23.182341Z INFO screenpipe_core::pipes: loaded 6 pipes from \"/Users/lukas/.screenpipe/pipes\"\n\n\n\n _ \n __________________ ___ ____ ____ (_____ ___ \n / ___/ ___/ ___/ _ \\/ _ \\/ __ \\ / __ \\/ / __ \\/ _ \\\n (__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/\n/____/\\___/_/ \\___/\\___/_/ /_/ / .___/_/ .___/\\___/ \n /_/ /_/ \n\n\n\npower AI by everything you've seen, said or heard\nopen source | runs locally | developer friendly\n\n\n┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ true │\n│ vision disabled │ false │\n│ pause on DRM content │ false │\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n│ ignored windows │ [\"Boosteroid\"] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n│ api auth │ enabled │\n2026-04-24T13:24:23.186334Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n2026-04-24T13:24:23.198489Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n│ encrypt secrets │ disabled │\n│ retention days │ 14 │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ id: 1 │\n│ │ id: 2 │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ disabled │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-24T13:24:23.216198Z INFO screenpipe: starting UI event capture\n2026-04-24T13:24:23.238868Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-24T13:24:23.260906Z INFO screenpipe_engine::ui_recorder: UI recording session started: 9676eafd-ea8f-4e1a-a5f1-de7bdb79c071\n2026-04-24T13:24:23.260911Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-24T13:24:23.260972Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-23 10:24:23.260965 UTC to 2026-04-24 10:24:23.260965 UTC)\n2026-04-24T13:24:23.261685Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-24T13:24:23.262214Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-24T13:24:23.273443Z INFO screenpipe_engine::server: Server listening on 127.0.0.1:3030\n2026-04-24T13:24:23.304240Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-24T13:24:23.567248Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-24T13:24:23.567289Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-24T13:24:23.567346Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-24T13:24:23.850835Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-24T13:24:23.850880Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-24T13:24:23.850893Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)\n2026-04-24T13:24:23.850901Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)\n2026-04-24T13:24:23.850941Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-24T13:24:25.197204Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)\n2026-04-24T13:24:25.589436Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=77673, dur=103ms\n2026-04-24T13:24:25.630980Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)\n2026-04-24T13:24:25.652818Z INFO sck_rs::stream_manager: invalidated persistent stream for display 1\n2026-04-24T13:24:26.160345Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=77674, dur=198ms\n2026-04-24T13:24:27.471087Z WARN sqlx::query: summary=\"SELECT f.id, f.timestamp, f.offset_index, …\" db.statement=\"\\n\\nSELECT\\n f.id,\\n f.timestamp,\\n f.offset_index,\\n COALESCE(\\n SUBSTR(f.full_text, 1, 200),\\n SUBSTR(f.accessibility_text, 1, 200),\\n (\\n SELECT\\n SUBSTR(ot.text, 1, 200)\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as text,\\n COALESCE(\\n f.app_name,\\n (\\n SELECT\\n ot.app_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as app_name,\\n COALESCE(\\n f.window_name,\\n (\\n SELECT\\n ot.window_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as window_name,\\n COALESCE(vc.device_name, f.device_name) as screen_device,\\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\\n COALESCE(vc.fps, 0.033) as chunk_fps,\\n f.browser_url,\\n f.machine_id\\nFROM\\n frames f\\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\\nWHERE\\n f.timestamp >= ?1\\n AND f.timestamp <= ?2\\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\\nORDER BY\\n f.timestamp DESC,\\n f.offset_index DESC\\nLIMIT\\n 10000\\n\" rows_affected=0 rows_returned=2758 elapsed=4.209235542s\n2026-04-24T13:24:27.488504Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 2758 frame entries, coverage from 2026-04-23 10:24:23.260965 UTC\n2026-04-24T13:24:56.108522Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)\n2026-04-24T13:25:34.118891Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=82 elapsed=10.985025625s\n2026-04-24T13:25:34.121032Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 82 eligible frames\n2026-04-24T13:25:37.475066Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 6.5MB → 0.2MB (30.1x), 39 JPEGs deleted\n2026-04-24T13:25:41.147418Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 41 frames, 9.1MB → 0.3MB (26.4x), 41 JPEGs deleted\n2026-04-24T13:26:53.913464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3587331842305982393, trigger=click)\n2026-04-24T13:30:52.310748Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=2 elapsed=11.152255s\n2026-04-24T13:30:52.313747Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-24T13:36:00.069099Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=9 elapsed=7.594933541s\n2026-04-24T13:36:00.071113Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 9 eligible frames\n2026-04-24T13:36:00.617576Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 4 frames, 0.3MB → 0.1MB (3.6x), 4 JPEGs deleted\n2026-04-24T13:36:01.402540Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 5 frames, 1.0MB → 0.4MB (2.4x), 5 JPEGs deleted\n2026-04-24T13:40:06.828525Z WARN sqlx::query: summary=\"BEGIN IMMEDIATE\" db.statement=\"\" rows_affected=1 rows_returned=0 elapsed=1.076759291s\n2026-04-24T13:40:07.002782Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=195 elapsed=1.250257875s\n2026-04-24T13:41:11.559513Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=92 elapsed=10.151735042s\n2026-04-24T13:41:11.559741Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 92 eligible frames\n2026-04-24T13:41:14.043784Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 2.3MB → 0.1MB (32.3x), 37 JPEGs deleted\n2026-04-24T13:41:21.303349Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 53 frames, 8.7MB → 3.1MB (2.8x), 53 JPEGs deleted\n2026-04-24T13:41:40.887689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7539785768983157715, trigger=click)\n2026-04-24T13:42:34.136767Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3059269999432289894, trigger=click)\n2026-04-24T13:42:45.942807Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3777488472456223409, trigger=click)\n2026-04-24T13:43:01.921357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1871207218552190145, trigger=click)\n2026-04-24T13:44:01.878037Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8495661271621520850, trigger=click)\n2026-04-24T13:46:28.021146Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=40 elapsed=6.713739708s\n2026-04-24T13:46:28.021348Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames\n2026-04-24T13:46:29.141090Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 1.1MB → 0.1MB (17.9x), 18 JPEGs deleted\n2026-04-24T13:46:31.601195Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.7MB → 2.9MB (1.6x), 20 JPEGs deleted\n2026-04-24T13:51:31.692283Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames\n2026-04-24T13:51:32.570330Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.0MB → 0.2MB (4.8x), 13 JPEGs deleted\n2026-04-24T13:51:33.760542Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.9MB → 1.0MB (1.9x), 10 JPEGs deleted","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.36469415,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.36668882,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.45910904,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.46110374,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.55352396,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5555186,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.64793885,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6499335,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7287234,"top":1.0,"width":0.01861702,"height":-0.023144484},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"screenpipe\"","depth":1,"bounds":{"left":0.49634308,"top":1.0,"width":0.027925532,"height":-0.02394259},"role_description":"text"}]...
|
3720199049038883989
|
4626837730548112755
|
click
|
accessibility
|
NULL
|
Last login: Fri Apr 24 12:59:23 on ttys007
Poetry Last login: Fri Apr 24 12:59:23 on ttys007
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-start
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-04-24T13:24:21.985779Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store
checking permissions...
screen recording: ok
accessibility: ok
2026-04-24T13:24:22.124681Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-04-24T13:24:23.055922Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-04-24T13:24:23.059528Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-04-24T13:24:23.061097Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-04-24T13:24:23.132247Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-04-24T13:24:23.132303Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-04-24T13:24:23.132592Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-04-24T13:24:23.132606Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-04-24T13:24:23.132938Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-04-24T13:24:23.132999Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-04-24T13:24:23.132808Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-04-24T13:24:23.180699Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-04-24T13:24:23.180978Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-04-24T13:24:23.181420Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-04-24T13:24:23.181613Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-04-24T13:24:23.181801Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-04-24T13:24:23.182313Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary
2026-04-24T13:24:23.182341Z INFO screenpipe_core::pipes: loaded 6 pipes from "/Users/lukas/.screenpipe/pipes"
_
__________________ ___ ____ ____ (_____ ___
/ ___/ ___/ ___/ _ \/ _ \/ __ \ / __ \/ / __ \/ _ \
(__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/
/____/\___/_/ \___/\___/_/ /_/ / .___/_/ .___/\___/
/_/ /_/
power AI by everything you've seen, said or heard
open source | runs locally | developer friendly
┌────────────────────────┬────────────────────────────────────┐
│ setting │ value │
├────────────────────────┼────────────────────────────────────┤
│ audio chunk duration │ 30 seconds │
│ port │ 3030 │
│ audio disabled │ true │
│ vision disabled │ false │
│ pause on DRM content │ false │
│ audio engine │ Parakeet │
│ vad engine │ Silero │
│ data directory │ /Users/lukas/.screenpipe │
│ debug mode │ false │
│ telemetry │ true │
│ use pii removal │ true │
│ use all monitors │ true │
│ ignored windows │ ["Boosteroid"] │
│ included windows │ [] │
│ cloud sync │ disabled │
│ auto-destruct pid │ 0 │
│ deepgram key │ not set │
│ api auth │ enabled │
2026-04-24T13:24:23.186334Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)
2026-04-24T13:24:23.198489Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh
│ encrypt secrets │ disabled │
│ retention days │ 14 │
├────────────────────────┼────────────────────────────────────┤
│ languages │ │
│ │ all languages │
├────────────────────────┼────────────────────────────────────┤
│ monitors │ │
│ │ id: 1 │
│ │ id: 2 │
├────────────────────────┼────────────────────────────────────┤
│ audio devices │ │
│ │ disabled │
└────────────────────────┴────────────────────────────────────┘
you are using local processing. all your data stays on your computer.
warning: telemetry is enabled. only error-level data will be sent.
to disable, use the --disable-telemetry flag.
check latest changes here: https://github.com/screenpipe/screenpipe/releases
2026-04-24T13:24:23.216198Z INFO screenpipe: starting UI event capture
2026-04-24T13:24:23.238868Z INFO screenpipe_engine::ui_recorder: Starting UI event capture
2026-04-24T13:24:23.260906Z INFO screenpipe_engine::ui_recorder: UI recording session started: 9676eafd-ea8f-4e1a-a5f1-de7bdb79c071
2026-04-24T13:24:23.260911Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)
2026-04-24T13:24:23.260972Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-23 10:24:23.260965 UTC to 2026-04-24 10:24:23.260965 UTC)
2026-04-24T13:24:23.261685Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)
2026-04-24T13:24:23.262214Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))
2026-04-24T13:24:23.273443Z INFO screenpipe_engine::server: Server listening on [IP_ADDRESS]:3030
2026-04-24T13:24:23.304240Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030
2026-04-24T13:24:23.567248Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)
2026-04-24T13:24:23.567289Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)
2026-04-24T13:24:23.567346Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)
2026-04-24T13:24:23.850835Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-04-24T13:24:23.850880Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-04-24T13:24:23.850893Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)
2026-04-24T13:24:23.850901Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)
2026-04-24T13:24:23.850941Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-04-24T13:24:25.197204Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)
2026-04-24T13:24:25.589436Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=77673, dur=103ms
2026-04-24T13:24:25.630980Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)
2026-04-24T13:24:25.652818Z INFO sck_rs::stream_manager: invalidated persistent stream for display 1
2026-04-24T13:24:26.160345Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=77674, dur=198ms
2026-04-24T13:24:27.471087Z WARN sqlx::query: summary="SELECT f.id, f.timestamp, f.offset_index, …" db.statement="\n\nSELECT\n f.id,\n f.timestamp,\n f.offset_index,\n COALESCE(\n SUBSTR(f.full_text, 1, 200),\n SUBSTR(f.accessibility_text, 1, 200),\n (\n SELECT\n SUBSTR(ot.text, 1, 200)\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as text,\n COALESCE(\n f.app_name,\n (\n SELECT\n ot.app_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as app_name,\n COALESCE(\n f.window_name,\n (\n SELECT\n ot.window_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as window_name,\n COALESCE(vc.device_name, f.device_name) as screen_device,\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\n COALESCE(vc.fps, 0.033) as chunk_fps,\n f.browser_url,\n f.machine_id\nFROM\n frames f\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\nWHERE\n f.timestamp >= ?1\n AND f.timestamp <= ?2\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\nORDER BY\n f.timestamp DESC,\n f.offset_index DESC\nLIMIT\n 10000\n" rows_affected=0 rows_returned=2758 elapsed=4.209235542s
2026-04-24T13:24:27.488504Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 2758 frame entries, coverage from 2026-04-23 10:24:23.260965 UTC
2026-04-24T13:24:56.108522Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)
2026-04-24T13:25:34.118891Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=82 elapsed=10.985025625s
2026-04-24T13:25:34.121032Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 82 eligible frames
2026-04-24T13:25:37.475066Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 6.5MB → 0.2MB (30.1x), 39 JPEGs deleted
2026-04-24T13:25:41.147418Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 41 frames, 9.1MB → 0.3MB (26.4x), 41 JPEGs deleted
2026-04-24T13:26:53.913464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3587331842305982393, trigger=click)
2026-04-24T13:30:52.310748Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=2 elapsed=11.152255s
2026-04-24T13:30:52.313747Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
2026-04-24T13:36:00.069099Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=9 elapsed=7.594933541s
2026-04-24T13:36:00.071113Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 9 eligible frames
2026-04-24T13:36:00.617576Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 4 frames, 0.3MB → 0.1MB (3.6x), 4 JPEGs deleted
2026-04-24T13:36:01.402540Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 5 frames, 1.0MB → 0.4MB (2.4x), 5 JPEGs deleted
2026-04-24T13:40:06.828525Z WARN sqlx::query: summary="BEGIN IMMEDIATE" db.statement="" rows_affected=1 rows_returned=0 elapsed=1.076759291s
2026-04-24T13:40:07.002782Z WARN sqlx::query: summary="SELECT DISTINCT app_name, window_name, …" db.statement="\n\nSELECT\n DISTINCT app_name,\n window_name,\n browser_url\nFROM\n frames\nWHERE\n timestamp > datetime('now', '-30 seconds')\n AND app_name IS NOT NULL\n AND window_name IS NOT NULL\n" rows_affected=0 rows_returned=195 elapsed=1.250257875s
2026-04-24T13:41:11.559513Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=92 elapsed=10.151735042s
2026-04-24T13:41:11.559741Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 92 eligible frames
2026-04-24T13:41:14.043784Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 2.3MB → 0.1MB (32.3x), 37 JPEGs deleted
2026-04-24T13:41:21.303349Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 53 frames, 8.7MB → 3.1MB (2.8x), 53 JPEGs deleted
2026-04-24T13:41:40.887689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7539785768983157715, trigger=click)
2026-04-24T13:42:34.136767Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3059269999432289894, trigger=click)
2026-04-24T13:42:45.942807Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3777488472456223409, trigger=click)
2026-04-24T13:43:01.921357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1871207218552190145, trigger=click)
2026-04-24T13:44:01.878037Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8495661271621520850, trigger=click)
2026-04-24T13:46:28.021146Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=40 elapsed=6.713739708s
2026-04-24T13:46:28.021348Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames
2026-04-24T13:46:29.141090Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 1.1MB → 0.1MB (17.9x), 18 JPEGs deleted
2026-04-24T13:46:31.601195Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.7MB → 2.9MB (1.6x), 20 JPEGs deleted
2026-04-24T13:51:31.692283Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames
2026-04-24T13:51:32.570330Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.0MB → 0.2MB (4.8x), 13 JPEGs deleted
2026-04-24T13:51:33.760542Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.9MB → 1.0MB (1.9x), 10 JPEGs deleted
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
screenpipe"...
|
NULL
|
|
78034
|
1971
|
20
|
2026-04-24T10:54:35.746674+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-24/1777 /Users/lukas/.screenpipe/data/data/2026-04-24/1777028075746_m1.jpg...
|
iTerm2
|
screenpipe"
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Last login: Fri Apr 24 12:59:23 on ttys007
Poetry Last login: Fri Apr 24 12:59:23 on ttys007
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-start
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-04-24T13:24:21.985779Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store
checking permissions...
screen recording: ok
accessibility: ok
2026-04-24T13:24:22.124681Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-04-24T13:24:23.055922Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-04-24T13:24:23.059528Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-04-24T13:24:23.061097Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-04-24T13:24:23.132247Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-04-24T13:24:23.132303Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-04-24T13:24:23.132592Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-04-24T13:24:23.132606Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-04-24T13:24:23.132938Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-04-24T13:24:23.132999Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-04-24T13:24:23.132808Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-04-24T13:24:23.180699Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-04-24T13:24:23.180978Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-04-24T13:24:23.181420Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-04-24T13:24:23.181613Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-04-24T13:24:23.181801Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-04-24T13:24:23.182313Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary
2026-04-24T13:24:23.182341Z INFO screenpipe_core::pipes: loaded 6 pipes from "/Users/lukas/.screenpipe/pipes"
_
__________________ ___ ____ ____ (_____ ___
/ ___/ ___/ ___/ _ \/ _ \/ __ \ / __ \/ / __ \/ _ \
(__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/
/____/\___/_/ \___/\___/_/ /_/ / .___/_/ .___/\___/
/_/ /_/
power AI by everything you've seen, said or heard
open source | runs locally | developer friendly
┌────────────────────────┬────────────────────────────────────┐
│ setting │ value │
├────────────────────────┼────────────────────────────────────┤
│ audio chunk duration │ 30 seconds │
│ port │ 3030 │
│ audio disabled │ true │
│ vision disabled │ false │
│ pause on DRM content │ false │
│ audio engine │ Parakeet │
│ vad engine │ Silero │
│ data directory │ /Users/lukas/.screenpipe │
│ debug mode │ false │
│ telemetry │ true │
│ use pii removal │ true │
│ use all monitors │ true │
│ ignored windows │ ["Boosteroid"] │
│ included windows │ [] │
│ cloud sync │ disabled │
│ auto-destruct pid │ 0 │
│ deepgram key │ not set │
│ api auth │ enabled │
2026-04-24T13:24:23.186334Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)
2026-04-24T13:24:23.198489Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh
│ encrypt secrets │ disabled │
│ retention days │ 14 │
├────────────────────────┼────────────────────────────────────┤
│ languages │ │
│ │ all languages │
├────────────────────────┼────────────────────────────────────┤
│ monitors │ │
│ │ id: 1 │
│ │ id: 2 │
├────────────────────────┼────────────────────────────────────┤
│ audio devices │ │
│ │ disabled │
└────────────────────────┴────────────────────────────────────┘
you are using local processing. all your data stays on your computer.
warning: telemetry is enabled. only error-level data will be sent.
to disable, use the --disable-telemetry flag.
check latest changes here: https://github.com/screenpipe/screenpipe/releases
2026-04-24T13:24:23.216198Z INFO screenpipe: starting UI event capture
2026-04-24T13:24:23.238868Z INFO screenpipe_engine::ui_recorder: Starting UI event capture
2026-04-24T13:24:23.260906Z INFO screenpipe_engine::ui_recorder: UI recording session started: 9676eafd-ea8f-4e1a-a5f1-de7bdb79c071
2026-04-24T13:24:23.260911Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)
2026-04-24T13:24:23.260972Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-23 10:24:23.260965 UTC to 2026-04-24 10:24:23.260965 UTC)
2026-04-24T13:24:23.261685Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)
2026-04-24T13:24:23.262214Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))
2026-04-24T13:24:23.273443Z INFO screenpipe_engine::server: Server listening on [IP_ADDRESS]:3030
2026-04-24T13:24:23.304240Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030
2026-04-24T13:24:23.567248Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)
2026-04-24T13:24:23.567289Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)
2026-04-24T13:24:23.567346Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)
2026-04-24T13:24:23.850835Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-04-24T13:24:23.850880Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-04-24T13:24:23.850893Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)
2026-04-24T13:24:23.850901Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)
2026-04-24T13:24:23.850941Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-04-24T13:24:25.197204Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)
2026-04-24T13:24:25.589436Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=77673, dur=103ms
2026-04-24T13:24:25.630980Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)
2026-04-24T13:24:25.652818Z INFO sck_rs::stream_manager: invalidated persistent stream for display 1
2026-04-24T13:24:26.160345Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=77674, dur=198ms
2026-04-24T13:24:27.471087Z WARN sqlx::query: summary="SELECT f.id, f.timestamp, f.offset_index, …" db.statement="\n\nSELECT\n f.id,\n f.timestamp,\n f.offset_index,\n COALESCE(\n SUBSTR(f.full_text, 1, 200),\n SUBSTR(f.accessibility_text, 1, 200),\n (\n SELECT\n SUBSTR(ot.text, 1, 200)\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as text,\n COALESCE(\n f.app_name,\n (\n SELECT\n ot.app_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as app_name,\n COALESCE(\n f.window_name,\n (\n SELECT\n ot.window_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as window_name,\n COALESCE(vc.device_name, f.device_name) as screen_device,\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\n COALESCE(vc.fps, 0.033) as chunk_fps,\n f.browser_url,\n f.machine_id\nFROM\n frames f\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\nWHERE\n f.timestamp >= ?1\n AND f.timestamp <= ?2\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\nORDER BY\n f.timestamp DESC,\n f.offset_index DESC\nLIMIT\n 10000\n" rows_affected=0 rows_returned=2758 elapsed=4.209235542s
2026-04-24T13:24:27.488504Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 2758 frame entries, coverage from 2026-04-23 10:24:23.260965 UTC
2026-04-24T13:24:56.108522Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)
2026-04-24T13:25:34.118891Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=82 elapsed=10.985025625s
2026-04-24T13:25:34.121032Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 82 eligible frames
2026-04-24T13:25:37.475066Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 6.5MB → 0.2MB (30.1x), 39 JPEGs deleted
2026-04-24T13:25:41.147418Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 41 frames, 9.1MB → 0.3MB (26.4x), 41 JPEGs deleted
2026-04-24T13:26:53.913464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3587331842305982393, trigger=click)
2026-04-24T13:30:52.310748Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=2 elapsed=11.152255s
2026-04-24T13:30:52.313747Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
2026-04-24T13:36:00.069099Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=9 elapsed=7.594933541s
2026-04-24T13:36:00.071113Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 9 eligible frames
2026-04-24T13:36:00.617576Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 4 frames, 0.3MB → 0.1MB (3.6x), 4 JPEGs deleted
2026-04-24T13:36:01.402540Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 5 frames, 1.0MB → 0.4MB (2.4x), 5 JPEGs deleted
2026-04-24T13:40:06.828525Z WARN sqlx::query: summary="BEGIN IMMEDIATE" db.statement="" rows_affected=1 rows_returned=0 elapsed=1.076759291s
2026-04-24T13:40:07.002782Z WARN sqlx::query: summary="SELECT DISTINCT app_name, window_name, …" db.statement="\n\nSELECT\n DISTINCT app_name,\n window_name,\n browser_url\nFROM\n frames\nWHERE\n timestamp > datetime('now', '-30 seconds')\n AND app_name IS NOT NULL\n AND window_name IS NOT NULL\n" rows_affected=0 rows_returned=195 elapsed=1.250257875s
2026-04-24T13:41:11.559513Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=92 elapsed=10.151735042s
2026-04-24T13:41:11.559741Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 92 eligible frames
2026-04-24T13:41:14.043784Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 2.3MB → 0.1MB (32.3x), 37 JPEGs deleted
2026-04-24T13:41:21.303349Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 53 frames, 8.7MB → 3.1MB (2.8x), 53 JPEGs deleted
2026-04-24T13:41:40.887689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7539785768983157715, trigger=click)
2026-04-24T13:42:34.136767Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3059269999432289894, trigger=click)
2026-04-24T13:42:45.942807Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3777488472456223409, trigger=click)
2026-04-24T13:43:01.921357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1871207218552190145, trigger=click)
2026-04-24T13:44:01.878037Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8495661271621520850, trigger=click)
2026-04-24T13:46:28.021146Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=40 elapsed=6.713739708s
2026-04-24T13:46:28.021348Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames
2026-04-24T13:46:29.141090Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 1.1MB → 0.1MB (17.9x), 18 JPEGs deleted
2026-04-24T13:46:31.601195Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.7MB → 2.9MB (1.6x), 20 JPEGs deleted
2026-04-24T13:51:31.692283Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames
2026-04-24T13:51:32.570330Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.0MB → 0.2MB (4.8x), 13 JPEGs deleted
2026-04-24T13:51:33.760542Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.9MB → 1.0MB (1.9x), 10 JPEGs deleted
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
screenpipe"...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"Last login: Fri Apr 24 12:59:23 on ttys007\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-start\ndetected hardware tier: Mid\nwarning: parakeet is not supported on this platform, using whisper-tiny instead\n2026-04-24T13:24:21.985779Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store\nchecking permissions...\n screen recording: ok\n accessibility: ok\n2026-04-24T13:24:22.124681Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6\n2026-04-24T13:24:23.055922Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor\n2026-04-24T13:24:23.059528Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)\n2026-04-24T13:24:23.061097Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)\n2026-04-24T13:24:23.132247Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true\n2026-04-24T13:24:23.132303Z INFO screenpipe: meeting detector enabled — independent of transcription mode\n2026-04-24T13:24:23.132592Z INFO screenpipe: API server listening on 127.0.0.1:3030 (localhost only)\n2026-04-24T13:24:23.132606Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key\n2026-04-24T13:24:23.132938Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)\n2026-04-24T13:24:23.132999Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager\n2026-04-24T13:24:23.132808Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)\n2026-04-24T13:24:23.180699Z INFO screenpipe_core::pipes: loaded pipe: day-recap\n2026-04-24T13:24:23.180978Z INFO screenpipe_core::pipes: loaded pipe: standup-update\n2026-04-24T13:24:23.181420Z INFO screenpipe_core::pipes: loaded pipe: ai-habits\n2026-04-24T13:24:23.181613Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown\n2026-04-24T13:24:23.181801Z INFO screenpipe_core::pipes: loaded pipe: video-export\n2026-04-24T13:24:23.182313Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary\n2026-04-24T13:24:23.182341Z INFO screenpipe_core::pipes: loaded 6 pipes from \"/Users/lukas/.screenpipe/pipes\"\n\n\n\n _ \n __________________ ___ ____ ____ (_____ ___ \n / ___/ ___/ ___/ _ \\/ _ \\/ __ \\ / __ \\/ / __ \\/ _ \\\n (__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/\n/____/\\___/_/ \\___/\\___/_/ /_/ / .___/_/ .___/\\___/ \n /_/ /_/ \n\n\n\npower AI by everything you've seen, said or heard\nopen source | runs locally | developer friendly\n\n\n┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ true │\n│ vision disabled │ false │\n│ pause on DRM content │ false │\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n│ ignored windows │ [\"Boosteroid\"] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n│ api auth │ enabled │\n2026-04-24T13:24:23.186334Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n2026-04-24T13:24:23.198489Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n│ encrypt secrets │ disabled │\n│ retention days │ 14 │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ id: 1 │\n│ │ id: 2 │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ disabled │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-24T13:24:23.216198Z INFO screenpipe: starting UI event capture\n2026-04-24T13:24:23.238868Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-24T13:24:23.260906Z INFO screenpipe_engine::ui_recorder: UI recording session started: 9676eafd-ea8f-4e1a-a5f1-de7bdb79c071\n2026-04-24T13:24:23.260911Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-24T13:24:23.260972Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-23 10:24:23.260965 UTC to 2026-04-24 10:24:23.260965 UTC)\n2026-04-24T13:24:23.261685Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-24T13:24:23.262214Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-24T13:24:23.273443Z INFO screenpipe_engine::server: Server listening on 127.0.0.1:3030\n2026-04-24T13:24:23.304240Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-24T13:24:23.567248Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-24T13:24:23.567289Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-24T13:24:23.567346Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-24T13:24:23.850835Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-24T13:24:23.850880Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-24T13:24:23.850893Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)\n2026-04-24T13:24:23.850901Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)\n2026-04-24T13:24:23.850941Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-24T13:24:25.197204Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)\n2026-04-24T13:24:25.589436Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=77673, dur=103ms\n2026-04-24T13:24:25.630980Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)\n2026-04-24T13:24:25.652818Z INFO sck_rs::stream_manager: invalidated persistent stream for display 1\n2026-04-24T13:24:26.160345Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=77674, dur=198ms\n2026-04-24T13:24:27.471087Z WARN sqlx::query: summary=\"SELECT f.id, f.timestamp, f.offset_index, …\" db.statement=\"\\n\\nSELECT\\n f.id,\\n f.timestamp,\\n f.offset_index,\\n COALESCE(\\n SUBSTR(f.full_text, 1, 200),\\n SUBSTR(f.accessibility_text, 1, 200),\\n (\\n SELECT\\n SUBSTR(ot.text, 1, 200)\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as text,\\n COALESCE(\\n f.app_name,\\n (\\n SELECT\\n ot.app_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as app_name,\\n COALESCE(\\n f.window_name,\\n (\\n SELECT\\n ot.window_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as window_name,\\n COALESCE(vc.device_name, f.device_name) as screen_device,\\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\\n COALESCE(vc.fps, 0.033) as chunk_fps,\\n f.browser_url,\\n f.machine_id\\nFROM\\n frames f\\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\\nWHERE\\n f.timestamp >= ?1\\n AND f.timestamp <= ?2\\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\\nORDER BY\\n f.timestamp DESC,\\n f.offset_index DESC\\nLIMIT\\n 10000\\n\" rows_affected=0 rows_returned=2758 elapsed=4.209235542s\n2026-04-24T13:24:27.488504Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 2758 frame entries, coverage from 2026-04-23 10:24:23.260965 UTC\n2026-04-24T13:24:56.108522Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)\n2026-04-24T13:25:34.118891Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=82 elapsed=10.985025625s\n2026-04-24T13:25:34.121032Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 82 eligible frames\n2026-04-24T13:25:37.475066Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 6.5MB → 0.2MB (30.1x), 39 JPEGs deleted\n2026-04-24T13:25:41.147418Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 41 frames, 9.1MB → 0.3MB (26.4x), 41 JPEGs deleted\n2026-04-24T13:26:53.913464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3587331842305982393, trigger=click)\n2026-04-24T13:30:52.310748Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=2 elapsed=11.152255s\n2026-04-24T13:30:52.313747Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-24T13:36:00.069099Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=9 elapsed=7.594933541s\n2026-04-24T13:36:00.071113Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 9 eligible frames\n2026-04-24T13:36:00.617576Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 4 frames, 0.3MB → 0.1MB (3.6x), 4 JPEGs deleted\n2026-04-24T13:36:01.402540Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 5 frames, 1.0MB → 0.4MB (2.4x), 5 JPEGs deleted\n2026-04-24T13:40:06.828525Z WARN sqlx::query: summary=\"BEGIN IMMEDIATE\" db.statement=\"\" rows_affected=1 rows_returned=0 elapsed=1.076759291s\n2026-04-24T13:40:07.002782Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=195 elapsed=1.250257875s\n2026-04-24T13:41:11.559513Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=92 elapsed=10.151735042s\n2026-04-24T13:41:11.559741Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 92 eligible frames\n2026-04-24T13:41:14.043784Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 2.3MB → 0.1MB (32.3x), 37 JPEGs deleted\n2026-04-24T13:41:21.303349Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 53 frames, 8.7MB → 3.1MB (2.8x), 53 JPEGs deleted\n2026-04-24T13:41:40.887689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7539785768983157715, trigger=click)\n2026-04-24T13:42:34.136767Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3059269999432289894, trigger=click)\n2026-04-24T13:42:45.942807Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3777488472456223409, trigger=click)\n2026-04-24T13:43:01.921357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1871207218552190145, trigger=click)\n2026-04-24T13:44:01.878037Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8495661271621520850, trigger=click)\n2026-04-24T13:46:28.021146Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=40 elapsed=6.713739708s\n2026-04-24T13:46:28.021348Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames\n2026-04-24T13:46:29.141090Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 1.1MB → 0.1MB (17.9x), 18 JPEGs deleted\n2026-04-24T13:46:31.601195Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.7MB → 2.9MB (1.6x), 20 JPEGs deleted\n2026-04-24T13:51:31.692283Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames\n2026-04-24T13:51:32.570330Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.0MB → 0.2MB (4.8x), 13 JPEGs deleted\n2026-04-24T13:51:33.760542Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.9MB → 1.0MB (1.9x), 10 JPEGs deleted","depth":4,"value":"Last login: Fri Apr 24 12:59:23 on ttys007\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-start\ndetected hardware tier: Mid\nwarning: parakeet is not supported on this platform, using whisper-tiny instead\n2026-04-24T13:24:21.985779Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store\nchecking permissions...\n screen recording: ok\n accessibility: ok\n2026-04-24T13:24:22.124681Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6\n2026-04-24T13:24:23.055922Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor\n2026-04-24T13:24:23.059528Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)\n2026-04-24T13:24:23.061097Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)\n2026-04-24T13:24:23.132247Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true\n2026-04-24T13:24:23.132303Z INFO screenpipe: meeting detector enabled — independent of transcription mode\n2026-04-24T13:24:23.132592Z INFO screenpipe: API server listening on 127.0.0.1:3030 (localhost only)\n2026-04-24T13:24:23.132606Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key\n2026-04-24T13:24:23.132938Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)\n2026-04-24T13:24:23.132999Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager\n2026-04-24T13:24:23.132808Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)\n2026-04-24T13:24:23.180699Z INFO screenpipe_core::pipes: loaded pipe: day-recap\n2026-04-24T13:24:23.180978Z INFO screenpipe_core::pipes: loaded pipe: standup-update\n2026-04-24T13:24:23.181420Z INFO screenpipe_core::pipes: loaded pipe: ai-habits\n2026-04-24T13:24:23.181613Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown\n2026-04-24T13:24:23.181801Z INFO screenpipe_core::pipes: loaded pipe: video-export\n2026-04-24T13:24:23.182313Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary\n2026-04-24T13:24:23.182341Z INFO screenpipe_core::pipes: loaded 6 pipes from \"/Users/lukas/.screenpipe/pipes\"\n\n\n\n _ \n __________________ ___ ____ ____ (_____ ___ \n / ___/ ___/ ___/ _ \\/ _ \\/ __ \\ / __ \\/ / __ \\/ _ \\\n (__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/\n/____/\\___/_/ \\___/\\___/_/ /_/ / .___/_/ .___/\\___/ \n /_/ /_/ \n\n\n\npower AI by everything you've seen, said or heard\nopen source | runs locally | developer friendly\n\n\n┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ true │\n│ vision disabled │ false │\n│ pause on DRM content │ false │\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n│ ignored windows │ [\"Boosteroid\"] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n│ api auth │ enabled │\n2026-04-24T13:24:23.186334Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n2026-04-24T13:24:23.198489Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n│ encrypt secrets │ disabled │\n│ retention days │ 14 │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ id: 1 │\n│ │ id: 2 │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ disabled │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-24T13:24:23.216198Z INFO screenpipe: starting UI event capture\n2026-04-24T13:24:23.238868Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-24T13:24:23.260906Z INFO screenpipe_engine::ui_recorder: UI recording session started: 9676eafd-ea8f-4e1a-a5f1-de7bdb79c071\n2026-04-24T13:24:23.260911Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-24T13:24:23.260972Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-23 10:24:23.260965 UTC to 2026-04-24 10:24:23.260965 UTC)\n2026-04-24T13:24:23.261685Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-24T13:24:23.262214Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-24T13:24:23.273443Z INFO screenpipe_engine::server: Server listening on 127.0.0.1:3030\n2026-04-24T13:24:23.304240Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-24T13:24:23.567248Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-24T13:24:23.567289Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-24T13:24:23.567346Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-24T13:24:23.850835Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-24T13:24:23.850880Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-24T13:24:23.850893Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)\n2026-04-24T13:24:23.850901Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)\n2026-04-24T13:24:23.850941Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-24T13:24:25.197204Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)\n2026-04-24T13:24:25.589436Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=77673, dur=103ms\n2026-04-24T13:24:25.630980Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)\n2026-04-24T13:24:25.652818Z INFO sck_rs::stream_manager: invalidated persistent stream for display 1\n2026-04-24T13:24:26.160345Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=77674, dur=198ms\n2026-04-24T13:24:27.471087Z WARN sqlx::query: summary=\"SELECT f.id, f.timestamp, f.offset_index, …\" db.statement=\"\\n\\nSELECT\\n f.id,\\n f.timestamp,\\n f.offset_index,\\n COALESCE(\\n SUBSTR(f.full_text, 1, 200),\\n SUBSTR(f.accessibility_text, 1, 200),\\n (\\n SELECT\\n SUBSTR(ot.text, 1, 200)\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as text,\\n COALESCE(\\n f.app_name,\\n (\\n SELECT\\n ot.app_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as app_name,\\n COALESCE(\\n f.window_name,\\n (\\n SELECT\\n ot.window_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as window_name,\\n COALESCE(vc.device_name, f.device_name) as screen_device,\\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\\n COALESCE(vc.fps, 0.033) as chunk_fps,\\n f.browser_url,\\n f.machine_id\\nFROM\\n frames f\\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\\nWHERE\\n f.timestamp >= ?1\\n AND f.timestamp <= ?2\\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\\nORDER BY\\n f.timestamp DESC,\\n f.offset_index DESC\\nLIMIT\\n 10000\\n\" rows_affected=0 rows_returned=2758 elapsed=4.209235542s\n2026-04-24T13:24:27.488504Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 2758 frame entries, coverage from 2026-04-23 10:24:23.260965 UTC\n2026-04-24T13:24:56.108522Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)\n2026-04-24T13:25:34.118891Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=82 elapsed=10.985025625s\n2026-04-24T13:25:34.121032Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 82 eligible frames\n2026-04-24T13:25:37.475066Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 6.5MB → 0.2MB (30.1x), 39 JPEGs deleted\n2026-04-24T13:25:41.147418Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 41 frames, 9.1MB → 0.3MB (26.4x), 41 JPEGs deleted\n2026-04-24T13:26:53.913464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3587331842305982393, trigger=click)\n2026-04-24T13:30:52.310748Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=2 elapsed=11.152255s\n2026-04-24T13:30:52.313747Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-24T13:36:00.069099Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=9 elapsed=7.594933541s\n2026-04-24T13:36:00.071113Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 9 eligible frames\n2026-04-24T13:36:00.617576Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 4 frames, 0.3MB → 0.1MB (3.6x), 4 JPEGs deleted\n2026-04-24T13:36:01.402540Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 5 frames, 1.0MB → 0.4MB (2.4x), 5 JPEGs deleted\n2026-04-24T13:40:06.828525Z WARN sqlx::query: summary=\"BEGIN IMMEDIATE\" db.statement=\"\" rows_affected=1 rows_returned=0 elapsed=1.076759291s\n2026-04-24T13:40:07.002782Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=195 elapsed=1.250257875s\n2026-04-24T13:41:11.559513Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=92 elapsed=10.151735042s\n2026-04-24T13:41:11.559741Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 92 eligible frames\n2026-04-24T13:41:14.043784Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 2.3MB → 0.1MB (32.3x), 37 JPEGs deleted\n2026-04-24T13:41:21.303349Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 53 frames, 8.7MB → 3.1MB (2.8x), 53 JPEGs deleted\n2026-04-24T13:41:40.887689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7539785768983157715, trigger=click)\n2026-04-24T13:42:34.136767Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3059269999432289894, trigger=click)\n2026-04-24T13:42:45.942807Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3777488472456223409, trigger=click)\n2026-04-24T13:43:01.921357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1871207218552190145, trigger=click)\n2026-04-24T13:44:01.878037Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8495661271621520850, trigger=click)\n2026-04-24T13:46:28.021146Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=40 elapsed=6.713739708s\n2026-04-24T13:46:28.021348Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames\n2026-04-24T13:46:29.141090Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 1.1MB → 0.1MB (17.9x), 18 JPEGs deleted\n2026-04-24T13:46:31.601195Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.7MB → 2.9MB (1.6x), 20 JPEGs deleted\n2026-04-24T13:51:31.692283Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames\n2026-04-24T13:51:32.570330Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.0MB → 0.2MB (4.8x), 13 JPEGs deleted\n2026-04-24T13:51:33.760542Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.9MB → 1.0MB (1.9x), 10 JPEGs deleted","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.39444444,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3986111,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.59166664,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.59583336,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.7888889,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.79305553,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"screenpipe\"","depth":1,"bounds":{"left":0.4722222,"top":0.033333335,"width":0.058333334,"height":0.017777778},"role_description":"text"}]...
|
3720199049038883989
|
4626837730548112755
|
click
|
accessibility
|
NULL
|
Last login: Fri Apr 24 12:59:23 on ttys007
Poetry Last login: Fri Apr 24 12:59:23 on ttys007
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-start
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-04-24T13:24:21.985779Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store
checking permissions...
screen recording: ok
accessibility: ok
2026-04-24T13:24:22.124681Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-04-24T13:24:23.055922Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-04-24T13:24:23.059528Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-04-24T13:24:23.061097Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-04-24T13:24:23.132247Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-04-24T13:24:23.132303Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-04-24T13:24:23.132592Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-04-24T13:24:23.132606Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-04-24T13:24:23.132938Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-04-24T13:24:23.132999Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-04-24T13:24:23.132808Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-04-24T13:24:23.180699Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-04-24T13:24:23.180978Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-04-24T13:24:23.181420Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-04-24T13:24:23.181613Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-04-24T13:24:23.181801Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-04-24T13:24:23.182313Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary
2026-04-24T13:24:23.182341Z INFO screenpipe_core::pipes: loaded 6 pipes from "/Users/lukas/.screenpipe/pipes"
_
__________________ ___ ____ ____ (_____ ___
/ ___/ ___/ ___/ _ \/ _ \/ __ \ / __ \/ / __ \/ _ \
(__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/
/____/\___/_/ \___/\___/_/ /_/ / .___/_/ .___/\___/
/_/ /_/
power AI by everything you've seen, said or heard
open source | runs locally | developer friendly
┌────────────────────────┬────────────────────────────────────┐
│ setting │ value │
├────────────────────────┼────────────────────────────────────┤
│ audio chunk duration │ 30 seconds │
│ port │ 3030 │
│ audio disabled │ true │
│ vision disabled │ false │
│ pause on DRM content │ false │
│ audio engine │ Parakeet │
│ vad engine │ Silero │
│ data directory │ /Users/lukas/.screenpipe │
│ debug mode │ false │
│ telemetry │ true │
│ use pii removal │ true │
│ use all monitors │ true │
│ ignored windows │ ["Boosteroid"] │
│ included windows │ [] │
│ cloud sync │ disabled │
│ auto-destruct pid │ 0 │
│ deepgram key │ not set │
│ api auth │ enabled │
2026-04-24T13:24:23.186334Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)
2026-04-24T13:24:23.198489Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh
│ encrypt secrets │ disabled │
│ retention days │ 14 │
├────────────────────────┼────────────────────────────────────┤
│ languages │ │
│ │ all languages │
├────────────────────────┼────────────────────────────────────┤
│ monitors │ │
│ │ id: 1 │
│ │ id: 2 │
├────────────────────────┼────────────────────────────────────┤
│ audio devices │ │
│ │ disabled │
└────────────────────────┴────────────────────────────────────┘
you are using local processing. all your data stays on your computer.
warning: telemetry is enabled. only error-level data will be sent.
to disable, use the --disable-telemetry flag.
check latest changes here: https://github.com/screenpipe/screenpipe/releases
2026-04-24T13:24:23.216198Z INFO screenpipe: starting UI event capture
2026-04-24T13:24:23.238868Z INFO screenpipe_engine::ui_recorder: Starting UI event capture
2026-04-24T13:24:23.260906Z INFO screenpipe_engine::ui_recorder: UI recording session started: 9676eafd-ea8f-4e1a-a5f1-de7bdb79c071
2026-04-24T13:24:23.260911Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)
2026-04-24T13:24:23.260972Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-23 10:24:23.260965 UTC to 2026-04-24 10:24:23.260965 UTC)
2026-04-24T13:24:23.261685Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)
2026-04-24T13:24:23.262214Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))
2026-04-24T13:24:23.273443Z INFO screenpipe_engine::server: Server listening on [IP_ADDRESS]:3030
2026-04-24T13:24:23.304240Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030
2026-04-24T13:24:23.567248Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)
2026-04-24T13:24:23.567289Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)
2026-04-24T13:24:23.567346Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)
2026-04-24T13:24:23.850835Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-04-24T13:24:23.850880Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-04-24T13:24:23.850893Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)
2026-04-24T13:24:23.850901Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)
2026-04-24T13:24:23.850941Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-04-24T13:24:25.197204Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)
2026-04-24T13:24:25.589436Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=77673, dur=103ms
2026-04-24T13:24:25.630980Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)
2026-04-24T13:24:25.652818Z INFO sck_rs::stream_manager: invalidated persistent stream for display 1
2026-04-24T13:24:26.160345Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=77674, dur=198ms
2026-04-24T13:24:27.471087Z WARN sqlx::query: summary="SELECT f.id, f.timestamp, f.offset_index, …" db.statement="\n\nSELECT\n f.id,\n f.timestamp,\n f.offset_index,\n COALESCE(\n SUBSTR(f.full_text, 1, 200),\n SUBSTR(f.accessibility_text, 1, 200),\n (\n SELECT\n SUBSTR(ot.text, 1, 200)\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as text,\n COALESCE(\n f.app_name,\n (\n SELECT\n ot.app_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as app_name,\n COALESCE(\n f.window_name,\n (\n SELECT\n ot.window_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as window_name,\n COALESCE(vc.device_name, f.device_name) as screen_device,\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\n COALESCE(vc.fps, 0.033) as chunk_fps,\n f.browser_url,\n f.machine_id\nFROM\n frames f\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\nWHERE\n f.timestamp >= ?1\n AND f.timestamp <= ?2\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\nORDER BY\n f.timestamp DESC,\n f.offset_index DESC\nLIMIT\n 10000\n" rows_affected=0 rows_returned=2758 elapsed=4.209235542s
2026-04-24T13:24:27.488504Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 2758 frame entries, coverage from 2026-04-23 10:24:23.260965 UTC
2026-04-24T13:24:56.108522Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)
2026-04-24T13:25:34.118891Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=82 elapsed=10.985025625s
2026-04-24T13:25:34.121032Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 82 eligible frames
2026-04-24T13:25:37.475066Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 6.5MB → 0.2MB (30.1x), 39 JPEGs deleted
2026-04-24T13:25:41.147418Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 41 frames, 9.1MB → 0.3MB (26.4x), 41 JPEGs deleted
2026-04-24T13:26:53.913464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3587331842305982393, trigger=click)
2026-04-24T13:30:52.310748Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=2 elapsed=11.152255s
2026-04-24T13:30:52.313747Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
2026-04-24T13:36:00.069099Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=9 elapsed=7.594933541s
2026-04-24T13:36:00.071113Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 9 eligible frames
2026-04-24T13:36:00.617576Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 4 frames, 0.3MB → 0.1MB (3.6x), 4 JPEGs deleted
2026-04-24T13:36:01.402540Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 5 frames, 1.0MB → 0.4MB (2.4x), 5 JPEGs deleted
2026-04-24T13:40:06.828525Z WARN sqlx::query: summary="BEGIN IMMEDIATE" db.statement="" rows_affected=1 rows_returned=0 elapsed=1.076759291s
2026-04-24T13:40:07.002782Z WARN sqlx::query: summary="SELECT DISTINCT app_name, window_name, …" db.statement="\n\nSELECT\n DISTINCT app_name,\n window_name,\n browser_url\nFROM\n frames\nWHERE\n timestamp > datetime('now', '-30 seconds')\n AND app_name IS NOT NULL\n AND window_name IS NOT NULL\n" rows_affected=0 rows_returned=195 elapsed=1.250257875s
2026-04-24T13:41:11.559513Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=92 elapsed=10.151735042s
2026-04-24T13:41:11.559741Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 92 eligible frames
2026-04-24T13:41:14.043784Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 2.3MB → 0.1MB (32.3x), 37 JPEGs deleted
2026-04-24T13:41:21.303349Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 53 frames, 8.7MB → 3.1MB (2.8x), 53 JPEGs deleted
2026-04-24T13:41:40.887689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7539785768983157715, trigger=click)
2026-04-24T13:42:34.136767Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3059269999432289894, trigger=click)
2026-04-24T13:42:45.942807Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3777488472456223409, trigger=click)
2026-04-24T13:43:01.921357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1871207218552190145, trigger=click)
2026-04-24T13:44:01.878037Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8495661271621520850, trigger=click)
2026-04-24T13:46:28.021146Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=40 elapsed=6.713739708s
2026-04-24T13:46:28.021348Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames
2026-04-24T13:46:29.141090Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 1.1MB → 0.1MB (17.9x), 18 JPEGs deleted
2026-04-24T13:46:31.601195Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.7MB → 2.9MB (1.6x), 20 JPEGs deleted
2026-04-24T13:51:31.692283Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames
2026-04-24T13:51:32.570330Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.0MB → 0.2MB (4.8x), 13 JPEGs deleted
2026-04-24T13:51:33.760542Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.9MB → 1.0MB (1.9x), 10 JPEGs deleted
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
screenpipe"...
|
NULL
|
|
78021
|
1972
|
12
|
2026-04-24T10:53:29.940659+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-24/1777 /Users/lukas/.screenpipe/data/data/2026-04-24/1777028009940_m2.jpg...
|
iTerm2
|
screenpipe"
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Last login: Fri Apr 24 12:59:23 on ttys007
Poetry Last login: Fri Apr 24 12:59:23 on ttys007
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-start
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-04-24T13:24:21.985779Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store
checking permissions...
screen recording: ok
accessibility: ok
2026-04-24T13:24:22.124681Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-04-24T13:24:23.055922Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-04-24T13:24:23.059528Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-04-24T13:24:23.061097Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-04-24T13:24:23.132247Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-04-24T13:24:23.132303Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-04-24T13:24:23.132592Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-04-24T13:24:23.132606Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-04-24T13:24:23.132938Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-04-24T13:24:23.132999Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-04-24T13:24:23.132808Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-04-24T13:24:23.180699Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-04-24T13:24:23.180978Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-04-24T13:24:23.181420Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-04-24T13:24:23.181613Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-04-24T13:24:23.181801Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-04-24T13:24:23.182313Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary
2026-04-24T13:24:23.182341Z INFO screenpipe_core::pipes: loaded 6 pipes from "/Users/lukas/.screenpipe/pipes"
_
__________________ ___ ____ ____ (_____ ___
/ ___/ ___/ ___/ _ \/ _ \/ __ \ / __ \/ / __ \/ _ \
(__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/
/____/\___/_/ \___/\___/_/ /_/ / .___/_/ .___/\___/
/_/ /_/
power AI by everything you've seen, said or heard
open source | runs locally | developer friendly
┌────────────────────────┬────────────────────────────────────┐
│ setting │ value │
├────────────────────────┼────────────────────────────────────┤
│ audio chunk duration │ 30 seconds │
│ port │ 3030 │
│ audio disabled │ true │
│ vision disabled │ false │
│ pause on DRM content │ false │
│ audio engine │ Parakeet │
│ vad engine │ Silero │
│ data directory │ /Users/lukas/.screenpipe │
│ debug mode │ false │
│ telemetry │ true │
│ use pii removal │ true │
│ use all monitors │ true │
│ ignored windows │ ["Boosteroid"] │
│ included windows │ [] │
│ cloud sync │ disabled │
│ auto-destruct pid │ 0 │
│ deepgram key │ not set │
│ api auth │ enabled │
2026-04-24T13:24:23.186334Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)
2026-04-24T13:24:23.198489Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh
│ encrypt secrets │ disabled │
│ retention days │ 14 │
├────────────────────────┼────────────────────────────────────┤
│ languages │ │
│ │ all languages │
├────────────────────────┼────────────────────────────────────┤
│ monitors │ │
│ │ id: 1 │
│ │ id: 2 │
├────────────────────────┼────────────────────────────────────┤
│ audio devices │ │
│ │ disabled │
└────────────────────────┴────────────────────────────────────┘
you are using local processing. all your data stays on your computer.
warning: telemetry is enabled. only error-level data will be sent.
to disable, use the --disable-telemetry flag.
check latest changes here: https://github.com/screenpipe/screenpipe/releases
2026-04-24T13:24:23.216198Z INFO screenpipe: starting UI event capture
2026-04-24T13:24:23.238868Z INFO screenpipe_engine::ui_recorder: Starting UI event capture
2026-04-24T13:24:23.260906Z INFO screenpipe_engine::ui_recorder: UI recording session started: 9676eafd-ea8f-4e1a-a5f1-de7bdb79c071
2026-04-24T13:24:23.260911Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)
2026-04-24T13:24:23.260972Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-23 10:24:23.260965 UTC to 2026-04-24 10:24:23.260965 UTC)
2026-04-24T13:24:23.261685Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)
2026-04-24T13:24:23.262214Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))
2026-04-24T13:24:23.273443Z INFO screenpipe_engine::server: Server listening on [IP_ADDRESS]:3030
2026-04-24T13:24:23.304240Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030
2026-04-24T13:24:23.567248Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)
2026-04-24T13:24:23.567289Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)
2026-04-24T13:24:23.567346Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)
2026-04-24T13:24:23.850835Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-04-24T13:24:23.850880Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-04-24T13:24:23.850893Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)
2026-04-24T13:24:23.850901Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)
2026-04-24T13:24:23.850941Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-04-24T13:24:25.197204Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)
2026-04-24T13:24:25.589436Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=77673, dur=103ms
2026-04-24T13:24:25.630980Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)
2026-04-24T13:24:25.652818Z INFO sck_rs::stream_manager: invalidated persistent stream for display 1
2026-04-24T13:24:26.160345Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=77674, dur=198ms
2026-04-24T13:24:27.471087Z WARN sqlx::query: summary="SELECT f.id, f.timestamp, f.offset_index, …" db.statement="\n\nSELECT\n f.id,\n f.timestamp,\n f.offset_index,\n COALESCE(\n SUBSTR(f.full_text, 1, 200),\n SUBSTR(f.accessibility_text, 1, 200),\n (\n SELECT\n SUBSTR(ot.text, 1, 200)\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as text,\n COALESCE(\n f.app_name,\n (\n SELECT\n ot.app_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as app_name,\n COALESCE(\n f.window_name,\n (\n SELECT\n ot.window_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as window_name,\n COALESCE(vc.device_name, f.device_name) as screen_device,\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\n COALESCE(vc.fps, 0.033) as chunk_fps,\n f.browser_url,\n f.machine_id\nFROM\n frames f\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\nWHERE\n f.timestamp >= ?1\n AND f.timestamp <= ?2\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\nORDER BY\n f.timestamp DESC,\n f.offset_index DESC\nLIMIT\n 10000\n" rows_affected=0 rows_returned=2758 elapsed=4.209235542s
2026-04-24T13:24:27.488504Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 2758 frame entries, coverage from 2026-04-23 10:24:23.260965 UTC
2026-04-24T13:24:56.108522Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)
2026-04-24T13:25:34.118891Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=82 elapsed=10.985025625s
2026-04-24T13:25:34.121032Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 82 eligible frames
2026-04-24T13:25:37.475066Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 6.5MB → 0.2MB (30.1x), 39 JPEGs deleted
2026-04-24T13:25:41.147418Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 41 frames, 9.1MB → 0.3MB (26.4x), 41 JPEGs deleted
2026-04-24T13:26:53.913464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3587331842305982393, trigger=click)
2026-04-24T13:30:52.310748Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=2 elapsed=11.152255s
2026-04-24T13:30:52.313747Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
2026-04-24T13:36:00.069099Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=9 elapsed=7.594933541s
2026-04-24T13:36:00.071113Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 9 eligible frames
2026-04-24T13:36:00.617576Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 4 frames, 0.3MB → 0.1MB (3.6x), 4 JPEGs deleted
2026-04-24T13:36:01.402540Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 5 frames, 1.0MB → 0.4MB (2.4x), 5 JPEGs deleted
2026-04-24T13:40:06.828525Z WARN sqlx::query: summary="BEGIN IMMEDIATE" db.statement="" rows_affected=1 rows_returned=0 elapsed=1.076759291s
2026-04-24T13:40:07.002782Z WARN sqlx::query: summary="SELECT DISTINCT app_name, window_name, …" db.statement="\n\nSELECT\n DISTINCT app_name,\n window_name,\n browser_url\nFROM\n frames\nWHERE\n timestamp > datetime('now', '-30 seconds')\n AND app_name IS NOT NULL\n AND window_name IS NOT NULL\n" rows_affected=0 rows_returned=195 elapsed=1.250257875s
2026-04-24T13:41:11.559513Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=92 elapsed=10.151735042s
2026-04-24T13:41:11.559741Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 92 eligible frames
2026-04-24T13:41:14.043784Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 2.3MB → 0.1MB (32.3x), 37 JPEGs deleted
2026-04-24T13:41:21.303349Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 53 frames, 8.7MB → 3.1MB (2.8x), 53 JPEGs deleted
2026-04-24T13:41:40.887689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7539785768983157715, trigger=click)
2026-04-24T13:42:34.136767Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3059269999432289894, trigger=click)
2026-04-24T13:42:45.942807Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3777488472456223409, trigger=click)
2026-04-24T13:43:01.921357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1871207218552190145, trigger=click)
2026-04-24T13:44:01.878037Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8495661271621520850, trigger=click)
2026-04-24T13:46:28.021146Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=40 elapsed=6.713739708s
2026-04-24T13:46:28.021348Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames
2026-04-24T13:46:29.141090Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 1.1MB → 0.1MB (17.9x), 18 JPEGs deleted
2026-04-24T13:46:31.601195Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.7MB → 2.9MB (1.6x), 20 JPEGs deleted
2026-04-24T13:51:31.692283Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames
2026-04-24T13:51:32.570330Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.0MB → 0.2MB (4.8x), 13 JPEGs deleted
2026-04-24T13:51:33.760542Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.9MB → 1.0MB (1.9x), 10 JPEGs deleted
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
screenpipe"...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"Last login: Fri Apr 24 12:59:23 on ttys007\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-start\ndetected hardware tier: Mid\nwarning: parakeet is not supported on this platform, using whisper-tiny instead\n2026-04-24T13:24:21.985779Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store\nchecking permissions...\n screen recording: ok\n accessibility: ok\n2026-04-24T13:24:22.124681Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6\n2026-04-24T13:24:23.055922Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor\n2026-04-24T13:24:23.059528Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)\n2026-04-24T13:24:23.061097Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)\n2026-04-24T13:24:23.132247Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true\n2026-04-24T13:24:23.132303Z INFO screenpipe: meeting detector enabled — independent of transcription mode\n2026-04-24T13:24:23.132592Z INFO screenpipe: API server listening on 127.0.0.1:3030 (localhost only)\n2026-04-24T13:24:23.132606Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key\n2026-04-24T13:24:23.132938Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)\n2026-04-24T13:24:23.132999Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager\n2026-04-24T13:24:23.132808Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)\n2026-04-24T13:24:23.180699Z INFO screenpipe_core::pipes: loaded pipe: day-recap\n2026-04-24T13:24:23.180978Z INFO screenpipe_core::pipes: loaded pipe: standup-update\n2026-04-24T13:24:23.181420Z INFO screenpipe_core::pipes: loaded pipe: ai-habits\n2026-04-24T13:24:23.181613Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown\n2026-04-24T13:24:23.181801Z INFO screenpipe_core::pipes: loaded pipe: video-export\n2026-04-24T13:24:23.182313Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary\n2026-04-24T13:24:23.182341Z INFO screenpipe_core::pipes: loaded 6 pipes from \"/Users/lukas/.screenpipe/pipes\"\n\n\n\n _ \n __________________ ___ ____ ____ (_____ ___ \n / ___/ ___/ ___/ _ \\/ _ \\/ __ \\ / __ \\/ / __ \\/ _ \\\n (__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/\n/____/\\___/_/ \\___/\\___/_/ /_/ / .___/_/ .___/\\___/ \n /_/ /_/ \n\n\n\npower AI by everything you've seen, said or heard\nopen source | runs locally | developer friendly\n\n\n┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ true │\n│ vision disabled │ false │\n│ pause on DRM content │ false │\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n│ ignored windows │ [\"Boosteroid\"] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n│ api auth │ enabled │\n2026-04-24T13:24:23.186334Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n2026-04-24T13:24:23.198489Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n│ encrypt secrets │ disabled │\n│ retention days │ 14 │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ id: 1 │\n│ │ id: 2 │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ disabled │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-24T13:24:23.216198Z INFO screenpipe: starting UI event capture\n2026-04-24T13:24:23.238868Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-24T13:24:23.260906Z INFO screenpipe_engine::ui_recorder: UI recording session started: 9676eafd-ea8f-4e1a-a5f1-de7bdb79c071\n2026-04-24T13:24:23.260911Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-24T13:24:23.260972Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-23 10:24:23.260965 UTC to 2026-04-24 10:24:23.260965 UTC)\n2026-04-24T13:24:23.261685Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-24T13:24:23.262214Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-24T13:24:23.273443Z INFO screenpipe_engine::server: Server listening on 127.0.0.1:3030\n2026-04-24T13:24:23.304240Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-24T13:24:23.567248Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-24T13:24:23.567289Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-24T13:24:23.567346Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-24T13:24:23.850835Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-24T13:24:23.850880Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-24T13:24:23.850893Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)\n2026-04-24T13:24:23.850901Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)\n2026-04-24T13:24:23.850941Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-24T13:24:25.197204Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)\n2026-04-24T13:24:25.589436Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=77673, dur=103ms\n2026-04-24T13:24:25.630980Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)\n2026-04-24T13:24:25.652818Z INFO sck_rs::stream_manager: invalidated persistent stream for display 1\n2026-04-24T13:24:26.160345Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=77674, dur=198ms\n2026-04-24T13:24:27.471087Z WARN sqlx::query: summary=\"SELECT f.id, f.timestamp, f.offset_index, …\" db.statement=\"\\n\\nSELECT\\n f.id,\\n f.timestamp,\\n f.offset_index,\\n COALESCE(\\n SUBSTR(f.full_text, 1, 200),\\n SUBSTR(f.accessibility_text, 1, 200),\\n (\\n SELECT\\n SUBSTR(ot.text, 1, 200)\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as text,\\n COALESCE(\\n f.app_name,\\n (\\n SELECT\\n ot.app_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as app_name,\\n COALESCE(\\n f.window_name,\\n (\\n SELECT\\n ot.window_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as window_name,\\n COALESCE(vc.device_name, f.device_name) as screen_device,\\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\\n COALESCE(vc.fps, 0.033) as chunk_fps,\\n f.browser_url,\\n f.machine_id\\nFROM\\n frames f\\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\\nWHERE\\n f.timestamp >= ?1\\n AND f.timestamp <= ?2\\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\\nORDER BY\\n f.timestamp DESC,\\n f.offset_index DESC\\nLIMIT\\n 10000\\n\" rows_affected=0 rows_returned=2758 elapsed=4.209235542s\n2026-04-24T13:24:27.488504Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 2758 frame entries, coverage from 2026-04-23 10:24:23.260965 UTC\n2026-04-24T13:24:56.108522Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)\n2026-04-24T13:25:34.118891Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=82 elapsed=10.985025625s\n2026-04-24T13:25:34.121032Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 82 eligible frames\n2026-04-24T13:25:37.475066Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 6.5MB → 0.2MB (30.1x), 39 JPEGs deleted\n2026-04-24T13:25:41.147418Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 41 frames, 9.1MB → 0.3MB (26.4x), 41 JPEGs deleted\n2026-04-24T13:26:53.913464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3587331842305982393, trigger=click)\n2026-04-24T13:30:52.310748Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=2 elapsed=11.152255s\n2026-04-24T13:30:52.313747Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-24T13:36:00.069099Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=9 elapsed=7.594933541s\n2026-04-24T13:36:00.071113Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 9 eligible frames\n2026-04-24T13:36:00.617576Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 4 frames, 0.3MB → 0.1MB (3.6x), 4 JPEGs deleted\n2026-04-24T13:36:01.402540Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 5 frames, 1.0MB → 0.4MB (2.4x), 5 JPEGs deleted\n2026-04-24T13:40:06.828525Z WARN sqlx::query: summary=\"BEGIN IMMEDIATE\" db.statement=\"\" rows_affected=1 rows_returned=0 elapsed=1.076759291s\n2026-04-24T13:40:07.002782Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=195 elapsed=1.250257875s\n2026-04-24T13:41:11.559513Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=92 elapsed=10.151735042s\n2026-04-24T13:41:11.559741Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 92 eligible frames\n2026-04-24T13:41:14.043784Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 2.3MB → 0.1MB (32.3x), 37 JPEGs deleted\n2026-04-24T13:41:21.303349Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 53 frames, 8.7MB → 3.1MB (2.8x), 53 JPEGs deleted\n2026-04-24T13:41:40.887689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7539785768983157715, trigger=click)\n2026-04-24T13:42:34.136767Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3059269999432289894, trigger=click)\n2026-04-24T13:42:45.942807Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3777488472456223409, trigger=click)\n2026-04-24T13:43:01.921357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1871207218552190145, trigger=click)\n2026-04-24T13:44:01.878037Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8495661271621520850, trigger=click)\n2026-04-24T13:46:28.021146Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=40 elapsed=6.713739708s\n2026-04-24T13:46:28.021348Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames\n2026-04-24T13:46:29.141090Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 1.1MB → 0.1MB (17.9x), 18 JPEGs deleted\n2026-04-24T13:46:31.601195Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.7MB → 2.9MB (1.6x), 20 JPEGs deleted\n2026-04-24T13:51:31.692283Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames\n2026-04-24T13:51:32.570330Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.0MB → 0.2MB (4.8x), 13 JPEGs deleted\n2026-04-24T13:51:33.760542Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.9MB → 1.0MB (1.9x), 10 JPEGs deleted","depth":4,"value":"Last login: Fri Apr 24 12:59:23 on ttys007\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-start\ndetected hardware tier: Mid\nwarning: parakeet is not supported on this platform, using whisper-tiny instead\n2026-04-24T13:24:21.985779Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store\nchecking permissions...\n screen recording: ok\n accessibility: ok\n2026-04-24T13:24:22.124681Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6\n2026-04-24T13:24:23.055922Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor\n2026-04-24T13:24:23.059528Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)\n2026-04-24T13:24:23.061097Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)\n2026-04-24T13:24:23.132247Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true\n2026-04-24T13:24:23.132303Z INFO screenpipe: meeting detector enabled — independent of transcription mode\n2026-04-24T13:24:23.132592Z INFO screenpipe: API server listening on 127.0.0.1:3030 (localhost only)\n2026-04-24T13:24:23.132606Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key\n2026-04-24T13:24:23.132938Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)\n2026-04-24T13:24:23.132999Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager\n2026-04-24T13:24:23.132808Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)\n2026-04-24T13:24:23.180699Z INFO screenpipe_core::pipes: loaded pipe: day-recap\n2026-04-24T13:24:23.180978Z INFO screenpipe_core::pipes: loaded pipe: standup-update\n2026-04-24T13:24:23.181420Z INFO screenpipe_core::pipes: loaded pipe: ai-habits\n2026-04-24T13:24:23.181613Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown\n2026-04-24T13:24:23.181801Z INFO screenpipe_core::pipes: loaded pipe: video-export\n2026-04-24T13:24:23.182313Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary\n2026-04-24T13:24:23.182341Z INFO screenpipe_core::pipes: loaded 6 pipes from \"/Users/lukas/.screenpipe/pipes\"\n\n\n\n _ \n __________________ ___ ____ ____ (_____ ___ \n / ___/ ___/ ___/ _ \\/ _ \\/ __ \\ / __ \\/ / __ \\/ _ \\\n (__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/\n/____/\\___/_/ \\___/\\___/_/ /_/ / .___/_/ .___/\\___/ \n /_/ /_/ \n\n\n\npower AI by everything you've seen, said or heard\nopen source | runs locally | developer friendly\n\n\n┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ true │\n│ vision disabled │ false │\n│ pause on DRM content │ false │\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n│ ignored windows │ [\"Boosteroid\"] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n│ api auth │ enabled │\n2026-04-24T13:24:23.186334Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n2026-04-24T13:24:23.198489Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n│ encrypt secrets │ disabled │\n│ retention days │ 14 │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ id: 1 │\n│ │ id: 2 │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ disabled │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-24T13:24:23.216198Z INFO screenpipe: starting UI event capture\n2026-04-24T13:24:23.238868Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-24T13:24:23.260906Z INFO screenpipe_engine::ui_recorder: UI recording session started: 9676eafd-ea8f-4e1a-a5f1-de7bdb79c071\n2026-04-24T13:24:23.260911Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-24T13:24:23.260972Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-23 10:24:23.260965 UTC to 2026-04-24 10:24:23.260965 UTC)\n2026-04-24T13:24:23.261685Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-24T13:24:23.262214Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-24T13:24:23.273443Z INFO screenpipe_engine::server: Server listening on 127.0.0.1:3030\n2026-04-24T13:24:23.304240Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-24T13:24:23.567248Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-24T13:24:23.567289Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-24T13:24:23.567346Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-24T13:24:23.850835Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-24T13:24:23.850880Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-24T13:24:23.850893Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)\n2026-04-24T13:24:23.850901Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)\n2026-04-24T13:24:23.850941Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-24T13:24:25.197204Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)\n2026-04-24T13:24:25.589436Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=77673, dur=103ms\n2026-04-24T13:24:25.630980Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)\n2026-04-24T13:24:25.652818Z INFO sck_rs::stream_manager: invalidated persistent stream for display 1\n2026-04-24T13:24:26.160345Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=77674, dur=198ms\n2026-04-24T13:24:27.471087Z WARN sqlx::query: summary=\"SELECT f.id, f.timestamp, f.offset_index, …\" db.statement=\"\\n\\nSELECT\\n f.id,\\n f.timestamp,\\n f.offset_index,\\n COALESCE(\\n SUBSTR(f.full_text, 1, 200),\\n SUBSTR(f.accessibility_text, 1, 200),\\n (\\n SELECT\\n SUBSTR(ot.text, 1, 200)\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as text,\\n COALESCE(\\n f.app_name,\\n (\\n SELECT\\n ot.app_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as app_name,\\n COALESCE(\\n f.window_name,\\n (\\n SELECT\\n ot.window_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as window_name,\\n COALESCE(vc.device_name, f.device_name) as screen_device,\\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\\n COALESCE(vc.fps, 0.033) as chunk_fps,\\n f.browser_url,\\n f.machine_id\\nFROM\\n frames f\\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\\nWHERE\\n f.timestamp >= ?1\\n AND f.timestamp <= ?2\\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\\nORDER BY\\n f.timestamp DESC,\\n f.offset_index DESC\\nLIMIT\\n 10000\\n\" rows_affected=0 rows_returned=2758 elapsed=4.209235542s\n2026-04-24T13:24:27.488504Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 2758 frame entries, coverage from 2026-04-23 10:24:23.260965 UTC\n2026-04-24T13:24:56.108522Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)\n2026-04-24T13:25:34.118891Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=82 elapsed=10.985025625s\n2026-04-24T13:25:34.121032Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 82 eligible frames\n2026-04-24T13:25:37.475066Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 6.5MB → 0.2MB (30.1x), 39 JPEGs deleted\n2026-04-24T13:25:41.147418Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 41 frames, 9.1MB → 0.3MB (26.4x), 41 JPEGs deleted\n2026-04-24T13:26:53.913464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3587331842305982393, trigger=click)\n2026-04-24T13:30:52.310748Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=2 elapsed=11.152255s\n2026-04-24T13:30:52.313747Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-24T13:36:00.069099Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=9 elapsed=7.594933541s\n2026-04-24T13:36:00.071113Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 9 eligible frames\n2026-04-24T13:36:00.617576Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 4 frames, 0.3MB → 0.1MB (3.6x), 4 JPEGs deleted\n2026-04-24T13:36:01.402540Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 5 frames, 1.0MB → 0.4MB (2.4x), 5 JPEGs deleted\n2026-04-24T13:40:06.828525Z WARN sqlx::query: summary=\"BEGIN IMMEDIATE\" db.statement=\"\" rows_affected=1 rows_returned=0 elapsed=1.076759291s\n2026-04-24T13:40:07.002782Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=195 elapsed=1.250257875s\n2026-04-24T13:41:11.559513Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=92 elapsed=10.151735042s\n2026-04-24T13:41:11.559741Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 92 eligible frames\n2026-04-24T13:41:14.043784Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 2.3MB → 0.1MB (32.3x), 37 JPEGs deleted\n2026-04-24T13:41:21.303349Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 53 frames, 8.7MB → 3.1MB (2.8x), 53 JPEGs deleted\n2026-04-24T13:41:40.887689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7539785768983157715, trigger=click)\n2026-04-24T13:42:34.136767Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3059269999432289894, trigger=click)\n2026-04-24T13:42:45.942807Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3777488472456223409, trigger=click)\n2026-04-24T13:43:01.921357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1871207218552190145, trigger=click)\n2026-04-24T13:44:01.878037Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8495661271621520850, trigger=click)\n2026-04-24T13:46:28.021146Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=40 elapsed=6.713739708s\n2026-04-24T13:46:28.021348Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames\n2026-04-24T13:46:29.141090Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 1.1MB → 0.1MB (17.9x), 18 JPEGs deleted\n2026-04-24T13:46:31.601195Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.7MB → 2.9MB (1.6x), 20 JPEGs deleted\n2026-04-24T13:51:31.692283Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames\n2026-04-24T13:51:32.570330Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.0MB → 0.2MB (4.8x), 13 JPEGs deleted\n2026-04-24T13:51:33.760542Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.9MB → 1.0MB (1.9x), 10 JPEGs deleted","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.36469415,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.36668882,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.45910904,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.46110374,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.55352396,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5555186,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.64793885,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6499335,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7287234,"top":1.0,"width":0.01861702,"height":-0.023144484},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"screenpipe\"","depth":1,"bounds":{"left":0.49634308,"top":1.0,"width":0.027925532,"height":-0.02394259},"role_description":"text"}]...
|
3720199049038883989
|
4626837730548112755
|
click
|
accessibility
|
NULL
|
Last login: Fri Apr 24 12:59:23 on ttys007
Poetry Last login: Fri Apr 24 12:59:23 on ttys007
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-start
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-04-24T13:24:21.985779Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store
checking permissions...
screen recording: ok
accessibility: ok
2026-04-24T13:24:22.124681Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-04-24T13:24:23.055922Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-04-24T13:24:23.059528Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-04-24T13:24:23.061097Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-04-24T13:24:23.132247Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-04-24T13:24:23.132303Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-04-24T13:24:23.132592Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-04-24T13:24:23.132606Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-04-24T13:24:23.132938Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-04-24T13:24:23.132999Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-04-24T13:24:23.132808Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-04-24T13:24:23.180699Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-04-24T13:24:23.180978Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-04-24T13:24:23.181420Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-04-24T13:24:23.181613Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-04-24T13:24:23.181801Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-04-24T13:24:23.182313Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary
2026-04-24T13:24:23.182341Z INFO screenpipe_core::pipes: loaded 6 pipes from "/Users/lukas/.screenpipe/pipes"
_
__________________ ___ ____ ____ (_____ ___
/ ___/ ___/ ___/ _ \/ _ \/ __ \ / __ \/ / __ \/ _ \
(__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/
/____/\___/_/ \___/\___/_/ /_/ / .___/_/ .___/\___/
/_/ /_/
power AI by everything you've seen, said or heard
open source | runs locally | developer friendly
┌────────────────────────┬────────────────────────────────────┐
│ setting │ value │
├────────────────────────┼────────────────────────────────────┤
│ audio chunk duration │ 30 seconds │
│ port │ 3030 │
│ audio disabled │ true │
│ vision disabled │ false │
│ pause on DRM content │ false │
│ audio engine │ Parakeet │
│ vad engine │ Silero │
│ data directory │ /Users/lukas/.screenpipe │
│ debug mode │ false │
│ telemetry │ true │
│ use pii removal │ true │
│ use all monitors │ true │
│ ignored windows │ ["Boosteroid"] │
│ included windows │ [] │
│ cloud sync │ disabled │
│ auto-destruct pid │ 0 │
│ deepgram key │ not set │
│ api auth │ enabled │
2026-04-24T13:24:23.186334Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)
2026-04-24T13:24:23.198489Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh
│ encrypt secrets │ disabled │
│ retention days │ 14 │
├────────────────────────┼────────────────────────────────────┤
│ languages │ │
│ │ all languages │
├────────────────────────┼────────────────────────────────────┤
│ monitors │ │
│ │ id: 1 │
│ │ id: 2 │
├────────────────────────┼────────────────────────────────────┤
│ audio devices │ │
│ │ disabled │
└────────────────────────┴────────────────────────────────────┘
you are using local processing. all your data stays on your computer.
warning: telemetry is enabled. only error-level data will be sent.
to disable, use the --disable-telemetry flag.
check latest changes here: https://github.com/screenpipe/screenpipe/releases
2026-04-24T13:24:23.216198Z INFO screenpipe: starting UI event capture
2026-04-24T13:24:23.238868Z INFO screenpipe_engine::ui_recorder: Starting UI event capture
2026-04-24T13:24:23.260906Z INFO screenpipe_engine::ui_recorder: UI recording session started: 9676eafd-ea8f-4e1a-a5f1-de7bdb79c071
2026-04-24T13:24:23.260911Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)
2026-04-24T13:24:23.260972Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-23 10:24:23.260965 UTC to 2026-04-24 10:24:23.260965 UTC)
2026-04-24T13:24:23.261685Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)
2026-04-24T13:24:23.262214Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))
2026-04-24T13:24:23.273443Z INFO screenpipe_engine::server: Server listening on [IP_ADDRESS]:3030
2026-04-24T13:24:23.304240Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030
2026-04-24T13:24:23.567248Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)
2026-04-24T13:24:23.567289Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)
2026-04-24T13:24:23.567346Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)
2026-04-24T13:24:23.850835Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-04-24T13:24:23.850880Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-04-24T13:24:23.850893Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)
2026-04-24T13:24:23.850901Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)
2026-04-24T13:24:23.850941Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-04-24T13:24:25.197204Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)
2026-04-24T13:24:25.589436Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=77673, dur=103ms
2026-04-24T13:24:25.630980Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)
2026-04-24T13:24:25.652818Z INFO sck_rs::stream_manager: invalidated persistent stream for display 1
2026-04-24T13:24:26.160345Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=77674, dur=198ms
2026-04-24T13:24:27.471087Z WARN sqlx::query: summary="SELECT f.id, f.timestamp, f.offset_index, …" db.statement="\n\nSELECT\n f.id,\n f.timestamp,\n f.offset_index,\n COALESCE(\n SUBSTR(f.full_text, 1, 200),\n SUBSTR(f.accessibility_text, 1, 200),\n (\n SELECT\n SUBSTR(ot.text, 1, 200)\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as text,\n COALESCE(\n f.app_name,\n (\n SELECT\n ot.app_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as app_name,\n COALESCE(\n f.window_name,\n (\n SELECT\n ot.window_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as window_name,\n COALESCE(vc.device_name, f.device_name) as screen_device,\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\n COALESCE(vc.fps, 0.033) as chunk_fps,\n f.browser_url,\n f.machine_id\nFROM\n frames f\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\nWHERE\n f.timestamp >= ?1\n AND f.timestamp <= ?2\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\nORDER BY\n f.timestamp DESC,\n f.offset_index DESC\nLIMIT\n 10000\n" rows_affected=0 rows_returned=2758 elapsed=4.209235542s
2026-04-24T13:24:27.488504Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 2758 frame entries, coverage from 2026-04-23 10:24:23.260965 UTC
2026-04-24T13:24:56.108522Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)
2026-04-24T13:25:34.118891Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=82 elapsed=10.985025625s
2026-04-24T13:25:34.121032Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 82 eligible frames
2026-04-24T13:25:37.475066Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 6.5MB → 0.2MB (30.1x), 39 JPEGs deleted
2026-04-24T13:25:41.147418Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 41 frames, 9.1MB → 0.3MB (26.4x), 41 JPEGs deleted
2026-04-24T13:26:53.913464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3587331842305982393, trigger=click)
2026-04-24T13:30:52.310748Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=2 elapsed=11.152255s
2026-04-24T13:30:52.313747Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
2026-04-24T13:36:00.069099Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=9 elapsed=7.594933541s
2026-04-24T13:36:00.071113Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 9 eligible frames
2026-04-24T13:36:00.617576Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 4 frames, 0.3MB → 0.1MB (3.6x), 4 JPEGs deleted
2026-04-24T13:36:01.402540Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 5 frames, 1.0MB → 0.4MB (2.4x), 5 JPEGs deleted
2026-04-24T13:40:06.828525Z WARN sqlx::query: summary="BEGIN IMMEDIATE" db.statement="" rows_affected=1 rows_returned=0 elapsed=1.076759291s
2026-04-24T13:40:07.002782Z WARN sqlx::query: summary="SELECT DISTINCT app_name, window_name, …" db.statement="\n\nSELECT\n DISTINCT app_name,\n window_name,\n browser_url\nFROM\n frames\nWHERE\n timestamp > datetime('now', '-30 seconds')\n AND app_name IS NOT NULL\n AND window_name IS NOT NULL\n" rows_affected=0 rows_returned=195 elapsed=1.250257875s
2026-04-24T13:41:11.559513Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=92 elapsed=10.151735042s
2026-04-24T13:41:11.559741Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 92 eligible frames
2026-04-24T13:41:14.043784Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 2.3MB → 0.1MB (32.3x), 37 JPEGs deleted
2026-04-24T13:41:21.303349Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 53 frames, 8.7MB → 3.1MB (2.8x), 53 JPEGs deleted
2026-04-24T13:41:40.887689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7539785768983157715, trigger=click)
2026-04-24T13:42:34.136767Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3059269999432289894, trigger=click)
2026-04-24T13:42:45.942807Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3777488472456223409, trigger=click)
2026-04-24T13:43:01.921357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1871207218552190145, trigger=click)
2026-04-24T13:44:01.878037Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8495661271621520850, trigger=click)
2026-04-24T13:46:28.021146Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=40 elapsed=6.713739708s
2026-04-24T13:46:28.021348Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames
2026-04-24T13:46:29.141090Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 1.1MB → 0.1MB (17.9x), 18 JPEGs deleted
2026-04-24T13:46:31.601195Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.7MB → 2.9MB (1.6x), 20 JPEGs deleted
2026-04-24T13:51:31.692283Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames
2026-04-24T13:51:32.570330Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.0MB → 0.2MB (4.8x), 13 JPEGs deleted
2026-04-24T13:51:33.760542Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.9MB → 1.0MB (1.9x), 10 JPEGs deleted
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
screenpipe"...
|
78018
|
|
78020
|
1971
|
12
|
2026-04-24T10:53:29.862835+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-24/1777 /Users/lukas/.screenpipe/data/data/2026-04-24/1777028009862_m1.jpg...
|
iTerm2
|
screenpipe"
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Last login: Fri Apr 24 12:59:23 on ttys007
Poetry Last login: Fri Apr 24 12:59:23 on ttys007
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-start
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-04-24T13:24:21.985779Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store
checking permissions...
screen recording: ok
accessibility: ok
2026-04-24T13:24:22.124681Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-04-24T13:24:23.055922Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-04-24T13:24:23.059528Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-04-24T13:24:23.061097Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-04-24T13:24:23.132247Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-04-24T13:24:23.132303Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-04-24T13:24:23.132592Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-04-24T13:24:23.132606Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-04-24T13:24:23.132938Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-04-24T13:24:23.132999Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-04-24T13:24:23.132808Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-04-24T13:24:23.180699Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-04-24T13:24:23.180978Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-04-24T13:24:23.181420Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-04-24T13:24:23.181613Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-04-24T13:24:23.181801Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-04-24T13:24:23.182313Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary
2026-04-24T13:24:23.182341Z INFO screenpipe_core::pipes: loaded 6 pipes from "/Users/lukas/.screenpipe/pipes"
_
__________________ ___ ____ ____ (_____ ___
/ ___/ ___/ ___/ _ \/ _ \/ __ \ / __ \/ / __ \/ _ \
(__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/
/____/\___/_/ \___/\___/_/ /_/ / .___/_/ .___/\___/
/_/ /_/
power AI by everything you've seen, said or heard
open source | runs locally | developer friendly
┌────────────────────────┬────────────────────────────────────┐
│ setting │ value │
├────────────────────────┼────────────────────────────────────┤
│ audio chunk duration │ 30 seconds │
│ port │ 3030 │
│ audio disabled │ true │
│ vision disabled │ false │
│ pause on DRM content │ false │
│ audio engine │ Parakeet │
│ vad engine │ Silero │
│ data directory │ /Users/lukas/.screenpipe │
│ debug mode │ false │
│ telemetry │ true │
│ use pii removal │ true │
│ use all monitors │ true │
│ ignored windows │ ["Boosteroid"] │
│ included windows │ [] │
│ cloud sync │ disabled │
│ auto-destruct pid │ 0 │
│ deepgram key │ not set │
│ api auth │ enabled │
2026-04-24T13:24:23.186334Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)
2026-04-24T13:24:23.198489Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh
│ encrypt secrets │ disabled │
│ retention days │ 14 │
├────────────────────────┼────────────────────────────────────┤
│ languages │ │
│ │ all languages │
├────────────────────────┼────────────────────────────────────┤
│ monitors │ │
│ │ id: 1 │
│ │ id: 2 │
├────────────────────────┼────────────────────────────────────┤
│ audio devices │ │
│ │ disabled │
└────────────────────────┴────────────────────────────────────┘
you are using local processing. all your data stays on your computer.
warning: telemetry is enabled. only error-level data will be sent.
to disable, use the --disable-telemetry flag.
check latest changes here: https://github.com/screenpipe/screenpipe/releases
2026-04-24T13:24:23.216198Z INFO screenpipe: starting UI event capture
2026-04-24T13:24:23.238868Z INFO screenpipe_engine::ui_recorder: Starting UI event capture
2026-04-24T13:24:23.260906Z INFO screenpipe_engine::ui_recorder: UI recording session started: 9676eafd-ea8f-4e1a-a5f1-de7bdb79c071
2026-04-24T13:24:23.260911Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)
2026-04-24T13:24:23.260972Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-23 10:24:23.260965 UTC to 2026-04-24 10:24:23.260965 UTC)
2026-04-24T13:24:23.261685Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)
2026-04-24T13:24:23.262214Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))
2026-04-24T13:24:23.273443Z INFO screenpipe_engine::server: Server listening on [IP_ADDRESS]:3030
2026-04-24T13:24:23.304240Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030
2026-04-24T13:24:23.567248Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)
2026-04-24T13:24:23.567289Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)
2026-04-24T13:24:23.567346Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)
2026-04-24T13:24:23.850835Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-04-24T13:24:23.850880Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-04-24T13:24:23.850893Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)
2026-04-24T13:24:23.850901Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)
2026-04-24T13:24:23.850941Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-04-24T13:24:25.197204Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)
2026-04-24T13:24:25.589436Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=77673, dur=103ms
2026-04-24T13:24:25.630980Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)
2026-04-24T13:24:25.652818Z INFO sck_rs::stream_manager: invalidated persistent stream for display 1
2026-04-24T13:24:26.160345Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=77674, dur=198ms
2026-04-24T13:24:27.471087Z WARN sqlx::query: summary="SELECT f.id, f.timestamp, f.offset_index, …" db.statement="\n\nSELECT\n f.id,\n f.timestamp,\n f.offset_index,\n COALESCE(\n SUBSTR(f.full_text, 1, 200),\n SUBSTR(f.accessibility_text, 1, 200),\n (\n SELECT\n SUBSTR(ot.text, 1, 200)\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as text,\n COALESCE(\n f.app_name,\n (\n SELECT\n ot.app_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as app_name,\n COALESCE(\n f.window_name,\n (\n SELECT\n ot.window_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as window_name,\n COALESCE(vc.device_name, f.device_name) as screen_device,\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\n COALESCE(vc.fps, 0.033) as chunk_fps,\n f.browser_url,\n f.machine_id\nFROM\n frames f\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\nWHERE\n f.timestamp >= ?1\n AND f.timestamp <= ?2\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\nORDER BY\n f.timestamp DESC,\n f.offset_index DESC\nLIMIT\n 10000\n" rows_affected=0 rows_returned=2758 elapsed=4.209235542s
2026-04-24T13:24:27.488504Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 2758 frame entries, coverage from 2026-04-23 10:24:23.260965 UTC
2026-04-24T13:24:56.108522Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)
2026-04-24T13:25:34.118891Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=82 elapsed=10.985025625s
2026-04-24T13:25:34.121032Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 82 eligible frames
2026-04-24T13:25:37.475066Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 6.5MB → 0.2MB (30.1x), 39 JPEGs deleted
2026-04-24T13:25:41.147418Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 41 frames, 9.1MB → 0.3MB (26.4x), 41 JPEGs deleted
2026-04-24T13:26:53.913464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3587331842305982393, trigger=click)
2026-04-24T13:30:52.310748Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=2 elapsed=11.152255s
2026-04-24T13:30:52.313747Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
2026-04-24T13:36:00.069099Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=9 elapsed=7.594933541s
2026-04-24T13:36:00.071113Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 9 eligible frames
2026-04-24T13:36:00.617576Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 4 frames, 0.3MB → 0.1MB (3.6x), 4 JPEGs deleted
2026-04-24T13:36:01.402540Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 5 frames, 1.0MB → 0.4MB (2.4x), 5 JPEGs deleted
2026-04-24T13:40:06.828525Z WARN sqlx::query: summary="BEGIN IMMEDIATE" db.statement="" rows_affected=1 rows_returned=0 elapsed=1.076759291s
2026-04-24T13:40:07.002782Z WARN sqlx::query: summary="SELECT DISTINCT app_name, window_name, …" db.statement="\n\nSELECT\n DISTINCT app_name,\n window_name,\n browser_url\nFROM\n frames\nWHERE\n timestamp > datetime('now', '-30 seconds')\n AND app_name IS NOT NULL\n AND window_name IS NOT NULL\n" rows_affected=0 rows_returned=195 elapsed=1.250257875s
2026-04-24T13:41:11.559513Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=92 elapsed=10.151735042s
2026-04-24T13:41:11.559741Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 92 eligible frames
2026-04-24T13:41:14.043784Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 2.3MB → 0.1MB (32.3x), 37 JPEGs deleted
2026-04-24T13:41:21.303349Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 53 frames, 8.7MB → 3.1MB (2.8x), 53 JPEGs deleted
2026-04-24T13:41:40.887689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7539785768983157715, trigger=click)
2026-04-24T13:42:34.136767Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3059269999432289894, trigger=click)
2026-04-24T13:42:45.942807Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3777488472456223409, trigger=click)
2026-04-24T13:43:01.921357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1871207218552190145, trigger=click)
2026-04-24T13:44:01.878037Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8495661271621520850, trigger=click)
2026-04-24T13:46:28.021146Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=40 elapsed=6.713739708s
2026-04-24T13:46:28.021348Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames
2026-04-24T13:46:29.141090Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 1.1MB → 0.1MB (17.9x), 18 JPEGs deleted
2026-04-24T13:46:31.601195Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.7MB → 2.9MB (1.6x), 20 JPEGs deleted
2026-04-24T13:51:31.692283Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames
2026-04-24T13:51:32.570330Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.0MB → 0.2MB (4.8x), 13 JPEGs deleted
2026-04-24T13:51:33.760542Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.9MB → 1.0MB (1.9x), 10 JPEGs deleted
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
screenpipe"...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"Last login: Fri Apr 24 12:59:23 on ttys007\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-start\ndetected hardware tier: Mid\nwarning: parakeet is not supported on this platform, using whisper-tiny instead\n2026-04-24T13:24:21.985779Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store\nchecking permissions...\n screen recording: ok\n accessibility: ok\n2026-04-24T13:24:22.124681Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6\n2026-04-24T13:24:23.055922Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor\n2026-04-24T13:24:23.059528Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)\n2026-04-24T13:24:23.061097Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)\n2026-04-24T13:24:23.132247Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true\n2026-04-24T13:24:23.132303Z INFO screenpipe: meeting detector enabled — independent of transcription mode\n2026-04-24T13:24:23.132592Z INFO screenpipe: API server listening on 127.0.0.1:3030 (localhost only)\n2026-04-24T13:24:23.132606Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key\n2026-04-24T13:24:23.132938Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)\n2026-04-24T13:24:23.132999Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager\n2026-04-24T13:24:23.132808Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)\n2026-04-24T13:24:23.180699Z INFO screenpipe_core::pipes: loaded pipe: day-recap\n2026-04-24T13:24:23.180978Z INFO screenpipe_core::pipes: loaded pipe: standup-update\n2026-04-24T13:24:23.181420Z INFO screenpipe_core::pipes: loaded pipe: ai-habits\n2026-04-24T13:24:23.181613Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown\n2026-04-24T13:24:23.181801Z INFO screenpipe_core::pipes: loaded pipe: video-export\n2026-04-24T13:24:23.182313Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary\n2026-04-24T13:24:23.182341Z INFO screenpipe_core::pipes: loaded 6 pipes from \"/Users/lukas/.screenpipe/pipes\"\n\n\n\n _ \n __________________ ___ ____ ____ (_____ ___ \n / ___/ ___/ ___/ _ \\/ _ \\/ __ \\ / __ \\/ / __ \\/ _ \\\n (__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/\n/____/\\___/_/ \\___/\\___/_/ /_/ / .___/_/ .___/\\___/ \n /_/ /_/ \n\n\n\npower AI by everything you've seen, said or heard\nopen source | runs locally | developer friendly\n\n\n┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ true │\n│ vision disabled │ false │\n│ pause on DRM content │ false │\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n│ ignored windows │ [\"Boosteroid\"] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n│ api auth │ enabled │\n2026-04-24T13:24:23.186334Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n2026-04-24T13:24:23.198489Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n│ encrypt secrets │ disabled │\n│ retention days │ 14 │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ id: 1 │\n│ │ id: 2 │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ disabled │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-24T13:24:23.216198Z INFO screenpipe: starting UI event capture\n2026-04-24T13:24:23.238868Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-24T13:24:23.260906Z INFO screenpipe_engine::ui_recorder: UI recording session started: 9676eafd-ea8f-4e1a-a5f1-de7bdb79c071\n2026-04-24T13:24:23.260911Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-24T13:24:23.260972Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-23 10:24:23.260965 UTC to 2026-04-24 10:24:23.260965 UTC)\n2026-04-24T13:24:23.261685Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-24T13:24:23.262214Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-24T13:24:23.273443Z INFO screenpipe_engine::server: Server listening on 127.0.0.1:3030\n2026-04-24T13:24:23.304240Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-24T13:24:23.567248Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-24T13:24:23.567289Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-24T13:24:23.567346Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-24T13:24:23.850835Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-24T13:24:23.850880Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-24T13:24:23.850893Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)\n2026-04-24T13:24:23.850901Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)\n2026-04-24T13:24:23.850941Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-24T13:24:25.197204Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)\n2026-04-24T13:24:25.589436Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=77673, dur=103ms\n2026-04-24T13:24:25.630980Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)\n2026-04-24T13:24:25.652818Z INFO sck_rs::stream_manager: invalidated persistent stream for display 1\n2026-04-24T13:24:26.160345Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=77674, dur=198ms\n2026-04-24T13:24:27.471087Z WARN sqlx::query: summary=\"SELECT f.id, f.timestamp, f.offset_index, …\" db.statement=\"\\n\\nSELECT\\n f.id,\\n f.timestamp,\\n f.offset_index,\\n COALESCE(\\n SUBSTR(f.full_text, 1, 200),\\n SUBSTR(f.accessibility_text, 1, 200),\\n (\\n SELECT\\n SUBSTR(ot.text, 1, 200)\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as text,\\n COALESCE(\\n f.app_name,\\n (\\n SELECT\\n ot.app_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as app_name,\\n COALESCE(\\n f.window_name,\\n (\\n SELECT\\n ot.window_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as window_name,\\n COALESCE(vc.device_name, f.device_name) as screen_device,\\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\\n COALESCE(vc.fps, 0.033) as chunk_fps,\\n f.browser_url,\\n f.machine_id\\nFROM\\n frames f\\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\\nWHERE\\n f.timestamp >= ?1\\n AND f.timestamp <= ?2\\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\\nORDER BY\\n f.timestamp DESC,\\n f.offset_index DESC\\nLIMIT\\n 10000\\n\" rows_affected=0 rows_returned=2758 elapsed=4.209235542s\n2026-04-24T13:24:27.488504Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 2758 frame entries, coverage from 2026-04-23 10:24:23.260965 UTC\n2026-04-24T13:24:56.108522Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)\n2026-04-24T13:25:34.118891Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=82 elapsed=10.985025625s\n2026-04-24T13:25:34.121032Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 82 eligible frames\n2026-04-24T13:25:37.475066Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 6.5MB → 0.2MB (30.1x), 39 JPEGs deleted\n2026-04-24T13:25:41.147418Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 41 frames, 9.1MB → 0.3MB (26.4x), 41 JPEGs deleted\n2026-04-24T13:26:53.913464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3587331842305982393, trigger=click)\n2026-04-24T13:30:52.310748Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=2 elapsed=11.152255s\n2026-04-24T13:30:52.313747Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-24T13:36:00.069099Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=9 elapsed=7.594933541s\n2026-04-24T13:36:00.071113Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 9 eligible frames\n2026-04-24T13:36:00.617576Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 4 frames, 0.3MB → 0.1MB (3.6x), 4 JPEGs deleted\n2026-04-24T13:36:01.402540Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 5 frames, 1.0MB → 0.4MB (2.4x), 5 JPEGs deleted\n2026-04-24T13:40:06.828525Z WARN sqlx::query: summary=\"BEGIN IMMEDIATE\" db.statement=\"\" rows_affected=1 rows_returned=0 elapsed=1.076759291s\n2026-04-24T13:40:07.002782Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=195 elapsed=1.250257875s\n2026-04-24T13:41:11.559513Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=92 elapsed=10.151735042s\n2026-04-24T13:41:11.559741Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 92 eligible frames\n2026-04-24T13:41:14.043784Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 2.3MB → 0.1MB (32.3x), 37 JPEGs deleted\n2026-04-24T13:41:21.303349Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 53 frames, 8.7MB → 3.1MB (2.8x), 53 JPEGs deleted\n2026-04-24T13:41:40.887689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7539785768983157715, trigger=click)\n2026-04-24T13:42:34.136767Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3059269999432289894, trigger=click)\n2026-04-24T13:42:45.942807Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3777488472456223409, trigger=click)\n2026-04-24T13:43:01.921357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1871207218552190145, trigger=click)\n2026-04-24T13:44:01.878037Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8495661271621520850, trigger=click)\n2026-04-24T13:46:28.021146Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=40 elapsed=6.713739708s\n2026-04-24T13:46:28.021348Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames\n2026-04-24T13:46:29.141090Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 1.1MB → 0.1MB (17.9x), 18 JPEGs deleted\n2026-04-24T13:46:31.601195Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.7MB → 2.9MB (1.6x), 20 JPEGs deleted\n2026-04-24T13:51:31.692283Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames\n2026-04-24T13:51:32.570330Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.0MB → 0.2MB (4.8x), 13 JPEGs deleted\n2026-04-24T13:51:33.760542Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.9MB → 1.0MB (1.9x), 10 JPEGs deleted","depth":4,"value":"Last login: Fri Apr 24 12:59:23 on ttys007\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-start\ndetected hardware tier: Mid\nwarning: parakeet is not supported on this platform, using whisper-tiny instead\n2026-04-24T13:24:21.985779Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store\nchecking permissions...\n screen recording: ok\n accessibility: ok\n2026-04-24T13:24:22.124681Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6\n2026-04-24T13:24:23.055922Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor\n2026-04-24T13:24:23.059528Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)\n2026-04-24T13:24:23.061097Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)\n2026-04-24T13:24:23.132247Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true\n2026-04-24T13:24:23.132303Z INFO screenpipe: meeting detector enabled — independent of transcription mode\n2026-04-24T13:24:23.132592Z INFO screenpipe: API server listening on 127.0.0.1:3030 (localhost only)\n2026-04-24T13:24:23.132606Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key\n2026-04-24T13:24:23.132938Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)\n2026-04-24T13:24:23.132999Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager\n2026-04-24T13:24:23.132808Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)\n2026-04-24T13:24:23.180699Z INFO screenpipe_core::pipes: loaded pipe: day-recap\n2026-04-24T13:24:23.180978Z INFO screenpipe_core::pipes: loaded pipe: standup-update\n2026-04-24T13:24:23.181420Z INFO screenpipe_core::pipes: loaded pipe: ai-habits\n2026-04-24T13:24:23.181613Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown\n2026-04-24T13:24:23.181801Z INFO screenpipe_core::pipes: loaded pipe: video-export\n2026-04-24T13:24:23.182313Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary\n2026-04-24T13:24:23.182341Z INFO screenpipe_core::pipes: loaded 6 pipes from \"/Users/lukas/.screenpipe/pipes\"\n\n\n\n _ \n __________________ ___ ____ ____ (_____ ___ \n / ___/ ___/ ___/ _ \\/ _ \\/ __ \\ / __ \\/ / __ \\/ _ \\\n (__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/\n/____/\\___/_/ \\___/\\___/_/ /_/ / .___/_/ .___/\\___/ \n /_/ /_/ \n\n\n\npower AI by everything you've seen, said or heard\nopen source | runs locally | developer friendly\n\n\n┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ true │\n│ vision disabled │ false │\n│ pause on DRM content │ false │\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n│ ignored windows │ [\"Boosteroid\"] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n│ api auth │ enabled │\n2026-04-24T13:24:23.186334Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n2026-04-24T13:24:23.198489Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n│ encrypt secrets │ disabled │\n│ retention days │ 14 │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ id: 1 │\n│ │ id: 2 │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ disabled │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-24T13:24:23.216198Z INFO screenpipe: starting UI event capture\n2026-04-24T13:24:23.238868Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-24T13:24:23.260906Z INFO screenpipe_engine::ui_recorder: UI recording session started: 9676eafd-ea8f-4e1a-a5f1-de7bdb79c071\n2026-04-24T13:24:23.260911Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-24T13:24:23.260972Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-23 10:24:23.260965 UTC to 2026-04-24 10:24:23.260965 UTC)\n2026-04-24T13:24:23.261685Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-24T13:24:23.262214Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-24T13:24:23.273443Z INFO screenpipe_engine::server: Server listening on 127.0.0.1:3030\n2026-04-24T13:24:23.304240Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-24T13:24:23.567248Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-24T13:24:23.567289Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-24T13:24:23.567346Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-24T13:24:23.850835Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-24T13:24:23.850880Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-24T13:24:23.850893Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)\n2026-04-24T13:24:23.850901Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)\n2026-04-24T13:24:23.850941Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-24T13:24:25.197204Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)\n2026-04-24T13:24:25.589436Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=77673, dur=103ms\n2026-04-24T13:24:25.630980Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)\n2026-04-24T13:24:25.652818Z INFO sck_rs::stream_manager: invalidated persistent stream for display 1\n2026-04-24T13:24:26.160345Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=77674, dur=198ms\n2026-04-24T13:24:27.471087Z WARN sqlx::query: summary=\"SELECT f.id, f.timestamp, f.offset_index, …\" db.statement=\"\\n\\nSELECT\\n f.id,\\n f.timestamp,\\n f.offset_index,\\n COALESCE(\\n SUBSTR(f.full_text, 1, 200),\\n SUBSTR(f.accessibility_text, 1, 200),\\n (\\n SELECT\\n SUBSTR(ot.text, 1, 200)\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as text,\\n COALESCE(\\n f.app_name,\\n (\\n SELECT\\n ot.app_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as app_name,\\n COALESCE(\\n f.window_name,\\n (\\n SELECT\\n ot.window_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as window_name,\\n COALESCE(vc.device_name, f.device_name) as screen_device,\\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\\n COALESCE(vc.fps, 0.033) as chunk_fps,\\n f.browser_url,\\n f.machine_id\\nFROM\\n frames f\\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\\nWHERE\\n f.timestamp >= ?1\\n AND f.timestamp <= ?2\\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\\nORDER BY\\n f.timestamp DESC,\\n f.offset_index DESC\\nLIMIT\\n 10000\\n\" rows_affected=0 rows_returned=2758 elapsed=4.209235542s\n2026-04-24T13:24:27.488504Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 2758 frame entries, coverage from 2026-04-23 10:24:23.260965 UTC\n2026-04-24T13:24:56.108522Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)\n2026-04-24T13:25:34.118891Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=82 elapsed=10.985025625s\n2026-04-24T13:25:34.121032Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 82 eligible frames\n2026-04-24T13:25:37.475066Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 6.5MB → 0.2MB (30.1x), 39 JPEGs deleted\n2026-04-24T13:25:41.147418Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 41 frames, 9.1MB → 0.3MB (26.4x), 41 JPEGs deleted\n2026-04-24T13:26:53.913464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3587331842305982393, trigger=click)\n2026-04-24T13:30:52.310748Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=2 elapsed=11.152255s\n2026-04-24T13:30:52.313747Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-24T13:36:00.069099Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=9 elapsed=7.594933541s\n2026-04-24T13:36:00.071113Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 9 eligible frames\n2026-04-24T13:36:00.617576Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 4 frames, 0.3MB → 0.1MB (3.6x), 4 JPEGs deleted\n2026-04-24T13:36:01.402540Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 5 frames, 1.0MB → 0.4MB (2.4x), 5 JPEGs deleted\n2026-04-24T13:40:06.828525Z WARN sqlx::query: summary=\"BEGIN IMMEDIATE\" db.statement=\"\" rows_affected=1 rows_returned=0 elapsed=1.076759291s\n2026-04-24T13:40:07.002782Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=195 elapsed=1.250257875s\n2026-04-24T13:41:11.559513Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=92 elapsed=10.151735042s\n2026-04-24T13:41:11.559741Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 92 eligible frames\n2026-04-24T13:41:14.043784Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 2.3MB → 0.1MB (32.3x), 37 JPEGs deleted\n2026-04-24T13:41:21.303349Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 53 frames, 8.7MB → 3.1MB (2.8x), 53 JPEGs deleted\n2026-04-24T13:41:40.887689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7539785768983157715, trigger=click)\n2026-04-24T13:42:34.136767Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3059269999432289894, trigger=click)\n2026-04-24T13:42:45.942807Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3777488472456223409, trigger=click)\n2026-04-24T13:43:01.921357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1871207218552190145, trigger=click)\n2026-04-24T13:44:01.878037Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8495661271621520850, trigger=click)\n2026-04-24T13:46:28.021146Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=40 elapsed=6.713739708s\n2026-04-24T13:46:28.021348Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames\n2026-04-24T13:46:29.141090Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 1.1MB → 0.1MB (17.9x), 18 JPEGs deleted\n2026-04-24T13:46:31.601195Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.7MB → 2.9MB (1.6x), 20 JPEGs deleted\n2026-04-24T13:51:31.692283Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames\n2026-04-24T13:51:32.570330Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.0MB → 0.2MB (4.8x), 13 JPEGs deleted\n2026-04-24T13:51:33.760542Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.9MB → 1.0MB (1.9x), 10 JPEGs deleted","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.39444444,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3986111,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.59166664,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.59583336,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.7888889,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.79305553,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"screenpipe\"","depth":1,"bounds":{"left":0.4722222,"top":0.033333335,"width":0.058333334,"height":0.017777778},"role_description":"text"}]...
|
3720199049038883989
|
4626837730548112755
|
click
|
accessibility
|
NULL
|
Last login: Fri Apr 24 12:59:23 on ttys007
Poetry Last login: Fri Apr 24 12:59:23 on ttys007
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-start
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-04-24T13:24:21.985779Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store
checking permissions...
screen recording: ok
accessibility: ok
2026-04-24T13:24:22.124681Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-04-24T13:24:23.055922Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-04-24T13:24:23.059528Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-04-24T13:24:23.061097Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-04-24T13:24:23.132247Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-04-24T13:24:23.132303Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-04-24T13:24:23.132592Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-04-24T13:24:23.132606Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-04-24T13:24:23.132938Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-04-24T13:24:23.132999Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-04-24T13:24:23.132808Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-04-24T13:24:23.180699Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-04-24T13:24:23.180978Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-04-24T13:24:23.181420Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-04-24T13:24:23.181613Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-04-24T13:24:23.181801Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-04-24T13:24:23.182313Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary
2026-04-24T13:24:23.182341Z INFO screenpipe_core::pipes: loaded 6 pipes from "/Users/lukas/.screenpipe/pipes"
_
__________________ ___ ____ ____ (_____ ___
/ ___/ ___/ ___/ _ \/ _ \/ __ \ / __ \/ / __ \/ _ \
(__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/
/____/\___/_/ \___/\___/_/ /_/ / .___/_/ .___/\___/
/_/ /_/
power AI by everything you've seen, said or heard
open source | runs locally | developer friendly
┌────────────────────────┬────────────────────────────────────┐
│ setting │ value │
├────────────────────────┼────────────────────────────────────┤
│ audio chunk duration │ 30 seconds │
│ port │ 3030 │
│ audio disabled │ true │
│ vision disabled │ false │
│ pause on DRM content │ false │
│ audio engine │ Parakeet │
│ vad engine │ Silero │
│ data directory │ /Users/lukas/.screenpipe │
│ debug mode │ false │
│ telemetry │ true │
│ use pii removal │ true │
│ use all monitors │ true │
│ ignored windows │ ["Boosteroid"] │
│ included windows │ [] │
│ cloud sync │ disabled │
│ auto-destruct pid │ 0 │
│ deepgram key │ not set │
│ api auth │ enabled │
2026-04-24T13:24:23.186334Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)
2026-04-24T13:24:23.198489Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh
│ encrypt secrets │ disabled │
│ retention days │ 14 │
├────────────────────────┼────────────────────────────────────┤
│ languages │ │
│ │ all languages │
├────────────────────────┼────────────────────────────────────┤
│ monitors │ │
│ │ id: 1 │
│ │ id: 2 │
├────────────────────────┼────────────────────────────────────┤
│ audio devices │ │
│ │ disabled │
└────────────────────────┴────────────────────────────────────┘
you are using local processing. all your data stays on your computer.
warning: telemetry is enabled. only error-level data will be sent.
to disable, use the --disable-telemetry flag.
check latest changes here: https://github.com/screenpipe/screenpipe/releases
2026-04-24T13:24:23.216198Z INFO screenpipe: starting UI event capture
2026-04-24T13:24:23.238868Z INFO screenpipe_engine::ui_recorder: Starting UI event capture
2026-04-24T13:24:23.260906Z INFO screenpipe_engine::ui_recorder: UI recording session started: 9676eafd-ea8f-4e1a-a5f1-de7bdb79c071
2026-04-24T13:24:23.260911Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)
2026-04-24T13:24:23.260972Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-23 10:24:23.260965 UTC to 2026-04-24 10:24:23.260965 UTC)
2026-04-24T13:24:23.261685Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)
2026-04-24T13:24:23.262214Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))
2026-04-24T13:24:23.273443Z INFO screenpipe_engine::server: Server listening on [IP_ADDRESS]:3030
2026-04-24T13:24:23.304240Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030
2026-04-24T13:24:23.567248Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)
2026-04-24T13:24:23.567289Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)
2026-04-24T13:24:23.567346Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)
2026-04-24T13:24:23.850835Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-04-24T13:24:23.850880Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-04-24T13:24:23.850893Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)
2026-04-24T13:24:23.850901Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)
2026-04-24T13:24:23.850941Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-04-24T13:24:25.197204Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)
2026-04-24T13:24:25.589436Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=77673, dur=103ms
2026-04-24T13:24:25.630980Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)
2026-04-24T13:24:25.652818Z INFO sck_rs::stream_manager: invalidated persistent stream for display 1
2026-04-24T13:24:26.160345Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=77674, dur=198ms
2026-04-24T13:24:27.471087Z WARN sqlx::query: summary="SELECT f.id, f.timestamp, f.offset_index, …" db.statement="\n\nSELECT\n f.id,\n f.timestamp,\n f.offset_index,\n COALESCE(\n SUBSTR(f.full_text, 1, 200),\n SUBSTR(f.accessibility_text, 1, 200),\n (\n SELECT\n SUBSTR(ot.text, 1, 200)\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as text,\n COALESCE(\n f.app_name,\n (\n SELECT\n ot.app_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as app_name,\n COALESCE(\n f.window_name,\n (\n SELECT\n ot.window_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as window_name,\n COALESCE(vc.device_name, f.device_name) as screen_device,\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\n COALESCE(vc.fps, 0.033) as chunk_fps,\n f.browser_url,\n f.machine_id\nFROM\n frames f\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\nWHERE\n f.timestamp >= ?1\n AND f.timestamp <= ?2\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\nORDER BY\n f.timestamp DESC,\n f.offset_index DESC\nLIMIT\n 10000\n" rows_affected=0 rows_returned=2758 elapsed=4.209235542s
2026-04-24T13:24:27.488504Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 2758 frame entries, coverage from 2026-04-23 10:24:23.260965 UTC
2026-04-24T13:24:56.108522Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)
2026-04-24T13:25:34.118891Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=82 elapsed=10.985025625s
2026-04-24T13:25:34.121032Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 82 eligible frames
2026-04-24T13:25:37.475066Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 6.5MB → 0.2MB (30.1x), 39 JPEGs deleted
2026-04-24T13:25:41.147418Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 41 frames, 9.1MB → 0.3MB (26.4x), 41 JPEGs deleted
2026-04-24T13:26:53.913464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3587331842305982393, trigger=click)
2026-04-24T13:30:52.310748Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=2 elapsed=11.152255s
2026-04-24T13:30:52.313747Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
2026-04-24T13:36:00.069099Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=9 elapsed=7.594933541s
2026-04-24T13:36:00.071113Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 9 eligible frames
2026-04-24T13:36:00.617576Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 4 frames, 0.3MB → 0.1MB (3.6x), 4 JPEGs deleted
2026-04-24T13:36:01.402540Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 5 frames, 1.0MB → 0.4MB (2.4x), 5 JPEGs deleted
2026-04-24T13:40:06.828525Z WARN sqlx::query: summary="BEGIN IMMEDIATE" db.statement="" rows_affected=1 rows_returned=0 elapsed=1.076759291s
2026-04-24T13:40:07.002782Z WARN sqlx::query: summary="SELECT DISTINCT app_name, window_name, …" db.statement="\n\nSELECT\n DISTINCT app_name,\n window_name,\n browser_url\nFROM\n frames\nWHERE\n timestamp > datetime('now', '-30 seconds')\n AND app_name IS NOT NULL\n AND window_name IS NOT NULL\n" rows_affected=0 rows_returned=195 elapsed=1.250257875s
2026-04-24T13:41:11.559513Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=92 elapsed=10.151735042s
2026-04-24T13:41:11.559741Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 92 eligible frames
2026-04-24T13:41:14.043784Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 2.3MB → 0.1MB (32.3x), 37 JPEGs deleted
2026-04-24T13:41:21.303349Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 53 frames, 8.7MB → 3.1MB (2.8x), 53 JPEGs deleted
2026-04-24T13:41:40.887689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7539785768983157715, trigger=click)
2026-04-24T13:42:34.136767Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3059269999432289894, trigger=click)
2026-04-24T13:42:45.942807Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3777488472456223409, trigger=click)
2026-04-24T13:43:01.921357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1871207218552190145, trigger=click)
2026-04-24T13:44:01.878037Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8495661271621520850, trigger=click)
2026-04-24T13:46:28.021146Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=40 elapsed=6.713739708s
2026-04-24T13:46:28.021348Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames
2026-04-24T13:46:29.141090Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 1.1MB → 0.1MB (17.9x), 18 JPEGs deleted
2026-04-24T13:46:31.601195Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.7MB → 2.9MB (1.6x), 20 JPEGs deleted
2026-04-24T13:51:31.692283Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames
2026-04-24T13:51:32.570330Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.0MB → 0.2MB (4.8x), 13 JPEGs deleted
2026-04-24T13:51:33.760542Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.9MB → 1.0MB (1.9x), 10 JPEGs deleted
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
screenpipe"...
|
NULL
|
|
77672
|
NULL
|
0
|
2026-04-24T09:53:58.349258+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-24/1777 /Users/lukas/.screenpipe/data/data/2026-04-24/1777024438349_m1.jpg...
|
iTerm2
|
screenpipe"
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Last login: Thu Apr 23 14:01:28 on ttys008
Poetry Last login: Thu Apr 23 14:01:28 on ttys008
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-start
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-04-24T09:19:23.948881Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store
checking permissions...
screen recording: ok
accessibility: ok
2026-04-24T09:19:24.012726Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-04-24T09:19:24.548628Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-04-24T09:19:24.550486Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-04-24T09:19:24.550876Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-04-24T09:19:24.587519Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-04-24T09:19:24.587575Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-04-24T09:19:24.587822Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-04-24T09:19:24.587784Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-04-24T09:19:24.587750Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-04-24T09:19:24.587842Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-04-24T09:19:24.587884Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-04-24T09:19:24.599482Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))
2026-04-24T09:19:24.604417Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-04-24T09:19:24.604614Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-04-24T09:19:24.605022Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-04-24T09:19:24.605182Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-04-24T09:19:24.605334Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-04-24T09:19:24.605840Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary
2026-04-24T09:19:24.605858Z INFO screenpipe_core::pipes: loaded 6 pipes from "/Users/lukas/.screenpipe/pipes"
_
__________________ ___ ____ ____ (_____ ___
/ ___/ ___/ ___/ _ \/ _ \/ __ \ / __ \/ / __ \/ _ \
(__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/
/____/\___/_/ \___/\___/_/ /_/ / .___/_/ .___/\___/
/_/ /_/
power AI by everything you've seen, said or heard
open source | runs locally | developer friendly
┌────────────────────────┬────────────────────────────────────┐
│ setting │ value │
├────────────────────────┼────────────────────────────────────┤
│ audio chunk duration │ 30 seconds │
│ port │ 3030 │
│ audio disabled │ true │
│ vision disabled │ false │
│ pause on DRM content │ false │
│ audio engine │ Parakeet │
│ vad engine │ Silero │
│ data directory │ /Users/lukas/.screenpipe │
│ debug mode │ false │
│ telemetry │ true │
│ use pii removal │ true │
│ use all monitors │ true │
│ ignored windows │ ["Boosteroid"] │
│ included windows │ [] │
│ cloud sync │ disabled │
│ auto-destruct pid │ 0 │
│ deepgram key │ not set │
│ api auth │ enabled │
2026-04-24T09:19:24.607221Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)
2026-04-24T09:19:24.612773Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh
│ encrypt secrets │ disabled │
│ retention days │ 14 │
├────────────────────────┼────────────────────────────────────┤
│ languages │ │
│ │ all languages │
├────────────────────────┼────────────────────────────────────┤
│ monitors │ │
│ │ id: 1 │
│ │ id: 2 │
├────────────────────────┼────────────────────────────────────┤
│ audio devices │ │
│ │ disabled │
└────────────────────────┴────────────────────────────────────┘
you are using local processing. all your data stays on your computer.
warning: telemetry is enabled. only error-level data will be sent.
to disable, use the --disable-telemetry flag.
check latest changes here: https://github.com/screenpipe/screenpipe/releases
2026-04-24T09:19:24.622220Z INFO screenpipe: starting UI event capture
2026-04-24T09:19:24.635769Z INFO screenpipe_engine::ui_recorder: Starting UI event capture
2026-04-24T09:19:24.649336Z INFO screenpipe_engine::ui_recorder: UI recording session started: d723d582-4d6f-4e04-921c-c054be5f7efc
2026-04-24T09:19:24.649340Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)
2026-04-24T09:19:24.649501Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-23 06:19:24.649500 UTC to 2026-04-24 06:19:24.649500 UTC)
2026-04-24T09:19:24.650143Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)
2026-04-24T09:19:24.657009Z INFO screenpipe_engine::server: Server listening on [IP_ADDRESS]:3030
2026-04-24T09:19:24.667216Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030
2026-04-24T09:19:24.729181Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)
2026-04-24T09:19:24.729212Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)
2026-04-24T09:19:24.729249Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)
2026-04-24T09:19:24.779505Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-04-24T09:19:24.779540Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-04-24T09:19:24.779553Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)
2026-04-24T09:19:24.779561Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)
2026-04-24T09:19:24.779558Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-04-24T09:19:25.448244Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)
2026-04-24T09:19:25.568925Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=75340, dur=59ms
2026-04-24T09:19:25.573938Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)
2026-04-24T09:19:25.719368Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=75341, dur=92ms
2026-04-24T09:19:25.720846Z INFO sck_rs::stream_manager: invalidated persistent stream for display 2
2026-04-24T09:19:25.858429Z WARN sqlx::query: summary="SELECT f.id, f.timestamp, f.offset_index, …" db.statement="\n\nSELECT\n f.id,\n f.timestamp,\n f.offset_index,\n COALESCE(\n SUBSTR(f.full_text, 1, 200),\n SUBSTR(f.accessibility_text, 1, 200),\n (\n SELECT\n SUBSTR(ot.text, 1, 200)\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as text,\n COALESCE(\n f.app_name,\n (\n SELECT\n ot.app_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as app_name,\n COALESCE(\n f.window_name,\n (\n SELECT\n ot.window_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as window_name,\n COALESCE(vc.device_name, f.device_name) as screen_device,\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\n COALESCE(vc.fps, 0.033) as chunk_fps,\n f.browser_url,\n f.machine_id\nFROM\n frames f\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\nWHERE\n f.timestamp >= ?1\n AND f.timestamp <= ?2\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\nORDER BY\n f.timestamp DESC,\n f.offset_index DESC\nLIMIT\n 10000\n" rows_affected=0 rows_returned=2488 elapsed=1.208421959s
2026-04-24T09:19:25.864500Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 2488 frame entries, coverage from 2026-04-23 06:19:24.649500 UTC
2026-04-24T09:19:55.890230Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)
2026-04-24T09:20:14.750156Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1028901310814388349, trigger=visual_change)
2026-04-24T09:20:18.033810Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=587886836991007024, trigger=visual_change)
2026-04-24T09:20:31.827646Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=116 elapsed=7.239465292s
2026-04-24T09:20:31.828139Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 116 eligible frames
2026-04-24T09:20:40.295044Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 51 frames, 11.8MB → 5.8MB (2.0x), 51 JPEGs deleted
2026-04-24T09:20:46.893269Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 63 frames, 13.5MB → 4.0MB (3.4x), 63 JPEGs deleted
2026-04-24T09:21:08.939443Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2712612361587311688, trigger=click)
2026-04-24T09:21:43.598800Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)
2026-04-24T09:21:43.671594Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1454730608342357520, trigger=click)
2026-04-24T09:21:45.091008Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=visual_change)
2026-04-24T09:21:46.383314Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1454730608342357520, trigger=click)
2026-04-24T09:21:46.496744Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)
2026-04-24T09:21:48.098818Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=visual_change)
2026-04-24T09:22:11.221900Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)
2026-04-24T09:22:11.766896Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)
2026-04-24T09:22:16.888745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)
2026-04-24T09:22:17.491774Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)
2026-04-24T09:22:18.681622Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=visual_change)
2026-04-24T09:23:16.243167Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=visual_change)
2026-04-24T09:23:35.816445Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1454730608342357520, trigger=visual_change)
2026-04-24T09:23:38.930735Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1454730608342357520, trigger=visual_change)
2026-04-24T09:23:44.977693Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1454730608342357520, trigger=visual_change)
2026-04-24T09:23:47.976762Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1454730608342357520, trigger=visual_change)
2026-04-24T09:23:52.175025Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)
2026-04-24T09:23:53.676257Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)
2026-04-24T09:23:55.282163Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)
2026-04-24T09:23:57.823643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)
2026-04-24T09:23:58.994186Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=visual_change)
2026-04-24T09:24:05.860204Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)
2026-04-24T09:24:13.209516Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-718376464268389214, trigger=click)
2026-04-24T09:24:22.402923Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=click)
2026-04-24T09:24:22.942083Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=click)
2026-04-24T09:24:23.526173Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=click)
2026-04-24T09:24:32.347346Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=visual_change)
2026-04-24T09:25:11.682827Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=visual_change)
2026-04-24T09:25:18.972497Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=click)
2026-04-24T09:25:19.038120Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=click)
2026-04-24T09:25:23.792317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=visual_change)
2026-04-24T09:25:29.870772Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=visual_change)
2026-04-24T09:25:55.293996Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=2 elapsed=8.404251667s
2026-04-24T09:25:55.294848Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
2026-04-24T09:26:04.448822Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=click)
2026-04-24T09:26:33.349466Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=click)
2026-04-24T09:26:43.335239Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=visual_change)
2026-04-24T09:26:53.050041Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=click)
2026-04-24T09:26:53.167874Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=click)
2026-04-24T09:26:54.303442Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=visual_change)
2026-04-24T09:26:55.500318Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=visual_change)
2026-04-24T09:27:10.586419Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7481262235808181776, trigger=visual_change)
2026-04-24T09:27:32.621600Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6918193899859647097, trigger=click)
2026-04-24T09:27:33.024121Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6918193899859647097, trigger=visual_change)
2026-04-24T09:27:33.358990Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6918193899859647097, trigger=click)
2026-04-24T09:27:36.474585Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6881578134567937708, trigger=click)
2026-04-24T09:27:39.102616Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6885151902180127194, trigger=visual_change)
2026-04-24T09:27:43.161033Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2041093212856276090, trigger=click)
2026-04-24T09:28:34.574175Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=click)
2026-04-24T09:28:35.182695Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=visual_change)
2026-04-24T09:28:48.766885Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=click)
2026-04-24T09:30:31.502266Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3827964891494523905, trigger=visual_change)
2026-04-24T09:31:01.835036Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=22 elapsed=6.539084917s
2026-04-24T09:31:01.835398Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames
2026-04-24T09:31:03.153482Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.4MB → 1.6MB (1.5x), 12 JPEGs deleted
2026-04-24T09:31:04.207260Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.7MB → 0.6MB (2.9x), 10 JPEGs deleted
2026-04-24T09:31:06.422394Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2475439445148030469, trigger=click)
2026-04-24T09:31:06.479214Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2475439445148030469, trigger=click)
2026-04-24T09:32:04.943578Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5777225845300032867, trigger=click)
2026-04-24T09:32:32.784454Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2058509189754406523, trigger=visual_change)
2026-04-24T09:32:53.082974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2058509189754406523, trigger=click)
2026-04-24T09:32:53.737962Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2058509189754406523, trigger=visual_change)
2026-04-24T09:32:57.114733Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2058509189754406523, trigger=click)
2026-04-24T09:32:58.597674Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2058509189754406523, trigger=click)
2026-04-24T09:32:59.782125Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2058509189754406523, trigger=visual_change)
2026-04-24T09:33:04.996791Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2058509189754406523, trigger=click)
2026-04-24T09:33:08.816247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2058509189754406523, trigger=visual_change)
2026-04-24T09:33:10.461146Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2058509189754406523, trigger=click)
2026-04-24T09:33:15.203936Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2058509189754406523, trigger=click)
2026-04-24T09:33:16.981298Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7590752565779779940, trigger=click)
2026-04-24T09:33:23.431499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=788204626822580206, trigger=visual_change)
2026-04-24T09:34:37.556091Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2058509189754406523, trigger=click)
2026-04-24T09:35:00.731989Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1931331561203467723, trigger=visual_change)
2026-04-24T09:36:14.635660Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=54 elapsed=10.395510708s
2026-04-24T09:36:14.636360Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 54 eligible frames
2026-04-24T09:36:17.619625Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 4.5MB → 1.3MB (3.4x), 27 JPEGs deleted
2026-04-24T09:36:22.116262Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.8MB → 2.5MB (2.3x), 25 JPEGs deleted
2026-04-24T09:36:54.863673Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4878114742693947356, trigger=visual_change)
2026-04-24T09:36:55.062798Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4878114742693947356, trigger=click)
2026-04-24T09:36:55.162682Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4878114742693947356, trigger=click)
2026-04-24T09:37:21.863789Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3699874878394394870, trigger=click)
2026-04-24T09:37:47.995024Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1428919445128073902, trigger=click)
2026-04-24T09:39:30.403190Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7035499710668216835, trigger=visual_change)
2026-04-24T09:39:33.662241Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=608432697774876874, trigger=visual_change)
2026-04-24T09:39:35.341135Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=608432697774876874, trigger=click)
2026-04-24T09:39:36.121070Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=608432697774876874, trigger=click)
2026-04-24T09:39:36.536747Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=608432697774876874, trigger=click)
2026-04-24T09:39:37.731270Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=608432697774876874, trigger=click)
2026-04-24T09:39:41.210462Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5974765529434960285, trigger=click)
2026-04-24T09:39:51.731759Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2535035496832215689, trigger=click)
2026-04-24T09:40:07.259374Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5233926339773178750, trigger=click)
2026-04-24T09:41:03.107609Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4960201745265773485, trigger=visual_change)
2026-04-24T09:41:13.880197Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4960201745265773485, trigger=click)
2026-04-24T09:41:15.327127Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4960201745265773485, trigger=visual_change)
2026-04-24T09:41:29.540119Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=83 elapsed=7.415332709s
2026-04-24T09:41:29.540877Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 83 eligible frames
2026-04-24T09:41:32.870426Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 45 frames, 6.6MB → 2.9MB (2.3x), 45 JPEGs deleted
2026-04-24T09:41:37.336764Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 8.7MB → 2.1MB (4.2x), 36 JPEGs deleted
2026-04-24T09:42:16.061415Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2303338987408821760, trigger=click)
2026-04-24T09:42:41.664885Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1281363204634954644, trigger=click)
2026-04-24T09:42:44.154084Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1281363204634954644, trigger=click)
2026-04-24T09:42:44.196254Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1281363204634954644, trigger=click)
2026-04-24T09:42:44.734952Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1281363204634954644, trigger=click)
2026-04-24T09:42:44.831122Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1281363204634954644, trigger=click)
2026-04-24T09:42:47.536858Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1281363204634954644, trigger=click)
2026-04-24T09:42:47.599226Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1281363204634954644, trigger=click)
2026-04-24T09:42:51.355525Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1281363204634954644, trigger=click)
2026-04-24T09:42:51.417875Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1281363204634954644, trigger=click)
2026-04-24T09:43:03.016946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2974096840750632412, trigger=click)
2026-04-24T09:43:17.016221Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2200824938643555556, trigger=click)
2026-04-24T09:43:54.660798Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3190629888660759195, trigger=click)
2026-04-24T09:43:54.814070Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3190629888660759195, trigger=click)
2026-04-24T09:43:57.228840Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3190629888660759195, trigger=click)
2026-04-24T09:43:57.357545Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3190629888660759195, trigger=click)
2026-04-24T09:44:26.654392Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6442301480781945351, trigger=visual_change)
2026-04-24T09:44:27.485920Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6442301480781945351, trigger=click)
2026-04-24T09:44:28.428613Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6442301480781945351, trigger=click)
2026-04-24T09:44:28.522866Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6442301480781945351, trigger=click)
2026-04-24T09:44:37.706012Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4644933951444445488, trigger=click)
2026-04-24T09:44:38.745488Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4644933951444445488, trigger=visual_change)
2026-04-24T09:44:39.627450Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4644933951444445488, trigger=click)
2026-04-24T09:44:39.702639Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4644933951444445488, trigger=click)
2026-04-24T09:44:41.780013Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4644933951444445488, trigger=visual_change)
2026-04-24T09:44:45.879943Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6226944297976869517, trigger=visual_change)
2026-04-24T09:44:49.778752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8097506899394482484, trigger=click)
2026-04-24T09:44:49.884752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8097506899394482484, trigger=click)
2026-04-24T09:45:16.555430Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4890526220884472180, trigger=visual_change)
2026-04-24T09:45:21.826062Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Firefox, signals=2)
2026-04-24T09:45:25.455811Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4584806439085727712, trigger=click)
2026-04-24T09:45:25.893604Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4584806439085727712, trigger=visual_change)
2026-04-24T09:45:27.069542Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Firefox, signals=2, browser=true)
2026-04-24T09:45:27.071927Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=11, app=Firefox, title=None)
2026-04-24T09:46:45.194533Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=53 elapsed=7.760180958s
2026-04-24T09:46:45.195976Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 53 eligible frames
2026-04-24T09:46:47.978735Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 5.8MB → 3.9MB (1.5x), 27 JPEGs deleted
2026-04-24T09:46:50.106852Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 5.7MB → 2.0MB (2.8x), 24 JPEGs deleted
2026-04-24T09:47:41.050891Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1144826565952075873, trigger=click)
2026-04-24T09:48:42.051769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7029277336993072845, trigger=click)
2026-04-24T09:48:42.106717Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7029277336993072845, trigger=click)
2026-04-24T09:51:57.720599Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=86 elapsed=7.613944334s
2026-04-24T09:51:57.721227Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 86 eligible frames
2026-04-24T09:51:59.887209Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 35 frames, 6.5MB → 2.0MB (3.2x), 35 JPEGs deleted
2026-04-24T09:52:05.085614Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 10.3MB → 3.6MB (2.9x), 49 JPEGs deleted
2026-04-24T09:54:27.970458Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6640666081944178132, trigger=click)
2026-04-24T09:57:13.235833Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=127 elapsed=8.092617s
2026-04-24T09:57:13.235987Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 127 eligible frames
2026-04-24T09:57:18.803261Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 73 frames, 12.5MB → 3.0MB (4.2x), 73 JPEGs deleted
2026-04-24T09:57:24.824472Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 52 frames, 11.1MB → 4.0MB (2.8x), 52 JPEGs deleted
2026-04-24T10:01:37.413726Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8376988566998297938, trigger=click)
2026-04-24T10:02:28.461441Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=55 elapsed=3.632856417s
2026-04-24T10:02:28.461968Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 55 eligible frames
2026-04-24T10:02:30.124076Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.2MB → 0.2MB (19.5x), 25 JPEGs deleted
2026-04-24T10:02:31.809292Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 6.2MB → 0.3MB (18.1x), 28 JPEGs deleted
2026-04-24T10:03:55.692088Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3138891033414926334, trigger=click)
2026-04-24T10:04:23.018837Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9217377342110388166, trigger=click)
2026-04-24T10:04:36.753795Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8336819251013481167, trigger=click)
2026-04-24T10:05:41.340647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8295693356485346454, trigger=click)
2026-04-24T10:07:35.847705Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=47 elapsed=4.035074292s
2026-04-24T10:07:35.847846Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 47 eligible frames
2026-04-24T10:07:37.308099Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 3.8MB → 0.2MB (17.9x), 23 JPEGs deleted
2026-04-24T10:07:38.656993Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 4.9MB → 0.3MB (14.3x), 22 JPEGs deleted
2026-04-24T10:11:10.087328Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7020466661663521693, trigger=click)
2026-04-24T10:11:20.636202Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=11, grace=300s)
2026-04-24T10:12:41.287270Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=27 elapsed=2.627061209s
2026-04-24T10:12:41.287689Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 27 eligible frames
2026-04-24T10:12:42.165900Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.2MB → 0.2MB (10.2x), 13 JPEGs deleted
2026-04-24T10:12:43.027939Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.7MB → 0.3MB (7.8x), 12 JPEGs deleted
2026-04-24T10:16:25.911580Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Idle (timeout=300s, app=Firefox, id=11)
2026-04-24T10:16:26.200392Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting ended (id=11)
2026-04-24T10:17:46.130674Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=53 elapsed=3.023108458s
2026-04-24T10:17:46.130778Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 53 eligible frames
2026-04-24T10:17:47.707268Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.2MB → 0.2MB (19.5x), 25 JPEGs deleted
2026-04-24T10:17:49.254961Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 5.8MB → 0.3MB (16.8x), 26 JPEGs deleted
2026-04-24T10:22:52.226201Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=33 elapsed=2.961869041s
2026-04-24T10:22:52.226734Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 33 eligible frames
2026-04-24T10:22:53.241764Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.5MB → 0.2MB (11.7x), 15 JPEGs deleted
2026-04-24T10:22:54.325284Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 3.5MB → 0.3MB (10.4x), 16 JPEGs deleted
2026-04-24T10:28:01.604110Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=22 elapsed=7.269846834s
2026-04-24T10:28:01.605693Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames
2026-04-24T10:28:02.415596Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.7MB → 0.2MB (7.9x), 10 JPEGs deleted
2026-04-24T10:28:03.310035Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.2MB → 0.3MB (6.5x), 10 JPEGs deleted
2026-04-24T10:30:34.510666Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6492717525671906088, trigger=click)
2026-04-24T10:30:35.393595Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6492717525671906088, trigger=click)
2026-04-24T10:30:37.273284Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6492717525671906088, trigger=click)
2026-04-24T10:30:37.351526Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6492717525671906088, trigger=click)
2026-04-24T10:32:23.226072Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2116846968358481818, trigger=click)
2026-04-24T10:32:23.322454Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2116846968358481818, trigger=click)
2026-04-24T10:32:23.831122Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2116846968358481818, trigger=click)
2026-04-24T10:32:24.073508Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2116846968358481818, trigger=click)
2026-04-24T10:32:37.212353Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1831432399067337817, trigger=click)
2026-04-24T10:32:37.329165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1831432399067337817, trigger=click)
2026-04-24T10:32:38.158066Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1831432399067337817, trigger=click)
2026-04-24T10:32:38.278528Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1831432399067337817, trigger=click)
2026-04-24T10:33:12.028991Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=52 elapsed=8.711020667s
2026-04-24T10:33:12.029148Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 52 eligible frames
2026-04-24T10:33:14.310365Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.0MB → 0.2MB (18.7x), 24 JPEGs deleted
2026-04-24T10:33:16.835684Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 5.8MB → 0.3MB (16.8x), 26 JPEGs deleted
2026-04-24T10:33:24.939868Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8210130048459164633, trigger=click)
2026-04-24T10:34:44.260746Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4460653676981297746, trigger=click)
2026-04-24T10:34:44.369588Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4460653676981297746, trigger=click)
2026-04-24T10:35:24.136627Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1637880906203540100, trigger=click)
2026-04-24T10:35:24.237433Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1637880906203540100, trigger=click)
2026-04-24T10:35:24.972083Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1637880906203540100, trigger=click)
2026-04-24T10:35:24.977999Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1637880906203540100, trigger=click)
2026-04-24T10:36:00.394626Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1637880906203540100, trigger=click)
2026-04-24T10:36:01.325744Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1637880906203540100, trigger=click)
2026-04-24T10:36:04.163426Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1637880906203540100, trigger=click)
2026-04-24T10:36:06.614575Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1637880906203540100, trigger=click)
2026-04-24T10:36:23.003531Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8210130048459164633, trigger=click)
2026-04-24T10:36:23.060065Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8210130048459164633, trigger=click)
2026-04-24T10:36:23.746984Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8210130048459164633, trigger=click)
2026-04-24T10:36:23.798965Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8210130048459164633, trigger=click)
2026-04-24T10:36:26.192092Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8210130048459164633, trigger=click)
2026-04-24T10:36:26.294196Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8210130048459164633, trigger=click)
2026-04-24T10:36:26.939378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8210130048459164633, trigger=click)
2026-04-24T10:36:27.020045Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8210130048459164633, trigger=click)
2026-04-24T10:36:44.241137Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4138904741364594758, trigger=click)
2026-04-24T10:36:44.335571Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=[CREDIT_CARD]...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"Last login: Thu Apr 23 14:01:28 on ttys008\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-status\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-start\ndetected hardware tier: Mid\nwarning: parakeet is not supported on this platform, using whisper-tiny instead\n2026-04-24T09:19:23.948881Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store\nchecking permissions...\n screen recording: ok\n accessibility: ok\n2026-04-24T09:19:24.012726Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6\n2026-04-24T09:19:24.548628Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor\n2026-04-24T09:19:24.550486Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)\n2026-04-24T09:19:24.550876Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)\n2026-04-24T09:19:24.587519Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true\n2026-04-24T09:19:24.587575Z INFO screenpipe: meeting detector enabled — independent of transcription mode\n2026-04-24T09:19:24.587822Z INFO screenpipe: API server listening on 127.0.0.1:3030 (localhost only)\n2026-04-24T09:19:24.587784Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)\n2026-04-24T09:19:24.587750Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)\n2026-04-24T09:19:24.587842Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key\n2026-04-24T09:19:24.587884Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager\n2026-04-24T09:19:24.599482Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-24T09:19:24.604417Z INFO screenpipe_core::pipes: loaded pipe: day-recap\n2026-04-24T09:19:24.604614Z INFO screenpipe_core::pipes: loaded pipe: standup-update\n2026-04-24T09:19:24.605022Z INFO screenpipe_core::pipes: loaded pipe: ai-habits\n2026-04-24T09:19:24.605182Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown\n2026-04-24T09:19:24.605334Z INFO screenpipe_core::pipes: loaded pipe: video-export\n2026-04-24T09:19:24.605840Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary\n2026-04-24T09:19:24.605858Z INFO screenpipe_core::pipes: loaded 6 pipes from \"/Users/lukas/.screenpipe/pipes\"\n\n\n\n _ \n __________________ ___ ____ ____ (_____ ___ \n / ___/ ___/ ___/ _ \\/ _ \\/ __ \\ / __ \\/ / __ \\/ _ \\\n (__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/\n/____/\\___/_/ \\___/\\___/_/ /_/ / .___/_/ .___/\\___/ \n /_/ /_/ \n\n\n\npower AI by everything you've seen, said or heard\nopen source | runs locally | developer friendly\n\n\n┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ true │\n│ vision disabled │ false │\n│ pause on DRM content │ false │\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n│ ignored windows │ [\"Boosteroid\"] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n│ api auth │ enabled │\n2026-04-24T09:19:24.607221Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n2026-04-24T09:19:24.612773Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n│ encrypt secrets │ disabled │\n│ retention days │ 14 │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ id: 1 │\n│ │ id: 2 │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ disabled │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-24T09:19:24.622220Z INFO screenpipe: starting UI event capture\n2026-04-24T09:19:24.635769Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-24T09:19:24.649336Z INFO screenpipe_engine::ui_recorder: UI recording session started: d723d582-4d6f-4e04-921c-c054be5f7efc\n2026-04-24T09:19:24.649340Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-24T09:19:24.649501Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-23 06:19:24.649500 UTC to 2026-04-24 06:19:24.649500 UTC)\n2026-04-24T09:19:24.650143Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-24T09:19:24.657009Z INFO screenpipe_engine::server: Server listening on 127.0.0.1:3030\n2026-04-24T09:19:24.667216Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-24T09:19:24.729181Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-24T09:19:24.729212Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-24T09:19:24.729249Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-24T09:19:24.779505Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-24T09:19:24.779540Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-24T09:19:24.779553Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)\n2026-04-24T09:19:24.779561Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)\n2026-04-24T09:19:24.779558Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-24T09:19:25.448244Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)\n2026-04-24T09:19:25.568925Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=75340, dur=59ms\n2026-04-24T09:19:25.573938Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)\n2026-04-24T09:19:25.719368Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=75341, dur=92ms\n2026-04-24T09:19:25.720846Z INFO sck_rs::stream_manager: invalidated persistent stream for display 2\n2026-04-24T09:19:25.858429Z WARN sqlx::query: summary=\"SELECT f.id, f.timestamp, f.offset_index, …\" db.statement=\"\\n\\nSELECT\\n f.id,\\n f.timestamp,\\n f.offset_index,\\n COALESCE(\\n SUBSTR(f.full_text, 1, 200),\\n SUBSTR(f.accessibility_text, 1, 200),\\n (\\n SELECT\\n SUBSTR(ot.text, 1, 200)\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as text,\\n COALESCE(\\n f.app_name,\\n (\\n SELECT\\n ot.app_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as app_name,\\n COALESCE(\\n f.window_name,\\n (\\n SELECT\\n ot.window_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as window_name,\\n COALESCE(vc.device_name, f.device_name) as screen_device,\\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\\n COALESCE(vc.fps, 0.033) as chunk_fps,\\n f.browser_url,\\n f.machine_id\\nFROM\\n frames f\\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\\nWHERE\\n f.timestamp >= ?1\\n AND f.timestamp <= ?2\\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\\nORDER BY\\n f.timestamp DESC,\\n f.offset_index DESC\\nLIMIT\\n 10000\\n\" rows_affected=0 rows_returned=2488 elapsed=1.208421959s\n2026-04-24T09:19:25.864500Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 2488 frame entries, coverage from 2026-04-23 06:19:24.649500 UTC\n2026-04-24T09:19:55.890230Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)\n2026-04-24T09:20:14.750156Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1028901310814388349, trigger=visual_change)\n2026-04-24T09:20:18.033810Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=587886836991007024, trigger=visual_change)\n2026-04-24T09:20:31.827646Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=116 elapsed=7.239465292s\n2026-04-24T09:20:31.828139Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 116 eligible frames\n2026-04-24T09:20:40.295044Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 51 frames, 11.8MB → 5.8MB (2.0x), 51 JPEGs deleted\n2026-04-24T09:20:46.893269Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 63 frames, 13.5MB → 4.0MB (3.4x), 63 JPEGs deleted\n2026-04-24T09:21:08.939443Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2712612361587311688, trigger=click)\n2026-04-24T09:21:43.598800Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)\n2026-04-24T09:21:43.671594Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1454730608342357520, trigger=click)\n2026-04-24T09:21:45.091008Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=visual_change)\n2026-04-24T09:21:46.383314Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1454730608342357520, trigger=click)\n2026-04-24T09:21:46.496744Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)\n2026-04-24T09:21:48.098818Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=visual_change)\n2026-04-24T09:22:11.221900Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)\n2026-04-24T09:22:11.766896Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)\n2026-04-24T09:22:16.888745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)\n2026-04-24T09:22:17.491774Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)\n2026-04-24T09:22:18.681622Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=visual_change)\n2026-04-24T09:23:16.243167Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=visual_change)\n2026-04-24T09:23:35.816445Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1454730608342357520, trigger=visual_change)\n2026-04-24T09:23:38.930735Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1454730608342357520, trigger=visual_change)\n2026-04-24T09:23:44.977693Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1454730608342357520, trigger=visual_change)\n2026-04-24T09:23:47.976762Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1454730608342357520, trigger=visual_change)\n2026-04-24T09:23:52.175025Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)\n2026-04-24T09:23:53.676257Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)\n2026-04-24T09:23:55.282163Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)\n2026-04-24T09:23:57.823643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)\n2026-04-24T09:23:58.994186Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=visual_change)\n2026-04-24T09:24:05.860204Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)\n2026-04-24T09:24:13.209516Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-718376464268389214, trigger=click)\n2026-04-24T09:24:22.402923Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=click)\n2026-04-24T09:24:22.942083Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=click)\n2026-04-24T09:24:23.526173Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=click)\n2026-04-24T09:24:32.347346Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=visual_change)\n2026-04-24T09:25:11.682827Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=visual_change)\n2026-04-24T09:25:18.972497Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=click)\n2026-04-24T09:25:19.038120Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=click)\n2026-04-24T09:25:23.792317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=visual_change)\n2026-04-24T09:25:29.870772Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=visual_change)\n2026-04-24T09:25:55.293996Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=2 elapsed=8.404251667s\n2026-04-24T09:25:55.294848Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-24T09:26:04.448822Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=click)\n2026-04-24T09:26:33.349466Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=click)\n2026-04-24T09:26:43.335239Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=visual_change)\n2026-04-24T09:26:53.050041Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=click)\n2026-04-24T09:26:53.167874Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=click)\n2026-04-24T09:26:54.303442Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=visual_change)\n2026-04-24T09:26:55.500318Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=visual_change)\n2026-04-24T09:27:10.586419Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7481262235808181776, trigger=visual_change)\n2026-04-24T09:27:32.621600Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6918193899859647097, trigger=click)\n2026-04-24T09:27:33.024121Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6918193899859647097, trigger=visual_change)\n2026-04-24T09:27:33.358990Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6918193899859647097, trigger=click)\n2026-04-24T09:27:36.474585Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6881578134567937708, trigger=click)\n2026-04-24T09:27:39.102616Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6885151902180127194, trigger=visual_change)\n2026-04-24T09:27:43.161033Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2041093212856276090, trigger=click)\n2026-04-24T09:28:34.574175Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=click)\n2026-04-24T09:28:35.182695Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=visual_change)\n2026-04-24T09:28:48.766885Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=click)\n2026-04-24T09:30:31.502266Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3827964891494523905, trigger=visual_change)\n2026-04-24T09:31:01.835036Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=6.539084917s\n2026-04-24T09:31:01.835398Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T09:31:03.153482Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.4MB → 1.6MB (1.5x), 12 JPEGs deleted\n2026-04-24T09:31:04.207260Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.7MB → 0.6MB (2.9x), 10 JPEGs deleted\n2026-04-24T09:31:06.422394Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2475439445148030469, trigger=click)\n2026-04-24T09:31:06.479214Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2475439445148030469, trigger=click)\n2026-04-24T09:32:04.943578Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5777225845300032867, trigger=click)\n2026-04-24T09:32:32.784454Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2058509189754406523, trigger=visual_change)\n2026-04-24T09:32:53.082974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2058509189754406523, trigger=click)\n2026-04-24T09:32:53.737962Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2058509189754406523, trigger=visual_change)\n2026-04-24T09:32:57.114733Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2058509189754406523, trigger=click)\n2026-04-24T09:32:58.597674Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2058509189754406523, trigger=click)\n2026-04-24T09:32:59.782125Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2058509189754406523, trigger=visual_change)\n2026-04-24T09:33:04.996791Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2058509189754406523, trigger=click)\n2026-04-24T09:33:08.816247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2058509189754406523, trigger=visual_change)\n2026-04-24T09:33:10.461146Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2058509189754406523, trigger=click)\n2026-04-24T09:33:15.203936Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2058509189754406523, trigger=click)\n2026-04-24T09:33:16.981298Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7590752565779779940, trigger=click)\n2026-04-24T09:33:23.431499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=788204626822580206, trigger=visual_change)\n2026-04-24T09:34:37.556091Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2058509189754406523, trigger=click)\n2026-04-24T09:35:00.731989Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1931331561203467723, trigger=visual_change)\n2026-04-24T09:36:14.635660Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=54 elapsed=10.395510708s\n2026-04-24T09:36:14.636360Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 54 eligible frames\n2026-04-24T09:36:17.619625Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 4.5MB → 1.3MB (3.4x), 27 JPEGs deleted\n2026-04-24T09:36:22.116262Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.8MB → 2.5MB (2.3x), 25 JPEGs deleted\n2026-04-24T09:36:54.863673Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4878114742693947356, trigger=visual_change)\n2026-04-24T09:36:55.062798Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4878114742693947356, trigger=click)\n2026-04-24T09:36:55.162682Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4878114742693947356, trigger=click)\n2026-04-24T09:37:21.863789Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3699874878394394870, trigger=click)\n2026-04-24T09:37:47.995024Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1428919445128073902, trigger=click)\n2026-04-24T09:39:30.403190Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7035499710668216835, trigger=visual_change)\n2026-04-24T09:39:33.662241Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=608432697774876874, trigger=visual_change)\n2026-04-24T09:39:35.341135Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=608432697774876874, trigger=click)\n2026-04-24T09:39:36.121070Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=608432697774876874, trigger=click)\n2026-04-24T09:39:36.536747Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=608432697774876874, trigger=click)\n2026-04-24T09:39:37.731270Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=608432697774876874, trigger=click)\n2026-04-24T09:39:41.210462Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5974765529434960285, trigger=click)\n2026-04-24T09:39:51.731759Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2535035496832215689, trigger=click)\n2026-04-24T09:40:07.259374Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5233926339773178750, trigger=click)\n2026-04-24T09:41:03.107609Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4960201745265773485, trigger=visual_change)\n2026-04-24T09:41:13.880197Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4960201745265773485, trigger=click)\n2026-04-24T09:41:15.327127Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4960201745265773485, trigger=visual_change)\n2026-04-24T09:41:29.540119Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=83 elapsed=7.415332709s\n2026-04-24T09:41:29.540877Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 83 eligible frames\n2026-04-24T09:41:32.870426Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 45 frames, 6.6MB → 2.9MB (2.3x), 45 JPEGs deleted\n2026-04-24T09:41:37.336764Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 8.7MB → 2.1MB (4.2x), 36 JPEGs deleted\n2026-04-24T09:42:16.061415Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2303338987408821760, trigger=click)\n2026-04-24T09:42:41.664885Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1281363204634954644, trigger=click)\n2026-04-24T09:42:44.154084Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1281363204634954644, trigger=click)\n2026-04-24T09:42:44.196254Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1281363204634954644, trigger=click)\n2026-04-24T09:42:44.734952Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1281363204634954644, trigger=click)\n2026-04-24T09:42:44.831122Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1281363204634954644, trigger=click)\n2026-04-24T09:42:47.536858Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1281363204634954644, trigger=click)\n2026-04-24T09:42:47.599226Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1281363204634954644, trigger=click)\n2026-04-24T09:42:51.355525Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1281363204634954644, trigger=click)\n2026-04-24T09:42:51.417875Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1281363204634954644, trigger=click)\n2026-04-24T09:43:03.016946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2974096840750632412, trigger=click)\n2026-04-24T09:43:17.016221Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2200824938643555556, trigger=click)\n2026-04-24T09:43:54.660798Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3190629888660759195, trigger=click)\n2026-04-24T09:43:54.814070Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3190629888660759195, trigger=click)\n2026-04-24T09:43:57.228840Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3190629888660759195, trigger=click)\n2026-04-24T09:43:57.357545Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3190629888660759195, trigger=click)\n2026-04-24T09:44:26.654392Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6442301480781945351, trigger=visual_change)\n2026-04-24T09:44:27.485920Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6442301480781945351, trigger=click)\n2026-04-24T09:44:28.428613Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6442301480781945351, trigger=click)\n2026-04-24T09:44:28.522866Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6442301480781945351, trigger=click)\n2026-04-24T09:44:37.706012Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4644933951444445488, trigger=click)\n2026-04-24T09:44:38.745488Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4644933951444445488, trigger=visual_change)\n2026-04-24T09:44:39.627450Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4644933951444445488, trigger=click)\n2026-04-24T09:44:39.702639Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4644933951444445488, trigger=click)\n2026-04-24T09:44:41.780013Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4644933951444445488, trigger=visual_change)\n2026-04-24T09:44:45.879943Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6226944297976869517, trigger=visual_change)\n2026-04-24T09:44:49.778752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8097506899394482484, trigger=click)\n2026-04-24T09:44:49.884752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8097506899394482484, trigger=click)\n2026-04-24T09:45:16.555430Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4890526220884472180, trigger=visual_change)\n2026-04-24T09:45:21.826062Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Firefox, signals=2)\n2026-04-24T09:45:25.455811Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4584806439085727712, trigger=click)\n2026-04-24T09:45:25.893604Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4584806439085727712, trigger=visual_change)\n2026-04-24T09:45:27.069542Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Firefox, signals=2, browser=true)\n2026-04-24T09:45:27.071927Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=11, app=Firefox, title=None)\n2026-04-24T09:46:45.194533Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=53 elapsed=7.760180958s\n2026-04-24T09:46:45.195976Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 53 eligible frames\n2026-04-24T09:46:47.978735Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 5.8MB → 3.9MB (1.5x), 27 JPEGs deleted\n2026-04-24T09:46:50.106852Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 5.7MB → 2.0MB (2.8x), 24 JPEGs deleted\n2026-04-24T09:47:41.050891Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1144826565952075873, trigger=click)\n2026-04-24T09:48:42.051769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7029277336993072845, trigger=click)\n2026-04-24T09:48:42.106717Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7029277336993072845, trigger=click)\n2026-04-24T09:51:57.720599Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=86 elapsed=7.613944334s\n2026-04-24T09:51:57.721227Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 86 eligible frames\n2026-04-24T09:51:59.887209Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 35 frames, 6.5MB → 2.0MB (3.2x), 35 JPEGs deleted\n2026-04-24T09:52:05.085614Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 10.3MB → 3.6MB (2.9x), 49 JPEGs deleted\n2026-04-24T09:54:27.970458Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6640666081944178132, trigger=click)\n2026-04-24T09:57:13.235833Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=127 elapsed=8.092617s\n2026-04-24T09:57:13.235987Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 127 eligible frames\n2026-04-24T09:57:18.803261Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 73 frames, 12.5MB → 3.0MB (4.2x), 73 JPEGs deleted\n2026-04-24T09:57:24.824472Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 52 frames, 11.1MB → 4.0MB (2.8x), 52 JPEGs deleted\n2026-04-24T10:01:37.413726Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8376988566998297938, trigger=click)\n2026-04-24T10:02:28.461441Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=55 elapsed=3.632856417s\n2026-04-24T10:02:28.461968Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 55 eligible frames\n2026-04-24T10:02:30.124076Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.2MB → 0.2MB (19.5x), 25 JPEGs deleted\n2026-04-24T10:02:31.809292Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 6.2MB → 0.3MB (18.1x), 28 JPEGs deleted\n2026-04-24T10:03:55.692088Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3138891033414926334, trigger=click)\n2026-04-24T10:04:23.018837Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9217377342110388166, trigger=click)\n2026-04-24T10:04:36.753795Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8336819251013481167, trigger=click)\n2026-04-24T10:05:41.340647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8295693356485346454, trigger=click)\n2026-04-24T10:07:35.847705Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=47 elapsed=4.035074292s\n2026-04-24T10:07:35.847846Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 47 eligible frames\n2026-04-24T10:07:37.308099Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 3.8MB → 0.2MB (17.9x), 23 JPEGs deleted\n2026-04-24T10:07:38.656993Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 4.9MB → 0.3MB (14.3x), 22 JPEGs deleted\n2026-04-24T10:11:10.087328Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7020466661663521693, trigger=click)\n2026-04-24T10:11:20.636202Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=11, grace=300s)\n2026-04-24T10:12:41.287270Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=27 elapsed=2.627061209s\n2026-04-24T10:12:41.287689Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 27 eligible frames\n2026-04-24T10:12:42.165900Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.2MB → 0.2MB (10.2x), 13 JPEGs deleted\n2026-04-24T10:12:43.027939Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.7MB → 0.3MB (7.8x), 12 JPEGs deleted\n2026-04-24T10:16:25.911580Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Idle (timeout=300s, app=Firefox, id=11)\n2026-04-24T10:16:26.200392Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting ended (id=11)\n2026-04-24T10:17:46.130674Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=53 elapsed=3.023108458s\n2026-04-24T10:17:46.130778Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 53 eligible frames\n2026-04-24T10:17:47.707268Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.2MB → 0.2MB (19.5x), 25 JPEGs deleted\n2026-04-24T10:17:49.254961Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 5.8MB → 0.3MB (16.8x), 26 JPEGs deleted\n2026-04-24T10:22:52.226201Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=33 elapsed=2.961869041s\n2026-04-24T10:22:52.226734Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 33 eligible frames\n2026-04-24T10:22:53.241764Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.5MB → 0.2MB (11.7x), 15 JPEGs deleted\n2026-04-24T10:22:54.325284Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 3.5MB → 0.3MB (10.4x), 16 JPEGs deleted\n2026-04-24T10:28:01.604110Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=7.269846834s\n2026-04-24T10:28:01.605693Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T10:28:02.415596Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.7MB → 0.2MB (7.9x), 10 JPEGs deleted\n2026-04-24T10:28:03.310035Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.2MB → 0.3MB (6.5x), 10 JPEGs deleted\n2026-04-24T10:30:34.510666Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6492717525671906088, trigger=click)\n2026-04-24T10:30:35.393595Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6492717525671906088, trigger=click)\n2026-04-24T10:30:37.273284Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6492717525671906088, trigger=click)\n2026-04-24T10:30:37.351526Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6492717525671906088, trigger=click)\n2026-04-24T10:32:23.226072Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2116846968358481818, trigger=click)\n2026-04-24T10:32:23.322454Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2116846968358481818, trigger=click)\n2026-04-24T10:32:23.831122Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2116846968358481818, trigger=click)\n2026-04-24T10:32:24.073508Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2116846968358481818, trigger=click)\n2026-04-24T10:32:37.212353Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1831432399067337817, trigger=click)\n2026-04-24T10:32:37.329165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1831432399067337817, trigger=click)\n2026-04-24T10:32:38.158066Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1831432399067337817, trigger=click)\n2026-04-24T10:32:38.278528Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1831432399067337817, trigger=click)\n2026-04-24T10:33:12.028991Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=52 elapsed=8.711020667s\n2026-04-24T10:33:12.029148Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 52 eligible frames\n2026-04-24T10:33:14.310365Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.0MB → 0.2MB (18.7x), 24 JPEGs deleted\n2026-04-24T10:33:16.835684Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 5.8MB → 0.3MB (16.8x), 26 JPEGs deleted\n2026-04-24T10:33:24.939868Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8210130048459164633, trigger=click)\n2026-04-24T10:34:44.260746Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4460653676981297746, trigger=click)\n2026-04-24T10:34:44.369588Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4460653676981297746, trigger=click)\n2026-04-24T10:35:24.136627Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1637880906203540100, trigger=click)\n2026-04-24T10:35:24.237433Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1637880906203540100, trigger=click)\n2026-04-24T10:35:24.972083Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1637880906203540100, trigger=click)\n2026-04-24T10:35:24.977999Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1637880906203540100, trigger=click)\n2026-04-24T10:36:00.394626Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1637880906203540100, trigger=click)\n2026-04-24T10:36:01.325744Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1637880906203540100, trigger=click)\n2026-04-24T10:36:04.163426Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1637880906203540100, trigger=click)\n2026-04-24T10:36:06.614575Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1637880906203540100, trigger=click)\n2026-04-24T10:36:23.003531Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8210130048459164633, trigger=click)\n2026-04-24T10:36:23.060065Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8210130048459164633, trigger=click)\n2026-04-24T10:36:23.746984Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8210130048459164633, trigger=click)\n2026-04-24T10:36:23.798965Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8210130048459164633, trigger=click)\n2026-04-24T10:36:26.192092Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8210130048459164633, trigger=click)\n2026-04-24T10:36:26.294196Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8210130048459164633, trigger=click)\n2026-04-24T10:36:26.939378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8210130048459164633, trigger=click)\n2026-04-24T10:36:27.020045Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8210130048459164633, trigger=click)\n2026-04-24T10:36:44.241137Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4138904741364594758, trigger=click)\n2026-04-24T10:36:44.335571Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4138904741364594758, trigger=click)\n2026-04-24T10:36:47.455177Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4138904741364594758, trigger=click)\n2026-04-24T10:36:47.509556Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4138904741364594758, trigger=click)\n2026-04-24T10:36:53.967141Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4138904741364594758, trigger=click)\n2026-04-24T10:36:54.031192Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4138904741364594758, trigger=click)\n2026-04-24T10:36:54.580103Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4138904741364594758, trigger=click)\n2026-04-24T10:36:54.599397Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4138904741364594758, trigger=click)\n2026-04-24T10:36:59.648354Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4138904741364594758, trigger=click)\n2026-04-24T10:36:59.702068Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4138904741364594758, trigger=click)\n2026-04-24T10:37:00.486240Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4138904741364594758, trigger=click)\n2026-04-24T10:37:00.569806Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4138904741364594758, trigger=click)\n2026-04-24T10:37:03.062817Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4138904741364594758, trigger=click)\n2026-04-24T10:38:23.248611Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=62 elapsed=6.355404333s\n2026-04-24T10:38:23.248724Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 62 eligible frames\n2026-04-24T10:38:25.301510Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 5.3MB → 0.2MB (24.8x), 32 JPEGs deleted\n2026-04-24T10:38:26.987153Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 6.2MB → 0.3MB (18.1x), 28 JPEGs deleted\n2026-04-24T10:38:53.000027Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7506456211656557156, trigger=click)\n2026-04-24T10:38:54.854836Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7506456211656557156, trigger=click)\n2026-04-24T10:38:54.943770Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7506456211656557156, trigger=click)\n2026-04-24T10:38:55.806471Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7506456211656557156, trigger=click)\n2026-04-24T10:38:55.851826Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7506456211656557156, trigger=click)\n2026-04-24T10:38:59.952459Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7506456211656557156, trigger=click)\n2026-04-24T10:39:00.021010Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7506456211656557156, trigger=click)\n2026-04-24T10:39:11.421467Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5288122650368634950, trigger=click)\n2026-04-24T10:39:11.627140Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5288122650368634950, trigger=click)\n2026-04-24T10:39:15.865972Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5647233584915712869, trigger=click)\n2026-04-24T10:39:27.806842Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6797446331183970139, trigger=click)\n2026-04-24T10:39:36.993162Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6797446331183970139, trigger=click)\n2026-04-24T10:39:37.094863Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6797446331183970139, trigger=click)\n2026-04-24T10:39:38.857266Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6797446331183970139, trigger=click)\n2026-04-24T10:39:38.885058Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6797446331183970139, trigger=click)\n2026-04-24T10:39:40.081901Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6797446331183970139, trigger=click)\n2026-04-24T10:39:40.209094Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6797446331183970139, trigger=click)\n2026-04-24T10:39:41.230706Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6797446331183970139, trigger=click)\n2026-04-24T10:39:41.316549Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6797446331183970139, trigger=click)\n2026-04-24T10:39:42.300529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6797446331183970139, trigger=click)\n2026-04-24T10:39:42.335267Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6797446331183970139, trigger=click)\n2026-04-24T10:39:42.819907Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6797446331183970139, trigger=click)\n2026-04-24T10:39:44.964722Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6797446331183970139, trigger=click)\n2026-04-24T10:39:45.047161Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6797446331183970139, trigger=click)\n2026-04-24T10:39:50.935830Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6797446331183970139, trigger=click)\n2026-04-24T10:39:50.979295Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6797446331183970139, trigger=click)\n2026-04-24T10:39:51.846905Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6797446331183970139, trigger=click)\n2026-04-24T10:39:51.975222Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6797446331183970139, trigger=click)\n2026-04-24T10:39:59.483853Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=189720459388807654, trigger=click)\n2026-04-24T10:40:08.162998Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1001287872104142188, trigger=click)\n2026-04-24T10:40:08.217464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1001287872104142188, trigger=click)\n2026-04-24T10:40:25.570644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7506456211656557156, trigger=click)\n2026-04-24T10:40:25.623897Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7506456211656557156, trigger=click)\n2026-04-24T10:42:52.276851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6865363316354517122, trigger=click)\n2026-04-24T10:43:30.979373Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=69 elapsed=3.981173208s\n2026-04-24T10:43:30.979493Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 69 eligible frames\n2026-04-24T10:43:33.032472Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 5.3MB → 0.2MB (24.8x), 32 JPEGs deleted\n2026-04-24T10:43:35.154193Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 35 frames, 7.8MB → 0.3MB (22.6x), 35 JPEGs deleted\n2026-04-24T10:48:42.353643Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=105 elapsed=7.108326041s\n2026-04-24T10:48:42.353759Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 105 eligible frames\n2026-04-24T10:48:45.352717Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 50 frames, 8.3MB → 0.2MB (38.3x), 50 JPEGs deleted\n2026-04-24T10:48:48.458342Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 53 frames, 11.8MB → 0.3MB (34.0x), 53 JPEGs deleted\n2026-04-24T10:53:48.818545Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 96 eligible frames\n2026-04-24T10:53:51.516821Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 46 frames, 7.7MB → 0.2MB (35.3x), 46 JPEGs deleted\n2026-04-24T10:53:54.258370Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 48 frames, 10.6MB → 0.3MB (30.8x), 48 JPEGs deleted\n2026-04-24T10:54:52.658901Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2121771095128526678, trigger=click)\n2026-04-24T10:54:52.702563Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2121771095128526678, trigger=click)\n2026-04-24T10:58:55.960129Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=32 elapsed=1.68997925s\n2026-04-24T10:58:55.960884Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 32 eligible frames\n2026-04-24T10:58:57.009506Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.5MB → 0.2MB (11.7x), 15 JPEGs deleted\n2026-04-24T10:58:57.964390Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 3.3MB → 0.3MB (9.8x), 15 JPEGs deleted\n2026-04-24T11:01:13.426549Z WARN sqlx::query: summary=\"COMMIT\" db.statement=\"\" rows_affected=6 rows_returned=0 elapsed=2.57432875s\n2026-04-24T11:01:13.637056Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=119 elapsed=1.472548834s\n2026-04-24T11:04:08.115953Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=26 elapsed=10.139433s\n2026-04-24T11:04:08.118157Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 26 eligible frames\n2026-04-24T11:04:09.481029Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.0MB → 0.2MB (9.4x), 12 JPEGs deleted\n2026-04-24T11:04:11.299647Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.7MB → 0.3MB (7.8x), 12 JPEGs deleted\n2026-04-24T11:09:20.119768Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=46 elapsed=8.766899792s\n2026-04-24T11:09:20.121666Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 46 eligible frames\n2026-04-24T11:09:21.854291Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 3.7MB → 0.2MB (17.1x), 22 JPEGs deleted\n2026-04-24T11:09:23.592453Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 4.9MB → 0.3MB (14.3x), 22 JPEGs deleted\n2026-04-24T11:14:30.205712Z WARN sqlx::query: summary=\"PRAGMA wal_checkpoint(TRUNCATE)\" db.statement=\"\" rows_affected=0 rows_returned=1 elapsed=5.284319375s\n2026-04-24T11:14:30.206970Z WARN screenpipe_db::db: wal checkpoint: busy (could not truncate), 3480 pages in WAL\n2026-04-24T11:14:30.245105Z WARN sqlx::query: summary=\"BEGIN IMMEDIATE\" db.statement=\"\" rows_affected=1 rows_returned=0 elapsed=3.2198825s\n2026-04-24T11:14:33.584945Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=59 elapsed=9.97889125s\n2026-04-24T11:14:33.585189Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 59 eligible frames\n2026-04-24T11:14:36.287033Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 4.7MB → 0.2MB (21.7x), 28 JPEGs deleted\n2026-04-24T11:14:38.846113Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 6.4MB → 0.3MB (18.8x), 29 JPEGs deleted\n2026-04-24T11:15:36.074721Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6788130764516421466, trigger=click)\n2026-04-24T11:15:49.931607Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-22530481736454815, trigger=click)\n2026-04-24T11:15:50.035546Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-22530481736454815, trigger=click)\n2026-04-24T11:17:02.963796Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8802872861699676927, trigger=click)\n2026-04-24T11:17:03.081449Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8802872861699676927, trigger=click)\n2026-04-24T11:17:03.870542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8802872861699676927, trigger=click)\n2026-04-24T11:17:03.984391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8802872861699676927, trigger=click)\n2026-04-24T11:17:07.272429Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8525863568130538432, trigger=click)\n2026-04-24T11:17:07.383212Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8525863568130538432, trigger=click)\n2026-04-24T11:17:12.845407Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5038866805693356757, trigger=click)\n2026-04-24T11:17:13.891043Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2062508901381276849, trigger=click)\n2026-04-24T11:17:14.543976Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2062508901381276849, trigger=click)\n2026-04-24T11:17:14.647466Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2062508901381276849, trigger=click)\n2026-04-24T11:17:17.777143Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4745751100713206125, trigger=click)\n2026-04-24T11:17:17.878701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4745751100713206125, trigger=click)\n2026-04-24T11:17:18.868265Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4745751100713206125, trigger=click)\n2026-04-24T11:17:18.960261Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4745751100713206125, trigger=click)\n2026-04-24T11:17:26.320191Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=546446222346092638, trigger=click)\n2026-04-24T11:17:27.276494Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=546446222346092638, trigger=click)\n2026-04-24T11:17:27.389582Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=546446222346092638, trigger=click)\n2026-04-24T11:17:28.332323Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=546446222346092638, trigger=click)\n2026-04-24T11:17:28.408336Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=546446222346092638, trigger=click)\n2026-04-24T11:17:29.250117Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=546446222346092638, trigger=click)\n2026-04-24T11:17:29.357243Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=546446222346092638, trigger=click)\n2026-04-24T11:17:30.394922Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=546446222346092638, trigger=click)\n2026-04-24T11:17:30.464041Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=546446222346092638, trigger=click)\n2026-04-24T11:17:31.369627Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=546446222346092638, trigger=click)\n2026-04-24T11:17:31.502905Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=546446222346092638, trigger=click)\n2026-04-24T11:18:17.660370Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1715328449965286316, trigger=click)\n2026-04-24T11:18:17.704523Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1715328449965286316, trigger=click)\n2026-04-24T11:19:07.234939Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2318062521896008072, trigger=click)\n2026-04-24T11:19:07.314286Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2318062521896008072, trigger=click)\n2026-04-24T11:19:08.586319Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2318062521896008072, trigger=click)\n2026-04-24T11:19:08.652061Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2318062521896008072, trigger=click)\n2026-04-24T11:19:10.937180Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2318062521896008072, trigger=click)\n2026-04-24T11:19:11.022356Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2318062521896008072, trigger=click)\n2026-04-24T11:19:11.612476Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2318062521896008072, trigger=click)\n2026-04-24T11:19:11.737592Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2318062521896008072, trigger=click)\n2026-04-24T11:19:20.085067Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2318062521896008072, trigger=click)\n2026-04-24T11:19:20.145277Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2318062521896008072, trigger=click)\n2026-04-24T11:19:21.663709Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2318062521896008072, trigger=click)\n2026-04-24T11:19:21.733223Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2318062521896008072, trigger=click)\n2026-04-24T11:19:36.963451Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3234145084165916874, trigger=click)\n2026-04-24T11:19:37.049292Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3234145084165916874, trigger=click)\n2026-04-24T11:19:46.980993Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=73 elapsed=8.12921025s\n2026-04-24T11:19:46.981331Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 73 eligible frames\n2026-04-24T11:19:49.195477Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 35 frames, 5.8MB → 0.2MB (27.1x), 35 JPEGs deleted\n2026-04-24T11:19:51.402937Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 8.0MB → 0.3MB (23.2x), 36 JPEGs deleted\n2026-04-24T11:24:03.875288Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8802872861699676927, trigger=click)\n2026-04-24T11:24:41.170368Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8802872861699676927, trigger=click)\n2026-04-24T11:24:41.209379Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8802872861699676927, trigger=click)\n2026-04-24T11:24:42.706762Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8802872861699676927, trigger=click)\n2026-04-24T11:24:42.986168Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8802872861699676927, trigger=click)\n2026-04-24T11:24:59.555478Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=79 elapsed=8.092311041s\n2026-04-24T11:24:59.556072Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 79 eligible frames\n2026-04-24T11:25:01.917632Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 38 frames, 6.3MB → 0.2MB (29.3x), 38 JPEGs deleted\n2026-04-24T11:25:04.626046Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 8.6MB → 0.3MB (25.1x), 39 JPEGs deleted\n2026-04-24T11:26:27.950111Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1991352563265595130, trigger=click)\n2026-04-24T11:26:28.047358Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1991352563265595130, trigger=click)\n2026-04-24T11:26:30.195182Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1991352563265595130, trigger=click)\n2026-04-24T11:26:36.773095Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1991352563265595130, trigger=click)\n2026-04-24T11:26:46.635750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1966803153325473422, trigger=click)\n2026-04-24T11:26:46.715887Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1966803153325473422, trigger=click)\n2026-04-24T11:26:47.438290Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1966803153325473422, trigger=click)\n2026-04-24T11:26:47.512389Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1966803153325473422, trigger=click)\n2026-04-24T11:26:48.756558Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1966803153325473422, trigger=click)\n2026-04-24T11:26:48.803802Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1966803153325473422, trigger=click)\n2026-04-24T11:26:49.451792Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1966803153325473422, trigger=click)\n2026-04-24T11:26:49.486730Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1966803153325473422, trigger=click)\n2026-04-24T11:26:52.399484Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1966803153325473422, trigger=click)\n2026-04-24T11:26:52.438841Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1966803153325473422, trigger=click)\n2026-04-24T11:26:57.222513Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1966803153325473422, trigger=click)\n2026-04-24T11:26:57.265649Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1966803153325473422, trigger=click)\n2026-04-24T11:27:08.007585Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1966803153325473422, trigger=click)\n2026-04-24T11:27:08.086776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1966803153325473422, trigger=click)\n2026-04-24T11:27:11.914496Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1966803153325473422, trigger=click)\n2026-04-24T11:27:12.011441Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1966803153325473422, trigger=click)\n2026-04-24T11:27:38.490189Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5136649101983276250, trigger=click)\n2026-04-24T11:27:38.563480Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5136649101983276250, trigger=click)\n2026-04-24T11:27:45.819896Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5343601985217606192, trigger=click)\n2026-04-24T11:27:45.865840Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5343601985217606192, trigger=click)\n2026-04-24T11:27:56.407361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7326400327479647153, trigger=click)\n2026-04-24T11:28:19.032138Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=454968113929338879, trigger=click)\n2026-04-24T11:28:22.995039Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=454968113929338879, trigger=click)\n2026-04-24T11:28:23.099216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=454968113929338879, trigger=click)\n2026-04-24T11:28:34.189456Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=454968113929338879, trigger=click)\n2026-04-24T11:28:34.275942Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=454968113929338879, trigger=click)\n2026-04-24T11:28:57.544774Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-642622541178249943, trigger=click)\n2026-04-24T11:29:10.122754Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-402529802374466615, trigger=click)\n2026-04-24T11:29:15.646732Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1017033749084410453, trigger=click)\n2026-04-24T11:29:16.441568Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1017033749084410453, trigger=click)\n2026-04-24T11:29:17.374479Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1017033749084410453, trigger=click)\n2026-04-24T11:29:20.408918Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1017033749084410453, trigger=click)\n2026-04-24T11:29:25.917935Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1017033749084410453, trigger=click)\n2026-04-24T11:29:26.032395Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1017033749084410453, trigger=click)\n2026-04-24T11:29:56.605347Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4915152446458762061, trigger=click)\n2026-04-24T11:30:09.554906Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7691415532025274694, trigger=click)\n2026-04-24T11:30:09.633531Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7691415532025274694, trigger=click)\n2026-04-24T11:30:13.061011Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=87 elapsed=8.420847s\n2026-04-24T11:30:13.061505Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 87 eligible frames\n2026-04-24T11:30:15.140555Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7887654223188695565, trigger=click)\n2026-04-24T11:30:15.272372Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7887654223188695565, trigger=click)\n2026-04-24T11:30:16.526074Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 44 frames, 7.3MB → 0.2MB (33.8x), 44 JPEGs deleted\n2026-04-24T11:30:19.072590Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 41 frames, 9.1MB → 0.3MB (26.4x), 41 JPEGs deleted\n2026-04-24T11:30:28.910390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9119193263002051277, trigger=click)\n2026-04-24T11:30:28.996228Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9119193263002051277, trigger=click)\n2026-04-24T11:30:29.837234Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9119193263002051277, trigger=click)\n2026-04-24T11:30:29.837239Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9119193263002051277, trigger=click)\n2026-04-24T11:30:37.533908Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7887654223188695565, trigger=click)\n2026-04-24T11:30:55.949882Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3639440529838385160, trigger=click)\n2026-04-24T11:30:55.988992Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3639440529838385160, trigger=click)\n2026-04-24T11:31:05.793833Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2249107635929059023, trigger=click)\n2026-04-24T11:31:05.839474Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2249107635929059023, trigger=click)\n2026-04-24T11:31:35.566095Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7887654223188695565, trigger=click)\n2026-04-24T11:31:35.625287Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7887654223188695565, trigger=click)\n2026-04-24T11:31:37.137446Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7887654223188695565, trigger=click)\n2026-04-24T11:31:37.253092Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7887654223188695565, trigger=click)\n2026-04-24T11:31:38.382470Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7887654223188695565, trigger=click)\n2026-04-24T11:31:38.428871Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7887654223188695565, trigger=click)\n2026-04-24T11:35:26.395400Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=50 elapsed=7.309834625s\n2026-04-24T11:35:26.395521Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 50 eligible frames\n2026-04-24T11:35:28.048669Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.3MB → 0.2MB (20.2x), 26 JPEGs deleted\n2026-04-24T11:35:29.394845Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 4.9MB → 0.3MB (14.3x), 22 JPEGs deleted\n2026-04-24T11:38:57.800387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7887654223188695565, trigger=click)\n2026-04-24T11:38:57.907003Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7887654223188695565, trigger=click)\n2026-04-24T11:40:29.531574Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 74 eligible frames\n2026-04-24T11:40:31.755450Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 6.2MB → 0.2MB (28.6x), 37 JPEGs deleted\n2026-04-24T11:40:33.819941Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 35 frames, 7.8MB → 0.3MB (22.6x), 35 JPEGs deleted\n2026-04-24T11:42:47.508034Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2226488268323822878, trigger=click)\n2026-04-24T11:43:52.537775Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2226488268323822878, trigger=click)\n2026-04-24T11:43:52.582640Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2226488268323822878, trigger=click)\n2026-04-24T11:43:53.401022Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2226488268323822878, trigger=click)\n2026-04-24T11:43:53.448215Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2226488268323822878, trigger=click)\n2026-04-24T11:45:36.492488Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=36 elapsed=2.638361s\n2026-04-24T11:45:36.492597Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 36 eligible frames\n2026-04-24T11:45:37.618526Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.8MB → 0.2MB (13.3x), 17 JPEGs deleted\n2026-04-24T11:45:38.678431Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.8MB → 0.3MB (11.1x), 17 JPEGs deleted\n2026-04-24T11:46:07.200242Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2226488268323822878, trigger=click)\n2026-04-24T11:46:07.280827Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2226488268323822878, trigger=click)\n2026-04-24T11:47:27.447688Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=847529865007162774, trigger=click)\n2026-04-24T11:47:27.500158Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=847529865007162774, trigger=click)\n2026-04-24T11:48:07.693419Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2226488268323822878, trigger=click)\n2026-04-24T11:48:07.784552Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2226488268323822878, trigger=click)\n2026-04-24T11:48:10.115804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2226488268323822878, trigger=click)\n2026-04-24T11:48:11.685855Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2244600036113367803, trigger=click)\n2026-04-24T11:48:30.224122Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3639440529838385160, trigger=click)\n2026-04-24T11:48:30.295802Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3639440529838385160, trigger=click)\n2026-04-24T11:49:29.292618Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4704770792594975750, trigger=click)\n2026-04-24T11:49:29.371323Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4704770792594975750, trigger=click)\n2026-04-24T11:49:33.239786Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5728453670193685945, trigger=click)\n2026-04-24T11:49:33.347043Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5728453670193685945, trigger=click)\n2026-04-24T11:49:45.356214Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4704770792594975750, trigger=click)\n2026-04-24T11:49:48.517785Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4704770792594975750, trigger=click)\n2026-04-24T11:49:52.402826Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4704770792594975750, trigger=click)\n2026-04-24T11:49:52.464446Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4704770792594975750, trigger=click)\n2026-04-24T11:50:26.525288Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8987259266673623237, trigger=click)\n2026-04-24T11:50:26.604192Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8987259266673623237, trigger=click)\n2026-04-24T11:50:41.344037Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8987259266673623237, trigger=click)\n2026-04-24T11:50:41.435253Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8987259266673623237, trigger=click)\n2026-04-24T11:50:46.184263Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=7.493976042s\n2026-04-24T11:50:46.184663Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T11:50:47.017520Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.7MB → 0.2MB (7.9x), 10 JPEGs deleted\n2026-04-24T11:50:47.851650Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.2MB → 0.3MB (6.5x), 10 JPEGs deleted\n2026-04-24T11:51:29.775346Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7651531562244479791, trigger=click)\n2026-04-24T11:52:06.460923Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8745851775815519072, trigger=click)\n2026-04-24T11:52:06.490969Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8745851775815519072, trigger=click)\n2026-04-24T11:52:22.320386Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6987604592232044021, trigger=click)\n2026-04-24T11:52:37.038831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3247257549596365971, trigger=click)\n2026-04-24T11:52:37.359289Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3247257549596365971, trigger=click)\n2026-04-24T11:53:32.224321Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8171132538006504785, trigger=click)\n2026-04-24T11:54:27.480915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-712054823232090435, trigger=click)\n2026-04-24T11:55:26.937099Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5379945422637760051, trigger=click)\n2026-04-24T11:55:44.784941Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5379945422637760051, trigger=click)\n2026-04-24T11:55:57.672232Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=21 elapsed=9.80646825s\n2026-04-24T11:55:57.673343Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames\n2026-04-24T11:55:57.999241Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5379945422637760051, trigger=click)\n2026-04-24T11:55:58.097487Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5379945422637760051, trigger=click)\n2026-04-24T11:55:59.082235Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.7MB → 0.2MB (7.9x), 10 JPEGs deleted\n2026-04-24T11:56:00.316153Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 2.0MB → 0.3MB (5.9x), 9 JPEGs deleted\n2026-04-24T11:56:11.434858Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2103904139782091093, trigger=click)\n2026-04-24T11:56:11.569778Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2103904139782091093, trigger=click)\n2026-04-24T11:56:13.508268Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2103904139782091093, trigger=click)\n2026-04-24T11:56:13.616948Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2103904139782091093, trigger=click)\n2026-04-24T11:56:50.189925Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=478210856716390722, trigger=click)\n2026-04-24T11:57:07.047480Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5379945422637760051, trigger=click)\n2026-04-24T11:57:09.247598Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5379945422637760051, trigger=click)\n2026-04-24T11:57:09.382687Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5379945422637760051, trigger=click)\n2026-04-24T11:57:21.721277Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=558925331182674223, trigger=click)\n2026-04-24T11:57:26.916303Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6218584631276573068, trigger=click)\n2026-04-24T11:57:26.998239Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6218584631276573068, trigger=click)\n2026-04-24T11:57:32.474143Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5379945422637760051, trigger=click)\n2026-04-24T11:57:33.599485Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5379945422637760051, trigger=click)\n2026-04-24T11:57:33.683001Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5379945422637760051, trigger=click)\n2026-04-24T11:57:37.020288Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5379945422637760051, trigger=click)\n2026-04-24T11:57:45.461961Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1773521823376575033, trigger=click)\n2026-04-24T11:57:53.057752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7393378978552822601, trigger=click)\n2026-04-24T11:57:53.144984Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7393378978552822601, trigger=click)\n2026-04-24T11:58:12.060395Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8282289718042919691, trigger=click)\n2026-04-24T11:58:12.155601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8282289718042919691, trigger=click)\n2026-04-24T11:58:36.946140Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3261379971817257935, trigger=click)\n2026-04-24T11:58:37.036552Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3261379971817257935, trigger=click)\n2026-04-24T11:58:37.603249Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3261379971817257935, trigger=click)\n2026-04-24T11:58:37.694808Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3261379971817257935, trigger=click)\n2026-04-24T11:58:42.787296Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4651124611459673128, trigger=click)\n2026-04-24T11:59:00.009401Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5328411650175126901, trigger=click)\n2026-04-24T11:59:10.382596Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5328411650175126901, trigger=click)\n2026-04-24T11:59:11.887481Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5328411650175126901, trigger=click)\n2026-04-24T11:59:16.732387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5328411650175126901, trigger=click)\n2026-04-24T11:59:22.904996Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5328411650175126901, trigger=click)\n2026-04-24T11:59:33.574205Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6308441255669888152, trigger=click)\n2026-04-24T11:59:33.648403Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6308441255669888152, trigger=click)\n2026-04-24T12:00:22.318050Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1562831604554066619, trigger=click)\n2026-04-24T12:00:22.429417Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1562831604554066619, trigger=click)\n2026-04-24T12:00:30.884781Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=437639199760829102, trigger=click)\n2026-04-24T12:00:50.596091Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2863135864238171172, trigger=click)\n2026-04-24T12:00:50.617570Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2863135864238171172, trigger=click)\n2026-04-24T12:00:52.228104Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2863135864238171172, trigger=click)\n2026-04-24T12:00:52.333258Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2863135864238171172, trigger=click)\n2026-04-24T12:01:08.422013Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=86 elapsed=8.059027166s\n2026-04-24T12:01:08.422136Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 86 eligible frames\n2026-04-24T12:01:11.139046Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 42 frames, 7.0MB → 0.2MB (32.3x), 42 JPEGs deleted\n2026-04-24T12:01:13.663660Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 42 frames, 9.3MB → 0.3MB (27.0x), 42 JPEGs deleted\n2026-04-24T12:01:49.752684Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2863135864238171172, trigger=click)\n2026-04-24T12:01:52.941348Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2863135864238171172, trigger=click)\n2026-04-24T12:01:52.979852Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2863135864238171172, trigger=click)\n2026-04-24T12:01:54.305215Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2863135864238171172, trigger=click)\n2026-04-24T12:01:54.375630Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2863135864238171172, trigger=click)\n2026-04-24T12:01:56.895713Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2863135864238171172, trigger=click)\n2026-04-24T12:01:56.972994Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2863135864238171172, trigger=click)\n2026-04-24T12:01:59.262967Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2863135864238171172, trigger=click)\n2026-04-24T12:01:59.331034Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2863135864238171172, trigger=click)\n2026-04-24T12:02:13.036432Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5328411650175126901, trigger=click)\n2026-04-24T12:02:13.752366Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5328411650175126901, trigger=click)\n2026-04-24T12:02:16.312369Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5328411650175126901, trigger=click)\n2026-04-24T12:02:16.375677Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5328411650175126901, trigger=click)\n2026-04-24T12:02:18.892813Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5328411650175126901, trigger=click)\n2026-04-24T12:02:18.920159Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5328411650175126901, trigger=click)\n2026-04-24T12:02:21.714489Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5328411650175126901, trigger=click)\n2026-04-24T12:02:21.755525Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5328411650175126901, trigger=click)\n2026-04-24T12:02:57.117667Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5328411650175126901, trigger=click)\n2026-04-24T12:02:57.177770Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5328411650175126901, trigger=click)\n2026-04-24T12:04:06.259272Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5328411650175126901, trigger=click)\n2026-04-24T12:04:12.333349Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3445169997545261113, trigger=click)\n2026-04-24T12:04:12.408740Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3445169997545261113, trigger=click)\n2026-04-24T12:06:21.300248Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=130 elapsed=7.620404083s\n2026-04-24T12:06:21.300400Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 130 eligible frames\n2026-04-24T12:06:25.398281Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 64 frames, 10.7MB → 0.2MB (48.6x), 64 JPEGs deleted\n2026-04-24T12:06:29.195829Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 64 frames, 14.2MB → 0.3MB (40.9x), 64 JPEGs deleted\n2026-04-24T12:06:30.560910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4640488320940221807, trigger=click)\n2026-04-24T12:06:46.075791Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6741164185393943038, trigger=click)\n2026-04-24T12:06:46.118540Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6741164185393943038, trigger=click)\n2026-04-24T12:07:45.754257Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6741164185393943038, trigger=click)\n2026-04-24T12:07:45.800094Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6741164185393943038, trigger=click)\n2026-04-24T12:08:47.360792Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6741164185393943038, trigger=click)\n2026-04-24T12:08:47.384461Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6741164185393943038, trigger=click)\n2026-04-24T12:11:37.044248Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=116 elapsed=7.837720917s\n2026-04-24T12:11:37.044353Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 116 eligible frames\n2026-04-24T12:11:40.364433Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 57 frames, 9.5MB → 0.2MB (43.5x), 57 JPEGs deleted\n2026-04-24T12:11:43.727441Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 57 frames, 12.6MB → 0.3MB (36.5x), 57 JPEGs deleted\n2026-04-24T12:16:45.733667Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=87 elapsed=1.971495458s\n2026-04-24T12:16:45.733779Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 87 eligible frames\n2026-04-24T12:16:48.304087Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 44 frames, 7.3MB → 0.2MB (33.8x), 44 JPEGs deleted\n2026-04-24T12:16:50.675184Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 41 frames, 9.1MB → 0.3MB (26.4x), 41 JPEGs deleted\n2026-04-24T12:21:55.833056Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=55 elapsed=5.146915167s\n2026-04-24T12:21:55.833420Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 55 eligible frames\n2026-04-24T12:21:57.344071Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.2MB → 0.2MB (19.5x), 25 JPEGs deleted\n2026-04-24T12:21:59.022653Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 6.2MB → 0.3MB (18.1x), 28 JPEGs deleted\n2026-04-24T12:27:03.840198Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8612018992098909652, trigger=click)\n2026-04-24T12:27:07.783762Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=8.749967833s\n2026-04-24T12:27:07.784170Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T12:27:08.724397Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.7MB → 0.2MB (7.9x), 10 JPEGs deleted\n2026-04-24T12:27:09.510979Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.2MB → 0.3MB (6.5x), 10 JPEGs deleted\n2026-04-24T12:32:10.468896Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 54 eligible frames\n2026-04-24T12:32:12.110566Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.3MB → 0.2MB (20.2x), 26 JPEGs deleted\n2026-04-24T12:32:13.701788Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 5.8MB → 0.3MB (16.8x), 26 JPEGs deleted\n2026-04-24T12:37:18.383692Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=35 elapsed=4.670668709s\n2026-04-24T12:37:18.383798Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 35 eligible frames\n2026-04-24T12:37:19.504947Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.8MB → 0.2MB (13.3x), 17 JPEGs deleted\n2026-04-24T12:37:20.513285Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 3.5MB → 0.3MB (10.4x), 16 JPEGs deleted\n2026-04-24T12:39:39.930433Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3445169997545261113, trigger=click)\n2026-04-24T12:39:42.664192Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3445169997545261113, trigger=click)\n2026-04-24T12:39:44.374232Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3445169997545261113, trigger=click)\n2026-04-24T12:39:51.391341Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3445169997545261113, trigger=click)\n2026-04-24T12:40:06.731596Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3445169997545261113, trigger=click)\n2026-04-24T12:42:10.444340Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3445169997545261113, trigger=click)\n2026-04-24T12:42:10.517488Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3445169997545261113, trigger=click)\n2026-04-24T12:42:22.059428Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=28 elapsed=1.529772875s\n2026-04-24T12:42:22.059526Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames\n2026-04-24T12:42:22.944668Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.2MB → 0.2MB (10.2x), 13 JPEGs deleted\n2026-04-24T12:42:23.793952Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.9MB → 0.3MB (8.5x), 13 JPEGs deleted\n2026-04-24T12:44:27.560551Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8306060799962195516, trigger=click)\n2026-04-24T12:44:27.671108Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8306060799962195516, trigger=click)\n2026-04-24T12:44:44.538111Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6900539608577226211, trigger=click)\n2026-04-24T12:45:32.993387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8306060799962195516, trigger=click)\n2026-04-24T12:45:33.068954Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8306060799962195516, trigger=click)\n2026-04-24T12:46:01.322827Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8306060799962195516, trigger=click)\n2026-04-24T12:46:01.408016Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8306060799962195516, trigger=click)\n2026-04-24T12:47:28.142498Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=30 elapsed=4.357667458s\n2026-04-24T12:47:28.142605Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 30 eligible frames\n2026-04-24T12:47:29.070019Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.3MB → 0.2MB (11.0x), 14 JPEGs deleted\n2026-04-24T12:47:30.005087Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 3.1MB → 0.3MB (9.1x), 14 JPEGs deleted\n2026-04-24T12:52:37.356156Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=37 elapsed=7.343908625s\n2026-04-24T12:52:37.357331Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 37 eligible frames\n2026-04-24T12:52:38.436826Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.7MB → 0.2MB (12.5x), 16 JPEGs deleted\n2026-04-24T12:52:39.624271Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 4.2MB → 0.3MB (12.3x), 19 JPEGs deleted\n2026-04-24T12:53:43.048935Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2132150564896673439, trigger=click)\n2026-04-24T12:53:43.118644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2132150564896673439, trigger=click)\n2026-04-24T12:53:43.868309Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2132150564896673439, trigger=click)\n2026-04-24T12:53:43.995118Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2132150564896673439, trigger=click)\n2026-04-24T12:53:44.545646Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2132150564896673439, trigger=click)","depth":4,"value":"Last login: Thu Apr 23 14:01:28 on ttys008\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-status\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-start\ndetected hardware tier: Mid\nwarning: parakeet is not supported on this platform, using whisper-tiny instead\n2026-04-24T09:19:23.948881Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store\nchecking permissions...\n screen recording: ok\n accessibility: ok\n2026-04-24T09:19:24.012726Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6\n2026-04-24T09:19:24.548628Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor\n2026-04-24T09:19:24.550486Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)\n2026-04-24T09:19:24.550876Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)\n2026-04-24T09:19:24.587519Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true\n2026-04-24T09:19:24.587575Z INFO screenpipe: meeting detector enabled — independent of transcription mode\n2026-04-24T09:19:24.587822Z INFO screenpipe: API server listening on 127.0.0.1:3030 (localhost only)\n2026-04-24T09:19:24.587784Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)\n2026-04-24T09:19:24.587750Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)\n2026-04-24T09:19:24.587842Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key\n2026-04-24T09:19:24.587884Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager\n2026-04-24T09:19:24.599482Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-24T09:19:24.604417Z INFO screenpipe_core::pipes: loaded pipe: day-recap\n2026-04-24T09:19:24.604614Z INFO screenpipe_core::pipes: loaded pipe: standup-update\n2026-04-24T09:19:24.605022Z INFO screenpipe_core::pipes: loaded pipe: ai-habits\n2026-04-24T09:19:24.605182Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown\n2026-04-24T09:19:24.605334Z INFO screenpipe_core::pipes: loaded pipe: video-export\n2026-04-24T09:19:24.605840Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary\n2026-04-24T09:19:24.605858Z INFO screenpipe_core::pipes: loaded 6 pipes from \"/Users/lukas/.screenpipe/pipes\"\n\n\n\n _ \n __________________ ___ ____ ____ (_____ ___ \n / ___/ ___/ ___/ _ \\/ _ \\/ __ \\ / __ \\/ / __ \\/ _ \\\n (__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/\n/____/\\___/_/ \\___/\\___/_/ /_/ / .___/_/ .___/\\___/ \n /_/ /_/ \n\n\n\npower AI by everything you've seen, said or heard\nopen source | runs locally | developer friendly\n\n\n┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ true │\n│ vision disabled │ false │\n│ pause on DRM content │ false │\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n│ ignored windows │ [\"Boosteroid\"] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n│ api auth │ enabled │\n2026-04-24T09:19:24.607221Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n2026-04-24T09:19:24.612773Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n│ encrypt secrets │ disabled │\n│ retention days │ 14 │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ id: 1 │\n│ │ id: 2 │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ disabled │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-24T09:19:24.622220Z INFO screenpipe: starting UI event capture\n2026-04-24T09:19:24.635769Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-24T09:19:24.649336Z INFO screenpipe_engine::ui_recorder: UI recording session started: d723d582-4d6f-4e04-921c-c054be5f7efc\n2026-04-24T09:19:24.649340Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-24T09:19:24.649501Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-23 06:19:24.649500 UTC to 2026-04-24 06:19:24.649500 UTC)\n2026-04-24T09:19:24.650143Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-24T09:19:24.657009Z INFO screenpipe_engine::server: Server listening on 127.0.0.1:3030\n2026-04-24T09:19:24.667216Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-24T09:19:24.729181Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-24T09:19:24.729212Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-24T09:19:24.729249Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-24T09:19:24.779505Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-24T09:19:24.779540Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-24T09:19:24.779553Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)\n2026-04-24T09:19:24.779561Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)\n2026-04-24T09:19:24.779558Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-24T09:19:25.448244Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)\n2026-04-24T09:19:25.568925Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=75340, dur=59ms\n2026-04-24T09:19:25.573938Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)\n2026-04-24T09:19:25.719368Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=75341, dur=92ms\n2026-04-24T09:19:25.720846Z INFO sck_rs::stream_manager: invalidated persistent stream for display 2\n2026-04-24T09:19:25.858429Z WARN sqlx::query: summary=\"SELECT f.id, f.timestamp, f.offset_index, …\" db.statement=\"\\n\\nSELECT\\n f.id,\\n f.timestamp,\\n f.offset_index,\\n COALESCE(\\n SUBSTR(f.full_text, 1, 200),\\n SUBSTR(f.accessibility_text, 1, 200),\\n (\\n SELECT\\n SUBSTR(ot.text, 1, 200)\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as text,\\n COALESCE(\\n f.app_name,\\n (\\n SELECT\\n ot.app_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as app_name,\\n COALESCE(\\n f.window_name,\\n (\\n SELECT\\n ot.window_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as window_name,\\n COALESCE(vc.device_name, f.device_name) as screen_device,\\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\\n COALESCE(vc.fps, 0.033) as chunk_fps,\\n f.browser_url,\\n f.machine_id\\nFROM\\n frames f\\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\\nWHERE\\n f.timestamp >= ?1\\n AND f.timestamp <= ?2\\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\\nORDER BY\\n f.timestamp DESC,\\n f.offset_index DESC\\nLIMIT\\n 10000\\n\" rows_affected=0 rows_returned=2488 elapsed=1.208421959s\n2026-04-24T09:19:25.864500Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 2488 frame entries, coverage from 2026-04-23 06:19:24.649500 UTC\n2026-04-24T09:19:55.890230Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)\n2026-04-24T09:20:14.750156Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1028901310814388349, trigger=visual_change)\n2026-04-24T09:20:18.033810Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=587886836991007024, trigger=visual_change)\n2026-04-24T09:20:31.827646Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=116 elapsed=7.239465292s\n2026-04-24T09:20:31.828139Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 116 eligible frames\n2026-04-24T09:20:40.295044Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 51 frames, 11.8MB → 5.8MB (2.0x), 51 JPEGs deleted\n2026-04-24T09:20:46.893269Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 63 frames, 13.5MB → 4.0MB (3.4x), 63 JPEGs deleted\n2026-04-24T09:21:08.939443Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2712612361587311688, trigger=click)\n2026-04-24T09:21:43.598800Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)\n2026-04-24T09:21:43.671594Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1454730608342357520, trigger=click)\n2026-04-24T09:21:45.091008Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=visual_change)\n2026-04-24T09:21:46.383314Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1454730608342357520, trigger=click)\n2026-04-24T09:21:46.496744Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)\n2026-04-24T09:21:48.098818Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=visual_change)\n2026-04-24T09:22:11.221900Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)\n2026-04-24T09:22:11.766896Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)\n2026-04-24T09:22:16.888745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)\n2026-04-24T09:22:17.491774Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)\n2026-04-24T09:22:18.681622Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=visual_change)\n2026-04-24T09:23:16.243167Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=visual_change)\n2026-04-24T09:23:35.816445Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1454730608342357520, trigger=visual_change)\n2026-04-24T09:23:38.930735Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1454730608342357520, trigger=visual_change)\n2026-04-24T09:23:44.977693Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1454730608342357520, trigger=visual_change)\n2026-04-24T09:23:47.976762Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1454730608342357520, trigger=visual_change)\n2026-04-24T09:23:52.175025Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)\n2026-04-24T09:23:53.676257Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)\n2026-04-24T09:23:55.282163Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)\n2026-04-24T09:23:57.823643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)\n2026-04-24T09:23:58.994186Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=visual_change)\n2026-04-24T09:24:05.860204Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)\n2026-04-24T09:24:13.209516Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-718376464268389214, trigger=click)\n2026-04-24T09:24:22.402923Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=click)\n2026-04-24T09:24:22.942083Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=click)\n2026-04-24T09:24:23.526173Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=click)\n2026-04-24T09:24:32.347346Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=visual_change)\n2026-04-24T09:25:11.682827Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=visual_change)\n2026-04-24T09:25:18.972497Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=click)\n2026-04-24T09:25:19.038120Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=click)\n2026-04-24T09:25:23.792317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=visual_change)\n2026-04-24T09:25:29.870772Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=visual_change)\n2026-04-24T09:25:55.293996Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=2 elapsed=8.404251667s\n2026-04-24T09:25:55.294848Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-24T09:26:04.448822Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=click)\n2026-04-24T09:26:33.349466Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=click)\n2026-04-24T09:26:43.335239Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=visual_change)\n2026-04-24T09:26:53.050041Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=click)\n2026-04-24T09:26:53.167874Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=click)\n2026-04-24T09:26:54.303442Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=visual_change)\n2026-04-24T09:26:55.500318Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=visual_change)\n2026-04-24T09:27:10.586419Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7481262235808181776, trigger=visual_change)\n2026-04-24T09:27:32.621600Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6918193899859647097, trigger=click)\n2026-04-24T09:27:33.024121Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6918193899859647097, trigger=visual_change)\n2026-04-24T09:27:33.358990Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6918193899859647097, trigger=click)\n2026-04-24T09:27:36.474585Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6881578134567937708, trigger=click)\n2026-04-24T09:27:39.102616Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6885151902180127194, trigger=visual_change)\n2026-04-24T09:27:43.161033Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2041093212856276090, trigger=click)\n2026-04-24T09:28:34.574175Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=click)\n2026-04-24T09:28:35.182695Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=visual_change)\n2026-04-24T09:28:48.766885Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=click)\n2026-04-24T09:30:31.502266Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3827964891494523905, trigger=visual_change)\n2026-04-24T09:31:01.835036Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=6.539084917s\n2026-04-24T09:31:01.835398Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T09:31:03.153482Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.4MB → 1.6MB (1.5x), 12 JPEGs deleted\n2026-04-24T09:31:04.207260Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.7MB → 0.6MB (2.9x), 10 JPEGs deleted\n2026-04-24T09:31:06.422394Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2475439445148030469, trigger=click)\n2026-04-24T09:31:06.479214Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2475439445148030469, trigger=click)\n2026-04-24T09:32:04.943578Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5777225845300032867, trigger=click)\n2026-04-24T09:32:32.784454Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2058509189754406523, trigger=visual_change)\n2026-04-24T09:32:53.082974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2058509189754406523, trigger=click)\n2026-04-24T09:32:53.737962Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2058509189754406523, trigger=visual_change)\n2026-04-24T09:32:57.114733Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2058509189754406523, trigger=click)\n2026-04-24T09:32:58.597674Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2058509189754406523, trigger=click)\n2026-04-24T09:32:59.782125Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2058509189754406523, trigger=visual_change)\n2026-04-24T09:33:04.996791Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2058509189754406523, trigger=click)\n2026-04-24T09:33:08.816247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2058509189754406523, trigger=visual_change)\n2026-04-24T09:33:10.461146Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2058509189754406523, trigger=click)\n2026-04-24T09:33:15.203936Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2058509189754406523, trigger=click)\n2026-04-24T09:33:16.981298Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7590752565779779940, trigger=click)\n2026-04-24T09:33:23.431499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=788204626822580206, trigger=visual_change)\n2026-04-24T09:34:37.556091Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2058509189754406523, trigger=click)\n2026-04-24T09:35:00.731989Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1931331561203467723, trigger=visual_change)\n2026-04-24T09:36:14.635660Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=54 elapsed=10.395510708s\n2026-04-24T09:36:14.636360Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 54 eligible frames\n2026-04-24T09:36:17.619625Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 4.5MB → 1.3MB (3.4x), 27 JPEGs deleted\n2026-04-24T09:36:22.116262Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.8MB → 2.5MB (2.3x), 25 JPEGs deleted\n2026-04-24T09:36:54.863673Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4878114742693947356, trigger=visual_change)\n2026-04-24T09:36:55.062798Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4878114742693947356, trigger=click)\n2026-04-24T09:36:55.162682Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4878114742693947356, trigger=click)\n2026-04-24T09:37:21.863789Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3699874878394394870, trigger=click)\n2026-04-24T09:37:47.995024Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1428919445128073902, trigger=click)\n2026-04-24T09:39:30.403190Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7035499710668216835, trigger=visual_change)\n2026-04-24T09:39:33.662241Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=608432697774876874, trigger=visual_change)\n2026-04-24T09:39:35.341135Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=608432697774876874, trigger=click)\n2026-04-24T09:39:36.121070Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=608432697774876874, trigger=click)\n2026-04-24T09:39:36.536747Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=608432697774876874, trigger=click)\n2026-04-24T09:39:37.731270Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=608432697774876874, trigger=click)\n2026-04-24T09:39:41.210462Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5974765529434960285, trigger=click)\n2026-04-24T09:39:51.731759Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2535035496832215689, trigger=click)\n2026-04-24T09:40:07.259374Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5233926339773178750, trigger=click)\n2026-04-24T09:41:03.107609Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4960201745265773485, trigger=visual_change)\n2026-04-24T09:41:13.880197Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4960201745265773485, trigger=click)\n2026-04-24T09:41:15.327127Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4960201745265773485, trigger=visual_change)\n2026-04-24T09:41:29.540119Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=83 elapsed=7.415332709s\n2026-04-24T09:41:29.540877Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 83 eligible frames\n2026-04-24T09:41:32.870426Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 45 frames, 6.6MB → 2.9MB (2.3x), 45 JPEGs deleted\n2026-04-24T09:41:37.336764Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 8.7MB → 2.1MB (4.2x), 36 JPEGs deleted\n2026-04-24T09:42:16.061415Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2303338987408821760, trigger=click)\n2026-04-24T09:42:41.664885Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1281363204634954644, trigger=click)\n2026-04-24T09:42:44.154084Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1281363204634954644, trigger=click)\n2026-04-24T09:42:44.196254Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1281363204634954644, trigger=click)\n2026-04-24T09:42:44.734952Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1281363204634954644, trigger=click)\n2026-04-24T09:42:44.831122Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1281363204634954644, trigger=click)\n2026-04-24T09:42:47.536858Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1281363204634954644, trigger=click)\n2026-04-24T09:42:47.599226Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1281363204634954644, trigger=click)\n2026-04-24T09:42:51.355525Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1281363204634954644, trigger=click)\n2026-04-24T09:42:51.417875Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1281363204634954644, trigger=click)\n2026-04-24T09:43:03.016946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2974096840750632412, trigger=click)\n2026-04-24T09:43:17.016221Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2200824938643555556, trigger=click)\n2026-04-24T09:43:54.660798Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3190629888660759195, trigger=click)\n2026-04-24T09:43:54.814070Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3190629888660759195, trigger=click)\n2026-04-24T09:43:57.228840Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3190629888660759195, trigger=click)\n2026-04-24T09:43:57.357545Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3190629888660759195, trigger=click)\n2026-04-24T09:44:26.654392Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6442301480781945351, trigger=visual_change)\n2026-04-24T09:44:27.485920Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6442301480781945351, trigger=click)\n2026-04-24T09:44:28.428613Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6442301480781945351, trigger=click)\n2026-04-24T09:44:28.522866Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6442301480781945351, trigger=click)\n2026-04-24T09:44:37.706012Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4644933951444445488, trigger=click)\n2026-04-24T09:44:38.745488Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4644933951444445488, trigger=visual_change)\n2026-04-24T09:44:39.627450Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4644933951444445488, trigger=click)\n2026-04-24T09:44:39.702639Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4644933951444445488, trigger=click)\n2026-04-24T09:44:41.780013Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4644933951444445488, trigger=visual_change)\n2026-04-24T09:44:45.879943Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6226944297976869517, trigger=visual_change)\n2026-04-24T09:44:49.778752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8097506899394482484, trigger=click)\n2026-04-24T09:44:49.884752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8097506899394482484, trigger=click)\n2026-04-24T09:45:16.555430Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4890526220884472180, trigger=visual_change)\n2026-04-24T09:45:21.826062Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Firefox, signals=2)\n2026-04-24T09:45:25.455811Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4584806439085727712, trigger=click)\n2026-04-24T09:45:25.893604Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4584806439085727712, trigger=visual_change)\n2026-04-24T09:45:27.069542Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Firefox, signals=2, browser=true)\n2026-04-24T09:45:27.071927Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=11, app=Firefox, title=None)\n2026-04-24T09:46:45.194533Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=53 elapsed=7.760180958s\n2026-04-24T09:46:45.195976Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 53 eligible frames\n2026-04-24T09:46:47.978735Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 5.8MB → 3.9MB (1.5x), 27 JPEGs deleted\n2026-04-24T09:46:50.106852Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 5.7MB → 2.0MB (2.8x), 24 JPEGs deleted\n2026-04-24T09:47:41.050891Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1144826565952075873, trigger=click)\n2026-04-24T09:48:42.051769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7029277336993072845, trigger=click)\n2026-04-24T09:48:42.106717Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7029277336993072845, trigger=click)\n2026-04-24T09:51:57.720599Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=86 elapsed=7.613944334s\n2026-04-24T09:51:57.721227Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 86 eligible frames\n2026-04-24T09:51:59.887209Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 35 frames, 6.5MB → 2.0MB (3.2x), 35 JPEGs deleted\n2026-04-24T09:52:05.085614Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 10.3MB → 3.6MB (2.9x), 49 JPEGs deleted\n2026-04-24T09:54:27.970458Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6640666081944178132, trigger=click)\n2026-04-24T09:57:13.235833Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=127 elapsed=8.092617s\n2026-04-24T09:57:13.235987Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 127 eligible frames\n2026-04-24T09:57:18.803261Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 73 frames, 12.5MB → 3.0MB (4.2x), 73 JPEGs deleted\n2026-04-24T09:57:24.824472Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 52 frames, 11.1MB → 4.0MB (2.8x), 52 JPEGs deleted\n2026-04-24T10:01:37.413726Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8376988566998297938, trigger=click)\n2026-04-24T10:02:28.461441Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=55 elapsed=3.632856417s\n2026-04-24T10:02:28.461968Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 55 eligible frames\n2026-04-24T10:02:30.124076Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.2MB → 0.2MB (19.5x), 25 JPEGs deleted\n2026-04-24T10:02:31.809292Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 6.2MB → 0.3MB (18.1x), 28 JPEGs deleted\n2026-04-24T10:03:55.692088Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3138891033414926334, trigger=click)\n2026-04-24T10:04:23.018837Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9217377342110388166, trigger=click)\n2026-04-24T10:04:36.753795Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8336819251013481167, trigger=click)\n2026-04-24T10:05:41.340647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8295693356485346454, trigger=click)\n2026-04-24T10:07:35.847705Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=47 elapsed=4.035074292s\n2026-04-24T10:07:35.847846Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 47 eligible frames\n2026-04-24T10:07:37.308099Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 3.8MB → 0.2MB (17.9x), 23 JPEGs deleted\n2026-04-24T10:07:38.656993Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 4.9MB → 0.3MB (14.3x), 22 JPEGs deleted\n2026-04-24T10:11:10.087328Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7020466661663521693, trigger=click)\n2026-04-24T10:11:20.636202Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=11, grace=300s)\n2026-04-24T10:12:41.287270Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=27 elapsed=2.627061209s\n2026-04-24T10:12:41.287689Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 27 eligible frames\n2026-04-24T10:12:42.165900Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.2MB → 0.2MB (10.2x), 13 JPEGs deleted\n2026-04-24T10:12:43.027939Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.7MB → 0.3MB (7.8x), 12 JPEGs deleted\n2026-04-24T10:16:25.911580Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Idle (timeout=300s, app=Firefox, id=11)\n2026-04-24T10:16:26.200392Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting ended (id=11)\n2026-04-24T10:17:46.130674Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=53 elapsed=3.023108458s\n2026-04-24T10:17:46.130778Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 53 eligible frames\n2026-04-24T10:17:47.707268Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.2MB → 0.2MB (19.5x), 25 JPEGs deleted\n2026-04-24T10:17:49.254961Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 5.8MB → 0.3MB (16.8x), 26 JPEGs deleted\n2026-04-24T10:22:52.226201Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=33 elapsed=2.961869041s\n2026-04-24T10:22:52.226734Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 33 eligible frames\n2026-04-24T10:22:53.241764Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.5MB → 0.2MB (11.7x), 15 JPEGs deleted\n2026-04-24T10:22:54.325284Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 3.5MB → 0.3MB (10.4x), 16 JPEGs deleted\n2026-04-24T10:28:01.604110Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=7.269846834s\n2026-04-24T10:28:01.605693Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T10:28:02.415596Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.7MB → 0.2MB (7.9x), 10 JPEGs deleted\n2026-04-24T10:28:03.310035Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.2MB → 0.3MB (6.5x), 10 JPEGs deleted\n2026-04-24T10:30:34.510666Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6492717525671906088, trigger=click)\n2026-04-24T10:30:35.393595Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6492717525671906088, trigger=click)\n2026-04-24T10:30:37.273284Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6492717525671906088, trigger=click)\n2026-04-24T10:30:37.351526Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6492717525671906088, trigger=click)\n2026-04-24T10:32:23.226072Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2116846968358481818, trigger=click)\n2026-04-24T10:32:23.322454Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2116846968358481818, trigger=click)\n2026-04-24T10:32:23.831122Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2116846968358481818, trigger=click)\n2026-04-24T10:32:24.073508Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2116846968358481818, trigger=click)\n2026-04-24T10:32:37.212353Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1831432399067337817, trigger=click)\n2026-04-24T10:32:37.329165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1831432399067337817, trigger=click)\n2026-04-24T10:32:38.158066Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1831432399067337817, trigger=click)\n2026-04-24T10:32:38.278528Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1831432399067337817, trigger=click)\n2026-04-24T10:33:12.028991Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=52 elapsed=8.711020667s\n2026-04-24T10:33:12.029148Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 52 eligible frames\n2026-04-24T10:33:14.310365Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.0MB → 0.2MB (18.7x), 24 JPEGs deleted\n2026-04-24T10:33:16.835684Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 5.8MB → 0.3MB (16.8x), 26 JPEGs deleted\n2026-04-24T10:33:24.939868Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8210130048459164633, trigger=click)\n2026-04-24T10:34:44.260746Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4460653676981297746, trigger=click)\n2026-04-24T10:34:44.369588Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4460653676981297746, trigger=click)\n2026-04-24T10:35:24.136627Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1637880906203540100, trigger=click)\n2026-04-24T10:35:24.237433Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1637880906203540100, trigger=click)\n2026-04-24T10:35:24.972083Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1637880906203540100, trigger=click)\n2026-04-24T10:35:24.977999Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1637880906203540100, trigger=click)\n2026-04-24T10:36:00.394626Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1637880906203540100, trigger=click)\n2026-04-24T10:36:01.325744Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1637880906203540100, trigger=click)\n2026-04-24T10:36:04.163426Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1637880906203540100, trigger=click)\n2026-04-24T10:36:06.614575Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1637880906203540100, trigger=click)\n2026-04-24T10:36:23.003531Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8210130048459164633, trigger=click)\n2026-04-24T10:36:23.060065Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8210130048459164633, trigger=click)\n2026-04-24T10:36:23.746984Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8210130048459164633, trigger=click)\n2026-04-24T10:36:23.798965Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8210130048459164633, trigger=click)\n2026-04-24T10:36:26.192092Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8210130048459164633, trigger=click)\n2026-04-24T10:36:26.294196Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8210130048459164633, trigger=click)\n2026-04-24T10:36:26.939378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8210130048459164633, trigger=click)\n2026-04-24T10:36:27.020045Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8210130048459164633, trigger=click)\n2026-04-24T10:36:44.241137Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4138904741364594758, trigger=click)\n2026-04-24T10:36:44.335571Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4138904741364594758, trigger=click)\n2026-04-24T10:36:47.455177Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4138904741364594758, trigger=click)\n2026-04-24T10:36:47.509556Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4138904741364594758, trigger=click)\n2026-04-24T10:36:53.967141Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4138904741364594758, trigger=click)\n2026-04-24T10:36:54.031192Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4138904741364594758, trigger=click)\n2026-04-24T10:36:54.580103Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4138904741364594758, trigger=click)\n2026-04-24T10:36:54.599397Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4138904741364594758, trigger=click)\n2026-04-24T10:36:59.648354Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4138904741364594758, trigger=click)\n2026-04-24T10:36:59.702068Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4138904741364594758, trigger=click)\n2026-04-24T10:37:00.486240Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4138904741364594758, trigger=click)\n2026-04-24T10:37:00.569806Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4138904741364594758, trigger=click)\n2026-04-24T10:37:03.062817Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4138904741364594758, trigger=click)\n2026-04-24T10:38:23.248611Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=62 elapsed=6.355404333s\n2026-04-24T10:38:23.248724Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 62 eligible frames\n2026-04-24T10:38:25.301510Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 5.3MB → 0.2MB (24.8x), 32 JPEGs deleted\n2026-04-24T10:38:26.987153Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 6.2MB → 0.3MB (18.1x), 28 JPEGs deleted\n2026-04-24T10:38:53.000027Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7506456211656557156, trigger=click)\n2026-04-24T10:38:54.854836Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7506456211656557156, trigger=click)\n2026-04-24T10:38:54.943770Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7506456211656557156, trigger=click)\n2026-04-24T10:38:55.806471Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7506456211656557156, trigger=click)\n2026-04-24T10:38:55.851826Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7506456211656557156, trigger=click)\n2026-04-24T10:38:59.952459Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7506456211656557156, trigger=click)\n2026-04-24T10:39:00.021010Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7506456211656557156, trigger=click)\n2026-04-24T10:39:11.421467Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5288122650368634950, trigger=click)\n2026-04-24T10:39:11.627140Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5288122650368634950, trigger=click)\n2026-04-24T10:39:15.865972Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5647233584915712869, trigger=click)\n2026-04-24T10:39:27.806842Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6797446331183970139, trigger=click)\n2026-04-24T10:39:36.993162Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6797446331183970139, trigger=click)\n2026-04-24T10:39:37.094863Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6797446331183970139, trigger=click)\n2026-04-24T10:39:38.857266Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6797446331183970139, trigger=click)\n2026-04-24T10:39:38.885058Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6797446331183970139, trigger=click)\n2026-04-24T10:39:40.081901Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6797446331183970139, trigger=click)\n2026-04-24T10:39:40.209094Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6797446331183970139, trigger=click)\n2026-04-24T10:39:41.230706Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6797446331183970139, trigger=click)\n2026-04-24T10:39:41.316549Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6797446331183970139, trigger=click)\n2026-04-24T10:39:42.300529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6797446331183970139, trigger=click)\n2026-04-24T10:39:42.335267Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6797446331183970139, trigger=click)\n2026-04-24T10:39:42.819907Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6797446331183970139, trigger=click)\n2026-04-24T10:39:44.964722Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6797446331183970139, trigger=click)\n2026-04-24T10:39:45.047161Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6797446331183970139, trigger=click)\n2026-04-24T10:39:50.935830Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6797446331183970139, trigger=click)\n2026-04-24T10:39:50.979295Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6797446331183970139, trigger=click)\n2026-04-24T10:39:51.846905Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6797446331183970139, trigger=click)\n2026-04-24T10:39:51.975222Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6797446331183970139, trigger=click)\n2026-04-24T10:39:59.483853Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=189720459388807654, trigger=click)\n2026-04-24T10:40:08.162998Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1001287872104142188, trigger=click)\n2026-04-24T10:40:08.217464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1001287872104142188, trigger=click)\n2026-04-24T10:40:25.570644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7506456211656557156, trigger=click)\n2026-04-24T10:40:25.623897Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7506456211656557156, trigger=click)\n2026-04-24T10:42:52.276851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6865363316354517122, trigger=click)\n2026-04-24T10:43:30.979373Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=69 elapsed=3.981173208s\n2026-04-24T10:43:30.979493Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 69 eligible frames\n2026-04-24T10:43:33.032472Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 5.3MB → 0.2MB (24.8x), 32 JPEGs deleted\n2026-04-24T10:43:35.154193Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 35 frames, 7.8MB → 0.3MB (22.6x), 35 JPEGs deleted\n2026-04-24T10:48:42.353643Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=105 elapsed=7.108326041s\n2026-04-24T10:48:42.353759Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 105 eligible frames\n2026-04-24T10:48:45.352717Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 50 frames, 8.3MB → 0.2MB (38.3x), 50 JPEGs deleted\n2026-04-24T10:48:48.458342Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 53 frames, 11.8MB → 0.3MB (34.0x), 53 JPEGs deleted\n2026-04-24T10:53:48.818545Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 96 eligible frames\n2026-04-24T10:53:51.516821Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 46 frames, 7.7MB → 0.2MB (35.3x), 46 JPEGs deleted\n2026-04-24T10:53:54.258370Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 48 frames, 10.6MB → 0.3MB (30.8x), 48 JPEGs deleted\n2026-04-24T10:54:52.658901Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2121771095128526678, trigger=click)\n2026-04-24T10:54:52.702563Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2121771095128526678, trigger=click)\n2026-04-24T10:58:55.960129Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=32 elapsed=1.68997925s\n2026-04-24T10:58:55.960884Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 32 eligible frames\n2026-04-24T10:58:57.009506Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.5MB → 0.2MB (11.7x), 15 JPEGs deleted\n2026-04-24T10:58:57.964390Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 3.3MB → 0.3MB (9.8x), 15 JPEGs deleted\n2026-04-24T11:01:13.426549Z WARN sqlx::query: summary=\"COMMIT\" db.statement=\"\" rows_affected=6 rows_returned=0 elapsed=2.57432875s\n2026-04-24T11:01:13.637056Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=119 elapsed=1.472548834s\n2026-04-24T11:04:08.115953Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=26 elapsed=10.139433s\n2026-04-24T11:04:08.118157Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 26 eligible frames\n2026-04-24T11:04:09.481029Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.0MB → 0.2MB (9.4x), 12 JPEGs deleted\n2026-04-24T11:04:11.299647Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.7MB → 0.3MB (7.8x), 12 JPEGs deleted\n2026-04-24T11:09:20.119768Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=46 elapsed=8.766899792s\n2026-04-24T11:09:20.121666Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 46 eligible frames\n2026-04-24T11:09:21.854291Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 3.7MB → 0.2MB (17.1x), 22 JPEGs deleted\n2026-04-24T11:09:23.592453Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 4.9MB → 0.3MB (14.3x), 22 JPEGs deleted\n2026-04-24T11:14:30.205712Z WARN sqlx::query: summary=\"PRAGMA wal_checkpoint(TRUNCATE)\" db.statement=\"\" rows_affected=0 rows_returned=1 elapsed=5.284319375s\n2026-04-24T11:14:30.206970Z WARN screenpipe_db::db: wal checkpoint: busy (could not truncate), 3480 pages in WAL\n2026-04-24T11:14:30.245105Z WARN sqlx::query: summary=\"BEGIN IMMEDIATE\" db.statement=\"\" rows_affected=1 rows_returned=0 elapsed=3.2198825s\n2026-04-24T11:14:33.584945Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=59 elapsed=9.97889125s\n2026-04-24T11:14:33.585189Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 59 eligible frames\n2026-04-24T11:14:36.287033Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 4.7MB → 0.2MB (21.7x), 28 JPEGs deleted\n2026-04-24T11:14:38.846113Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 6.4MB → 0.3MB (18.8x), 29 JPEGs deleted\n2026-04-24T11:15:36.074721Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6788130764516421466, trigger=click)\n2026-04-24T11:15:49.931607Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-22530481736454815, trigger=click)\n2026-04-24T11:15:50.035546Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-22530481736454815, trigger=click)\n2026-04-24T11:17:02.963796Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8802872861699676927, trigger=click)\n2026-04-24T11:17:03.081449Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8802872861699676927, trigger=click)\n2026-04-24T11:17:03.870542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8802872861699676927, trigger=click)\n2026-04-24T11:17:03.984391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8802872861699676927, trigger=click)\n2026-04-24T11:17:07.272429Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8525863568130538432, trigger=click)\n2026-04-24T11:17:07.383212Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8525863568130538432, trigger=click)\n2026-04-24T11:17:12.845407Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5038866805693356757, trigger=click)\n2026-04-24T11:17:13.891043Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2062508901381276849, trigger=click)\n2026-04-24T11:17:14.543976Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2062508901381276849, trigger=click)\n2026-04-24T11:17:14.647466Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2062508901381276849, trigger=click)\n2026-04-24T11:17:17.777143Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4745751100713206125, trigger=click)\n2026-04-24T11:17:17.878701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4745751100713206125, trigger=click)\n2026-04-24T11:17:18.868265Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4745751100713206125, trigger=click)\n2026-04-24T11:17:18.960261Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4745751100713206125, trigger=click)\n2026-04-24T11:17:26.320191Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=546446222346092638, trigger=click)\n2026-04-24T11:17:27.276494Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=546446222346092638, trigger=click)\n2026-04-24T11:17:27.389582Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=546446222346092638, trigger=click)\n2026-04-24T11:17:28.332323Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=546446222346092638, trigger=click)\n2026-04-24T11:17:28.408336Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=546446222346092638, trigger=click)\n2026-04-24T11:17:29.250117Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=546446222346092638, trigger=click)\n2026-04-24T11:17:29.357243Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=546446222346092638, trigger=click)\n2026-04-24T11:17:30.394922Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=546446222346092638, trigger=click)\n2026-04-24T11:17:30.464041Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=546446222346092638, trigger=click)\n2026-04-24T11:17:31.369627Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=546446222346092638, trigger=click)\n2026-04-24T11:17:31.502905Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=546446222346092638, trigger=click)\n2026-04-24T11:18:17.660370Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1715328449965286316, trigger=click)\n2026-04-24T11:18:17.704523Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1715328449965286316, trigger=click)\n2026-04-24T11:19:07.234939Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2318062521896008072, trigger=click)\n2026-04-24T11:19:07.314286Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2318062521896008072, trigger=click)\n2026-04-24T11:19:08.586319Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2318062521896008072, trigger=click)\n2026-04-24T11:19:08.652061Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2318062521896008072, trigger=click)\n2026-04-24T11:19:10.937180Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2318062521896008072, trigger=click)\n2026-04-24T11:19:11.022356Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2318062521896008072, trigger=click)\n2026-04-24T11:19:11.612476Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2318062521896008072, trigger=click)\n2026-04-24T11:19:11.737592Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2318062521896008072, trigger=click)\n2026-04-24T11:19:20.085067Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2318062521896008072, trigger=click)\n2026-04-24T11:19:20.145277Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2318062521896008072, trigger=click)\n2026-04-24T11:19:21.663709Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2318062521896008072, trigger=click)\n2026-04-24T11:19:21.733223Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2318062521896008072, trigger=click)\n2026-04-24T11:19:36.963451Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3234145084165916874, trigger=click)\n2026-04-24T11:19:37.049292Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3234145084165916874, trigger=click)\n2026-04-24T11:19:46.980993Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=73 elapsed=8.12921025s\n2026-04-24T11:19:46.981331Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 73 eligible frames\n2026-04-24T11:19:49.195477Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 35 frames, 5.8MB → 0.2MB (27.1x), 35 JPEGs deleted\n2026-04-24T11:19:51.402937Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 8.0MB → 0.3MB (23.2x), 36 JPEGs deleted\n2026-04-24T11:24:03.875288Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8802872861699676927, trigger=click)\n2026-04-24T11:24:41.170368Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8802872861699676927, trigger=click)\n2026-04-24T11:24:41.209379Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8802872861699676927, trigger=click)\n2026-04-24T11:24:42.706762Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8802872861699676927, trigger=click)\n2026-04-24T11:24:42.986168Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8802872861699676927, trigger=click)\n2026-04-24T11:24:59.555478Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=79 elapsed=8.092311041s\n2026-04-24T11:24:59.556072Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 79 eligible frames\n2026-04-24T11:25:01.917632Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 38 frames, 6.3MB → 0.2MB (29.3x), 38 JPEGs deleted\n2026-04-24T11:25:04.626046Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 8.6MB → 0.3MB (25.1x), 39 JPEGs deleted\n2026-04-24T11:26:27.950111Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1991352563265595130, trigger=click)\n2026-04-24T11:26:28.047358Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1991352563265595130, trigger=click)\n2026-04-24T11:26:30.195182Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1991352563265595130, trigger=click)\n2026-04-24T11:26:36.773095Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1991352563265595130, trigger=click)\n2026-04-24T11:26:46.635750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1966803153325473422, trigger=click)\n2026-04-24T11:26:46.715887Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1966803153325473422, trigger=click)\n2026-04-24T11:26:47.438290Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1966803153325473422, trigger=click)\n2026-04-24T11:26:47.512389Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1966803153325473422, trigger=click)\n2026-04-24T11:26:48.756558Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1966803153325473422, trigger=click)\n2026-04-24T11:26:48.803802Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1966803153325473422, trigger=click)\n2026-04-24T11:26:49.451792Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1966803153325473422, trigger=click)\n2026-04-24T11:26:49.486730Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1966803153325473422, trigger=click)\n2026-04-24T11:26:52.399484Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1966803153325473422, trigger=click)\n2026-04-24T11:26:52.438841Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1966803153325473422, trigger=click)\n2026-04-24T11:26:57.222513Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1966803153325473422, trigger=click)\n2026-04-24T11:26:57.265649Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1966803153325473422, trigger=click)\n2026-04-24T11:27:08.007585Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1966803153325473422, trigger=click)\n2026-04-24T11:27:08.086776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1966803153325473422, trigger=click)\n2026-04-24T11:27:11.914496Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1966803153325473422, trigger=click)\n2026-04-24T11:27:12.011441Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1966803153325473422, trigger=click)\n2026-04-24T11:27:38.490189Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5136649101983276250, trigger=click)\n2026-04-24T11:27:38.563480Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5136649101983276250, trigger=click)\n2026-04-24T11:27:45.819896Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5343601985217606192, trigger=click)\n2026-04-24T11:27:45.865840Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5343601985217606192, trigger=click)\n2026-04-24T11:27:56.407361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7326400327479647153, trigger=click)\n2026-04-24T11:28:19.032138Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=454968113929338879, trigger=click)\n2026-04-24T11:28:22.995039Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=454968113929338879, trigger=click)\n2026-04-24T11:28:23.099216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=454968113929338879, trigger=click)\n2026-04-24T11:28:34.189456Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=454968113929338879, trigger=click)\n2026-04-24T11:28:34.275942Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=454968113929338879, trigger=click)\n2026-04-24T11:28:57.544774Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-642622541178249943, trigger=click)\n2026-04-24T11:29:10.122754Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-402529802374466615, trigger=click)\n2026-04-24T11:29:15.646732Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1017033749084410453, trigger=click)\n2026-04-24T11:29:16.441568Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1017033749084410453, trigger=click)\n2026-04-24T11:29:17.374479Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1017033749084410453, trigger=click)\n2026-04-24T11:29:20.408918Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1017033749084410453, trigger=click)\n2026-04-24T11:29:25.917935Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1017033749084410453, trigger=click)\n2026-04-24T11:29:26.032395Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1017033749084410453, trigger=click)\n2026-04-24T11:29:56.605347Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4915152446458762061, trigger=click)\n2026-04-24T11:30:09.554906Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7691415532025274694, trigger=click)\n2026-04-24T11:30:09.633531Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7691415532025274694, trigger=click)\n2026-04-24T11:30:13.061011Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=87 elapsed=8.420847s\n2026-04-24T11:30:13.061505Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 87 eligible frames\n2026-04-24T11:30:15.140555Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7887654223188695565, trigger=click)\n2026-04-24T11:30:15.272372Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7887654223188695565, trigger=click)\n2026-04-24T11:30:16.526074Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 44 frames, 7.3MB → 0.2MB (33.8x), 44 JPEGs deleted\n2026-04-24T11:30:19.072590Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 41 frames, 9.1MB → 0.3MB (26.4x), 41 JPEGs deleted\n2026-04-24T11:30:28.910390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9119193263002051277, trigger=click)\n2026-04-24T11:30:28.996228Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9119193263002051277, trigger=click)\n2026-04-24T11:30:29.837234Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9119193263002051277, trigger=click)\n2026-04-24T11:30:29.837239Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9119193263002051277, trigger=click)\n2026-04-24T11:30:37.533908Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7887654223188695565, trigger=click)\n2026-04-24T11:30:55.949882Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3639440529838385160, trigger=click)\n2026-04-24T11:30:55.988992Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3639440529838385160, trigger=click)\n2026-04-24T11:31:05.793833Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2249107635929059023, trigger=click)\n2026-04-24T11:31:05.839474Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2249107635929059023, trigger=click)\n2026-04-24T11:31:35.566095Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7887654223188695565, trigger=click)\n2026-04-24T11:31:35.625287Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7887654223188695565, trigger=click)\n2026-04-24T11:31:37.137446Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7887654223188695565, trigger=click)\n2026-04-24T11:31:37.253092Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7887654223188695565, trigger=click)\n2026-04-24T11:31:38.382470Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7887654223188695565, trigger=click)\n2026-04-24T11:31:38.428871Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7887654223188695565, trigger=click)\n2026-04-24T11:35:26.395400Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=50 elapsed=7.309834625s\n2026-04-24T11:35:26.395521Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 50 eligible frames\n2026-04-24T11:35:28.048669Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.3MB → 0.2MB (20.2x), 26 JPEGs deleted\n2026-04-24T11:35:29.394845Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 4.9MB → 0.3MB (14.3x), 22 JPEGs deleted\n2026-04-24T11:38:57.800387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7887654223188695565, trigger=click)\n2026-04-24T11:38:57.907003Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7887654223188695565, trigger=click)\n2026-04-24T11:40:29.531574Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 74 eligible frames\n2026-04-24T11:40:31.755450Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 6.2MB → 0.2MB (28.6x), 37 JPEGs deleted\n2026-04-24T11:40:33.819941Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 35 frames, 7.8MB → 0.3MB (22.6x), 35 JPEGs deleted\n2026-04-24T11:42:47.508034Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2226488268323822878, trigger=click)\n2026-04-24T11:43:52.537775Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2226488268323822878, trigger=click)\n2026-04-24T11:43:52.582640Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2226488268323822878, trigger=click)\n2026-04-24T11:43:53.401022Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2226488268323822878, trigger=click)\n2026-04-24T11:43:53.448215Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2226488268323822878, trigger=click)\n2026-04-24T11:45:36.492488Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=36 elapsed=2.638361s\n2026-04-24T11:45:36.492597Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 36 eligible frames\n2026-04-24T11:45:37.618526Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.8MB → 0.2MB (13.3x), 17 JPEGs deleted\n2026-04-24T11:45:38.678431Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.8MB → 0.3MB (11.1x), 17 JPEGs deleted\n2026-04-24T11:46:07.200242Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2226488268323822878, trigger=click)\n2026-04-24T11:46:07.280827Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2226488268323822878, trigger=click)\n2026-04-24T11:47:27.447688Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=847529865007162774, trigger=click)\n2026-04-24T11:47:27.500158Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=847529865007162774, trigger=click)\n2026-04-24T11:48:07.693419Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2226488268323822878, trigger=click)\n2026-04-24T11:48:07.784552Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2226488268323822878, trigger=click)\n2026-04-24T11:48:10.115804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2226488268323822878, trigger=click)\n2026-04-24T11:48:11.685855Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2244600036113367803, trigger=click)\n2026-04-24T11:48:30.224122Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3639440529838385160, trigger=click)\n2026-04-24T11:48:30.295802Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3639440529838385160, trigger=click)\n2026-04-24T11:49:29.292618Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4704770792594975750, trigger=click)\n2026-04-24T11:49:29.371323Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4704770792594975750, trigger=click)\n2026-04-24T11:49:33.239786Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5728453670193685945, trigger=click)\n2026-04-24T11:49:33.347043Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5728453670193685945, trigger=click)\n2026-04-24T11:49:45.356214Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4704770792594975750, trigger=click)\n2026-04-24T11:49:48.517785Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4704770792594975750, trigger=click)\n2026-04-24T11:49:52.402826Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4704770792594975750, trigger=click)\n2026-04-24T11:49:52.464446Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4704770792594975750, trigger=click)\n2026-04-24T11:50:26.525288Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8987259266673623237, trigger=click)\n2026-04-24T11:50:26.604192Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8987259266673623237, trigger=click)\n2026-04-24T11:50:41.344037Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8987259266673623237, trigger=click)\n2026-04-24T11:50:41.435253Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8987259266673623237, trigger=click)\n2026-04-24T11:50:46.184263Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=7.493976042s\n2026-04-24T11:50:46.184663Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T11:50:47.017520Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.7MB → 0.2MB (7.9x), 10 JPEGs deleted\n2026-04-24T11:50:47.851650Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.2MB → 0.3MB (6.5x), 10 JPEGs deleted\n2026-04-24T11:51:29.775346Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7651531562244479791, trigger=click)\n2026-04-24T11:52:06.460923Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8745851775815519072, trigger=click)\n2026-04-24T11:52:06.490969Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8745851775815519072, trigger=click)\n2026-04-24T11:52:22.320386Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6987604592232044021, trigger=click)\n2026-04-24T11:52:37.038831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3247257549596365971, trigger=click)\n2026-04-24T11:52:37.359289Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3247257549596365971, trigger=click)\n2026-04-24T11:53:32.224321Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8171132538006504785, trigger=click)\n2026-04-24T11:54:27.480915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-712054823232090435, trigger=click)\n2026-04-24T11:55:26.937099Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5379945422637760051, trigger=click)\n2026-04-24T11:55:44.784941Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5379945422637760051, trigger=click)\n2026-04-24T11:55:57.672232Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=21 elapsed=9.80646825s\n2026-04-24T11:55:57.673343Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames\n2026-04-24T11:55:57.999241Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5379945422637760051, trigger=click)\n2026-04-24T11:55:58.097487Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5379945422637760051, trigger=click)\n2026-04-24T11:55:59.082235Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.7MB → 0.2MB (7.9x), 10 JPEGs deleted\n2026-04-24T11:56:00.316153Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 2.0MB → 0.3MB (5.9x), 9 JPEGs deleted\n2026-04-24T11:56:11.434858Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2103904139782091093, trigger=click)\n2026-04-24T11:56:11.569778Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2103904139782091093, trigger=click)\n2026-04-24T11:56:13.508268Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2103904139782091093, trigger=click)\n2026-04-24T11:56:13.616948Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2103904139782091093, trigger=click)\n2026-04-24T11:56:50.189925Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=478210856716390722, trigger=click)\n2026-04-24T11:57:07.047480Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5379945422637760051, trigger=click)\n2026-04-24T11:57:09.247598Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5379945422637760051, trigger=click)\n2026-04-24T11:57:09.382687Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5379945422637760051, trigger=click)\n2026-04-24T11:57:21.721277Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=558925331182674223, trigger=click)\n2026-04-24T11:57:26.916303Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6218584631276573068, trigger=click)\n2026-04-24T11:57:26.998239Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6218584631276573068, trigger=click)\n2026-04-24T11:57:32.474143Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5379945422637760051, trigger=click)\n2026-04-24T11:57:33.599485Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5379945422637760051, trigger=click)\n2026-04-24T11:57:33.683001Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5379945422637760051, trigger=click)\n2026-04-24T11:57:37.020288Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5379945422637760051, trigger=click)\n2026-04-24T11:57:45.461961Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1773521823376575033, trigger=click)\n2026-04-24T11:57:53.057752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7393378978552822601, trigger=click)\n2026-04-24T11:57:53.144984Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7393378978552822601, trigger=click)\n2026-04-24T11:58:12.060395Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8282289718042919691, trigger=click)\n2026-04-24T11:58:12.155601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8282289718042919691, trigger=click)\n2026-04-24T11:58:36.946140Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3261379971817257935, trigger=click)\n2026-04-24T11:58:37.036552Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3261379971817257935, trigger=click)\n2026-04-24T11:58:37.603249Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3261379971817257935, trigger=click)\n2026-04-24T11:58:37.694808Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3261379971817257935, trigger=click)\n2026-04-24T11:58:42.787296Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4651124611459673128, trigger=click)\n2026-04-24T11:59:00.009401Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5328411650175126901, trigger=click)\n2026-04-24T11:59:10.382596Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5328411650175126901, trigger=click)\n2026-04-24T11:59:11.887481Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5328411650175126901, trigger=click)\n2026-04-24T11:59:16.732387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5328411650175126901, trigger=click)\n2026-04-24T11:59:22.904996Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5328411650175126901, trigger=click)\n2026-04-24T11:59:33.574205Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6308441255669888152, trigger=click)\n2026-04-24T11:59:33.648403Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6308441255669888152, trigger=click)\n2026-04-24T12:00:22.318050Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1562831604554066619, trigger=click)\n2026-04-24T12:00:22.429417Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1562831604554066619, trigger=click)\n2026-04-24T12:00:30.884781Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=437639199760829102, trigger=click)\n2026-04-24T12:00:50.596091Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2863135864238171172, trigger=click)\n2026-04-24T12:00:50.617570Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2863135864238171172, trigger=click)\n2026-04-24T12:00:52.228104Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2863135864238171172, trigger=click)\n2026-04-24T12:00:52.333258Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2863135864238171172, trigger=click)\n2026-04-24T12:01:08.422013Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=86 elapsed=8.059027166s\n2026-04-24T12:01:08.422136Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 86 eligible frames\n2026-04-24T12:01:11.139046Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 42 frames, 7.0MB → 0.2MB (32.3x), 42 JPEGs deleted\n2026-04-24T12:01:13.663660Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 42 frames, 9.3MB → 0.3MB (27.0x), 42 JPEGs deleted\n2026-04-24T12:01:49.752684Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2863135864238171172, trigger=click)\n2026-04-24T12:01:52.941348Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2863135864238171172, trigger=click)\n2026-04-24T12:01:52.979852Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2863135864238171172, trigger=click)\n2026-04-24T12:01:54.305215Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2863135864238171172, trigger=click)\n2026-04-24T12:01:54.375630Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2863135864238171172, trigger=click)\n2026-04-24T12:01:56.895713Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2863135864238171172, trigger=click)\n2026-04-24T12:01:56.972994Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2863135864238171172, trigger=click)\n2026-04-24T12:01:59.262967Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2863135864238171172, trigger=click)\n2026-04-24T12:01:59.331034Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2863135864238171172, trigger=click)\n2026-04-24T12:02:13.036432Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5328411650175126901, trigger=click)\n2026-04-24T12:02:13.752366Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5328411650175126901, trigger=click)\n2026-04-24T12:02:16.312369Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5328411650175126901, trigger=click)\n2026-04-24T12:02:16.375677Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5328411650175126901, trigger=click)\n2026-04-24T12:02:18.892813Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5328411650175126901, trigger=click)\n2026-04-24T12:02:18.920159Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5328411650175126901, trigger=click)\n2026-04-24T12:02:21.714489Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5328411650175126901, trigger=click)\n2026-04-24T12:02:21.755525Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5328411650175126901, trigger=click)\n2026-04-24T12:02:57.117667Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5328411650175126901, trigger=click)\n2026-04-24T12:02:57.177770Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5328411650175126901, trigger=click)\n2026-04-24T12:04:06.259272Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5328411650175126901, trigger=click)\n2026-04-24T12:04:12.333349Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3445169997545261113, trigger=click)\n2026-04-24T12:04:12.408740Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3445169997545261113, trigger=click)\n2026-04-24T12:06:21.300248Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=130 elapsed=7.620404083s\n2026-04-24T12:06:21.300400Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 130 eligible frames\n2026-04-24T12:06:25.398281Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 64 frames, 10.7MB → 0.2MB (48.6x), 64 JPEGs deleted\n2026-04-24T12:06:29.195829Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 64 frames, 14.2MB → 0.3MB (40.9x), 64 JPEGs deleted\n2026-04-24T12:06:30.560910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4640488320940221807, trigger=click)\n2026-04-24T12:06:46.075791Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6741164185393943038, trigger=click)\n2026-04-24T12:06:46.118540Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6741164185393943038, trigger=click)\n2026-04-24T12:07:45.754257Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6741164185393943038, trigger=click)\n2026-04-24T12:07:45.800094Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6741164185393943038, trigger=click)\n2026-04-24T12:08:47.360792Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6741164185393943038, trigger=click)\n2026-04-24T12:08:47.384461Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6741164185393943038, trigger=click)\n2026-04-24T12:11:37.044248Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=116 elapsed=7.837720917s\n2026-04-24T12:11:37.044353Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 116 eligible frames\n2026-04-24T12:11:40.364433Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 57 frames, 9.5MB → 0.2MB (43.5x), 57 JPEGs deleted\n2026-04-24T12:11:43.727441Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 57 frames, 12.6MB → 0.3MB (36.5x), 57 JPEGs deleted\n2026-04-24T12:16:45.733667Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=87 elapsed=1.971495458s\n2026-04-24T12:16:45.733779Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 87 eligible frames\n2026-04-24T12:16:48.304087Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 44 frames, 7.3MB → 0.2MB (33.8x), 44 JPEGs deleted\n2026-04-24T12:16:50.675184Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 41 frames, 9.1MB → 0.3MB (26.4x), 41 JPEGs deleted\n2026-04-24T12:21:55.833056Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=55 elapsed=5.146915167s\n2026-04-24T12:21:55.833420Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 55 eligible frames\n2026-04-24T12:21:57.344071Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.2MB → 0.2MB (19.5x), 25 JPEGs deleted\n2026-04-24T12:21:59.022653Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 6.2MB → 0.3MB (18.1x), 28 JPEGs deleted\n2026-04-24T12:27:03.840198Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8612018992098909652, trigger=click)\n2026-04-24T12:27:07.783762Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=8.749967833s\n2026-04-24T12:27:07.784170Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-24T12:27:08.724397Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.7MB → 0.2MB (7.9x), 10 JPEGs deleted\n2026-04-24T12:27:09.510979Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.2MB → 0.3MB (6.5x), 10 JPEGs deleted\n2026-04-24T12:32:10.468896Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 54 eligible frames\n2026-04-24T12:32:12.110566Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.3MB → 0.2MB (20.2x), 26 JPEGs deleted\n2026-04-24T12:32:13.701788Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 5.8MB → 0.3MB (16.8x), 26 JPEGs deleted\n2026-04-24T12:37:18.383692Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=35 elapsed=4.670668709s\n2026-04-24T12:37:18.383798Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 35 eligible frames\n2026-04-24T12:37:19.504947Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.8MB → 0.2MB (13.3x), 17 JPEGs deleted\n2026-04-24T12:37:20.513285Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 3.5MB → 0.3MB (10.4x), 16 JPEGs deleted\n2026-04-24T12:39:39.930433Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3445169997545261113, trigger=click)\n2026-04-24T12:39:42.664192Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3445169997545261113, trigger=click)\n2026-04-24T12:39:44.374232Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3445169997545261113, trigger=click)\n2026-04-24T12:39:51.391341Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3445169997545261113, trigger=click)\n2026-04-24T12:40:06.731596Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3445169997545261113, trigger=click)\n2026-04-24T12:42:10.444340Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3445169997545261113, trigger=click)\n2026-04-24T12:42:10.517488Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3445169997545261113, trigger=click)\n2026-04-24T12:42:22.059428Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=28 elapsed=1.529772875s\n2026-04-24T12:42:22.059526Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames\n2026-04-24T12:42:22.944668Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.2MB → 0.2MB (10.2x), 13 JPEGs deleted\n2026-04-24T12:42:23.793952Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.9MB → 0.3MB (8.5x), 13 JPEGs deleted\n2026-04-24T12:44:27.560551Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8306060799962195516, trigger=click)\n2026-04-24T12:44:27.671108Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8306060799962195516, trigger=click)\n2026-04-24T12:44:44.538111Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6900539608577226211, trigger=click)\n2026-04-24T12:45:32.993387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8306060799962195516, trigger=click)\n2026-04-24T12:45:33.068954Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8306060799962195516, trigger=click)\n2026-04-24T12:46:01.322827Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8306060799962195516, trigger=click)\n2026-04-24T12:46:01.408016Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8306060799962195516, trigger=click)\n2026-04-24T12:47:28.142498Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=30 elapsed=4.357667458s\n2026-04-24T12:47:28.142605Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 30 eligible frames\n2026-04-24T12:47:29.070019Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.3MB → 0.2MB (11.0x), 14 JPEGs deleted\n2026-04-24T12:47:30.005087Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 3.1MB → 0.3MB (9.1x), 14 JPEGs deleted\n2026-04-24T12:52:37.356156Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=37 elapsed=7.343908625s\n2026-04-24T12:52:37.357331Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 37 eligible frames\n2026-04-24T12:52:38.436826Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.7MB → 0.2MB (12.5x), 16 JPEGs deleted\n2026-04-24T12:52:39.624271Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 4.2MB → 0.3MB (12.3x), 19 JPEGs deleted\n2026-04-24T12:53:43.048935Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2132150564896673439, trigger=click)\n2026-04-24T12:53:43.118644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2132150564896673439, trigger=click)\n2026-04-24T12:53:43.868309Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2132150564896673439, trigger=click)\n2026-04-24T12:53:43.995118Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2132150564896673439, trigger=click)\n2026-04-24T12:53:44.545646Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2132150564896673439, trigger=click)","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.16458334,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.16458334,"top":0.05888889,"width":0.16458334,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.16875,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.32916668,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.33333334,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.49340278,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.49756944,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.6576389,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.66180557,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.821875,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.82604164,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"screenpipe\"","depth":1,"bounds":{"left":0.4722222,"top":0.033333335,"width":0.058333334,"height":0.017777778},"role_description":"text"}]...
|
-356136518297807770
|
410293855994881395
|
click
|
accessibility
|
NULL
|
Last login: Thu Apr 23 14:01:28 on ttys008
Poetry Last login: Thu Apr 23 14:01:28 on ttys008
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-start
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-04-24T09:19:23.948881Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store
checking permissions...
screen recording: ok
accessibility: ok
2026-04-24T09:19:24.012726Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-04-24T09:19:24.548628Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-04-24T09:19:24.550486Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-04-24T09:19:24.550876Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-04-24T09:19:24.587519Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-04-24T09:19:24.587575Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-04-24T09:19:24.587822Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-04-24T09:19:24.587784Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-04-24T09:19:24.587750Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-04-24T09:19:24.587842Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-04-24T09:19:24.587884Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-04-24T09:19:24.599482Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))
2026-04-24T09:19:24.604417Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-04-24T09:19:24.604614Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-04-24T09:19:24.605022Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-04-24T09:19:24.605182Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-04-24T09:19:24.605334Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-04-24T09:19:24.605840Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary
2026-04-24T09:19:24.605858Z INFO screenpipe_core::pipes: loaded 6 pipes from "/Users/lukas/.screenpipe/pipes"
_
__________________ ___ ____ ____ (_____ ___
/ ___/ ___/ ___/ _ \/ _ \/ __ \ / __ \/ / __ \/ _ \
(__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/
/____/\___/_/ \___/\___/_/ /_/ / .___/_/ .___/\___/
/_/ /_/
power AI by everything you've seen, said or heard
open source | runs locally | developer friendly
┌────────────────────────┬────────────────────────────────────┐
│ setting │ value │
├────────────────────────┼────────────────────────────────────┤
│ audio chunk duration │ 30 seconds │
│ port │ 3030 │
│ audio disabled │ true │
│ vision disabled │ false │
│ pause on DRM content │ false │
│ audio engine │ Parakeet │
│ vad engine │ Silero │
│ data directory │ /Users/lukas/.screenpipe │
│ debug mode │ false │
│ telemetry │ true │
│ use pii removal │ true │
│ use all monitors │ true │
│ ignored windows │ ["Boosteroid"] │
│ included windows │ [] │
│ cloud sync │ disabled │
│ auto-destruct pid │ 0 │
│ deepgram key │ not set │
│ api auth │ enabled │
2026-04-24T09:19:24.607221Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)
2026-04-24T09:19:24.612773Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh
│ encrypt secrets │ disabled │
│ retention days │ 14 │
├────────────────────────┼────────────────────────────────────┤
│ languages │ │
│ │ all languages │
├────────────────────────┼────────────────────────────────────┤
│ monitors │ │
│ │ id: 1 │
│ │ id: 2 │
├────────────────────────┼────────────────────────────────────┤
│ audio devices │ │
│ │ disabled │
└────────────────────────┴────────────────────────────────────┘
you are using local processing. all your data stays on your computer.
warning: telemetry is enabled. only error-level data will be sent.
to disable, use the --disable-telemetry flag.
check latest changes here: https://github.com/screenpipe/screenpipe/releases
2026-04-24T09:19:24.622220Z INFO screenpipe: starting UI event capture
2026-04-24T09:19:24.635769Z INFO screenpipe_engine::ui_recorder: Starting UI event capture
2026-04-24T09:19:24.649336Z INFO screenpipe_engine::ui_recorder: UI recording session started: d723d582-4d6f-4e04-921c-c054be5f7efc
2026-04-24T09:19:24.649340Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)
2026-04-24T09:19:24.649501Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-23 06:19:24.649500 UTC to 2026-04-24 06:19:24.649500 UTC)
2026-04-24T09:19:24.650143Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)
2026-04-24T09:19:24.657009Z INFO screenpipe_engine::server: Server listening on [IP_ADDRESS]:3030
2026-04-24T09:19:24.667216Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030
2026-04-24T09:19:24.729181Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)
2026-04-24T09:19:24.729212Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)
2026-04-24T09:19:24.729249Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)
2026-04-24T09:19:24.779505Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-04-24T09:19:24.779540Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-04-24T09:19:24.779553Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)
2026-04-24T09:19:24.779561Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)
2026-04-24T09:19:24.779558Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-04-24T09:19:25.448244Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)
2026-04-24T09:19:25.568925Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=75340, dur=59ms
2026-04-24T09:19:25.573938Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)
2026-04-24T09:19:25.719368Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=75341, dur=92ms
2026-04-24T09:19:25.720846Z INFO sck_rs::stream_manager: invalidated persistent stream for display 2
2026-04-24T09:19:25.858429Z WARN sqlx::query: summary="SELECT f.id, f.timestamp, f.offset_index, …" db.statement="\n\nSELECT\n f.id,\n f.timestamp,\n f.offset_index,\n COALESCE(\n SUBSTR(f.full_text, 1, 200),\n SUBSTR(f.accessibility_text, 1, 200),\n (\n SELECT\n SUBSTR(ot.text, 1, 200)\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as text,\n COALESCE(\n f.app_name,\n (\n SELECT\n ot.app_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as app_name,\n COALESCE(\n f.window_name,\n (\n SELECT\n ot.window_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as window_name,\n COALESCE(vc.device_name, f.device_name) as screen_device,\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\n COALESCE(vc.fps, 0.033) as chunk_fps,\n f.browser_url,\n f.machine_id\nFROM\n frames f\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\nWHERE\n f.timestamp >= ?1\n AND f.timestamp <= ?2\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\nORDER BY\n f.timestamp DESC,\n f.offset_index DESC\nLIMIT\n 10000\n" rows_affected=0 rows_returned=2488 elapsed=1.208421959s
2026-04-24T09:19:25.864500Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 2488 frame entries, coverage from 2026-04-23 06:19:24.649500 UTC
2026-04-24T09:19:55.890230Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)
2026-04-24T09:20:14.750156Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1028901310814388349, trigger=visual_change)
2026-04-24T09:20:18.033810Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=587886836991007024, trigger=visual_change)
2026-04-24T09:20:31.827646Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=116 elapsed=7.239465292s
2026-04-24T09:20:31.828139Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 116 eligible frames
2026-04-24T09:20:40.295044Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 51 frames, 11.8MB → 5.8MB (2.0x), 51 JPEGs deleted
2026-04-24T09:20:46.893269Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 63 frames, 13.5MB → 4.0MB (3.4x), 63 JPEGs deleted
2026-04-24T09:21:08.939443Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2712612361587311688, trigger=click)
2026-04-24T09:21:43.598800Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)
2026-04-24T09:21:43.671594Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1454730608342357520, trigger=click)
2026-04-24T09:21:45.091008Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=visual_change)
2026-04-24T09:21:46.383314Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1454730608342357520, trigger=click)
2026-04-24T09:21:46.496744Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)
2026-04-24T09:21:48.098818Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=visual_change)
2026-04-24T09:22:11.221900Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)
2026-04-24T09:22:11.766896Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)
2026-04-24T09:22:16.888745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)
2026-04-24T09:22:17.491774Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)
2026-04-24T09:22:18.681622Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=visual_change)
2026-04-24T09:23:16.243167Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=visual_change)
2026-04-24T09:23:35.816445Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1454730608342357520, trigger=visual_change)
2026-04-24T09:23:38.930735Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1454730608342357520, trigger=visual_change)
2026-04-24T09:23:44.977693Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1454730608342357520, trigger=visual_change)
2026-04-24T09:23:47.976762Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1454730608342357520, trigger=visual_change)
2026-04-24T09:23:52.175025Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)
2026-04-24T09:23:53.676257Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)
2026-04-24T09:23:55.282163Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)
2026-04-24T09:23:57.823643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)
2026-04-24T09:23:58.994186Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=visual_change)
2026-04-24T09:24:05.860204Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)
2026-04-24T09:24:13.209516Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-718376464268389214, trigger=click)
2026-04-24T09:24:22.402923Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=click)
2026-04-24T09:24:22.942083Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=click)
2026-04-24T09:24:23.526173Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=click)
2026-04-24T09:24:32.347346Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=visual_change)
2026-04-24T09:25:11.682827Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=visual_change)
2026-04-24T09:25:18.972497Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=click)
2026-04-24T09:25:19.038120Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=click)
2026-04-24T09:25:23.792317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=visual_change)
2026-04-24T09:25:29.870772Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=visual_change)
2026-04-24T09:25:55.293996Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=2 elapsed=8.404251667s
2026-04-24T09:25:55.294848Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
2026-04-24T09:26:04.448822Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=click)
2026-04-24T09:26:33.349466Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=click)
2026-04-24T09:26:43.335239Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=visual_change)
2026-04-24T09:26:53.050041Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=click)
2026-04-24T09:26:53.167874Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=click)
2026-04-24T09:26:54.303442Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=visual_change)
2026-04-24T09:26:55.500318Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=visual_change)
2026-04-24T09:27:10.586419Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7481262235808181776, trigger=visual_change)
2026-04-24T09:27:32.621600Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6918193899859647097, trigger=click)
2026-04-24T09:27:33.024121Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6918193899859647097, trigger=visual_change)
2026-04-24T09:27:33.358990Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6918193899859647097, trigger=click)
2026-04-24T09:27:36.474585Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6881578134567937708, trigger=click)
2026-04-24T09:27:39.102616Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6885151902180127194, trigger=visual_change)
2026-04-24T09:27:43.161033Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2041093212856276090, trigger=click)
2026-04-24T09:28:34.574175Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=click)
2026-04-24T09:28:35.182695Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=visual_change)
2026-04-24T09:28:48.766885Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=click)
2026-04-24T09:30:31.502266Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3827964891494523905, trigger=visual_change)
2026-04-24T09:31:01.835036Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=22 elapsed=6.539084917s
2026-04-24T09:31:01.835398Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames
2026-04-24T09:31:03.153482Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.4MB → 1.6MB (1.5x), 12 JPEGs deleted
2026-04-24T09:31:04.207260Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.7MB → 0.6MB (2.9x), 10 JPEGs deleted
2026-04-24T09:31:06.422394Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2475439445148030469, trigger=click)
2026-04-24T09:31:06.479214Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2475439445148030469, trigger=click)
2026-04-24T09:32:04.943578Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5777225845300032867, trigger=click)
2026-04-24T09:32:32.784454Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2058509189754406523, trigger=visual_change)
2026-04-24T09:32:53.082974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2058509189754406523, trigger=click)
2026-04-24T09:32:53.737962Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2058509189754406523, trigger=visual_change)
2026-04-24T09:32:57.114733Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2058509189754406523, trigger=click)
2026-04-24T09:32:58.597674Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2058509189754406523, trigger=click)
2026-04-24T09:32:59.782125Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2058509189754406523, trigger=visual_change)
2026-04-24T09:33:04.996791Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2058509189754406523, trigger=click)
2026-04-24T09:33:08.816247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2058509189754406523, trigger=visual_change)
2026-04-24T09:33:10.461146Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2058509189754406523, trigger=click)
2026-04-24T09:33:15.203936Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2058509189754406523, trigger=click)
2026-04-24T09:33:16.981298Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7590752565779779940, trigger=click)
2026-04-24T09:33:23.431499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=788204626822580206, trigger=visual_change)
2026-04-24T09:34:37.556091Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2058509189754406523, trigger=click)
2026-04-24T09:35:00.731989Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1931331561203467723, trigger=visual_change)
2026-04-24T09:36:14.635660Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=54 elapsed=10.395510708s
2026-04-24T09:36:14.636360Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 54 eligible frames
2026-04-24T09:36:17.619625Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 4.5MB → 1.3MB (3.4x), 27 JPEGs deleted
2026-04-24T09:36:22.116262Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.8MB → 2.5MB (2.3x), 25 JPEGs deleted
2026-04-24T09:36:54.863673Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4878114742693947356, trigger=visual_change)
2026-04-24T09:36:55.062798Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4878114742693947356, trigger=click)
2026-04-24T09:36:55.162682Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4878114742693947356, trigger=click)
2026-04-24T09:37:21.863789Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3699874878394394870, trigger=click)
2026-04-24T09:37:47.995024Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1428919445128073902, trigger=click)
2026-04-24T09:39:30.403190Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7035499710668216835, trigger=visual_change)
2026-04-24T09:39:33.662241Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=608432697774876874, trigger=visual_change)
2026-04-24T09:39:35.341135Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=608432697774876874, trigger=click)
2026-04-24T09:39:36.121070Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=608432697774876874, trigger=click)
2026-04-24T09:39:36.536747Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=608432697774876874, trigger=click)
2026-04-24T09:39:37.731270Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=608432697774876874, trigger=click)
2026-04-24T09:39:41.210462Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5974765529434960285, trigger=click)
2026-04-24T09:39:51.731759Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2535035496832215689, trigger=click)
2026-04-24T09:40:07.259374Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5233926339773178750, trigger=click)
2026-04-24T09:41:03.107609Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4960201745265773485, trigger=visual_change)
2026-04-24T09:41:13.880197Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4960201745265773485, trigger=click)
2026-04-24T09:41:15.327127Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4960201745265773485, trigger=visual_change)
2026-04-24T09:41:29.540119Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=83 elapsed=7.415332709s
2026-04-24T09:41:29.540877Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 83 eligible frames
2026-04-24T09:41:32.870426Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 45 frames, 6.6MB → 2.9MB (2.3x), 45 JPEGs deleted
2026-04-24T09:41:37.336764Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 8.7MB → 2.1MB (4.2x), 36 JPEGs deleted
2026-04-24T09:42:16.061415Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2303338987408821760, trigger=click)
2026-04-24T09:42:41.664885Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1281363204634954644, trigger=click)
2026-04-24T09:42:44.154084Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1281363204634954644, trigger=click)
2026-04-24T09:42:44.196254Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1281363204634954644, trigger=click)
2026-04-24T09:42:44.734952Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1281363204634954644, trigger=click)
2026-04-24T09:42:44.831122Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1281363204634954644, trigger=click)
2026-04-24T09:42:47.536858Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1281363204634954644, trigger=click)
2026-04-24T09:42:47.599226Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1281363204634954644, trigger=click)
2026-04-24T09:42:51.355525Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1281363204634954644, trigger=click)
2026-04-24T09:42:51.417875Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1281363204634954644, trigger=click)
2026-04-24T09:43:03.016946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2974096840750632412, trigger=click)
2026-04-24T09:43:17.016221Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2200824938643555556, trigger=click)
2026-04-24T09:43:54.660798Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3190629888660759195, trigger=click)
2026-04-24T09:43:54.814070Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3190629888660759195, trigger=click)
2026-04-24T09:43:57.228840Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3190629888660759195, trigger=click)
2026-04-24T09:43:57.357545Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3190629888660759195, trigger=click)
2026-04-24T09:44:26.654392Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6442301480781945351, trigger=visual_change)
2026-04-24T09:44:27.485920Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6442301480781945351, trigger=click)
2026-04-24T09:44:28.428613Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6442301480781945351, trigger=click)
2026-04-24T09:44:28.522866Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6442301480781945351, trigger=click)
2026-04-24T09:44:37.706012Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4644933951444445488, trigger=click)
2026-04-24T09:44:38.745488Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4644933951444445488, trigger=visual_change)
2026-04-24T09:44:39.627450Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4644933951444445488, trigger=click)
2026-04-24T09:44:39.702639Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4644933951444445488, trigger=click)
2026-04-24T09:44:41.780013Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4644933951444445488, trigger=visual_change)
2026-04-24T09:44:45.879943Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6226944297976869517, trigger=visual_change)
2026-04-24T09:44:49.778752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8097506899394482484, trigger=click)
2026-04-24T09:44:49.884752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8097506899394482484, trigger=click)
2026-04-24T09:45:16.555430Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4890526220884472180, trigger=visual_change)
2026-04-24T09:45:21.826062Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Firefox, signals=2)
2026-04-24T09:45:25.455811Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4584806439085727712, trigger=click)
2026-04-24T09:45:25.893604Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4584806439085727712, trigger=visual_change)
2026-04-24T09:45:27.069542Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Firefox, signals=2, browser=true)
2026-04-24T09:45:27.071927Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=11, app=Firefox, title=None)
2026-04-24T09:46:45.194533Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=53 elapsed=7.760180958s
2026-04-24T09:46:45.195976Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 53 eligible frames
2026-04-24T09:46:47.978735Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 5.8MB → 3.9MB (1.5x), 27 JPEGs deleted
2026-04-24T09:46:50.106852Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 5.7MB → 2.0MB (2.8x), 24 JPEGs deleted
2026-04-24T09:47:41.050891Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1144826565952075873, trigger=click)
2026-04-24T09:48:42.051769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7029277336993072845, trigger=click)
2026-04-24T09:48:42.106717Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7029277336993072845, trigger=click)
2026-04-24T09:51:57.720599Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=86 elapsed=7.613944334s
2026-04-24T09:51:57.721227Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 86 eligible frames
2026-04-24T09:51:59.887209Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 35 frames, 6.5MB → 2.0MB (3.2x), 35 JPEGs deleted
2026-04-24T09:52:05.085614Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 10.3MB → 3.6MB (2.9x), 49 JPEGs deleted
2026-04-24T09:54:27.970458Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6640666081944178132, trigger=click)
2026-04-24T09:57:13.235833Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=127 elapsed=8.092617s
2026-04-24T09:57:13.235987Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 127 eligible frames
2026-04-24T09:57:18.803261Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 73 frames, 12.5MB → 3.0MB (4.2x), 73 JPEGs deleted
2026-04-24T09:57:24.824472Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 52 frames, 11.1MB → 4.0MB (2.8x), 52 JPEGs deleted
2026-04-24T10:01:37.413726Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8376988566998297938, trigger=click)
2026-04-24T10:02:28.461441Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=55 elapsed=3.632856417s
2026-04-24T10:02:28.461968Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 55 eligible frames
2026-04-24T10:02:30.124076Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.2MB → 0.2MB (19.5x), 25 JPEGs deleted
2026-04-24T10:02:31.809292Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 6.2MB → 0.3MB (18.1x), 28 JPEGs deleted
2026-04-24T10:03:55.692088Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3138891033414926334, trigger=click)
2026-04-24T10:04:23.018837Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9217377342110388166, trigger=click)
2026-04-24T10:04:36.753795Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8336819251013481167, trigger=click)
2026-04-24T10:05:41.340647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8295693356485346454, trigger=click)
2026-04-24T10:07:35.847705Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=47 elapsed=4.035074292s
2026-04-24T10:07:35.847846Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 47 eligible frames
2026-04-24T10:07:37.308099Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 3.8MB → 0.2MB (17.9x), 23 JPEGs deleted
2026-04-24T10:07:38.656993Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 4.9MB → 0.3MB (14.3x), 22 JPEGs deleted
2026-04-24T10:11:10.087328Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7020466661663521693, trigger=click)
2026-04-24T10:11:20.636202Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=11, grace=300s)
2026-04-24T10:12:41.287270Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=27 elapsed=2.627061209s
2026-04-24T10:12:41.287689Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 27 eligible frames
2026-04-24T10:12:42.165900Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.2MB → 0.2MB (10.2x), 13 JPEGs deleted
2026-04-24T10:12:43.027939Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.7MB → 0.3MB (7.8x), 12 JPEGs deleted
2026-04-24T10:16:25.911580Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Idle (timeout=300s, app=Firefox, id=11)
2026-04-24T10:16:26.200392Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting ended (id=11)
2026-04-24T10:17:46.130674Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=53 elapsed=3.023108458s
2026-04-24T10:17:46.130778Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 53 eligible frames
2026-04-24T10:17:47.707268Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.2MB → 0.2MB (19.5x), 25 JPEGs deleted
2026-04-24T10:17:49.254961Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 5.8MB → 0.3MB (16.8x), 26 JPEGs deleted
2026-04-24T10:22:52.226201Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=33 elapsed=2.961869041s
2026-04-24T10:22:52.226734Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 33 eligible frames
2026-04-24T10:22:53.241764Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.5MB → 0.2MB (11.7x), 15 JPEGs deleted
2026-04-24T10:22:54.325284Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 3.5MB → 0.3MB (10.4x), 16 JPEGs deleted
2026-04-24T10:28:01.604110Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=22 elapsed=7.269846834s
2026-04-24T10:28:01.605693Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames
2026-04-24T10:28:02.415596Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.7MB → 0.2MB (7.9x), 10 JPEGs deleted
2026-04-24T10:28:03.310035Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.2MB → 0.3MB (6.5x), 10 JPEGs deleted
2026-04-24T10:30:34.510666Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6492717525671906088, trigger=click)
2026-04-24T10:30:35.393595Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6492717525671906088, trigger=click)
2026-04-24T10:30:37.273284Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6492717525671906088, trigger=click)
2026-04-24T10:30:37.351526Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6492717525671906088, trigger=click)
2026-04-24T10:32:23.226072Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2116846968358481818, trigger=click)
2026-04-24T10:32:23.322454Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2116846968358481818, trigger=click)
2026-04-24T10:32:23.831122Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2116846968358481818, trigger=click)
2026-04-24T10:32:24.073508Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2116846968358481818, trigger=click)
2026-04-24T10:32:37.212353Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1831432399067337817, trigger=click)
2026-04-24T10:32:37.329165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1831432399067337817, trigger=click)
2026-04-24T10:32:38.158066Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1831432399067337817, trigger=click)
2026-04-24T10:32:38.278528Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1831432399067337817, trigger=click)
2026-04-24T10:33:12.028991Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=52 elapsed=8.711020667s
2026-04-24T10:33:12.029148Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 52 eligible frames
2026-04-24T10:33:14.310365Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.0MB → 0.2MB (18.7x), 24 JPEGs deleted
2026-04-24T10:33:16.835684Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 5.8MB → 0.3MB (16.8x), 26 JPEGs deleted
2026-04-24T10:33:24.939868Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8210130048459164633, trigger=click)
2026-04-24T10:34:44.260746Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4460653676981297746, trigger=click)
2026-04-24T10:34:44.369588Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4460653676981297746, trigger=click)
2026-04-24T10:35:24.136627Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1637880906203540100, trigger=click)
2026-04-24T10:35:24.237433Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1637880906203540100, trigger=click)
2026-04-24T10:35:24.972083Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1637880906203540100, trigger=click)
2026-04-24T10:35:24.977999Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1637880906203540100, trigger=click)
2026-04-24T10:36:00.394626Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1637880906203540100, trigger=click)
2026-04-24T10:36:01.325744Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1637880906203540100, trigger=click)
2026-04-24T10:36:04.163426Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1637880906203540100, trigger=click)
2026-04-24T10:36:06.614575Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1637880906203540100, trigger=click)
2026-04-24T10:36:23.003531Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8210130048459164633, trigger=click)
2026-04-24T10:36:23.060065Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8210130048459164633, trigger=click)
2026-04-24T10:36:23.746984Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8210130048459164633, trigger=click)
2026-04-24T10:36:23.798965Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8210130048459164633, trigger=click)
2026-04-24T10:36:26.192092Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8210130048459164633, trigger=click)
2026-04-24T10:36:26.294196Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8210130048459164633, trigger=click)
2026-04-24T10:36:26.939378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8210130048459164633, trigger=click)
2026-04-24T10:36:27.020045Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8210130048459164633, trigger=click)
2026-04-24T10:36:44.241137Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4138904741364594758, trigger=click)
2026-04-24T10:36:44.335571Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=[CREDIT_CARD]...
|
77671
|
|
75488
|
1881
|
42
|
2026-04-24T06:30:32.551848+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-24/1777 /Users/lukas/.screenpipe/data/data/2026-04-24/1777012232551_m1.jpg...
|
iTerm2
|
screenpipe"
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Last login: Thu Apr 23 14:01:28 on ttys008
Poetry Last login: Thu Apr 23 14:01:28 on ttys008
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-start
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-04-24T09:19:23.948881Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store
checking permissions...
screen recording: ok
accessibility: ok
2026-04-24T09:19:24.012726Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-04-24T09:19:24.548628Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-04-24T09:19:24.550486Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-04-24T09:19:24.550876Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-04-24T09:19:24.587519Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-04-24T09:19:24.587575Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-04-24T09:19:24.587822Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-04-24T09:19:24.587784Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-04-24T09:19:24.587750Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-04-24T09:19:24.587842Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-04-24T09:19:24.587884Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-04-24T09:19:24.599482Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))
2026-04-24T09:19:24.604417Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-04-24T09:19:24.604614Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-04-24T09:19:24.605022Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-04-24T09:19:24.605182Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-04-24T09:19:24.605334Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-04-24T09:19:24.605840Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary
2026-04-24T09:19:24.605858Z INFO screenpipe_core::pipes: loaded 6 pipes from "/Users/lukas/.screenpipe/pipes"
_
__________________ ___ ____ ____ (_____ ___
/ ___/ ___/ ___/ _ \/ _ \/ __ \ / __ \/ / __ \/ _ \
(__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/
/____/\___/_/ \___/\___/_/ /_/ / .___/_/ .___/\___/
/_/ /_/
power AI by everything you've seen, said or heard
open source | runs locally | developer friendly
┌────────────────────────┬────────────────────────────────────┐
│ setting │ value │
├────────────────────────┼────────────────────────────────────┤
│ audio chunk duration │ 30 seconds │
│ port │ 3030 │
│ audio disabled │ true │
│ vision disabled │ false │
│ pause on DRM content │ false │
│ audio engine │ Parakeet │
│ vad engine │ Silero │
│ data directory │ /Users/lukas/.screenpipe │
│ debug mode │ false │
│ telemetry │ true │
│ use pii removal │ true │
│ use all monitors │ true │
│ ignored windows │ ["Boosteroid"] │
│ included windows │ [] │
│ cloud sync │ disabled │
│ auto-destruct pid │ 0 │
│ deepgram key │ not set │
│ api auth │ enabled │
2026-04-24T09:19:24.607221Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)
2026-04-24T09:19:24.612773Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh
│ encrypt secrets │ disabled │
│ retention days │ 14 │
├────────────────────────┼────────────────────────────────────┤
│ languages │ │
│ │ all languages │
├────────────────────────┼────────────────────────────────────┤
│ monitors │ │
│ │ id: 1 │
│ │ id: 2 │
├────────────────────────┼────────────────────────────────────┤
│ audio devices │ │
│ │ disabled │
└────────────────────────┴────────────────────────────────────┘
you are using local processing. all your data stays on your computer.
warning: telemetry is enabled. only error-level data will be sent.
to disable, use the --disable-telemetry flag.
check latest changes here: https://github.com/screenpipe/screenpipe/releases
2026-04-24T09:19:24.622220Z INFO screenpipe: starting UI event capture
2026-04-24T09:19:24.635769Z INFO screenpipe_engine::ui_recorder: Starting UI event capture
2026-04-24T09:19:24.649336Z INFO screenpipe_engine::ui_recorder: UI recording session started: d723d582-4d6f-4e04-921c-c054be5f7efc
2026-04-24T09:19:24.649340Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)
2026-04-24T09:19:24.649501Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-23 06:19:24.649500 UTC to 2026-04-24 06:19:24.649500 UTC)
2026-04-24T09:19:24.650143Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)
2026-04-24T09:19:24.657009Z INFO screenpipe_engine::server: Server listening on [IP_ADDRESS]:3030
2026-04-24T09:19:24.667216Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030
2026-04-24T09:19:24.729181Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)
2026-04-24T09:19:24.729212Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)
2026-04-24T09:19:24.729249Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)
2026-04-24T09:19:24.779505Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-04-24T09:19:24.779540Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-04-24T09:19:24.779553Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)
2026-04-24T09:19:24.779561Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)
2026-04-24T09:19:24.779558Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-04-24T09:19:25.448244Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)
2026-04-24T09:19:25.568925Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=75340, dur=59ms
2026-04-24T09:19:25.573938Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)
2026-04-24T09:19:25.719368Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=75341, dur=92ms
2026-04-24T09:19:25.720846Z INFO sck_rs::stream_manager: invalidated persistent stream for display 2
2026-04-24T09:19:25.858429Z WARN sqlx::query: summary="SELECT f.id, f.timestamp, f.offset_index, …" db.statement="\n\nSELECT\n f.id,\n f.timestamp,\n f.offset_index,\n COALESCE(\n SUBSTR(f.full_text, 1, 200),\n SUBSTR(f.accessibility_text, 1, 200),\n (\n SELECT\n SUBSTR(ot.text, 1, 200)\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as text,\n COALESCE(\n f.app_name,\n (\n SELECT\n ot.app_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as app_name,\n COALESCE(\n f.window_name,\n (\n SELECT\n ot.window_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as window_name,\n COALESCE(vc.device_name, f.device_name) as screen_device,\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\n COALESCE(vc.fps, 0.033) as chunk_fps,\n f.browser_url,\n f.machine_id\nFROM\n frames f\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\nWHERE\n f.timestamp >= ?1\n AND f.timestamp <= ?2\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\nORDER BY\n f.timestamp DESC,\n f.offset_index DESC\nLIMIT\n 10000\n" rows_affected=0 rows_returned=2488 elapsed=1.208421959s
2026-04-24T09:19:25.864500Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 2488 frame entries, coverage from 2026-04-23 06:19:24.649500 UTC
2026-04-24T09:19:55.890230Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)
2026-04-24T09:20:14.750156Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1028901310814388349, trigger=visual_change)
2026-04-24T09:20:18.033810Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=587886836991007024, trigger=visual_change)
2026-04-24T09:20:31.827646Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=116 elapsed=7.239465292s
2026-04-24T09:20:31.828139Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 116 eligible frames
2026-04-24T09:20:40.295044Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 51 frames, 11.8MB → 5.8MB (2.0x), 51 JPEGs deleted
2026-04-24T09:20:46.893269Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 63 frames, 13.5MB → 4.0MB (3.4x), 63 JPEGs deleted
2026-04-24T09:21:08.939443Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2712612361587311688, trigger=click)
2026-04-24T09:21:43.598800Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)
2026-04-24T09:21:43.671594Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1454730608342357520, trigger=click)
2026-04-24T09:21:45.091008Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=visual_change)
2026-04-24T09:21:46.383314Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1454730608342357520, trigger=click)
2026-04-24T09:21:46.496744Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)
2026-04-24T09:21:48.098818Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=visual_change)
2026-04-24T09:22:11.221900Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)
2026-04-24T09:22:11.766896Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)
2026-04-24T09:22:16.888745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)
2026-04-24T09:22:17.491774Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)
2026-04-24T09:22:18.681622Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=visual_change)
2026-04-24T09:23:16.243167Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=visual_change)
2026-04-24T09:23:35.816445Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1454730608342357520, trigger=visual_change)
2026-04-24T09:23:38.930735Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1454730608342357520, trigger=visual_change)
2026-04-24T09:23:44.977693Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1454730608342357520, trigger=visual_change)
2026-04-24T09:23:47.976762Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1454730608342357520, trigger=visual_change)
2026-04-24T09:23:52.175025Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)
2026-04-24T09:23:53.676257Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)
2026-04-24T09:23:55.282163Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)
2026-04-24T09:23:57.823643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)
2026-04-24T09:23:58.994186Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=visual_change)
2026-04-24T09:24:05.860204Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)
2026-04-24T09:24:13.209516Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-718376464268389214, trigger=click)
2026-04-24T09:24:22.402923Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=click)
2026-04-24T09:24:22.942083Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=click)
2026-04-24T09:24:23.526173Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=click)
2026-04-24T09:24:32.347346Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=visual_change)
2026-04-24T09:25:11.682827Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=visual_change)
2026-04-24T09:25:18.972497Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=click)
2026-04-24T09:25:19.038120Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=click)
2026-04-24T09:25:23.792317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=visual_change)
2026-04-24T09:25:29.870772Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=visual_change)
2026-04-24T09:25:55.293996Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=2 elapsed=8.404251667s
2026-04-24T09:25:55.294848Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
2026-04-24T09:26:04.448822Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=click)
2026-04-24T09:26:33.349466Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=click)
2026-04-24T09:26:43.335239Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=visual_change)
2026-04-24T09:26:53.050041Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=click)
2026-04-24T09:26:53.167874Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=click)
2026-04-24T09:26:54.303442Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=visual_change)
2026-04-24T09:26:55.500318Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=visual_change)
2026-04-24T09:27:10.586419Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7481262235808181776, trigger=visual_change)
2026-04-24T09:27:32.621600Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6918193899859647097, trigger=click)
2026-04-24T09:27:33.024121Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6918193899859647097, trigger=visual_change)
2026-04-24T09:27:33.358990Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6918193899859647097, trigger=click)
2026-04-24T09:27:36.474585Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6881578134567937708, trigger=click)
2026-04-24T09:27:39.102616Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6885151902180127194, trigger=visual_change)
2026-04-24T09:27:43.161033Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2041093212856276090, trigger=click)
2026-04-24T09:28:34.574175Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=click)
2026-04-24T09:28:35.182695Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=visual_change)
2026-04-24T09:28:48.766885Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=click)
2026-04-24T09:30:31.502266Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3827964891494523905, trigger=visual_change)
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
⌥⌘1
screenpipe"...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"Last login: Thu Apr 23 14:01:28 on ttys008\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-status\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-start\ndetected hardware tier: Mid\nwarning: parakeet is not supported on this platform, using whisper-tiny instead\n2026-04-24T09:19:23.948881Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store\nchecking permissions...\n screen recording: ok\n accessibility: ok\n2026-04-24T09:19:24.012726Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6\n2026-04-24T09:19:24.548628Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor\n2026-04-24T09:19:24.550486Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)\n2026-04-24T09:19:24.550876Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)\n2026-04-24T09:19:24.587519Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true\n2026-04-24T09:19:24.587575Z INFO screenpipe: meeting detector enabled — independent of transcription mode\n2026-04-24T09:19:24.587822Z INFO screenpipe: API server listening on 127.0.0.1:3030 (localhost only)\n2026-04-24T09:19:24.587784Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)\n2026-04-24T09:19:24.587750Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)\n2026-04-24T09:19:24.587842Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key\n2026-04-24T09:19:24.587884Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager\n2026-04-24T09:19:24.599482Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-24T09:19:24.604417Z INFO screenpipe_core::pipes: loaded pipe: day-recap\n2026-04-24T09:19:24.604614Z INFO screenpipe_core::pipes: loaded pipe: standup-update\n2026-04-24T09:19:24.605022Z INFO screenpipe_core::pipes: loaded pipe: ai-habits\n2026-04-24T09:19:24.605182Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown\n2026-04-24T09:19:24.605334Z INFO screenpipe_core::pipes: loaded pipe: video-export\n2026-04-24T09:19:24.605840Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary\n2026-04-24T09:19:24.605858Z INFO screenpipe_core::pipes: loaded 6 pipes from \"/Users/lukas/.screenpipe/pipes\"\n\n\n\n _ \n __________________ ___ ____ ____ (_____ ___ \n / ___/ ___/ ___/ _ \\/ _ \\/ __ \\ / __ \\/ / __ \\/ _ \\\n (__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/\n/____/\\___/_/ \\___/\\___/_/ /_/ / .___/_/ .___/\\___/ \n /_/ /_/ \n\n\n\npower AI by everything you've seen, said or heard\nopen source | runs locally | developer friendly\n\n\n┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ true │\n│ vision disabled │ false │\n│ pause on DRM content │ false │\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n│ ignored windows │ [\"Boosteroid\"] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n│ api auth │ enabled │\n2026-04-24T09:19:24.607221Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n2026-04-24T09:19:24.612773Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n│ encrypt secrets │ disabled │\n│ retention days │ 14 │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ id: 1 │\n│ │ id: 2 │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ disabled │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-24T09:19:24.622220Z INFO screenpipe: starting UI event capture\n2026-04-24T09:19:24.635769Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-24T09:19:24.649336Z INFO screenpipe_engine::ui_recorder: UI recording session started: d723d582-4d6f-4e04-921c-c054be5f7efc\n2026-04-24T09:19:24.649340Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-24T09:19:24.649501Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-23 06:19:24.649500 UTC to 2026-04-24 06:19:24.649500 UTC)\n2026-04-24T09:19:24.650143Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-24T09:19:24.657009Z INFO screenpipe_engine::server: Server listening on 127.0.0.1:3030\n2026-04-24T09:19:24.667216Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-24T09:19:24.729181Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-24T09:19:24.729212Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-24T09:19:24.729249Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-24T09:19:24.779505Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-24T09:19:24.779540Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-24T09:19:24.779553Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)\n2026-04-24T09:19:24.779561Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)\n2026-04-24T09:19:24.779558Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-24T09:19:25.448244Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)\n2026-04-24T09:19:25.568925Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=75340, dur=59ms\n2026-04-24T09:19:25.573938Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)\n2026-04-24T09:19:25.719368Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=75341, dur=92ms\n2026-04-24T09:19:25.720846Z INFO sck_rs::stream_manager: invalidated persistent stream for display 2\n2026-04-24T09:19:25.858429Z WARN sqlx::query: summary=\"SELECT f.id, f.timestamp, f.offset_index, …\" db.statement=\"\\n\\nSELECT\\n f.id,\\n f.timestamp,\\n f.offset_index,\\n COALESCE(\\n SUBSTR(f.full_text, 1, 200),\\n SUBSTR(f.accessibility_text, 1, 200),\\n (\\n SELECT\\n SUBSTR(ot.text, 1, 200)\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as text,\\n COALESCE(\\n f.app_name,\\n (\\n SELECT\\n ot.app_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as app_name,\\n COALESCE(\\n f.window_name,\\n (\\n SELECT\\n ot.window_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as window_name,\\n COALESCE(vc.device_name, f.device_name) as screen_device,\\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\\n COALESCE(vc.fps, 0.033) as chunk_fps,\\n f.browser_url,\\n f.machine_id\\nFROM\\n frames f\\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\\nWHERE\\n f.timestamp >= ?1\\n AND f.timestamp <= ?2\\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\\nORDER BY\\n f.timestamp DESC,\\n f.offset_index DESC\\nLIMIT\\n 10000\\n\" rows_affected=0 rows_returned=2488 elapsed=1.208421959s\n2026-04-24T09:19:25.864500Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 2488 frame entries, coverage from 2026-04-23 06:19:24.649500 UTC\n2026-04-24T09:19:55.890230Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)\n2026-04-24T09:20:14.750156Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1028901310814388349, trigger=visual_change)\n2026-04-24T09:20:18.033810Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=587886836991007024, trigger=visual_change)\n2026-04-24T09:20:31.827646Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=116 elapsed=7.239465292s\n2026-04-24T09:20:31.828139Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 116 eligible frames\n2026-04-24T09:20:40.295044Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 51 frames, 11.8MB → 5.8MB (2.0x), 51 JPEGs deleted\n2026-04-24T09:20:46.893269Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 63 frames, 13.5MB → 4.0MB (3.4x), 63 JPEGs deleted\n2026-04-24T09:21:08.939443Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2712612361587311688, trigger=click)\n2026-04-24T09:21:43.598800Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)\n2026-04-24T09:21:43.671594Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1454730608342357520, trigger=click)\n2026-04-24T09:21:45.091008Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=visual_change)\n2026-04-24T09:21:46.383314Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1454730608342357520, trigger=click)\n2026-04-24T09:21:46.496744Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)\n2026-04-24T09:21:48.098818Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=visual_change)\n2026-04-24T09:22:11.221900Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)\n2026-04-24T09:22:11.766896Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)\n2026-04-24T09:22:16.888745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)\n2026-04-24T09:22:17.491774Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)\n2026-04-24T09:22:18.681622Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=visual_change)\n2026-04-24T09:23:16.243167Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=visual_change)\n2026-04-24T09:23:35.816445Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1454730608342357520, trigger=visual_change)\n2026-04-24T09:23:38.930735Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1454730608342357520, trigger=visual_change)\n2026-04-24T09:23:44.977693Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1454730608342357520, trigger=visual_change)\n2026-04-24T09:23:47.976762Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1454730608342357520, trigger=visual_change)\n2026-04-24T09:23:52.175025Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)\n2026-04-24T09:23:53.676257Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)\n2026-04-24T09:23:55.282163Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)\n2026-04-24T09:23:57.823643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)\n2026-04-24T09:23:58.994186Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=visual_change)\n2026-04-24T09:24:05.860204Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)\n2026-04-24T09:24:13.209516Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-718376464268389214, trigger=click)\n2026-04-24T09:24:22.402923Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=click)\n2026-04-24T09:24:22.942083Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=click)\n2026-04-24T09:24:23.526173Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=click)\n2026-04-24T09:24:32.347346Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=visual_change)\n2026-04-24T09:25:11.682827Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=visual_change)\n2026-04-24T09:25:18.972497Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=click)\n2026-04-24T09:25:19.038120Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=click)\n2026-04-24T09:25:23.792317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=visual_change)\n2026-04-24T09:25:29.870772Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=visual_change)\n2026-04-24T09:25:55.293996Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=2 elapsed=8.404251667s\n2026-04-24T09:25:55.294848Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-24T09:26:04.448822Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=click)\n2026-04-24T09:26:33.349466Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=click)\n2026-04-24T09:26:43.335239Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=visual_change)\n2026-04-24T09:26:53.050041Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=click)\n2026-04-24T09:26:53.167874Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=click)\n2026-04-24T09:26:54.303442Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=visual_change)\n2026-04-24T09:26:55.500318Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=visual_change)\n2026-04-24T09:27:10.586419Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7481262235808181776, trigger=visual_change)\n2026-04-24T09:27:32.621600Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6918193899859647097, trigger=click)\n2026-04-24T09:27:33.024121Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6918193899859647097, trigger=visual_change)\n2026-04-24T09:27:33.358990Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6918193899859647097, trigger=click)\n2026-04-24T09:27:36.474585Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6881578134567937708, trigger=click)\n2026-04-24T09:27:39.102616Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6885151902180127194, trigger=visual_change)\n2026-04-24T09:27:43.161033Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2041093212856276090, trigger=click)\n2026-04-24T09:28:34.574175Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=click)\n2026-04-24T09:28:35.182695Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=visual_change)\n2026-04-24T09:28:48.766885Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=click)\n2026-04-24T09:30:31.502266Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3827964891494523905, trigger=visual_change)","depth":4,"value":"Last login: Thu Apr 23 14:01:28 on ttys008\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-status\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-start\ndetected hardware tier: Mid\nwarning: parakeet is not supported on this platform, using whisper-tiny instead\n2026-04-24T09:19:23.948881Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store\nchecking permissions...\n screen recording: ok\n accessibility: ok\n2026-04-24T09:19:24.012726Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6\n2026-04-24T09:19:24.548628Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor\n2026-04-24T09:19:24.550486Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)\n2026-04-24T09:19:24.550876Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)\n2026-04-24T09:19:24.587519Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true\n2026-04-24T09:19:24.587575Z INFO screenpipe: meeting detector enabled — independent of transcription mode\n2026-04-24T09:19:24.587822Z INFO screenpipe: API server listening on 127.0.0.1:3030 (localhost only)\n2026-04-24T09:19:24.587784Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)\n2026-04-24T09:19:24.587750Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)\n2026-04-24T09:19:24.587842Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key\n2026-04-24T09:19:24.587884Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager\n2026-04-24T09:19:24.599482Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-24T09:19:24.604417Z INFO screenpipe_core::pipes: loaded pipe: day-recap\n2026-04-24T09:19:24.604614Z INFO screenpipe_core::pipes: loaded pipe: standup-update\n2026-04-24T09:19:24.605022Z INFO screenpipe_core::pipes: loaded pipe: ai-habits\n2026-04-24T09:19:24.605182Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown\n2026-04-24T09:19:24.605334Z INFO screenpipe_core::pipes: loaded pipe: video-export\n2026-04-24T09:19:24.605840Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary\n2026-04-24T09:19:24.605858Z INFO screenpipe_core::pipes: loaded 6 pipes from \"/Users/lukas/.screenpipe/pipes\"\n\n\n\n _ \n __________________ ___ ____ ____ (_____ ___ \n / ___/ ___/ ___/ _ \\/ _ \\/ __ \\ / __ \\/ / __ \\/ _ \\\n (__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/\n/____/\\___/_/ \\___/\\___/_/ /_/ / .___/_/ .___/\\___/ \n /_/ /_/ \n\n\n\npower AI by everything you've seen, said or heard\nopen source | runs locally | developer friendly\n\n\n┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ true │\n│ vision disabled │ false │\n│ pause on DRM content │ false │\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n│ ignored windows │ [\"Boosteroid\"] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n│ api auth │ enabled │\n2026-04-24T09:19:24.607221Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n2026-04-24T09:19:24.612773Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n│ encrypt secrets │ disabled │\n│ retention days │ 14 │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ id: 1 │\n│ │ id: 2 │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ disabled │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-24T09:19:24.622220Z INFO screenpipe: starting UI event capture\n2026-04-24T09:19:24.635769Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-24T09:19:24.649336Z INFO screenpipe_engine::ui_recorder: UI recording session started: d723d582-4d6f-4e04-921c-c054be5f7efc\n2026-04-24T09:19:24.649340Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-24T09:19:24.649501Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-23 06:19:24.649500 UTC to 2026-04-24 06:19:24.649500 UTC)\n2026-04-24T09:19:24.650143Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-24T09:19:24.657009Z INFO screenpipe_engine::server: Server listening on 127.0.0.1:3030\n2026-04-24T09:19:24.667216Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-24T09:19:24.729181Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-24T09:19:24.729212Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-24T09:19:24.729249Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-24T09:19:24.779505Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-24T09:19:24.779540Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-24T09:19:24.779553Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)\n2026-04-24T09:19:24.779561Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)\n2026-04-24T09:19:24.779558Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-24T09:19:25.448244Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)\n2026-04-24T09:19:25.568925Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=75340, dur=59ms\n2026-04-24T09:19:25.573938Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)\n2026-04-24T09:19:25.719368Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=75341, dur=92ms\n2026-04-24T09:19:25.720846Z INFO sck_rs::stream_manager: invalidated persistent stream for display 2\n2026-04-24T09:19:25.858429Z WARN sqlx::query: summary=\"SELECT f.id, f.timestamp, f.offset_index, …\" db.statement=\"\\n\\nSELECT\\n f.id,\\n f.timestamp,\\n f.offset_index,\\n COALESCE(\\n SUBSTR(f.full_text, 1, 200),\\n SUBSTR(f.accessibility_text, 1, 200),\\n (\\n SELECT\\n SUBSTR(ot.text, 1, 200)\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as text,\\n COALESCE(\\n f.app_name,\\n (\\n SELECT\\n ot.app_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as app_name,\\n COALESCE(\\n f.window_name,\\n (\\n SELECT\\n ot.window_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as window_name,\\n COALESCE(vc.device_name, f.device_name) as screen_device,\\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\\n COALESCE(vc.fps, 0.033) as chunk_fps,\\n f.browser_url,\\n f.machine_id\\nFROM\\n frames f\\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\\nWHERE\\n f.timestamp >= ?1\\n AND f.timestamp <= ?2\\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\\nORDER BY\\n f.timestamp DESC,\\n f.offset_index DESC\\nLIMIT\\n 10000\\n\" rows_affected=0 rows_returned=2488 elapsed=1.208421959s\n2026-04-24T09:19:25.864500Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 2488 frame entries, coverage from 2026-04-23 06:19:24.649500 UTC\n2026-04-24T09:19:55.890230Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)\n2026-04-24T09:20:14.750156Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1028901310814388349, trigger=visual_change)\n2026-04-24T09:20:18.033810Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=587886836991007024, trigger=visual_change)\n2026-04-24T09:20:31.827646Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=116 elapsed=7.239465292s\n2026-04-24T09:20:31.828139Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 116 eligible frames\n2026-04-24T09:20:40.295044Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 51 frames, 11.8MB → 5.8MB (2.0x), 51 JPEGs deleted\n2026-04-24T09:20:46.893269Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 63 frames, 13.5MB → 4.0MB (3.4x), 63 JPEGs deleted\n2026-04-24T09:21:08.939443Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2712612361587311688, trigger=click)\n2026-04-24T09:21:43.598800Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)\n2026-04-24T09:21:43.671594Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1454730608342357520, trigger=click)\n2026-04-24T09:21:45.091008Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=visual_change)\n2026-04-24T09:21:46.383314Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1454730608342357520, trigger=click)\n2026-04-24T09:21:46.496744Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)\n2026-04-24T09:21:48.098818Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=visual_change)\n2026-04-24T09:22:11.221900Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)\n2026-04-24T09:22:11.766896Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)\n2026-04-24T09:22:16.888745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)\n2026-04-24T09:22:17.491774Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)\n2026-04-24T09:22:18.681622Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=visual_change)\n2026-04-24T09:23:16.243167Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=visual_change)\n2026-04-24T09:23:35.816445Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1454730608342357520, trigger=visual_change)\n2026-04-24T09:23:38.930735Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1454730608342357520, trigger=visual_change)\n2026-04-24T09:23:44.977693Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1454730608342357520, trigger=visual_change)\n2026-04-24T09:23:47.976762Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1454730608342357520, trigger=visual_change)\n2026-04-24T09:23:52.175025Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)\n2026-04-24T09:23:53.676257Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)\n2026-04-24T09:23:55.282163Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)\n2026-04-24T09:23:57.823643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)\n2026-04-24T09:23:58.994186Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=visual_change)\n2026-04-24T09:24:05.860204Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)\n2026-04-24T09:24:13.209516Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-718376464268389214, trigger=click)\n2026-04-24T09:24:22.402923Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=click)\n2026-04-24T09:24:22.942083Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=click)\n2026-04-24T09:24:23.526173Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=click)\n2026-04-24T09:24:32.347346Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=visual_change)\n2026-04-24T09:25:11.682827Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=visual_change)\n2026-04-24T09:25:18.972497Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=click)\n2026-04-24T09:25:19.038120Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=click)\n2026-04-24T09:25:23.792317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=visual_change)\n2026-04-24T09:25:29.870772Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=visual_change)\n2026-04-24T09:25:55.293996Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=2 elapsed=8.404251667s\n2026-04-24T09:25:55.294848Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-24T09:26:04.448822Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=click)\n2026-04-24T09:26:33.349466Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=click)\n2026-04-24T09:26:43.335239Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=visual_change)\n2026-04-24T09:26:53.050041Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=click)\n2026-04-24T09:26:53.167874Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=click)\n2026-04-24T09:26:54.303442Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=visual_change)\n2026-04-24T09:26:55.500318Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=visual_change)\n2026-04-24T09:27:10.586419Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7481262235808181776, trigger=visual_change)\n2026-04-24T09:27:32.621600Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6918193899859647097, trigger=click)\n2026-04-24T09:27:33.024121Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6918193899859647097, trigger=visual_change)\n2026-04-24T09:27:33.358990Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6918193899859647097, trigger=click)\n2026-04-24T09:27:36.474585Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6881578134567937708, trigger=click)\n2026-04-24T09:27:39.102616Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6885151902180127194, trigger=visual_change)\n2026-04-24T09:27:43.161033Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2041093212856276090, trigger=click)\n2026-04-24T09:28:34.574175Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=click)\n2026-04-24T09:28:35.182695Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=visual_change)\n2026-04-24T09:28:48.766885Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=click)\n2026-04-24T09:30:31.502266Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3827964891494523905, trigger=visual_change)","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.24652778,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.24652778,"top":0.05888889,"width":0.24652778,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.25069445,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.49305555,"top":0.05888889,"width":0.24652778,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.49722221,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.7395833,"top":0.05888889,"width":0.24652778,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.74375,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"screenpipe\"","depth":1,"bounds":{"left":0.4722222,"top":0.033333335,"width":0.058333334,"height":0.017777778},"role_description":"text"}]...
|
-4378605676678819208
|
2715996123961599345
|
click
|
accessibility
|
NULL
|
Last login: Thu Apr 23 14:01:28 on ttys008
Poetry Last login: Thu Apr 23 14:01:28 on ttys008
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-start
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-04-24T09:19:23.948881Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store
checking permissions...
screen recording: ok
accessibility: ok
2026-04-24T09:19:24.012726Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-04-24T09:19:24.548628Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-04-24T09:19:24.550486Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-04-24T09:19:24.550876Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-04-24T09:19:24.587519Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-04-24T09:19:24.587575Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-04-24T09:19:24.587822Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-04-24T09:19:24.587784Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-04-24T09:19:24.587750Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-04-24T09:19:24.587842Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-04-24T09:19:24.587884Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-04-24T09:19:24.599482Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))
2026-04-24T09:19:24.604417Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-04-24T09:19:24.604614Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-04-24T09:19:24.605022Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-04-24T09:19:24.605182Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-04-24T09:19:24.605334Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-04-24T09:19:24.605840Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary
2026-04-24T09:19:24.605858Z INFO screenpipe_core::pipes: loaded 6 pipes from "/Users/lukas/.screenpipe/pipes"
_
__________________ ___ ____ ____ (_____ ___
/ ___/ ___/ ___/ _ \/ _ \/ __ \ / __ \/ / __ \/ _ \
(__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/
/____/\___/_/ \___/\___/_/ /_/ / .___/_/ .___/\___/
/_/ /_/
power AI by everything you've seen, said or heard
open source | runs locally | developer friendly
┌────────────────────────┬────────────────────────────────────┐
│ setting │ value │
├────────────────────────┼────────────────────────────────────┤
│ audio chunk duration │ 30 seconds │
│ port │ 3030 │
│ audio disabled │ true │
│ vision disabled │ false │
│ pause on DRM content │ false │
│ audio engine │ Parakeet │
│ vad engine │ Silero │
│ data directory │ /Users/lukas/.screenpipe │
│ debug mode │ false │
│ telemetry │ true │
│ use pii removal │ true │
│ use all monitors │ true │
│ ignored windows │ ["Boosteroid"] │
│ included windows │ [] │
│ cloud sync │ disabled │
│ auto-destruct pid │ 0 │
│ deepgram key │ not set │
│ api auth │ enabled │
2026-04-24T09:19:24.607221Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)
2026-04-24T09:19:24.612773Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh
│ encrypt secrets │ disabled │
│ retention days │ 14 │
├────────────────────────┼────────────────────────────────────┤
│ languages │ │
│ │ all languages │
├────────────────────────┼────────────────────────────────────┤
│ monitors │ │
│ │ id: 1 │
│ │ id: 2 │
├────────────────────────┼────────────────────────────────────┤
│ audio devices │ │
│ │ disabled │
└────────────────────────┴────────────────────────────────────┘
you are using local processing. all your data stays on your computer.
warning: telemetry is enabled. only error-level data will be sent.
to disable, use the --disable-telemetry flag.
check latest changes here: https://github.com/screenpipe/screenpipe/releases
2026-04-24T09:19:24.622220Z INFO screenpipe: starting UI event capture
2026-04-24T09:19:24.635769Z INFO screenpipe_engine::ui_recorder: Starting UI event capture
2026-04-24T09:19:24.649336Z INFO screenpipe_engine::ui_recorder: UI recording session started: d723d582-4d6f-4e04-921c-c054be5f7efc
2026-04-24T09:19:24.649340Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)
2026-04-24T09:19:24.649501Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-23 06:19:24.649500 UTC to 2026-04-24 06:19:24.649500 UTC)
2026-04-24T09:19:24.650143Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)
2026-04-24T09:19:24.657009Z INFO screenpipe_engine::server: Server listening on [IP_ADDRESS]:3030
2026-04-24T09:19:24.667216Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030
2026-04-24T09:19:24.729181Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)
2026-04-24T09:19:24.729212Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)
2026-04-24T09:19:24.729249Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)
2026-04-24T09:19:24.779505Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-04-24T09:19:24.779540Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-04-24T09:19:24.779553Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)
2026-04-24T09:19:24.779561Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)
2026-04-24T09:19:24.779558Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-04-24T09:19:25.448244Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)
2026-04-24T09:19:25.568925Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=75340, dur=59ms
2026-04-24T09:19:25.573938Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)
2026-04-24T09:19:25.719368Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=75341, dur=92ms
2026-04-24T09:19:25.720846Z INFO sck_rs::stream_manager: invalidated persistent stream for display 2
2026-04-24T09:19:25.858429Z WARN sqlx::query: summary="SELECT f.id, f.timestamp, f.offset_index, …" db.statement="\n\nSELECT\n f.id,\n f.timestamp,\n f.offset_index,\n COALESCE(\n SUBSTR(f.full_text, 1, 200),\n SUBSTR(f.accessibility_text, 1, 200),\n (\n SELECT\n SUBSTR(ot.text, 1, 200)\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as text,\n COALESCE(\n f.app_name,\n (\n SELECT\n ot.app_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as app_name,\n COALESCE(\n f.window_name,\n (\n SELECT\n ot.window_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as window_name,\n COALESCE(vc.device_name, f.device_name) as screen_device,\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\n COALESCE(vc.fps, 0.033) as chunk_fps,\n f.browser_url,\n f.machine_id\nFROM\n frames f\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\nWHERE\n f.timestamp >= ?1\n AND f.timestamp <= ?2\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\nORDER BY\n f.timestamp DESC,\n f.offset_index DESC\nLIMIT\n 10000\n" rows_affected=0 rows_returned=2488 elapsed=1.208421959s
2026-04-24T09:19:25.864500Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 2488 frame entries, coverage from 2026-04-23 06:19:24.649500 UTC
2026-04-24T09:19:55.890230Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)
2026-04-24T09:20:14.750156Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1028901310814388349, trigger=visual_change)
2026-04-24T09:20:18.033810Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=587886836991007024, trigger=visual_change)
2026-04-24T09:20:31.827646Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=116 elapsed=7.239465292s
2026-04-24T09:20:31.828139Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 116 eligible frames
2026-04-24T09:20:40.295044Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 51 frames, 11.8MB → 5.8MB (2.0x), 51 JPEGs deleted
2026-04-24T09:20:46.893269Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 63 frames, 13.5MB → 4.0MB (3.4x), 63 JPEGs deleted
2026-04-24T09:21:08.939443Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2712612361587311688, trigger=click)
2026-04-24T09:21:43.598800Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)
2026-04-24T09:21:43.671594Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1454730608342357520, trigger=click)
2026-04-24T09:21:45.091008Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=visual_change)
2026-04-24T09:21:46.383314Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1454730608342357520, trigger=click)
2026-04-24T09:21:46.496744Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)
2026-04-24T09:21:48.098818Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=visual_change)
2026-04-24T09:22:11.221900Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)
2026-04-24T09:22:11.766896Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)
2026-04-24T09:22:16.888745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)
2026-04-24T09:22:17.491774Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)
2026-04-24T09:22:18.681622Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=visual_change)
2026-04-24T09:23:16.243167Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=visual_change)
2026-04-24T09:23:35.816445Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1454730608342357520, trigger=visual_change)
2026-04-24T09:23:38.930735Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1454730608342357520, trigger=visual_change)
2026-04-24T09:23:44.977693Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1454730608342357520, trigger=visual_change)
2026-04-24T09:23:47.976762Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1454730608342357520, trigger=visual_change)
2026-04-24T09:23:52.175025Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)
2026-04-24T09:23:53.676257Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)
2026-04-24T09:23:55.282163Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)
2026-04-24T09:23:57.823643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)
2026-04-24T09:23:58.994186Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=visual_change)
2026-04-24T09:24:05.860204Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)
2026-04-24T09:24:13.209516Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-718376464268389214, trigger=click)
2026-04-24T09:24:22.402923Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=click)
2026-04-24T09:24:22.942083Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=click)
2026-04-24T09:24:23.526173Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=click)
2026-04-24T09:24:32.347346Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=visual_change)
2026-04-24T09:25:11.682827Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=visual_change)
2026-04-24T09:25:18.972497Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=click)
2026-04-24T09:25:19.038120Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=click)
2026-04-24T09:25:23.792317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=visual_change)
2026-04-24T09:25:29.870772Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=visual_change)
2026-04-24T09:25:55.293996Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=2 elapsed=8.404251667s
2026-04-24T09:25:55.294848Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
2026-04-24T09:26:04.448822Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=click)
2026-04-24T09:26:33.349466Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=click)
2026-04-24T09:26:43.335239Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=visual_change)
2026-04-24T09:26:53.050041Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=click)
2026-04-24T09:26:53.167874Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=click)
2026-04-24T09:26:54.303442Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=visual_change)
2026-04-24T09:26:55.500318Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=visual_change)
2026-04-24T09:27:10.586419Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7481262235808181776, trigger=visual_change)
2026-04-24T09:27:32.621600Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6918193899859647097, trigger=click)
2026-04-24T09:27:33.024121Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6918193899859647097, trigger=visual_change)
2026-04-24T09:27:33.358990Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6918193899859647097, trigger=click)
2026-04-24T09:27:36.474585Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6881578134567937708, trigger=click)
2026-04-24T09:27:39.102616Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6885151902180127194, trigger=visual_change)
2026-04-24T09:27:43.161033Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2041093212856276090, trigger=click)
2026-04-24T09:28:34.574175Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=click)
2026-04-24T09:28:35.182695Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=visual_change)
2026-04-24T09:28:48.766885Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=click)
2026-04-24T09:30:31.502266Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3827964891494523905, trigger=visual_change)
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
⌥⌘1
screenpipe"...
|
75487
|
|
75487
|
1881
|
41
|
2026-04-24T06:30:30.160205+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-24/1777 /Users/lukas/.screenpipe/data/data/2026-04-24/1777012230160_m1.jpg...
|
iTerm2
|
screenpipe"
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Last login: Thu Apr 23 14:01:28 on ttys008
Poetry Last login: Thu Apr 23 14:01:28 on ttys008
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-start
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-04-24T09:19:23.948881Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store
checking permissions...
screen recording: ok
accessibility: ok
2026-04-24T09:19:24.012726Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-04-24T09:19:24.548628Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-04-24T09:19:24.550486Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-04-24T09:19:24.550876Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-04-24T09:19:24.587519Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-04-24T09:19:24.587575Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-04-24T09:19:24.587822Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-04-24T09:19:24.587784Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-04-24T09:19:24.587750Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-04-24T09:19:24.587842Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-04-24T09:19:24.587884Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-04-24T09:19:24.599482Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))
2026-04-24T09:19:24.604417Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-04-24T09:19:24.604614Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-04-24T09:19:24.605022Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-04-24T09:19:24.605182Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-04-24T09:19:24.605334Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-04-24T09:19:24.605840Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary
2026-04-24T09:19:24.605858Z INFO screenpipe_core::pipes: loaded 6 pipes from "/Users/lukas/.screenpipe/pipes"
_
__________________ ___ ____ ____ (_____ ___
/ ___/ ___/ ___/ _ \/ _ \/ __ \ / __ \/ / __ \/ _ \
(__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/
/____/\___/_/ \___/\___/_/ /_/ / .___/_/ .___/\___/
/_/ /_/
power AI by everything you've seen, said or heard
open source | runs locally | developer friendly
┌────────────────────────┬────────────────────────────────────┐
│ setting │ value │
├────────────────────────┼────────────────────────────────────┤
│ audio chunk duration │ 30 seconds │
│ port │ 3030 │
│ audio disabled │ true │
│ vision disabled │ false │
│ pause on DRM content │ false │
│ audio engine │ Parakeet │
│ vad engine │ Silero │
│ data directory │ /Users/lukas/.screenpipe │
│ debug mode │ false │
│ telemetry │ true │
│ use pii removal │ true │
│ use all monitors │ true │
│ ignored windows │ ["Boosteroid"] │
│ included windows │ [] │
│ cloud sync │ disabled │
│ auto-destruct pid │ 0 │
│ deepgram key │ not set │
│ api auth │ enabled │
2026-04-24T09:19:24.607221Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)
2026-04-24T09:19:24.612773Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh
│ encrypt secrets │ disabled │
│ retention days │ 14 │
├────────────────────────┼────────────────────────────────────┤
│ languages │ │
│ │ all languages │
├────────────────────────┼────────────────────────────────────┤
│ monitors │ │
│ │ id: 1 │
│ │ id: 2 │
├────────────────────────┼────────────────────────────────────┤
│ audio devices │ │
│ │ disabled │
└────────────────────────┴────────────────────────────────────┘
you are using local processing. all your data stays on your computer.
warning: telemetry is enabled. only error-level data will be sent.
to disable, use the --disable-telemetry flag.
check latest changes here: https://github.com/screenpipe/screenpipe/releases
2026-04-24T09:19:24.622220Z INFO screenpipe: starting UI event capture
2026-04-24T09:19:24.635769Z INFO screenpipe_engine::ui_recorder: Starting UI event capture
2026-04-24T09:19:24.649336Z INFO screenpipe_engine::ui_recorder: UI recording session started: d723d582-4d6f-4e04-921c-c054be5f7efc
2026-04-24T09:19:24.649340Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)
2026-04-24T09:19:24.649501Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-23 06:19:24.649500 UTC to 2026-04-24 06:19:24.649500 UTC)
2026-04-24T09:19:24.650143Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)
2026-04-24T09:19:24.657009Z INFO screenpipe_engine::server: Server listening on [IP_ADDRESS]:3030
2026-04-24T09:19:24.667216Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030
2026-04-24T09:19:24.729181Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)
2026-04-24T09:19:24.729212Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)
2026-04-24T09:19:24.729249Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)
2026-04-24T09:19:24.779505Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-04-24T09:19:24.779540Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-04-24T09:19:24.779553Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)
2026-04-24T09:19:24.779561Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)
2026-04-24T09:19:24.779558Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-04-24T09:19:25.448244Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)
2026-04-24T09:19:25.568925Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=75340, dur=59ms
2026-04-24T09:19:25.573938Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)
2026-04-24T09:19:25.719368Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=75341, dur=92ms
2026-04-24T09:19:25.720846Z INFO sck_rs::stream_manager: invalidated persistent stream for display 2
2026-04-24T09:19:25.858429Z WARN sqlx::query: summary="SELECT f.id, f.timestamp, f.offset_index, …" db.statement="\n\nSELECT\n f.id,\n f.timestamp,\n f.offset_index,\n COALESCE(\n SUBSTR(f.full_text, 1, 200),\n SUBSTR(f.accessibility_text, 1, 200),\n (\n SELECT\n SUBSTR(ot.text, 1, 200)\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as text,\n COALESCE(\n f.app_name,\n (\n SELECT\n ot.app_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as app_name,\n COALESCE(\n f.window_name,\n (\n SELECT\n ot.window_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as window_name,\n COALESCE(vc.device_name, f.device_name) as screen_device,\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\n COALESCE(vc.fps, 0.033) as chunk_fps,\n f.browser_url,\n f.machine_id\nFROM\n frames f\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\nWHERE\n f.timestamp >= ?1\n AND f.timestamp <= ?2\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\nORDER BY\n f.timestamp DESC,\n f.offset_index DESC\nLIMIT\n 10000\n" rows_affected=0 rows_returned=2488 elapsed=1.208421959s
2026-04-24T09:19:25.864500Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 2488 frame entries, coverage from 2026-04-23 06:19:24.649500 UTC
2026-04-24T09:19:55.890230Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)
2026-04-24T09:20:14.750156Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1028901310814388349, trigger=visual_change)
2026-04-24T09:20:18.033810Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=587886836991007024, trigger=visual_change)
2026-04-24T09:20:31.827646Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=116 elapsed=7.239465292s
2026-04-24T09:20:31.828139Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 116 eligible frames
2026-04-24T09:20:40.295044Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 51 frames, 11.8MB → 5.8MB (2.0x), 51 JPEGs deleted
2026-04-24T09:20:46.893269Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 63 frames, 13.5MB → 4.0MB (3.4x), 63 JPEGs deleted
2026-04-24T09:21:08.939443Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2712612361587311688, trigger=click)
2026-04-24T09:21:43.598800Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)
2026-04-24T09:21:43.671594Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1454730608342357520, trigger=click)
2026-04-24T09:21:45.091008Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=visual_change)
2026-04-24T09:21:46.383314Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1454730608342357520, trigger=click)
2026-04-24T09:21:46.496744Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)
2026-04-24T09:21:48.098818Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=visual_change)
2026-04-24T09:22:11.221900Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)
2026-04-24T09:22:11.766896Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)
2026-04-24T09:22:16.888745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)
2026-04-24T09:22:17.491774Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)
2026-04-24T09:22:18.681622Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=visual_change)
2026-04-24T09:23:16.243167Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=visual_change)
2026-04-24T09:23:35.816445Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1454730608342357520, trigger=visual_change)
2026-04-24T09:23:38.930735Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1454730608342357520, trigger=visual_change)
2026-04-24T09:23:44.977693Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1454730608342357520, trigger=visual_change)
2026-04-24T09:23:47.976762Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1454730608342357520, trigger=visual_change)
2026-04-24T09:23:52.175025Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)
2026-04-24T09:23:53.676257Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)
2026-04-24T09:23:55.282163Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)
2026-04-24T09:23:57.823643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)
2026-04-24T09:23:58.994186Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=visual_change)
2026-04-24T09:24:05.860204Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)
2026-04-24T09:24:13.209516Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-718376464268389214, trigger=click)
2026-04-24T09:24:22.402923Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=click)
2026-04-24T09:24:22.942083Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=click)
2026-04-24T09:24:23.526173Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=click)
2026-04-24T09:24:32.347346Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=visual_change)
2026-04-24T09:25:11.682827Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=visual_change)
2026-04-24T09:25:18.972497Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=click)
2026-04-24T09:25:19.038120Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=click)
2026-04-24T09:25:23.792317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=visual_change)
2026-04-24T09:25:29.870772Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=visual_change)
2026-04-24T09:25:55.293996Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=2 elapsed=8.404251667s
2026-04-24T09:25:55.294848Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
2026-04-24T09:26:04.448822Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=click)
2026-04-24T09:26:33.349466Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=click)
2026-04-24T09:26:43.335239Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=visual_change)
2026-04-24T09:26:53.050041Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=click)
2026-04-24T09:26:53.167874Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=click)
2026-04-24T09:26:54.303442Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=visual_change)
2026-04-24T09:26:55.500318Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=visual_change)
2026-04-24T09:27:10.586419Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7481262235808181776, trigger=visual_change)
2026-04-24T09:27:32.621600Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6918193899859647097, trigger=click)
2026-04-24T09:27:33.024121Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6918193899859647097, trigger=visual_change)
2026-04-24T09:27:33.358990Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6918193899859647097, trigger=click)
2026-04-24T09:27:36.474585Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6881578134567937708, trigger=click)
2026-04-24T09:27:39.102616Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6885151902180127194, trigger=visual_change)
2026-04-24T09:27:43.161033Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2041093212856276090, trigger=click)
2026-04-24T09:28:34.574175Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=click)
2026-04-24T09:28:35.182695Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=visual_change)
2026-04-24T09:28:48.766885Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=click)
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
⌥⌘1
screenpipe"...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"Last login: Thu Apr 23 14:01:28 on ttys008\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-status\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-start\ndetected hardware tier: Mid\nwarning: parakeet is not supported on this platform, using whisper-tiny instead\n2026-04-24T09:19:23.948881Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store\nchecking permissions...\n screen recording: ok\n accessibility: ok\n2026-04-24T09:19:24.012726Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6\n2026-04-24T09:19:24.548628Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor\n2026-04-24T09:19:24.550486Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)\n2026-04-24T09:19:24.550876Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)\n2026-04-24T09:19:24.587519Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true\n2026-04-24T09:19:24.587575Z INFO screenpipe: meeting detector enabled — independent of transcription mode\n2026-04-24T09:19:24.587822Z INFO screenpipe: API server listening on 127.0.0.1:3030 (localhost only)\n2026-04-24T09:19:24.587784Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)\n2026-04-24T09:19:24.587750Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)\n2026-04-24T09:19:24.587842Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key\n2026-04-24T09:19:24.587884Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager\n2026-04-24T09:19:24.599482Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-24T09:19:24.604417Z INFO screenpipe_core::pipes: loaded pipe: day-recap\n2026-04-24T09:19:24.604614Z INFO screenpipe_core::pipes: loaded pipe: standup-update\n2026-04-24T09:19:24.605022Z INFO screenpipe_core::pipes: loaded pipe: ai-habits\n2026-04-24T09:19:24.605182Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown\n2026-04-24T09:19:24.605334Z INFO screenpipe_core::pipes: loaded pipe: video-export\n2026-04-24T09:19:24.605840Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary\n2026-04-24T09:19:24.605858Z INFO screenpipe_core::pipes: loaded 6 pipes from \"/Users/lukas/.screenpipe/pipes\"\n\n\n\n _ \n __________________ ___ ____ ____ (_____ ___ \n / ___/ ___/ ___/ _ \\/ _ \\/ __ \\ / __ \\/ / __ \\/ _ \\\n (__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/\n/____/\\___/_/ \\___/\\___/_/ /_/ / .___/_/ .___/\\___/ \n /_/ /_/ \n\n\n\npower AI by everything you've seen, said or heard\nopen source | runs locally | developer friendly\n\n\n┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ true │\n│ vision disabled │ false │\n│ pause on DRM content │ false │\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n│ ignored windows │ [\"Boosteroid\"] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n│ api auth │ enabled │\n2026-04-24T09:19:24.607221Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n2026-04-24T09:19:24.612773Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n│ encrypt secrets │ disabled │\n│ retention days │ 14 │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ id: 1 │\n│ │ id: 2 │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ disabled │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-24T09:19:24.622220Z INFO screenpipe: starting UI event capture\n2026-04-24T09:19:24.635769Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-24T09:19:24.649336Z INFO screenpipe_engine::ui_recorder: UI recording session started: d723d582-4d6f-4e04-921c-c054be5f7efc\n2026-04-24T09:19:24.649340Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-24T09:19:24.649501Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-23 06:19:24.649500 UTC to 2026-04-24 06:19:24.649500 UTC)\n2026-04-24T09:19:24.650143Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-24T09:19:24.657009Z INFO screenpipe_engine::server: Server listening on 127.0.0.1:3030\n2026-04-24T09:19:24.667216Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-24T09:19:24.729181Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-24T09:19:24.729212Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-24T09:19:24.729249Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-24T09:19:24.779505Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-24T09:19:24.779540Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-24T09:19:24.779553Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)\n2026-04-24T09:19:24.779561Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)\n2026-04-24T09:19:24.779558Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-24T09:19:25.448244Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)\n2026-04-24T09:19:25.568925Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=75340, dur=59ms\n2026-04-24T09:19:25.573938Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)\n2026-04-24T09:19:25.719368Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=75341, dur=92ms\n2026-04-24T09:19:25.720846Z INFO sck_rs::stream_manager: invalidated persistent stream for display 2\n2026-04-24T09:19:25.858429Z WARN sqlx::query: summary=\"SELECT f.id, f.timestamp, f.offset_index, …\" db.statement=\"\\n\\nSELECT\\n f.id,\\n f.timestamp,\\n f.offset_index,\\n COALESCE(\\n SUBSTR(f.full_text, 1, 200),\\n SUBSTR(f.accessibility_text, 1, 200),\\n (\\n SELECT\\n SUBSTR(ot.text, 1, 200)\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as text,\\n COALESCE(\\n f.app_name,\\n (\\n SELECT\\n ot.app_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as app_name,\\n COALESCE(\\n f.window_name,\\n (\\n SELECT\\n ot.window_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as window_name,\\n COALESCE(vc.device_name, f.device_name) as screen_device,\\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\\n COALESCE(vc.fps, 0.033) as chunk_fps,\\n f.browser_url,\\n f.machine_id\\nFROM\\n frames f\\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\\nWHERE\\n f.timestamp >= ?1\\n AND f.timestamp <= ?2\\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\\nORDER BY\\n f.timestamp DESC,\\n f.offset_index DESC\\nLIMIT\\n 10000\\n\" rows_affected=0 rows_returned=2488 elapsed=1.208421959s\n2026-04-24T09:19:25.864500Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 2488 frame entries, coverage from 2026-04-23 06:19:24.649500 UTC\n2026-04-24T09:19:55.890230Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)\n2026-04-24T09:20:14.750156Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1028901310814388349, trigger=visual_change)\n2026-04-24T09:20:18.033810Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=587886836991007024, trigger=visual_change)\n2026-04-24T09:20:31.827646Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=116 elapsed=7.239465292s\n2026-04-24T09:20:31.828139Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 116 eligible frames\n2026-04-24T09:20:40.295044Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 51 frames, 11.8MB → 5.8MB (2.0x), 51 JPEGs deleted\n2026-04-24T09:20:46.893269Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 63 frames, 13.5MB → 4.0MB (3.4x), 63 JPEGs deleted\n2026-04-24T09:21:08.939443Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2712612361587311688, trigger=click)\n2026-04-24T09:21:43.598800Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)\n2026-04-24T09:21:43.671594Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1454730608342357520, trigger=click)\n2026-04-24T09:21:45.091008Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=visual_change)\n2026-04-24T09:21:46.383314Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1454730608342357520, trigger=click)\n2026-04-24T09:21:46.496744Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)\n2026-04-24T09:21:48.098818Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=visual_change)\n2026-04-24T09:22:11.221900Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)\n2026-04-24T09:22:11.766896Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)\n2026-04-24T09:22:16.888745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)\n2026-04-24T09:22:17.491774Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)\n2026-04-24T09:22:18.681622Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=visual_change)\n2026-04-24T09:23:16.243167Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=visual_change)\n2026-04-24T09:23:35.816445Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1454730608342357520, trigger=visual_change)\n2026-04-24T09:23:38.930735Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1454730608342357520, trigger=visual_change)\n2026-04-24T09:23:44.977693Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1454730608342357520, trigger=visual_change)\n2026-04-24T09:23:47.976762Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1454730608342357520, trigger=visual_change)\n2026-04-24T09:23:52.175025Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)\n2026-04-24T09:23:53.676257Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)\n2026-04-24T09:23:55.282163Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)\n2026-04-24T09:23:57.823643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)\n2026-04-24T09:23:58.994186Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=visual_change)\n2026-04-24T09:24:05.860204Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)\n2026-04-24T09:24:13.209516Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-718376464268389214, trigger=click)\n2026-04-24T09:24:22.402923Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=click)\n2026-04-24T09:24:22.942083Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=click)\n2026-04-24T09:24:23.526173Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=click)\n2026-04-24T09:24:32.347346Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=visual_change)\n2026-04-24T09:25:11.682827Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=visual_change)\n2026-04-24T09:25:18.972497Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=click)\n2026-04-24T09:25:19.038120Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=click)\n2026-04-24T09:25:23.792317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=visual_change)\n2026-04-24T09:25:29.870772Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=visual_change)\n2026-04-24T09:25:55.293996Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=2 elapsed=8.404251667s\n2026-04-24T09:25:55.294848Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-24T09:26:04.448822Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=click)\n2026-04-24T09:26:33.349466Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=click)\n2026-04-24T09:26:43.335239Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=visual_change)\n2026-04-24T09:26:53.050041Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=click)\n2026-04-24T09:26:53.167874Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=click)\n2026-04-24T09:26:54.303442Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=visual_change)\n2026-04-24T09:26:55.500318Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=visual_change)\n2026-04-24T09:27:10.586419Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7481262235808181776, trigger=visual_change)\n2026-04-24T09:27:32.621600Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6918193899859647097, trigger=click)\n2026-04-24T09:27:33.024121Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6918193899859647097, trigger=visual_change)\n2026-04-24T09:27:33.358990Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6918193899859647097, trigger=click)\n2026-04-24T09:27:36.474585Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6881578134567937708, trigger=click)\n2026-04-24T09:27:39.102616Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6885151902180127194, trigger=visual_change)\n2026-04-24T09:27:43.161033Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2041093212856276090, trigger=click)\n2026-04-24T09:28:34.574175Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=click)\n2026-04-24T09:28:35.182695Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=visual_change)\n2026-04-24T09:28:48.766885Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=click)","depth":4,"value":"Last login: Thu Apr 23 14:01:28 on ttys008\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-status\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-start\ndetected hardware tier: Mid\nwarning: parakeet is not supported on this platform, using whisper-tiny instead\n2026-04-24T09:19:23.948881Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store\nchecking permissions...\n screen recording: ok\n accessibility: ok\n2026-04-24T09:19:24.012726Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6\n2026-04-24T09:19:24.548628Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor\n2026-04-24T09:19:24.550486Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)\n2026-04-24T09:19:24.550876Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)\n2026-04-24T09:19:24.587519Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true\n2026-04-24T09:19:24.587575Z INFO screenpipe: meeting detector enabled — independent of transcription mode\n2026-04-24T09:19:24.587822Z INFO screenpipe: API server listening on 127.0.0.1:3030 (localhost only)\n2026-04-24T09:19:24.587784Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)\n2026-04-24T09:19:24.587750Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)\n2026-04-24T09:19:24.587842Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key\n2026-04-24T09:19:24.587884Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager\n2026-04-24T09:19:24.599482Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-24T09:19:24.604417Z INFO screenpipe_core::pipes: loaded pipe: day-recap\n2026-04-24T09:19:24.604614Z INFO screenpipe_core::pipes: loaded pipe: standup-update\n2026-04-24T09:19:24.605022Z INFO screenpipe_core::pipes: loaded pipe: ai-habits\n2026-04-24T09:19:24.605182Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown\n2026-04-24T09:19:24.605334Z INFO screenpipe_core::pipes: loaded pipe: video-export\n2026-04-24T09:19:24.605840Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary\n2026-04-24T09:19:24.605858Z INFO screenpipe_core::pipes: loaded 6 pipes from \"/Users/lukas/.screenpipe/pipes\"\n\n\n\n _ \n __________________ ___ ____ ____ (_____ ___ \n / ___/ ___/ ___/ _ \\/ _ \\/ __ \\ / __ \\/ / __ \\/ _ \\\n (__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/\n/____/\\___/_/ \\___/\\___/_/ /_/ / .___/_/ .___/\\___/ \n /_/ /_/ \n\n\n\npower AI by everything you've seen, said or heard\nopen source | runs locally | developer friendly\n\n\n┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ true │\n│ vision disabled │ false │\n│ pause on DRM content │ false │\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n│ ignored windows │ [\"Boosteroid\"] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n│ api auth │ enabled │\n2026-04-24T09:19:24.607221Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n2026-04-24T09:19:24.612773Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n│ encrypt secrets │ disabled │\n│ retention days │ 14 │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ id: 1 │\n│ │ id: 2 │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ disabled │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-24T09:19:24.622220Z INFO screenpipe: starting UI event capture\n2026-04-24T09:19:24.635769Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-24T09:19:24.649336Z INFO screenpipe_engine::ui_recorder: UI recording session started: d723d582-4d6f-4e04-921c-c054be5f7efc\n2026-04-24T09:19:24.649340Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-24T09:19:24.649501Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-23 06:19:24.649500 UTC to 2026-04-24 06:19:24.649500 UTC)\n2026-04-24T09:19:24.650143Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-24T09:19:24.657009Z INFO screenpipe_engine::server: Server listening on 127.0.0.1:3030\n2026-04-24T09:19:24.667216Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-24T09:19:24.729181Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-24T09:19:24.729212Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-24T09:19:24.729249Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-24T09:19:24.779505Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-24T09:19:24.779540Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-24T09:19:24.779553Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)\n2026-04-24T09:19:24.779561Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)\n2026-04-24T09:19:24.779558Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-24T09:19:25.448244Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)\n2026-04-24T09:19:25.568925Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=75340, dur=59ms\n2026-04-24T09:19:25.573938Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)\n2026-04-24T09:19:25.719368Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=75341, dur=92ms\n2026-04-24T09:19:25.720846Z INFO sck_rs::stream_manager: invalidated persistent stream for display 2\n2026-04-24T09:19:25.858429Z WARN sqlx::query: summary=\"SELECT f.id, f.timestamp, f.offset_index, …\" db.statement=\"\\n\\nSELECT\\n f.id,\\n f.timestamp,\\n f.offset_index,\\n COALESCE(\\n SUBSTR(f.full_text, 1, 200),\\n SUBSTR(f.accessibility_text, 1, 200),\\n (\\n SELECT\\n SUBSTR(ot.text, 1, 200)\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as text,\\n COALESCE(\\n f.app_name,\\n (\\n SELECT\\n ot.app_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as app_name,\\n COALESCE(\\n f.window_name,\\n (\\n SELECT\\n ot.window_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as window_name,\\n COALESCE(vc.device_name, f.device_name) as screen_device,\\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\\n COALESCE(vc.fps, 0.033) as chunk_fps,\\n f.browser_url,\\n f.machine_id\\nFROM\\n frames f\\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\\nWHERE\\n f.timestamp >= ?1\\n AND f.timestamp <= ?2\\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\\nORDER BY\\n f.timestamp DESC,\\n f.offset_index DESC\\nLIMIT\\n 10000\\n\" rows_affected=0 rows_returned=2488 elapsed=1.208421959s\n2026-04-24T09:19:25.864500Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 2488 frame entries, coverage from 2026-04-23 06:19:24.649500 UTC\n2026-04-24T09:19:55.890230Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)\n2026-04-24T09:20:14.750156Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1028901310814388349, trigger=visual_change)\n2026-04-24T09:20:18.033810Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=587886836991007024, trigger=visual_change)\n2026-04-24T09:20:31.827646Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=116 elapsed=7.239465292s\n2026-04-24T09:20:31.828139Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 116 eligible frames\n2026-04-24T09:20:40.295044Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 51 frames, 11.8MB → 5.8MB (2.0x), 51 JPEGs deleted\n2026-04-24T09:20:46.893269Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 63 frames, 13.5MB → 4.0MB (3.4x), 63 JPEGs deleted\n2026-04-24T09:21:08.939443Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2712612361587311688, trigger=click)\n2026-04-24T09:21:43.598800Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)\n2026-04-24T09:21:43.671594Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1454730608342357520, trigger=click)\n2026-04-24T09:21:45.091008Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=visual_change)\n2026-04-24T09:21:46.383314Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1454730608342357520, trigger=click)\n2026-04-24T09:21:46.496744Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)\n2026-04-24T09:21:48.098818Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=visual_change)\n2026-04-24T09:22:11.221900Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)\n2026-04-24T09:22:11.766896Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)\n2026-04-24T09:22:16.888745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)\n2026-04-24T09:22:17.491774Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)\n2026-04-24T09:22:18.681622Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=visual_change)\n2026-04-24T09:23:16.243167Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=visual_change)\n2026-04-24T09:23:35.816445Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1454730608342357520, trigger=visual_change)\n2026-04-24T09:23:38.930735Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1454730608342357520, trigger=visual_change)\n2026-04-24T09:23:44.977693Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1454730608342357520, trigger=visual_change)\n2026-04-24T09:23:47.976762Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1454730608342357520, trigger=visual_change)\n2026-04-24T09:23:52.175025Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)\n2026-04-24T09:23:53.676257Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)\n2026-04-24T09:23:55.282163Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)\n2026-04-24T09:23:57.823643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)\n2026-04-24T09:23:58.994186Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=visual_change)\n2026-04-24T09:24:05.860204Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)\n2026-04-24T09:24:13.209516Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-718376464268389214, trigger=click)\n2026-04-24T09:24:22.402923Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=click)\n2026-04-24T09:24:22.942083Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=click)\n2026-04-24T09:24:23.526173Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=click)\n2026-04-24T09:24:32.347346Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=visual_change)\n2026-04-24T09:25:11.682827Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=visual_change)\n2026-04-24T09:25:18.972497Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=click)\n2026-04-24T09:25:19.038120Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=click)\n2026-04-24T09:25:23.792317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=visual_change)\n2026-04-24T09:25:29.870772Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=visual_change)\n2026-04-24T09:25:55.293996Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=2 elapsed=8.404251667s\n2026-04-24T09:25:55.294848Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-24T09:26:04.448822Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=click)\n2026-04-24T09:26:33.349466Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=click)\n2026-04-24T09:26:43.335239Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=visual_change)\n2026-04-24T09:26:53.050041Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=click)\n2026-04-24T09:26:53.167874Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=click)\n2026-04-24T09:26:54.303442Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=visual_change)\n2026-04-24T09:26:55.500318Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=visual_change)\n2026-04-24T09:27:10.586419Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7481262235808181776, trigger=visual_change)\n2026-04-24T09:27:32.621600Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6918193899859647097, trigger=click)\n2026-04-24T09:27:33.024121Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6918193899859647097, trigger=visual_change)\n2026-04-24T09:27:33.358990Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6918193899859647097, trigger=click)\n2026-04-24T09:27:36.474585Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6881578134567937708, trigger=click)\n2026-04-24T09:27:39.102616Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6885151902180127194, trigger=visual_change)\n2026-04-24T09:27:43.161033Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2041093212856276090, trigger=click)\n2026-04-24T09:28:34.574175Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=click)\n2026-04-24T09:28:35.182695Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=visual_change)\n2026-04-24T09:28:48.766885Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=click)","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.24652778,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.24652778,"top":0.05888889,"width":0.24652778,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.25069445,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.49305555,"top":0.05888889,"width":0.24652778,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.49722221,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.7395833,"top":0.05888889,"width":0.24652778,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.74375,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"screenpipe\"","depth":1,"bounds":{"left":0.4722222,"top":0.033333335,"width":0.058333334,"height":0.017777778},"role_description":"text"}]...
|
-3827964891494523905
|
2715996119666632049
|
app_switch
|
accessibility
|
NULL
|
Last login: Thu Apr 23 14:01:28 on ttys008
Poetry Last login: Thu Apr 23 14:01:28 on ttys008
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-start
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-04-24T09:19:23.948881Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store
checking permissions...
screen recording: ok
accessibility: ok
2026-04-24T09:19:24.012726Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-04-24T09:19:24.548628Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-04-24T09:19:24.550486Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-04-24T09:19:24.550876Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-04-24T09:19:24.587519Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-04-24T09:19:24.587575Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-04-24T09:19:24.587822Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-04-24T09:19:24.587784Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-04-24T09:19:24.587750Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-04-24T09:19:24.587842Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-04-24T09:19:24.587884Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-04-24T09:19:24.599482Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))
2026-04-24T09:19:24.604417Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-04-24T09:19:24.604614Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-04-24T09:19:24.605022Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-04-24T09:19:24.605182Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-04-24T09:19:24.605334Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-04-24T09:19:24.605840Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary
2026-04-24T09:19:24.605858Z INFO screenpipe_core::pipes: loaded 6 pipes from "/Users/lukas/.screenpipe/pipes"
_
__________________ ___ ____ ____ (_____ ___
/ ___/ ___/ ___/ _ \/ _ \/ __ \ / __ \/ / __ \/ _ \
(__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/
/____/\___/_/ \___/\___/_/ /_/ / .___/_/ .___/\___/
/_/ /_/
power AI by everything you've seen, said or heard
open source | runs locally | developer friendly
┌────────────────────────┬────────────────────────────────────┐
│ setting │ value │
├────────────────────────┼────────────────────────────────────┤
│ audio chunk duration │ 30 seconds │
│ port │ 3030 │
│ audio disabled │ true │
│ vision disabled │ false │
│ pause on DRM content │ false │
│ audio engine │ Parakeet │
│ vad engine │ Silero │
│ data directory │ /Users/lukas/.screenpipe │
│ debug mode │ false │
│ telemetry │ true │
│ use pii removal │ true │
│ use all monitors │ true │
│ ignored windows │ ["Boosteroid"] │
│ included windows │ [] │
│ cloud sync │ disabled │
│ auto-destruct pid │ 0 │
│ deepgram key │ not set │
│ api auth │ enabled │
2026-04-24T09:19:24.607221Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)
2026-04-24T09:19:24.612773Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh
│ encrypt secrets │ disabled │
│ retention days │ 14 │
├────────────────────────┼────────────────────────────────────┤
│ languages │ │
│ │ all languages │
├────────────────────────┼────────────────────────────────────┤
│ monitors │ │
│ │ id: 1 │
│ │ id: 2 │
├────────────────────────┼────────────────────────────────────┤
│ audio devices │ │
│ │ disabled │
└────────────────────────┴────────────────────────────────────┘
you are using local processing. all your data stays on your computer.
warning: telemetry is enabled. only error-level data will be sent.
to disable, use the --disable-telemetry flag.
check latest changes here: https://github.com/screenpipe/screenpipe/releases
2026-04-24T09:19:24.622220Z INFO screenpipe: starting UI event capture
2026-04-24T09:19:24.635769Z INFO screenpipe_engine::ui_recorder: Starting UI event capture
2026-04-24T09:19:24.649336Z INFO screenpipe_engine::ui_recorder: UI recording session started: d723d582-4d6f-4e04-921c-c054be5f7efc
2026-04-24T09:19:24.649340Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)
2026-04-24T09:19:24.649501Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-23 06:19:24.649500 UTC to 2026-04-24 06:19:24.649500 UTC)
2026-04-24T09:19:24.650143Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)
2026-04-24T09:19:24.657009Z INFO screenpipe_engine::server: Server listening on [IP_ADDRESS]:3030
2026-04-24T09:19:24.667216Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030
2026-04-24T09:19:24.729181Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)
2026-04-24T09:19:24.729212Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)
2026-04-24T09:19:24.729249Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)
2026-04-24T09:19:24.779505Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-04-24T09:19:24.779540Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-04-24T09:19:24.779553Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)
2026-04-24T09:19:24.779561Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)
2026-04-24T09:19:24.779558Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-04-24T09:19:25.448244Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)
2026-04-24T09:19:25.568925Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=75340, dur=59ms
2026-04-24T09:19:25.573938Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)
2026-04-24T09:19:25.719368Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=75341, dur=92ms
2026-04-24T09:19:25.720846Z INFO sck_rs::stream_manager: invalidated persistent stream for display 2
2026-04-24T09:19:25.858429Z WARN sqlx::query: summary="SELECT f.id, f.timestamp, f.offset_index, …" db.statement="\n\nSELECT\n f.id,\n f.timestamp,\n f.offset_index,\n COALESCE(\n SUBSTR(f.full_text, 1, 200),\n SUBSTR(f.accessibility_text, 1, 200),\n (\n SELECT\n SUBSTR(ot.text, 1, 200)\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as text,\n COALESCE(\n f.app_name,\n (\n SELECT\n ot.app_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as app_name,\n COALESCE(\n f.window_name,\n (\n SELECT\n ot.window_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as window_name,\n COALESCE(vc.device_name, f.device_name) as screen_device,\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\n COALESCE(vc.fps, 0.033) as chunk_fps,\n f.browser_url,\n f.machine_id\nFROM\n frames f\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\nWHERE\n f.timestamp >= ?1\n AND f.timestamp <= ?2\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\nORDER BY\n f.timestamp DESC,\n f.offset_index DESC\nLIMIT\n 10000\n" rows_affected=0 rows_returned=2488 elapsed=1.208421959s
2026-04-24T09:19:25.864500Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 2488 frame entries, coverage from 2026-04-23 06:19:24.649500 UTC
2026-04-24T09:19:55.890230Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)
2026-04-24T09:20:14.750156Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1028901310814388349, trigger=visual_change)
2026-04-24T09:20:18.033810Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=587886836991007024, trigger=visual_change)
2026-04-24T09:20:31.827646Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=116 elapsed=7.239465292s
2026-04-24T09:20:31.828139Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 116 eligible frames
2026-04-24T09:20:40.295044Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 51 frames, 11.8MB → 5.8MB (2.0x), 51 JPEGs deleted
2026-04-24T09:20:46.893269Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 63 frames, 13.5MB → 4.0MB (3.4x), 63 JPEGs deleted
2026-04-24T09:21:08.939443Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2712612361587311688, trigger=click)
2026-04-24T09:21:43.598800Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)
2026-04-24T09:21:43.671594Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1454730608342357520, trigger=click)
2026-04-24T09:21:45.091008Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=visual_change)
2026-04-24T09:21:46.383314Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1454730608342357520, trigger=click)
2026-04-24T09:21:46.496744Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)
2026-04-24T09:21:48.098818Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=visual_change)
2026-04-24T09:22:11.221900Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)
2026-04-24T09:22:11.766896Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)
2026-04-24T09:22:16.888745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)
2026-04-24T09:22:17.491774Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)
2026-04-24T09:22:18.681622Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=visual_change)
2026-04-24T09:23:16.243167Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=visual_change)
2026-04-24T09:23:35.816445Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1454730608342357520, trigger=visual_change)
2026-04-24T09:23:38.930735Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1454730608342357520, trigger=visual_change)
2026-04-24T09:23:44.977693Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1454730608342357520, trigger=visual_change)
2026-04-24T09:23:47.976762Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1454730608342357520, trigger=visual_change)
2026-04-24T09:23:52.175025Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)
2026-04-24T09:23:53.676257Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)
2026-04-24T09:23:55.282163Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)
2026-04-24T09:23:57.823643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)
2026-04-24T09:23:58.994186Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=visual_change)
2026-04-24T09:24:05.860204Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1454730608342357520, trigger=click)
2026-04-24T09:24:13.209516Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-718376464268389214, trigger=click)
2026-04-24T09:24:22.402923Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=click)
2026-04-24T09:24:22.942083Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=click)
2026-04-24T09:24:23.526173Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=click)
2026-04-24T09:24:32.347346Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=visual_change)
2026-04-24T09:25:11.682827Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=visual_change)
2026-04-24T09:25:18.972497Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=click)
2026-04-24T09:25:19.038120Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=click)
2026-04-24T09:25:23.792317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=visual_change)
2026-04-24T09:25:29.870772Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=visual_change)
2026-04-24T09:25:55.293996Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=2 elapsed=8.404251667s
2026-04-24T09:25:55.294848Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
2026-04-24T09:26:04.448822Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=click)
2026-04-24T09:26:33.349466Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=click)
2026-04-24T09:26:43.335239Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=visual_change)
2026-04-24T09:26:53.050041Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=click)
2026-04-24T09:26:53.167874Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=click)
2026-04-24T09:26:54.303442Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=visual_change)
2026-04-24T09:26:55.500318Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8529419538052703508, trigger=visual_change)
2026-04-24T09:27:10.586419Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7481262235808181776, trigger=visual_change)
2026-04-24T09:27:32.621600Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6918193899859647097, trigger=click)
2026-04-24T09:27:33.024121Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6918193899859647097, trigger=visual_change)
2026-04-24T09:27:33.358990Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6918193899859647097, trigger=click)
2026-04-24T09:27:36.474585Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6881578134567937708, trigger=click)
2026-04-24T09:27:39.102616Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6885151902180127194, trigger=visual_change)
2026-04-24T09:27:43.161033Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2041093212856276090, trigger=click)
2026-04-24T09:28:34.574175Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=click)
2026-04-24T09:28:35.182695Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=visual_change)
2026-04-24T09:28:48.766885Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8529419538052703508, trigger=click)
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
⌥⌘1
screenpipe"...
|
NULL
|
|
75344
|
1877
|
2
|
2026-04-24T06:19:57.996713+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-24/1777 /Users/lukas/.screenpipe/data/data/2026-04-24/1777011597996_m1.jpg...
|
iTerm2
|
screenpipe"
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Last login: Thu Apr 23 14:01:28 on ttys008
Poetry Last login: Thu Apr 23 14:01:28 on ttys008
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-start
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-04-24T09:19:23.948881Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store
checking permissions...
screen recording: ok
accessibility: ok
2026-04-24T09:19:24.012726Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-04-24T09:19:24.548628Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-04-24T09:19:24.550486Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-04-24T09:19:24.550876Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-04-24T09:19:24.587519Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-04-24T09:19:24.587575Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-04-24T09:19:24.587822Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-04-24T09:19:24.587784Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-04-24T09:19:24.587750Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-04-24T09:19:24.587842Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-04-24T09:19:24.587884Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-04-24T09:19:24.599482Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))
2026-04-24T09:19:24.604417Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-04-24T09:19:24.604614Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-04-24T09:19:24.605022Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-04-24T09:19:24.605182Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-04-24T09:19:24.605334Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-04-24T09:19:24.605840Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary
2026-04-24T09:19:24.605858Z INFO screenpipe_core::pipes: loaded 6 pipes from "/Users/lukas/.screenpipe/pipes"
_
__________________ ___ ____ ____ (_____ ___
/ ___/ ___/ ___/ _ \/ _ \/ __ \ / __ \/ / __ \/ _ \
(__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/
/____/\___/_/ \___/\___/_/ /_/ / .___/_/ .___/\___/
/_/ /_/
power AI by everything you've seen, said or heard
open source | runs locally | developer friendly
┌────────────────────────┬────────────────────────────────────┐
│ setting │ value │
├────────────────────────┼────────────────────────────────────┤
│ audio chunk duration │ 30 seconds │
│ port │ 3030 │
│ audio disabled │ true │
│ vision disabled │ false │
│ pause on DRM content │ false │
│ audio engine │ Parakeet │
│ vad engine │ Silero │
│ data directory │ /Users/lukas/.screenpipe │
│ debug mode │ false │
│ telemetry │ true │
│ use pii removal │ true │
│ use all monitors │ true │
│ ignored windows │ ["Boosteroid"] │
│ included windows │ [] │
│ cloud sync │ disabled │
│ auto-destruct pid │ 0 │
│ deepgram key │ not set │
│ api auth │ enabled │
2026-04-24T09:19:24.607221Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)
2026-04-24T09:19:24.612773Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh
│ encrypt secrets │ disabled │
│ retention days │ 14 │
├────────────────────────┼────────────────────────────────────┤
│ languages │ │
│ │ all languages │
├────────────────────────┼────────────────────────────────────┤
│ monitors │ │
│ │ id: 1 │
│ │ id: 2 │
├────────────────────────┼────────────────────────────────────┤
│ audio devices │ │
│ │ disabled │
└────────────────────────┴────────────────────────────────────┘
you are using local processing. all your data stays on your computer.
warning: telemetry is enabled. only error-level data will be sent.
to disable, use the --disable-telemetry flag.
check latest changes here: https://github.com/screenpipe/screenpipe/releases
2026-04-24T09:19:24.622220Z INFO screenpipe: starting UI event capture
2026-04-24T09:19:24.635769Z INFO screenpipe_engine::ui_recorder: Starting UI event capture
2026-04-24T09:19:24.649336Z INFO screenpipe_engine::ui_recorder: UI recording session started: d723d582-4d6f-4e04-921c-c054be5f7efc
2026-04-24T09:19:24.649340Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)
2026-04-24T09:19:24.649501Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-23 06:19:24.649500 UTC to 2026-04-24 06:19:24.649500 UTC)
2026-04-24T09:19:24.650143Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)
2026-04-24T09:19:24.657009Z INFO screenpipe_engine::server: Server listening on [IP_ADDRESS]:3030
2026-04-24T09:19:24.667216Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030
2026-04-24T09:19:24.729181Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)
2026-04-24T09:19:24.729212Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)
2026-04-24T09:19:24.729249Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)
2026-04-24T09:19:24.779505Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-04-24T09:19:24.779540Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-04-24T09:19:24.779553Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)
2026-04-24T09:19:24.779561Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)
2026-04-24T09:19:24.779558Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-04-24T09:19:25.448244Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)
2026-04-24T09:19:25.568925Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=75340, dur=59ms
2026-04-24T09:19:25.573938Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)
2026-04-24T09:19:25.719368Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=75341, dur=92ms
2026-04-24T09:19:25.720846Z INFO sck_rs::stream_manager: invalidated persistent stream for display 2
2026-04-24T09:19:25.858429Z WARN sqlx::query: summary="SELECT f.id, f.timestamp, f.offset_index, …" db.statement="\n\nSELECT\n f.id,\n f.timestamp,\n f.offset_index,\n COALESCE(\n SUBSTR(f.full_text, 1, 200),\n SUBSTR(f.accessibility_text, 1, 200),\n (\n SELECT\n SUBSTR(ot.text, 1, 200)\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as text,\n COALESCE(\n f.app_name,\n (\n SELECT\n ot.app_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as app_name,\n COALESCE(\n f.window_name,\n (\n SELECT\n ot.window_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as window_name,\n COALESCE(vc.device_name, f.device_name) as screen_device,\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\n COALESCE(vc.fps, 0.033) as chunk_fps,\n f.browser_url,\n f.machine_id\nFROM\n frames f\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\nWHERE\n f.timestamp >= ?1\n AND f.timestamp <= ?2\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\nORDER BY\n f.timestamp DESC,\n f.offset_index DESC\nLIMIT\n 10000\n" rows_affected=0 rows_returned=2488 elapsed=1.208421959s
2026-04-24T09:19:25.864500Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 2488 frame entries, coverage from 2026-04-23 06:19:24.649500 UTC
2026-04-24T09:19:55.890230Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
⌥⌘1
screenpipe"...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"Last login: Thu Apr 23 14:01:28 on ttys008\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-status\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-start\ndetected hardware tier: Mid\nwarning: parakeet is not supported on this platform, using whisper-tiny instead\n2026-04-24T09:19:23.948881Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store\nchecking permissions...\n screen recording: ok\n accessibility: ok\n2026-04-24T09:19:24.012726Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6\n2026-04-24T09:19:24.548628Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor\n2026-04-24T09:19:24.550486Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)\n2026-04-24T09:19:24.550876Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)\n2026-04-24T09:19:24.587519Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true\n2026-04-24T09:19:24.587575Z INFO screenpipe: meeting detector enabled — independent of transcription mode\n2026-04-24T09:19:24.587822Z INFO screenpipe: API server listening on 127.0.0.1:3030 (localhost only)\n2026-04-24T09:19:24.587784Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)\n2026-04-24T09:19:24.587750Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)\n2026-04-24T09:19:24.587842Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key\n2026-04-24T09:19:24.587884Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager\n2026-04-24T09:19:24.599482Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-24T09:19:24.604417Z INFO screenpipe_core::pipes: loaded pipe: day-recap\n2026-04-24T09:19:24.604614Z INFO screenpipe_core::pipes: loaded pipe: standup-update\n2026-04-24T09:19:24.605022Z INFO screenpipe_core::pipes: loaded pipe: ai-habits\n2026-04-24T09:19:24.605182Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown\n2026-04-24T09:19:24.605334Z INFO screenpipe_core::pipes: loaded pipe: video-export\n2026-04-24T09:19:24.605840Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary\n2026-04-24T09:19:24.605858Z INFO screenpipe_core::pipes: loaded 6 pipes from \"/Users/lukas/.screenpipe/pipes\"\n\n\n\n _ \n __________________ ___ ____ ____ (_____ ___ \n / ___/ ___/ ___/ _ \\/ _ \\/ __ \\ / __ \\/ / __ \\/ _ \\\n (__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/\n/____/\\___/_/ \\___/\\___/_/ /_/ / .___/_/ .___/\\___/ \n /_/ /_/ \n\n\n\npower AI by everything you've seen, said or heard\nopen source | runs locally | developer friendly\n\n\n┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ true │\n│ vision disabled │ false │\n│ pause on DRM content │ false │\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n│ ignored windows │ [\"Boosteroid\"] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n│ api auth │ enabled │\n2026-04-24T09:19:24.607221Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n2026-04-24T09:19:24.612773Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n│ encrypt secrets │ disabled │\n│ retention days │ 14 │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ id: 1 │\n│ │ id: 2 │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ disabled │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-24T09:19:24.622220Z INFO screenpipe: starting UI event capture\n2026-04-24T09:19:24.635769Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-24T09:19:24.649336Z INFO screenpipe_engine::ui_recorder: UI recording session started: d723d582-4d6f-4e04-921c-c054be5f7efc\n2026-04-24T09:19:24.649340Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-24T09:19:24.649501Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-23 06:19:24.649500 UTC to 2026-04-24 06:19:24.649500 UTC)\n2026-04-24T09:19:24.650143Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-24T09:19:24.657009Z INFO screenpipe_engine::server: Server listening on 127.0.0.1:3030\n2026-04-24T09:19:24.667216Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-24T09:19:24.729181Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-24T09:19:24.729212Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-24T09:19:24.729249Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-24T09:19:24.779505Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-24T09:19:24.779540Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-24T09:19:24.779553Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)\n2026-04-24T09:19:24.779561Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)\n2026-04-24T09:19:24.779558Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-24T09:19:25.448244Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)\n2026-04-24T09:19:25.568925Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=75340, dur=59ms\n2026-04-24T09:19:25.573938Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)\n2026-04-24T09:19:25.719368Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=75341, dur=92ms\n2026-04-24T09:19:25.720846Z INFO sck_rs::stream_manager: invalidated persistent stream for display 2\n2026-04-24T09:19:25.858429Z WARN sqlx::query: summary=\"SELECT f.id, f.timestamp, f.offset_index, …\" db.statement=\"\\n\\nSELECT\\n f.id,\\n f.timestamp,\\n f.offset_index,\\n COALESCE(\\n SUBSTR(f.full_text, 1, 200),\\n SUBSTR(f.accessibility_text, 1, 200),\\n (\\n SELECT\\n SUBSTR(ot.text, 1, 200)\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as text,\\n COALESCE(\\n f.app_name,\\n (\\n SELECT\\n ot.app_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as app_name,\\n COALESCE(\\n f.window_name,\\n (\\n SELECT\\n ot.window_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as window_name,\\n COALESCE(vc.device_name, f.device_name) as screen_device,\\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\\n COALESCE(vc.fps, 0.033) as chunk_fps,\\n f.browser_url,\\n f.machine_id\\nFROM\\n frames f\\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\\nWHERE\\n f.timestamp >= ?1\\n AND f.timestamp <= ?2\\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\\nORDER BY\\n f.timestamp DESC,\\n f.offset_index DESC\\nLIMIT\\n 10000\\n\" rows_affected=0 rows_returned=2488 elapsed=1.208421959s\n2026-04-24T09:19:25.864500Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 2488 frame entries, coverage from 2026-04-23 06:19:24.649500 UTC\n2026-04-24T09:19:55.890230Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)","depth":4,"value":"Last login: Thu Apr 23 14:01:28 on ttys008\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-status\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-start\ndetected hardware tier: Mid\nwarning: parakeet is not supported on this platform, using whisper-tiny instead\n2026-04-24T09:19:23.948881Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store\nchecking permissions...\n screen recording: ok\n accessibility: ok\n2026-04-24T09:19:24.012726Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6\n2026-04-24T09:19:24.548628Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor\n2026-04-24T09:19:24.550486Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)\n2026-04-24T09:19:24.550876Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)\n2026-04-24T09:19:24.587519Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true\n2026-04-24T09:19:24.587575Z INFO screenpipe: meeting detector enabled — independent of transcription mode\n2026-04-24T09:19:24.587822Z INFO screenpipe: API server listening on 127.0.0.1:3030 (localhost only)\n2026-04-24T09:19:24.587784Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)\n2026-04-24T09:19:24.587750Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)\n2026-04-24T09:19:24.587842Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key\n2026-04-24T09:19:24.587884Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager\n2026-04-24T09:19:24.599482Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-24T09:19:24.604417Z INFO screenpipe_core::pipes: loaded pipe: day-recap\n2026-04-24T09:19:24.604614Z INFO screenpipe_core::pipes: loaded pipe: standup-update\n2026-04-24T09:19:24.605022Z INFO screenpipe_core::pipes: loaded pipe: ai-habits\n2026-04-24T09:19:24.605182Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown\n2026-04-24T09:19:24.605334Z INFO screenpipe_core::pipes: loaded pipe: video-export\n2026-04-24T09:19:24.605840Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary\n2026-04-24T09:19:24.605858Z INFO screenpipe_core::pipes: loaded 6 pipes from \"/Users/lukas/.screenpipe/pipes\"\n\n\n\n _ \n __________________ ___ ____ ____ (_____ ___ \n / ___/ ___/ ___/ _ \\/ _ \\/ __ \\ / __ \\/ / __ \\/ _ \\\n (__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/\n/____/\\___/_/ \\___/\\___/_/ /_/ / .___/_/ .___/\\___/ \n /_/ /_/ \n\n\n\npower AI by everything you've seen, said or heard\nopen source | runs locally | developer friendly\n\n\n┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ true │\n│ vision disabled │ false │\n│ pause on DRM content │ false │\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n│ ignored windows │ [\"Boosteroid\"] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n│ api auth │ enabled │\n2026-04-24T09:19:24.607221Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n2026-04-24T09:19:24.612773Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n│ encrypt secrets │ disabled │\n│ retention days │ 14 │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ id: 1 │\n│ │ id: 2 │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ disabled │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-24T09:19:24.622220Z INFO screenpipe: starting UI event capture\n2026-04-24T09:19:24.635769Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-24T09:19:24.649336Z INFO screenpipe_engine::ui_recorder: UI recording session started: d723d582-4d6f-4e04-921c-c054be5f7efc\n2026-04-24T09:19:24.649340Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-24T09:19:24.649501Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-23 06:19:24.649500 UTC to 2026-04-24 06:19:24.649500 UTC)\n2026-04-24T09:19:24.650143Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-24T09:19:24.657009Z INFO screenpipe_engine::server: Server listening on 127.0.0.1:3030\n2026-04-24T09:19:24.667216Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-24T09:19:24.729181Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-24T09:19:24.729212Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-24T09:19:24.729249Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-24T09:19:24.779505Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-24T09:19:24.779540Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-24T09:19:24.779553Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)\n2026-04-24T09:19:24.779561Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)\n2026-04-24T09:19:24.779558Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-24T09:19:25.448244Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)\n2026-04-24T09:19:25.568925Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=75340, dur=59ms\n2026-04-24T09:19:25.573938Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)\n2026-04-24T09:19:25.719368Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=75341, dur=92ms\n2026-04-24T09:19:25.720846Z INFO sck_rs::stream_manager: invalidated persistent stream for display 2\n2026-04-24T09:19:25.858429Z WARN sqlx::query: summary=\"SELECT f.id, f.timestamp, f.offset_index, …\" db.statement=\"\\n\\nSELECT\\n f.id,\\n f.timestamp,\\n f.offset_index,\\n COALESCE(\\n SUBSTR(f.full_text, 1, 200),\\n SUBSTR(f.accessibility_text, 1, 200),\\n (\\n SELECT\\n SUBSTR(ot.text, 1, 200)\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as text,\\n COALESCE(\\n f.app_name,\\n (\\n SELECT\\n ot.app_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as app_name,\\n COALESCE(\\n f.window_name,\\n (\\n SELECT\\n ot.window_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as window_name,\\n COALESCE(vc.device_name, f.device_name) as screen_device,\\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\\n COALESCE(vc.fps, 0.033) as chunk_fps,\\n f.browser_url,\\n f.machine_id\\nFROM\\n frames f\\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\\nWHERE\\n f.timestamp >= ?1\\n AND f.timestamp <= ?2\\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\\nORDER BY\\n f.timestamp DESC,\\n f.offset_index DESC\\nLIMIT\\n 10000\\n\" rows_affected=0 rows_returned=2488 elapsed=1.208421959s\n2026-04-24T09:19:25.864500Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 2488 frame entries, coverage from 2026-04-23 06:19:24.649500 UTC\n2026-04-24T09:19:55.890230Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.24652778,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.24652778,"top":0.05888889,"width":0.24652778,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.25069445,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.49305555,"top":0.05888889,"width":0.24652778,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.49722221,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.7395833,"top":0.05888889,"width":0.24652778,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.74375,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"screenpipe\"","depth":1,"bounds":{"left":0.4722222,"top":0.033333335,"width":0.058333334,"height":0.017777778},"role_description":"text"}]...
|
-3643169233309434350
|
6928319522727982432
|
idle
|
accessibility
|
NULL
|
Last login: Thu Apr 23 14:01:28 on ttys008
Poetry Last login: Thu Apr 23 14:01:28 on ttys008
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-start
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-04-24T09:19:23.948881Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store
checking permissions...
screen recording: ok
accessibility: ok
2026-04-24T09:19:24.012726Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-04-24T09:19:24.548628Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-04-24T09:19:24.550486Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-04-24T09:19:24.550876Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-04-24T09:19:24.587519Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-04-24T09:19:24.587575Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-04-24T09:19:24.587822Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-04-24T09:19:24.587784Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-04-24T09:19:24.587750Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-04-24T09:19:24.587842Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-04-24T09:19:24.587884Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-04-24T09:19:24.599482Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))
2026-04-24T09:19:24.604417Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-04-24T09:19:24.604614Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-04-24T09:19:24.605022Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-04-24T09:19:24.605182Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-04-24T09:19:24.605334Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-04-24T09:19:24.605840Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary
2026-04-24T09:19:24.605858Z INFO screenpipe_core::pipes: loaded 6 pipes from "/Users/lukas/.screenpipe/pipes"
_
__________________ ___ ____ ____ (_____ ___
/ ___/ ___/ ___/ _ \/ _ \/ __ \ / __ \/ / __ \/ _ \
(__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/
/____/\___/_/ \___/\___/_/ /_/ / .___/_/ .___/\___/
/_/ /_/
power AI by everything you've seen, said or heard
open source | runs locally | developer friendly
┌────────────────────────┬────────────────────────────────────┐
│ setting │ value │
├────────────────────────┼────────────────────────────────────┤
│ audio chunk duration │ 30 seconds │
│ port │ 3030 │
│ audio disabled │ true │
│ vision disabled │ false │
│ pause on DRM content │ false │
│ audio engine │ Parakeet │
│ vad engine │ Silero │
│ data directory │ /Users/lukas/.screenpipe │
│ debug mode │ false │
│ telemetry │ true │
│ use pii removal │ true │
│ use all monitors │ true │
│ ignored windows │ ["Boosteroid"] │
│ included windows │ [] │
│ cloud sync │ disabled │
│ auto-destruct pid │ 0 │
│ deepgram key │ not set │
│ api auth │ enabled │
2026-04-24T09:19:24.607221Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)
2026-04-24T09:19:24.612773Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh
│ encrypt secrets │ disabled │
│ retention days │ 14 │
├────────────────────────┼────────────────────────────────────┤
│ languages │ │
│ │ all languages │
├────────────────────────┼────────────────────────────────────┤
│ monitors │ │
│ │ id: 1 │
│ │ id: 2 │
├────────────────────────┼────────────────────────────────────┤
│ audio devices │ │
│ │ disabled │
└────────────────────────┴────────────────────────────────────┘
you are using local processing. all your data stays on your computer.
warning: telemetry is enabled. only error-level data will be sent.
to disable, use the --disable-telemetry flag.
check latest changes here: https://github.com/screenpipe/screenpipe/releases
2026-04-24T09:19:24.622220Z INFO screenpipe: starting UI event capture
2026-04-24T09:19:24.635769Z INFO screenpipe_engine::ui_recorder: Starting UI event capture
2026-04-24T09:19:24.649336Z INFO screenpipe_engine::ui_recorder: UI recording session started: d723d582-4d6f-4e04-921c-c054be5f7efc
2026-04-24T09:19:24.649340Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)
2026-04-24T09:19:24.649501Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-23 06:19:24.649500 UTC to 2026-04-24 06:19:24.649500 UTC)
2026-04-24T09:19:24.650143Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)
2026-04-24T09:19:24.657009Z INFO screenpipe_engine::server: Server listening on [IP_ADDRESS]:3030
2026-04-24T09:19:24.667216Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030
2026-04-24T09:19:24.729181Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)
2026-04-24T09:19:24.729212Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)
2026-04-24T09:19:24.729249Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)
2026-04-24T09:19:24.779505Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-04-24T09:19:24.779540Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-04-24T09:19:24.779553Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)
2026-04-24T09:19:24.779561Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)
2026-04-24T09:19:24.779558Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-04-24T09:19:25.448244Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)
2026-04-24T09:19:25.568925Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=75340, dur=59ms
2026-04-24T09:19:25.573938Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)
2026-04-24T09:19:25.719368Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=75341, dur=92ms
2026-04-24T09:19:25.720846Z INFO sck_rs::stream_manager: invalidated persistent stream for display 2
2026-04-24T09:19:25.858429Z WARN sqlx::query: summary="SELECT f.id, f.timestamp, f.offset_index, …" db.statement="\n\nSELECT\n f.id,\n f.timestamp,\n f.offset_index,\n COALESCE(\n SUBSTR(f.full_text, 1, 200),\n SUBSTR(f.accessibility_text, 1, 200),\n (\n SELECT\n SUBSTR(ot.text, 1, 200)\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as text,\n COALESCE(\n f.app_name,\n (\n SELECT\n ot.app_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as app_name,\n COALESCE(\n f.window_name,\n (\n SELECT\n ot.window_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as window_name,\n COALESCE(vc.device_name, f.device_name) as screen_device,\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\n COALESCE(vc.fps, 0.033) as chunk_fps,\n f.browser_url,\n f.machine_id\nFROM\n frames f\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\nWHERE\n f.timestamp >= ?1\n AND f.timestamp <= ?2\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\nORDER BY\n f.timestamp DESC,\n f.offset_index DESC\nLIMIT\n 10000\n" rows_affected=0 rows_returned=2488 elapsed=1.208421959s
2026-04-24T09:19:25.864500Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 2488 frame entries, coverage from 2026-04-23 06:19:24.649500 UTC
2026-04-24T09:19:55.890230Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
⌥⌘1
screenpipe"...
|
NULL
|
|
75343
|
1878
|
1
|
2026-04-24T06:19:55.731470+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-24/1777 /Users/lukas/.screenpipe/data/data/2026-04-24/1777011595731_m2.jpg...
|
iTerm2
|
screenpipe"
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Last login: Thu Apr 23 14:01:28 on ttys008
Poetry Last login: Thu Apr 23 14:01:28 on ttys008
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-start
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-04-24T09:19:23.948881Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store
checking permissions...
screen recording: ok
accessibility: ok
2026-04-24T09:19:24.012726Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-04-24T09:19:24.548628Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-04-24T09:19:24.550486Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-04-24T09:19:24.550876Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-04-24T09:19:24.587519Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-04-24T09:19:24.587575Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-04-24T09:19:24.587822Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-04-24T09:19:24.587784Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-04-24T09:19:24.587750Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-04-24T09:19:24.587842Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-04-24T09:19:24.587884Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-04-24T09:19:24.599482Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))
2026-04-24T09:19:24.604417Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-04-24T09:19:24.604614Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-04-24T09:19:24.605022Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-04-24T09:19:24.605182Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-04-24T09:19:24.605334Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-04-24T09:19:24.605840Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary
2026-04-24T09:19:24.605858Z INFO screenpipe_core::pipes: loaded 6 pipes from "/Users/lukas/.screenpipe/pipes"
_
__________________ ___ ____ ____ (_____ ___
/ ___/ ___/ ___/ _ \/ _ \/ __ \ / __ \/ / __ \/ _ \
(__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/
/____/\___/_/ \___/\___/_/ /_/ / .___/_/ .___/\___/
/_/ /_/
power AI by everything you've seen, said or heard
open source | runs locally | developer friendly
┌────────────────────────┬────────────────────────────────────┐
│ setting │ value │
├────────────────────────┼────────────────────────────────────┤
│ audio chunk duration │ 30 seconds │
│ port │ 3030 │
│ audio disabled │ true │
│ vision disabled │ false │
│ pause on DRM content │ false │
│ audio engine │ Parakeet │
│ vad engine │ Silero │
│ data directory │ /Users/lukas/.screenpipe │
│ debug mode │ false │
│ telemetry │ true │
│ use pii removal │ true │
│ use all monitors │ true │
│ ignored windows │ ["Boosteroid"] │
│ included windows │ [] │
│ cloud sync │ disabled │
│ auto-destruct pid │ 0 │
│ deepgram key │ not set │
│ api auth │ enabled │
2026-04-24T09:19:24.607221Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)
2026-04-24T09:19:24.612773Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh
│ encrypt secrets │ disabled │
│ retention days │ 14 │
├────────────────────────┼────────────────────────────────────┤
│ languages │ │
│ │ all languages │
├────────────────────────┼────────────────────────────────────┤
│ monitors │ │
│ │ id: 1 │
│ │ id: 2 │
├────────────────────────┼────────────────────────────────────┤
│ audio devices │ │
│ │ disabled │
└────────────────────────┴────────────────────────────────────┘
you are using local processing. all your data stays on your computer.
warning: telemetry is enabled. only error-level data will be sent.
to disable, use the --disable-telemetry flag.
check latest changes here: https://github.com/screenpipe/screenpipe/releases
2026-04-24T09:19:24.622220Z INFO screenpipe: starting UI event capture
2026-04-24T09:19:24.635769Z INFO screenpipe_engine::ui_recorder: Starting UI event capture
2026-04-24T09:19:24.649336Z INFO screenpipe_engine::ui_recorder: UI recording session started: d723d582-4d6f-4e04-921c-c054be5f7efc
2026-04-24T09:19:24.649340Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)
2026-04-24T09:19:24.649501Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-23 06:19:24.649500 UTC to 2026-04-24 06:19:24.649500 UTC)
2026-04-24T09:19:24.650143Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)
2026-04-24T09:19:24.657009Z INFO screenpipe_engine::server: Server listening on [IP_ADDRESS]:3030
2026-04-24T09:19:24.667216Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030
2026-04-24T09:19:24.729181Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)
2026-04-24T09:19:24.729212Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)
2026-04-24T09:19:24.729249Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)
2026-04-24T09:19:24.779505Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-04-24T09:19:24.779540Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-04-24T09:19:24.779553Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)
2026-04-24T09:19:24.779561Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)
2026-04-24T09:19:24.779558Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-04-24T09:19:25.448244Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)
2026-04-24T09:19:25.568925Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=75340, dur=59ms
2026-04-24T09:19:25.573938Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)
2026-04-24T09:19:25.719368Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=75341, dur=92ms
2026-04-24T09:19:25.720846Z INFO sck_rs::stream_manager: invalidated persistent stream for display 2
2026-04-24T09:19:25.858429Z WARN sqlx::query: summary="SELECT f.id, f.timestamp, f.offset_index, …" db.statement="\n\nSELECT\n f.id,\n f.timestamp,\n f.offset_index,\n COALESCE(\n SUBSTR(f.full_text, 1, 200),\n SUBSTR(f.accessibility_text, 1, 200),\n (\n SELECT\n SUBSTR(ot.text, 1, 200)\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as text,\n COALESCE(\n f.app_name,\n (\n SELECT\n ot.app_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as app_name,\n COALESCE(\n f.window_name,\n (\n SELECT\n ot.window_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as window_name,\n COALESCE(vc.device_name, f.device_name) as screen_device,\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\n COALESCE(vc.fps, 0.033) as chunk_fps,\n f.browser_url,\n f.machine_id\nFROM\n frames f\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\nWHERE\n f.timestamp >= ?1\n AND f.timestamp <= ?2\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\nORDER BY\n f.timestamp DESC,\n f.offset_index DESC\nLIMIT\n 10000\n" rows_affected=0 rows_returned=2488 elapsed=1.208421959s
2026-04-24T09:19:25.864500Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 2488 frame entries, coverage from 2026-04-23 06:19:24.649500 UTC
2026-04-24T09:19:55.890230Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
⌥⌘1
screenpipe"...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"Last login: Thu Apr 23 14:01:28 on ttys008\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-status\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-start\ndetected hardware tier: Mid\nwarning: parakeet is not supported on this platform, using whisper-tiny instead\n2026-04-24T09:19:23.948881Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store\nchecking permissions...\n screen recording: ok\n accessibility: ok\n2026-04-24T09:19:24.012726Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6\n2026-04-24T09:19:24.548628Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor\n2026-04-24T09:19:24.550486Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)\n2026-04-24T09:19:24.550876Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)\n2026-04-24T09:19:24.587519Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true\n2026-04-24T09:19:24.587575Z INFO screenpipe: meeting detector enabled — independent of transcription mode\n2026-04-24T09:19:24.587822Z INFO screenpipe: API server listening on 127.0.0.1:3030 (localhost only)\n2026-04-24T09:19:24.587784Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)\n2026-04-24T09:19:24.587750Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)\n2026-04-24T09:19:24.587842Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key\n2026-04-24T09:19:24.587884Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager\n2026-04-24T09:19:24.599482Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-24T09:19:24.604417Z INFO screenpipe_core::pipes: loaded pipe: day-recap\n2026-04-24T09:19:24.604614Z INFO screenpipe_core::pipes: loaded pipe: standup-update\n2026-04-24T09:19:24.605022Z INFO screenpipe_core::pipes: loaded pipe: ai-habits\n2026-04-24T09:19:24.605182Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown\n2026-04-24T09:19:24.605334Z INFO screenpipe_core::pipes: loaded pipe: video-export\n2026-04-24T09:19:24.605840Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary\n2026-04-24T09:19:24.605858Z INFO screenpipe_core::pipes: loaded 6 pipes from \"/Users/lukas/.screenpipe/pipes\"\n\n\n\n _ \n __________________ ___ ____ ____ (_____ ___ \n / ___/ ___/ ___/ _ \\/ _ \\/ __ \\ / __ \\/ / __ \\/ _ \\\n (__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/\n/____/\\___/_/ \\___/\\___/_/ /_/ / .___/_/ .___/\\___/ \n /_/ /_/ \n\n\n\npower AI by everything you've seen, said or heard\nopen source | runs locally | developer friendly\n\n\n┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ true │\n│ vision disabled │ false │\n│ pause on DRM content │ false │\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n│ ignored windows │ [\"Boosteroid\"] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n│ api auth │ enabled │\n2026-04-24T09:19:24.607221Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n2026-04-24T09:19:24.612773Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n│ encrypt secrets │ disabled │\n│ retention days │ 14 │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ id: 1 │\n│ │ id: 2 │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ disabled │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-24T09:19:24.622220Z INFO screenpipe: starting UI event capture\n2026-04-24T09:19:24.635769Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-24T09:19:24.649336Z INFO screenpipe_engine::ui_recorder: UI recording session started: d723d582-4d6f-4e04-921c-c054be5f7efc\n2026-04-24T09:19:24.649340Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-24T09:19:24.649501Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-23 06:19:24.649500 UTC to 2026-04-24 06:19:24.649500 UTC)\n2026-04-24T09:19:24.650143Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-24T09:19:24.657009Z INFO screenpipe_engine::server: Server listening on 127.0.0.1:3030\n2026-04-24T09:19:24.667216Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-24T09:19:24.729181Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-24T09:19:24.729212Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-24T09:19:24.729249Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-24T09:19:24.779505Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-24T09:19:24.779540Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-24T09:19:24.779553Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)\n2026-04-24T09:19:24.779561Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)\n2026-04-24T09:19:24.779558Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-24T09:19:25.448244Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)\n2026-04-24T09:19:25.568925Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=75340, dur=59ms\n2026-04-24T09:19:25.573938Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)\n2026-04-24T09:19:25.719368Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=75341, dur=92ms\n2026-04-24T09:19:25.720846Z INFO sck_rs::stream_manager: invalidated persistent stream for display 2\n2026-04-24T09:19:25.858429Z WARN sqlx::query: summary=\"SELECT f.id, f.timestamp, f.offset_index, …\" db.statement=\"\\n\\nSELECT\\n f.id,\\n f.timestamp,\\n f.offset_index,\\n COALESCE(\\n SUBSTR(f.full_text, 1, 200),\\n SUBSTR(f.accessibility_text, 1, 200),\\n (\\n SELECT\\n SUBSTR(ot.text, 1, 200)\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as text,\\n COALESCE(\\n f.app_name,\\n (\\n SELECT\\n ot.app_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as app_name,\\n COALESCE(\\n f.window_name,\\n (\\n SELECT\\n ot.window_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as window_name,\\n COALESCE(vc.device_name, f.device_name) as screen_device,\\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\\n COALESCE(vc.fps, 0.033) as chunk_fps,\\n f.browser_url,\\n f.machine_id\\nFROM\\n frames f\\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\\nWHERE\\n f.timestamp >= ?1\\n AND f.timestamp <= ?2\\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\\nORDER BY\\n f.timestamp DESC,\\n f.offset_index DESC\\nLIMIT\\n 10000\\n\" rows_affected=0 rows_returned=2488 elapsed=1.208421959s\n2026-04-24T09:19:25.864500Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 2488 frame entries, coverage from 2026-04-23 06:19:24.649500 UTC\n2026-04-24T09:19:55.890230Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)","depth":4,"bounds":{"left":0.27027926,"top":0.0,"width":0.4800532,"height":1.0},"value":"Last login: Thu Apr 23 14:01:28 on ttys008\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-status\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-start\ndetected hardware tier: Mid\nwarning: parakeet is not supported on this platform, using whisper-tiny instead\n2026-04-24T09:19:23.948881Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store\nchecking permissions...\n screen recording: ok\n accessibility: ok\n2026-04-24T09:19:24.012726Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6\n2026-04-24T09:19:24.548628Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor\n2026-04-24T09:19:24.550486Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)\n2026-04-24T09:19:24.550876Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)\n2026-04-24T09:19:24.587519Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true\n2026-04-24T09:19:24.587575Z INFO screenpipe: meeting detector enabled — independent of transcription mode\n2026-04-24T09:19:24.587822Z INFO screenpipe: API server listening on 127.0.0.1:3030 (localhost only)\n2026-04-24T09:19:24.587784Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)\n2026-04-24T09:19:24.587750Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)\n2026-04-24T09:19:24.587842Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key\n2026-04-24T09:19:24.587884Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager\n2026-04-24T09:19:24.599482Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-24T09:19:24.604417Z INFO screenpipe_core::pipes: loaded pipe: day-recap\n2026-04-24T09:19:24.604614Z INFO screenpipe_core::pipes: loaded pipe: standup-update\n2026-04-24T09:19:24.605022Z INFO screenpipe_core::pipes: loaded pipe: ai-habits\n2026-04-24T09:19:24.605182Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown\n2026-04-24T09:19:24.605334Z INFO screenpipe_core::pipes: loaded pipe: video-export\n2026-04-24T09:19:24.605840Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary\n2026-04-24T09:19:24.605858Z INFO screenpipe_core::pipes: loaded 6 pipes from \"/Users/lukas/.screenpipe/pipes\"\n\n\n\n _ \n __________________ ___ ____ ____ (_____ ___ \n / ___/ ___/ ___/ _ \\/ _ \\/ __ \\ / __ \\/ / __ \\/ _ \\\n (__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/\n/____/\\___/_/ \\___/\\___/_/ /_/ / .___/_/ .___/\\___/ \n /_/ /_/ \n\n\n\npower AI by everything you've seen, said or heard\nopen source | runs locally | developer friendly\n\n\n┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ true │\n│ vision disabled │ false │\n│ pause on DRM content │ false │\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n│ ignored windows │ [\"Boosteroid\"] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n│ api auth │ enabled │\n2026-04-24T09:19:24.607221Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n2026-04-24T09:19:24.612773Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n│ encrypt secrets │ disabled │\n│ retention days │ 14 │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ id: 1 │\n│ │ id: 2 │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ disabled │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-24T09:19:24.622220Z INFO screenpipe: starting UI event capture\n2026-04-24T09:19:24.635769Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-24T09:19:24.649336Z INFO screenpipe_engine::ui_recorder: UI recording session started: d723d582-4d6f-4e04-921c-c054be5f7efc\n2026-04-24T09:19:24.649340Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-24T09:19:24.649501Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-23 06:19:24.649500 UTC to 2026-04-24 06:19:24.649500 UTC)\n2026-04-24T09:19:24.650143Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-24T09:19:24.657009Z INFO screenpipe_engine::server: Server listening on 127.0.0.1:3030\n2026-04-24T09:19:24.667216Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-24T09:19:24.729181Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-24T09:19:24.729212Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-24T09:19:24.729249Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-24T09:19:24.779505Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-24T09:19:24.779540Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-24T09:19:24.779553Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)\n2026-04-24T09:19:24.779561Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)\n2026-04-24T09:19:24.779558Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-24T09:19:25.448244Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)\n2026-04-24T09:19:25.568925Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=75340, dur=59ms\n2026-04-24T09:19:25.573938Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)\n2026-04-24T09:19:25.719368Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=75341, dur=92ms\n2026-04-24T09:19:25.720846Z INFO sck_rs::stream_manager: invalidated persistent stream for display 2\n2026-04-24T09:19:25.858429Z WARN sqlx::query: summary=\"SELECT f.id, f.timestamp, f.offset_index, …\" db.statement=\"\\n\\nSELECT\\n f.id,\\n f.timestamp,\\n f.offset_index,\\n COALESCE(\\n SUBSTR(f.full_text, 1, 200),\\n SUBSTR(f.accessibility_text, 1, 200),\\n (\\n SELECT\\n SUBSTR(ot.text, 1, 200)\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as text,\\n COALESCE(\\n f.app_name,\\n (\\n SELECT\\n ot.app_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as app_name,\\n COALESCE(\\n f.window_name,\\n (\\n SELECT\\n ot.window_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as window_name,\\n COALESCE(vc.device_name, f.device_name) as screen_device,\\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\\n COALESCE(vc.fps, 0.033) as chunk_fps,\\n f.browser_url,\\n f.machine_id\\nFROM\\n frames f\\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\\nWHERE\\n f.timestamp >= ?1\\n AND f.timestamp <= ?2\\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\\nORDER BY\\n f.timestamp DESC,\\n f.offset_index DESC\\nLIMIT\\n 10000\\n\" rows_affected=0 rows_returned=2488 elapsed=1.208421959s\n2026-04-24T09:19:25.864500Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 2488 frame entries, coverage from 2026-04-23 06:19:24.649500 UTC\n2026-04-24T09:19:55.890230Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.11801862,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.3882979,"top":1.0,"width":0.11801862,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.39029256,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.5063165,"top":1.0,"width":0.11801862,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.50831115,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.6243351,"top":1.0,"width":0.11801862,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6263298,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7287234,"top":1.0,"width":0.01861702,"height":-0.023144484},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"screenpipe\"","depth":1,"bounds":{"left":0.49634308,"top":1.0,"width":0.027925532,"height":-0.02394259},"role_description":"text"}]...
|
-3643169233309434350
|
6928319522727982432
|
idle
|
accessibility
|
NULL
|
Last login: Thu Apr 23 14:01:28 on ttys008
Poetry Last login: Thu Apr 23 14:01:28 on ttys008
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-start
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-04-24T09:19:23.948881Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store
checking permissions...
screen recording: ok
accessibility: ok
2026-04-24T09:19:24.012726Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-04-24T09:19:24.548628Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-04-24T09:19:24.550486Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-04-24T09:19:24.550876Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-04-24T09:19:24.587519Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-04-24T09:19:24.587575Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-04-24T09:19:24.587822Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-04-24T09:19:24.587784Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-04-24T09:19:24.587750Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-04-24T09:19:24.587842Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-04-24T09:19:24.587884Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-04-24T09:19:24.599482Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))
2026-04-24T09:19:24.604417Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-04-24T09:19:24.604614Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-04-24T09:19:24.605022Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-04-24T09:19:24.605182Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-04-24T09:19:24.605334Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-04-24T09:19:24.605840Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary
2026-04-24T09:19:24.605858Z INFO screenpipe_core::pipes: loaded 6 pipes from "/Users/lukas/.screenpipe/pipes"
_
__________________ ___ ____ ____ (_____ ___
/ ___/ ___/ ___/ _ \/ _ \/ __ \ / __ \/ / __ \/ _ \
(__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/
/____/\___/_/ \___/\___/_/ /_/ / .___/_/ .___/\___/
/_/ /_/
power AI by everything you've seen, said or heard
open source | runs locally | developer friendly
┌────────────────────────┬────────────────────────────────────┐
│ setting │ value │
├────────────────────────┼────────────────────────────────────┤
│ audio chunk duration │ 30 seconds │
│ port │ 3030 │
│ audio disabled │ true │
│ vision disabled │ false │
│ pause on DRM content │ false │
│ audio engine │ Parakeet │
│ vad engine │ Silero │
│ data directory │ /Users/lukas/.screenpipe │
│ debug mode │ false │
│ telemetry │ true │
│ use pii removal │ true │
│ use all monitors │ true │
│ ignored windows │ ["Boosteroid"] │
│ included windows │ [] │
│ cloud sync │ disabled │
│ auto-destruct pid │ 0 │
│ deepgram key │ not set │
│ api auth │ enabled │
2026-04-24T09:19:24.607221Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)
2026-04-24T09:19:24.612773Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh
│ encrypt secrets │ disabled │
│ retention days │ 14 │
├────────────────────────┼────────────────────────────────────┤
│ languages │ │
│ │ all languages │
├────────────────────────┼────────────────────────────────────┤
│ monitors │ │
│ │ id: 1 │
│ │ id: 2 │
├────────────────────────┼────────────────────────────────────┤
│ audio devices │ │
│ │ disabled │
└────────────────────────┴────────────────────────────────────┘
you are using local processing. all your data stays on your computer.
warning: telemetry is enabled. only error-level data will be sent.
to disable, use the --disable-telemetry flag.
check latest changes here: https://github.com/screenpipe/screenpipe/releases
2026-04-24T09:19:24.622220Z INFO screenpipe: starting UI event capture
2026-04-24T09:19:24.635769Z INFO screenpipe_engine::ui_recorder: Starting UI event capture
2026-04-24T09:19:24.649336Z INFO screenpipe_engine::ui_recorder: UI recording session started: d723d582-4d6f-4e04-921c-c054be5f7efc
2026-04-24T09:19:24.649340Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)
2026-04-24T09:19:24.649501Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-23 06:19:24.649500 UTC to 2026-04-24 06:19:24.649500 UTC)
2026-04-24T09:19:24.650143Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)
2026-04-24T09:19:24.657009Z INFO screenpipe_engine::server: Server listening on [IP_ADDRESS]:3030
2026-04-24T09:19:24.667216Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030
2026-04-24T09:19:24.729181Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)
2026-04-24T09:19:24.729212Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)
2026-04-24T09:19:24.729249Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)
2026-04-24T09:19:24.779505Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-04-24T09:19:24.779540Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-04-24T09:19:24.779553Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)
2026-04-24T09:19:24.779561Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)
2026-04-24T09:19:24.779558Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-04-24T09:19:25.448244Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)
2026-04-24T09:19:25.568925Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=75340, dur=59ms
2026-04-24T09:19:25.573938Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)
2026-04-24T09:19:25.719368Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=75341, dur=92ms
2026-04-24T09:19:25.720846Z INFO sck_rs::stream_manager: invalidated persistent stream for display 2
2026-04-24T09:19:25.858429Z WARN sqlx::query: summary="SELECT f.id, f.timestamp, f.offset_index, …" db.statement="\n\nSELECT\n f.id,\n f.timestamp,\n f.offset_index,\n COALESCE(\n SUBSTR(f.full_text, 1, 200),\n SUBSTR(f.accessibility_text, 1, 200),\n (\n SELECT\n SUBSTR(ot.text, 1, 200)\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as text,\n COALESCE(\n f.app_name,\n (\n SELECT\n ot.app_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as app_name,\n COALESCE(\n f.window_name,\n (\n SELECT\n ot.window_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as window_name,\n COALESCE(vc.device_name, f.device_name) as screen_device,\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\n COALESCE(vc.fps, 0.033) as chunk_fps,\n f.browser_url,\n f.machine_id\nFROM\n frames f\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\nWHERE\n f.timestamp >= ?1\n AND f.timestamp <= ?2\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\nORDER BY\n f.timestamp DESC,\n f.offset_index DESC\nLIMIT\n 10000\n" rows_affected=0 rows_returned=2488 elapsed=1.208421959s
2026-04-24T09:19:25.864500Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 2488 frame entries, coverage from 2026-04-23 06:19:24.649500 UTC
2026-04-24T09:19:55.890230Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
⌥⌘1
screenpipe"...
|
75341
|
|
75342
|
1877
|
1
|
2026-04-24T06:19:27.845082+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-24/1777 /Users/lukas/.screenpipe/data/data/2026-04-24/1777011567845_m1.jpg...
|
iTerm2
|
screenpipe"
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Last login: Thu Apr 23 14:01:28 on ttys008
Poetry Last login: Thu Apr 23 14:01:28 on ttys008
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-start
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-04-24T09:19:23.948881Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store
checking permissions...
screen recording: ok
accessibility: ok
2026-04-24T09:19:24.012726Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-04-24T09:19:24.548628Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-04-24T09:19:24.550486Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-04-24T09:19:24.550876Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-04-24T09:19:24.587519Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-04-24T09:19:24.587575Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-04-24T09:19:24.587822Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-04-24T09:19:24.587784Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-04-24T09:19:24.587750Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-04-24T09:19:24.587842Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-04-24T09:19:24.587884Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-04-24T09:19:24.599482Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))
2026-04-24T09:19:24.604417Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-04-24T09:19:24.604614Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-04-24T09:19:24.605022Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-04-24T09:19:24.605182Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-04-24T09:19:24.605334Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-04-24T09:19:24.605840Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary
2026-04-24T09:19:24.605858Z INFO screenpipe_core::pipes: loaded 6 pipes from "/Users/lukas/.screenpipe/pipes"
_
__________________ ___ ____ ____ (_____ ___
/ ___/ ___/ ___/ _ \/ _ \/ __ \ / __ \/ / __ \/ _ \
(__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/
/____/\___/_/ \___/\___/_/ /_/ / .___/_/ .___/\___/
/_/ /_/
power AI by everything you've seen, said or heard
open source | runs locally | developer friendly
┌────────────────────────┬────────────────────────────────────┐
│ setting │ value │
├────────────────────────┼────────────────────────────────────┤
│ audio chunk duration │ 30 seconds │
│ port │ 3030 │
│ audio disabled │ true │
│ vision disabled │ false │
│ pause on DRM content │ false │
│ audio engine │ Parakeet │
│ vad engine │ Silero │
│ data directory │ /Users/lukas/.screenpipe │
│ debug mode │ false │
│ telemetry │ true │
│ use pii removal │ true │
│ use all monitors │ true │
│ ignored windows │ ["Boosteroid"] │
│ included windows │ [] │
│ cloud sync │ disabled │
│ auto-destruct pid │ 0 │
│ deepgram key │ not set │
│ api auth │ enabled │
2026-04-24T09:19:24.607221Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)
2026-04-24T09:19:24.612773Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh
│ encrypt secrets │ disabled │
│ retention days │ 14 │
├────────────────────────┼────────────────────────────────────┤
│ languages │ │
│ │ all languages │
├────────────────────────┼────────────────────────────────────┤
│ monitors │ │
│ │ id: 1 │
│ │ id: 2 │
├────────────────────────┼────────────────────────────────────┤
│ audio devices │ │
│ │ disabled │
└────────────────────────┴────────────────────────────────────┘
you are using local processing. all your data stays on your computer.
warning: telemetry is enabled. only error-level data will be sent.
to disable, use the --disable-telemetry flag.
check latest changes here: https://github.com/screenpipe/screenpipe/releases
2026-04-24T09:19:24.622220Z INFO screenpipe: starting UI event capture
2026-04-24T09:19:24.635769Z INFO screenpipe_engine::ui_recorder: Starting UI event capture
2026-04-24T09:19:24.649336Z INFO screenpipe_engine::ui_recorder: UI recording session started: d723d582-4d6f-4e04-921c-c054be5f7efc
2026-04-24T09:19:24.649340Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)
2026-04-24T09:19:24.649501Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-23 06:19:24.649500 UTC to 2026-04-24 06:19:24.649500 UTC)
2026-04-24T09:19:24.650143Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)
2026-04-24T09:19:24.657009Z INFO screenpipe_engine::server: Server listening on [IP_ADDRESS]:3030
2026-04-24T09:19:24.667216Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030
2026-04-24T09:19:24.729181Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)
2026-04-24T09:19:24.729212Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)
2026-04-24T09:19:24.729249Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)
2026-04-24T09:19:24.779505Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-04-24T09:19:24.779540Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-04-24T09:19:24.779553Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)
2026-04-24T09:19:24.779561Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)
2026-04-24T09:19:24.779558Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-04-24T09:19:25.448244Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)
2026-04-24T09:19:25.568925Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=75340, dur=59ms
2026-04-24T09:19:25.573938Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)
2026-04-24T09:19:25.719368Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=75341, dur=92ms
2026-04-24T09:19:25.720846Z INFO sck_rs::stream_manager: invalidated persistent stream for display 2
2026-04-24T09:19:25.858429Z WARN sqlx::query: summary="SELECT f.id, f.timestamp, f.offset_index, …" db.statement="\n\nSELECT\n f.id,\n f.timestamp,\n f.offset_index,\n COALESCE(\n SUBSTR(f.full_text, 1, 200),\n SUBSTR(f.accessibility_text, 1, 200),\n (\n SELECT\n SUBSTR(ot.text, 1, 200)\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as text,\n COALESCE(\n f.app_name,\n (\n SELECT\n ot.app_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as app_name,\n COALESCE(\n f.window_name,\n (\n SELECT\n ot.window_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as window_name,\n COALESCE(vc.device_name, f.device_name) as screen_device,\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\n COALESCE(vc.fps, 0.033) as chunk_fps,\n f.browser_url,\n f.machine_id\nFROM\n frames f\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\nWHERE\n f.timestamp >= ?1\n AND f.timestamp <= ?2\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\nORDER BY\n f.timestamp DESC,\n f.offset_index DESC\nLIMIT\n 10000\n" rows_affected=0 rows_returned=2488 elapsed=1.208421959s
2026-04-24T09:19:25.864500Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 2488 frame entries, coverage from 2026-04-23 06:19:24.649500 UTC
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
⌥⌘1
screenpipe"...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"Last login: Thu Apr 23 14:01:28 on ttys008\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-status\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-start\ndetected hardware tier: Mid\nwarning: parakeet is not supported on this platform, using whisper-tiny instead\n2026-04-24T09:19:23.948881Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store\nchecking permissions...\n screen recording: ok\n accessibility: ok\n2026-04-24T09:19:24.012726Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6\n2026-04-24T09:19:24.548628Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor\n2026-04-24T09:19:24.550486Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)\n2026-04-24T09:19:24.550876Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)\n2026-04-24T09:19:24.587519Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true\n2026-04-24T09:19:24.587575Z INFO screenpipe: meeting detector enabled — independent of transcription mode\n2026-04-24T09:19:24.587822Z INFO screenpipe: API server listening on 127.0.0.1:3030 (localhost only)\n2026-04-24T09:19:24.587784Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)\n2026-04-24T09:19:24.587750Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)\n2026-04-24T09:19:24.587842Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key\n2026-04-24T09:19:24.587884Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager\n2026-04-24T09:19:24.599482Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-24T09:19:24.604417Z INFO screenpipe_core::pipes: loaded pipe: day-recap\n2026-04-24T09:19:24.604614Z INFO screenpipe_core::pipes: loaded pipe: standup-update\n2026-04-24T09:19:24.605022Z INFO screenpipe_core::pipes: loaded pipe: ai-habits\n2026-04-24T09:19:24.605182Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown\n2026-04-24T09:19:24.605334Z INFO screenpipe_core::pipes: loaded pipe: video-export\n2026-04-24T09:19:24.605840Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary\n2026-04-24T09:19:24.605858Z INFO screenpipe_core::pipes: loaded 6 pipes from \"/Users/lukas/.screenpipe/pipes\"\n\n\n\n _ \n __________________ ___ ____ ____ (_____ ___ \n / ___/ ___/ ___/ _ \\/ _ \\/ __ \\ / __ \\/ / __ \\/ _ \\\n (__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/\n/____/\\___/_/ \\___/\\___/_/ /_/ / .___/_/ .___/\\___/ \n /_/ /_/ \n\n\n\npower AI by everything you've seen, said or heard\nopen source | runs locally | developer friendly\n\n\n┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ true │\n│ vision disabled │ false │\n│ pause on DRM content │ false │\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n│ ignored windows │ [\"Boosteroid\"] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n│ api auth │ enabled │\n2026-04-24T09:19:24.607221Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n2026-04-24T09:19:24.612773Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n│ encrypt secrets │ disabled │\n│ retention days │ 14 │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ id: 1 │\n│ │ id: 2 │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ disabled │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-24T09:19:24.622220Z INFO screenpipe: starting UI event capture\n2026-04-24T09:19:24.635769Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-24T09:19:24.649336Z INFO screenpipe_engine::ui_recorder: UI recording session started: d723d582-4d6f-4e04-921c-c054be5f7efc\n2026-04-24T09:19:24.649340Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-24T09:19:24.649501Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-23 06:19:24.649500 UTC to 2026-04-24 06:19:24.649500 UTC)\n2026-04-24T09:19:24.650143Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-24T09:19:24.657009Z INFO screenpipe_engine::server: Server listening on 127.0.0.1:3030\n2026-04-24T09:19:24.667216Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-24T09:19:24.729181Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-24T09:19:24.729212Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-24T09:19:24.729249Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-24T09:19:24.779505Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-24T09:19:24.779540Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-24T09:19:24.779553Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)\n2026-04-24T09:19:24.779561Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)\n2026-04-24T09:19:24.779558Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-24T09:19:25.448244Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)\n2026-04-24T09:19:25.568925Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=75340, dur=59ms\n2026-04-24T09:19:25.573938Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)\n2026-04-24T09:19:25.719368Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=75341, dur=92ms\n2026-04-24T09:19:25.720846Z INFO sck_rs::stream_manager: invalidated persistent stream for display 2\n2026-04-24T09:19:25.858429Z WARN sqlx::query: summary=\"SELECT f.id, f.timestamp, f.offset_index, …\" db.statement=\"\\n\\nSELECT\\n f.id,\\n f.timestamp,\\n f.offset_index,\\n COALESCE(\\n SUBSTR(f.full_text, 1, 200),\\n SUBSTR(f.accessibility_text, 1, 200),\\n (\\n SELECT\\n SUBSTR(ot.text, 1, 200)\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as text,\\n COALESCE(\\n f.app_name,\\n (\\n SELECT\\n ot.app_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as app_name,\\n COALESCE(\\n f.window_name,\\n (\\n SELECT\\n ot.window_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as window_name,\\n COALESCE(vc.device_name, f.device_name) as screen_device,\\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\\n COALESCE(vc.fps, 0.033) as chunk_fps,\\n f.browser_url,\\n f.machine_id\\nFROM\\n frames f\\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\\nWHERE\\n f.timestamp >= ?1\\n AND f.timestamp <= ?2\\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\\nORDER BY\\n f.timestamp DESC,\\n f.offset_index DESC\\nLIMIT\\n 10000\\n\" rows_affected=0 rows_returned=2488 elapsed=1.208421959s\n2026-04-24T09:19:25.864500Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 2488 frame entries, coverage from 2026-04-23 06:19:24.649500 UTC","depth":4,"value":"Last login: Thu Apr 23 14:01:28 on ttys008\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-status\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-start\ndetected hardware tier: Mid\nwarning: parakeet is not supported on this platform, using whisper-tiny instead\n2026-04-24T09:19:23.948881Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store\nchecking permissions...\n screen recording: ok\n accessibility: ok\n2026-04-24T09:19:24.012726Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6\n2026-04-24T09:19:24.548628Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor\n2026-04-24T09:19:24.550486Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)\n2026-04-24T09:19:24.550876Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)\n2026-04-24T09:19:24.587519Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true\n2026-04-24T09:19:24.587575Z INFO screenpipe: meeting detector enabled — independent of transcription mode\n2026-04-24T09:19:24.587822Z INFO screenpipe: API server listening on 127.0.0.1:3030 (localhost only)\n2026-04-24T09:19:24.587784Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)\n2026-04-24T09:19:24.587750Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)\n2026-04-24T09:19:24.587842Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key\n2026-04-24T09:19:24.587884Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager\n2026-04-24T09:19:24.599482Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-24T09:19:24.604417Z INFO screenpipe_core::pipes: loaded pipe: day-recap\n2026-04-24T09:19:24.604614Z INFO screenpipe_core::pipes: loaded pipe: standup-update\n2026-04-24T09:19:24.605022Z INFO screenpipe_core::pipes: loaded pipe: ai-habits\n2026-04-24T09:19:24.605182Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown\n2026-04-24T09:19:24.605334Z INFO screenpipe_core::pipes: loaded pipe: video-export\n2026-04-24T09:19:24.605840Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary\n2026-04-24T09:19:24.605858Z INFO screenpipe_core::pipes: loaded 6 pipes from \"/Users/lukas/.screenpipe/pipes\"\n\n\n\n _ \n __________________ ___ ____ ____ (_____ ___ \n / ___/ ___/ ___/ _ \\/ _ \\/ __ \\ / __ \\/ / __ \\/ _ \\\n (__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/\n/____/\\___/_/ \\___/\\___/_/ /_/ / .___/_/ .___/\\___/ \n /_/ /_/ \n\n\n\npower AI by everything you've seen, said or heard\nopen source | runs locally | developer friendly\n\n\n┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ true │\n│ vision disabled │ false │\n│ pause on DRM content │ false │\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n│ ignored windows │ [\"Boosteroid\"] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n│ api auth │ enabled │\n2026-04-24T09:19:24.607221Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n2026-04-24T09:19:24.612773Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n│ encrypt secrets │ disabled │\n│ retention days │ 14 │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ id: 1 │\n│ │ id: 2 │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ disabled │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-24T09:19:24.622220Z INFO screenpipe: starting UI event capture\n2026-04-24T09:19:24.635769Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-24T09:19:24.649336Z INFO screenpipe_engine::ui_recorder: UI recording session started: d723d582-4d6f-4e04-921c-c054be5f7efc\n2026-04-24T09:19:24.649340Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-24T09:19:24.649501Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-23 06:19:24.649500 UTC to 2026-04-24 06:19:24.649500 UTC)\n2026-04-24T09:19:24.650143Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-24T09:19:24.657009Z INFO screenpipe_engine::server: Server listening on 127.0.0.1:3030\n2026-04-24T09:19:24.667216Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-24T09:19:24.729181Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-24T09:19:24.729212Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-24T09:19:24.729249Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-24T09:19:24.779505Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-24T09:19:24.779540Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-24T09:19:24.779553Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)\n2026-04-24T09:19:24.779561Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)\n2026-04-24T09:19:24.779558Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-24T09:19:25.448244Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)\n2026-04-24T09:19:25.568925Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=75340, dur=59ms\n2026-04-24T09:19:25.573938Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)\n2026-04-24T09:19:25.719368Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=75341, dur=92ms\n2026-04-24T09:19:25.720846Z INFO sck_rs::stream_manager: invalidated persistent stream for display 2\n2026-04-24T09:19:25.858429Z WARN sqlx::query: summary=\"SELECT f.id, f.timestamp, f.offset_index, …\" db.statement=\"\\n\\nSELECT\\n f.id,\\n f.timestamp,\\n f.offset_index,\\n COALESCE(\\n SUBSTR(f.full_text, 1, 200),\\n SUBSTR(f.accessibility_text, 1, 200),\\n (\\n SELECT\\n SUBSTR(ot.text, 1, 200)\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as text,\\n COALESCE(\\n f.app_name,\\n (\\n SELECT\\n ot.app_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as app_name,\\n COALESCE(\\n f.window_name,\\n (\\n SELECT\\n ot.window_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as window_name,\\n COALESCE(vc.device_name, f.device_name) as screen_device,\\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\\n COALESCE(vc.fps, 0.033) as chunk_fps,\\n f.browser_url,\\n f.machine_id\\nFROM\\n frames f\\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\\nWHERE\\n f.timestamp >= ?1\\n AND f.timestamp <= ?2\\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\\nORDER BY\\n f.timestamp DESC,\\n f.offset_index DESC\\nLIMIT\\n 10000\\n\" rows_affected=0 rows_returned=2488 elapsed=1.208421959s\n2026-04-24T09:19:25.864500Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 2488 frame entries, coverage from 2026-04-23 06:19:24.649500 UTC","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.24652778,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.24652778,"top":0.05888889,"width":0.24652778,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.25069445,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.49305555,"top":0.05888889,"width":0.24652778,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.49722221,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.7395833,"top":0.05888889,"width":0.24652778,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.74375,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"screenpipe\"","depth":1,"bounds":{"left":0.4722222,"top":0.033333335,"width":0.058333334,"height":0.017777778},"role_description":"text"}]...
|
7021660185918130553
|
6928319522593764704
|
visual_change
|
accessibility
|
NULL
|
Last login: Thu Apr 23 14:01:28 on ttys008
Poetry Last login: Thu Apr 23 14:01:28 on ttys008
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-start
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-04-24T09:19:23.948881Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store
checking permissions...
screen recording: ok
accessibility: ok
2026-04-24T09:19:24.012726Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-04-24T09:19:24.548628Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-04-24T09:19:24.550486Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-04-24T09:19:24.550876Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-04-24T09:19:24.587519Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-04-24T09:19:24.587575Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-04-24T09:19:24.587822Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-04-24T09:19:24.587784Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-04-24T09:19:24.587750Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-04-24T09:19:24.587842Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-04-24T09:19:24.587884Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-04-24T09:19:24.599482Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))
2026-04-24T09:19:24.604417Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-04-24T09:19:24.604614Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-04-24T09:19:24.605022Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-04-24T09:19:24.605182Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-04-24T09:19:24.605334Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-04-24T09:19:24.605840Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary
2026-04-24T09:19:24.605858Z INFO screenpipe_core::pipes: loaded 6 pipes from "/Users/lukas/.screenpipe/pipes"
_
__________________ ___ ____ ____ (_____ ___
/ ___/ ___/ ___/ _ \/ _ \/ __ \ / __ \/ / __ \/ _ \
(__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/
/____/\___/_/ \___/\___/_/ /_/ / .___/_/ .___/\___/
/_/ /_/
power AI by everything you've seen, said or heard
open source | runs locally | developer friendly
┌────────────────────────┬────────────────────────────────────┐
│ setting │ value │
├────────────────────────┼────────────────────────────────────┤
│ audio chunk duration │ 30 seconds │
│ port │ 3030 │
│ audio disabled │ true │
│ vision disabled │ false │
│ pause on DRM content │ false │
│ audio engine │ Parakeet │
│ vad engine │ Silero │
│ data directory │ /Users/lukas/.screenpipe │
│ debug mode │ false │
│ telemetry │ true │
│ use pii removal │ true │
│ use all monitors │ true │
│ ignored windows │ ["Boosteroid"] │
│ included windows │ [] │
│ cloud sync │ disabled │
│ auto-destruct pid │ 0 │
│ deepgram key │ not set │
│ api auth │ enabled │
2026-04-24T09:19:24.607221Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)
2026-04-24T09:19:24.612773Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh
│ encrypt secrets │ disabled │
│ retention days │ 14 │
├────────────────────────┼────────────────────────────────────┤
│ languages │ │
│ │ all languages │
├────────────────────────┼────────────────────────────────────┤
│ monitors │ │
│ │ id: 1 │
│ │ id: 2 │
├────────────────────────┼────────────────────────────────────┤
│ audio devices │ │
│ │ disabled │
└────────────────────────┴────────────────────────────────────┘
you are using local processing. all your data stays on your computer.
warning: telemetry is enabled. only error-level data will be sent.
to disable, use the --disable-telemetry flag.
check latest changes here: https://github.com/screenpipe/screenpipe/releases
2026-04-24T09:19:24.622220Z INFO screenpipe: starting UI event capture
2026-04-24T09:19:24.635769Z INFO screenpipe_engine::ui_recorder: Starting UI event capture
2026-04-24T09:19:24.649336Z INFO screenpipe_engine::ui_recorder: UI recording session started: d723d582-4d6f-4e04-921c-c054be5f7efc
2026-04-24T09:19:24.649340Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)
2026-04-24T09:19:24.649501Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-23 06:19:24.649500 UTC to 2026-04-24 06:19:24.649500 UTC)
2026-04-24T09:19:24.650143Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)
2026-04-24T09:19:24.657009Z INFO screenpipe_engine::server: Server listening on [IP_ADDRESS]:3030
2026-04-24T09:19:24.667216Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030
2026-04-24T09:19:24.729181Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)
2026-04-24T09:19:24.729212Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)
2026-04-24T09:19:24.729249Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)
2026-04-24T09:19:24.779505Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-04-24T09:19:24.779540Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-04-24T09:19:24.779553Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)
2026-04-24T09:19:24.779561Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)
2026-04-24T09:19:24.779558Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-04-24T09:19:25.448244Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)
2026-04-24T09:19:25.568925Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=75340, dur=59ms
2026-04-24T09:19:25.573938Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)
2026-04-24T09:19:25.719368Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=75341, dur=92ms
2026-04-24T09:19:25.720846Z INFO sck_rs::stream_manager: invalidated persistent stream for display 2
2026-04-24T09:19:25.858429Z WARN sqlx::query: summary="SELECT f.id, f.timestamp, f.offset_index, …" db.statement="\n\nSELECT\n f.id,\n f.timestamp,\n f.offset_index,\n COALESCE(\n SUBSTR(f.full_text, 1, 200),\n SUBSTR(f.accessibility_text, 1, 200),\n (\n SELECT\n SUBSTR(ot.text, 1, 200)\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as text,\n COALESCE(\n f.app_name,\n (\n SELECT\n ot.app_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as app_name,\n COALESCE(\n f.window_name,\n (\n SELECT\n ot.window_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as window_name,\n COALESCE(vc.device_name, f.device_name) as screen_device,\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\n COALESCE(vc.fps, 0.033) as chunk_fps,\n f.browser_url,\n f.machine_id\nFROM\n frames f\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\nWHERE\n f.timestamp >= ?1\n AND f.timestamp <= ?2\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\nORDER BY\n f.timestamp DESC,\n f.offset_index DESC\nLIMIT\n 10000\n" rows_affected=0 rows_returned=2488 elapsed=1.208421959s
2026-04-24T09:19:25.864500Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 2488 frame entries, coverage from 2026-04-23 06:19:24.649500 UTC
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
⌥⌘1
screenpipe"...
|
75340
|
|
75341
|
1878
|
0
|
2026-04-24T06:19:25.280768+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-24/1777 /Users/lukas/.screenpipe/data/data/2026-04-24/1777011565280_m2.jpg...
|
iTerm2
|
screenpipe"
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Last login: Thu Apr 23 14:01:28 on ttys008
Poetry Last login: Thu Apr 23 14:01:28 on ttys008
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-start
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-04-24T09:19:23.948881Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store
checking permissions...
screen recording: ok
accessibility: ok
2026-04-24T09:19:24.012726Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-04-24T09:19:24.548628Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-04-24T09:19:24.550486Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-04-24T09:19:24.550876Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-04-24T09:19:24.587519Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-04-24T09:19:24.587575Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-04-24T09:19:24.587822Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-04-24T09:19:24.587784Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-04-24T09:19:24.587750Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-04-24T09:19:24.587842Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-04-24T09:19:24.587884Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-04-24T09:19:24.599482Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))
2026-04-24T09:19:24.604417Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-04-24T09:19:24.604614Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-04-24T09:19:24.605022Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-04-24T09:19:24.605182Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-04-24T09:19:24.605334Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-04-24T09:19:24.605840Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary
2026-04-24T09:19:24.605858Z INFO screenpipe_core::pipes: loaded 6 pipes from "/Users/lukas/.screenpipe/pipes"
_
__________________ ___ ____ ____ (_____ ___
/ ___/ ___/ ___/ _ \/ _ \/ __ \ / __ \/ / __ \/ _ \
(__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/
/____/\___/_/ \___/\___/_/ /_/ / .___/_/ .___/\___/
/_/ /_/
power AI by everything you've seen, said or heard
open source | runs locally | developer friendly
┌────────────────────────┬────────────────────────────────────┐
│ setting │ value │
├────────────────────────┼────────────────────────────────────┤
│ audio chunk duration │ 30 seconds │
│ port │ 3030 │
│ audio disabled │ true │
│ vision disabled │ false │
│ pause on DRM content │ false │
│ audio engine │ Parakeet │
│ vad engine │ Silero │
│ data directory │ /Users/lukas/.screenpipe │
│ debug mode │ false │
│ telemetry │ true │
│ use pii removal │ true │
│ use all monitors │ true │
│ ignored windows │ ["Boosteroid"] │
│ included windows │ [] │
│ cloud sync │ disabled │
│ auto-destruct pid │ 0 │
│ deepgram key │ not set │
│ api auth │ enabled │
2026-04-24T09:19:24.607221Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)
2026-04-24T09:19:24.612773Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh
│ encrypt secrets │ disabled │
│ retention days │ 14 │
├────────────────────────┼────────────────────────────────────┤
│ languages │ │
│ │ all languages │
├────────────────────────┼────────────────────────────────────┤
│ monitors │ │
│ │ id: 1 │
│ │ id: 2 │
├────────────────────────┼────────────────────────────────────┤
│ audio devices │ │
│ │ disabled │
└────────────────────────┴────────────────────────────────────┘
you are using local processing. all your data stays on your computer.
warning: telemetry is enabled. only error-level data will be sent.
to disable, use the --disable-telemetry flag.
check latest changes here: https://github.com/screenpipe/screenpipe/releases
2026-04-24T09:19:24.622220Z INFO screenpipe: starting UI event capture
2026-04-24T09:19:24.635769Z INFO screenpipe_engine::ui_recorder: Starting UI event capture
2026-04-24T09:19:24.649336Z INFO screenpipe_engine::ui_recorder: UI recording session started: d723d582-4d6f-4e04-921c-c054be5f7efc
2026-04-24T09:19:24.649340Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)
2026-04-24T09:19:24.649501Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-23 06:19:24.649500 UTC to 2026-04-24 06:19:24.649500 UTC)
2026-04-24T09:19:24.650143Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)
2026-04-24T09:19:24.657009Z INFO screenpipe_engine::server: Server listening on [IP_ADDRESS]:3030
2026-04-24T09:19:24.667216Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030
2026-04-24T09:19:24.729181Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)
2026-04-24T09:19:24.729212Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)
2026-04-24T09:19:24.729249Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)
2026-04-24T09:19:24.779505Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-04-24T09:19:24.779540Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-04-24T09:19:24.779553Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)
2026-04-24T09:19:24.779561Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)
2026-04-24T09:19:24.779558Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-04-24T09:19:25.448244Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)
2026-04-24T09:19:25.568925Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=75340, dur=59ms
2026-04-24T09:19:25.573938Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
⌥⌘1
screenpipe"...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"Last login: Thu Apr 23 14:01:28 on ttys008\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-status\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-start\ndetected hardware tier: Mid\nwarning: parakeet is not supported on this platform, using whisper-tiny instead\n2026-04-24T09:19:23.948881Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store\nchecking permissions...\n screen recording: ok\n accessibility: ok\n2026-04-24T09:19:24.012726Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6\n2026-04-24T09:19:24.548628Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor\n2026-04-24T09:19:24.550486Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)\n2026-04-24T09:19:24.550876Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)\n2026-04-24T09:19:24.587519Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true\n2026-04-24T09:19:24.587575Z INFO screenpipe: meeting detector enabled — independent of transcription mode\n2026-04-24T09:19:24.587822Z INFO screenpipe: API server listening on 127.0.0.1:3030 (localhost only)\n2026-04-24T09:19:24.587784Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)\n2026-04-24T09:19:24.587750Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)\n2026-04-24T09:19:24.587842Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key\n2026-04-24T09:19:24.587884Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager\n2026-04-24T09:19:24.599482Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-24T09:19:24.604417Z INFO screenpipe_core::pipes: loaded pipe: day-recap\n2026-04-24T09:19:24.604614Z INFO screenpipe_core::pipes: loaded pipe: standup-update\n2026-04-24T09:19:24.605022Z INFO screenpipe_core::pipes: loaded pipe: ai-habits\n2026-04-24T09:19:24.605182Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown\n2026-04-24T09:19:24.605334Z INFO screenpipe_core::pipes: loaded pipe: video-export\n2026-04-24T09:19:24.605840Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary\n2026-04-24T09:19:24.605858Z INFO screenpipe_core::pipes: loaded 6 pipes from \"/Users/lukas/.screenpipe/pipes\"\n\n\n\n _ \n __________________ ___ ____ ____ (_____ ___ \n / ___/ ___/ ___/ _ \\/ _ \\/ __ \\ / __ \\/ / __ \\/ _ \\\n (__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/\n/____/\\___/_/ \\___/\\___/_/ /_/ / .___/_/ .___/\\___/ \n /_/ /_/ \n\n\n\npower AI by everything you've seen, said or heard\nopen source | runs locally | developer friendly\n\n\n┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ true │\n│ vision disabled │ false │\n│ pause on DRM content │ false │\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n│ ignored windows │ [\"Boosteroid\"] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n│ api auth │ enabled │\n2026-04-24T09:19:24.607221Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n2026-04-24T09:19:24.612773Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n│ encrypt secrets │ disabled │\n│ retention days │ 14 │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ id: 1 │\n│ │ id: 2 │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ disabled │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-24T09:19:24.622220Z INFO screenpipe: starting UI event capture\n2026-04-24T09:19:24.635769Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-24T09:19:24.649336Z INFO screenpipe_engine::ui_recorder: UI recording session started: d723d582-4d6f-4e04-921c-c054be5f7efc\n2026-04-24T09:19:24.649340Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-24T09:19:24.649501Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-23 06:19:24.649500 UTC to 2026-04-24 06:19:24.649500 UTC)\n2026-04-24T09:19:24.650143Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-24T09:19:24.657009Z INFO screenpipe_engine::server: Server listening on 127.0.0.1:3030\n2026-04-24T09:19:24.667216Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-24T09:19:24.729181Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-24T09:19:24.729212Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-24T09:19:24.729249Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-24T09:19:24.779505Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-24T09:19:24.779540Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-24T09:19:24.779553Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)\n2026-04-24T09:19:24.779561Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)\n2026-04-24T09:19:24.779558Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-24T09:19:25.448244Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)\n2026-04-24T09:19:25.568925Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=75340, dur=59ms\n2026-04-24T09:19:25.573938Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)","depth":4,"bounds":{"left":0.27027926,"top":0.114924185,"width":0.4800532,"height":0.8850758},"value":"Last login: Thu Apr 23 14:01:28 on ttys008\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-status\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-start\ndetected hardware tier: Mid\nwarning: parakeet is not supported on this platform, using whisper-tiny instead\n2026-04-24T09:19:23.948881Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store\nchecking permissions...\n screen recording: ok\n accessibility: ok\n2026-04-24T09:19:24.012726Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6\n2026-04-24T09:19:24.548628Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor\n2026-04-24T09:19:24.550486Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)\n2026-04-24T09:19:24.550876Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)\n2026-04-24T09:19:24.587519Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true\n2026-04-24T09:19:24.587575Z INFO screenpipe: meeting detector enabled — independent of transcription mode\n2026-04-24T09:19:24.587822Z INFO screenpipe: API server listening on 127.0.0.1:3030 (localhost only)\n2026-04-24T09:19:24.587784Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)\n2026-04-24T09:19:24.587750Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)\n2026-04-24T09:19:24.587842Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key\n2026-04-24T09:19:24.587884Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager\n2026-04-24T09:19:24.599482Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-24T09:19:24.604417Z INFO screenpipe_core::pipes: loaded pipe: day-recap\n2026-04-24T09:19:24.604614Z INFO screenpipe_core::pipes: loaded pipe: standup-update\n2026-04-24T09:19:24.605022Z INFO screenpipe_core::pipes: loaded pipe: ai-habits\n2026-04-24T09:19:24.605182Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown\n2026-04-24T09:19:24.605334Z INFO screenpipe_core::pipes: loaded pipe: video-export\n2026-04-24T09:19:24.605840Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary\n2026-04-24T09:19:24.605858Z INFO screenpipe_core::pipes: loaded 6 pipes from \"/Users/lukas/.screenpipe/pipes\"\n\n\n\n _ \n __________________ ___ ____ ____ (_____ ___ \n / ___/ ___/ ___/ _ \\/ _ \\/ __ \\ / __ \\/ / __ \\/ _ \\\n (__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/\n/____/\\___/_/ \\___/\\___/_/ /_/ / .___/_/ .___/\\___/ \n /_/ /_/ \n\n\n\npower AI by everything you've seen, said or heard\nopen source | runs locally | developer friendly\n\n\n┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ true │\n│ vision disabled │ false │\n│ pause on DRM content │ false │\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n│ ignored windows │ [\"Boosteroid\"] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n│ api auth │ enabled │\n2026-04-24T09:19:24.607221Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n2026-04-24T09:19:24.612773Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n│ encrypt secrets │ disabled │\n│ retention days │ 14 │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ id: 1 │\n│ │ id: 2 │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ disabled │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-24T09:19:24.622220Z INFO screenpipe: starting UI event capture\n2026-04-24T09:19:24.635769Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-24T09:19:24.649336Z INFO screenpipe_engine::ui_recorder: UI recording session started: d723d582-4d6f-4e04-921c-c054be5f7efc\n2026-04-24T09:19:24.649340Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-24T09:19:24.649501Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-23 06:19:24.649500 UTC to 2026-04-24 06:19:24.649500 UTC)\n2026-04-24T09:19:24.650143Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-24T09:19:24.657009Z INFO screenpipe_engine::server: Server listening on 127.0.0.1:3030\n2026-04-24T09:19:24.667216Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-24T09:19:24.729181Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-24T09:19:24.729212Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-24T09:19:24.729249Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-24T09:19:24.779505Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-24T09:19:24.779540Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-24T09:19:24.779553Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)\n2026-04-24T09:19:24.779561Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)\n2026-04-24T09:19:24.779558Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-24T09:19:25.448244Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)\n2026-04-24T09:19:25.568925Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=75340, dur=59ms\n2026-04-24T09:19:25.573938Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.11801862,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.3882979,"top":1.0,"width":0.11801862,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.39029256,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.5063165,"top":1.0,"width":0.11801862,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.50831115,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.6243351,"top":1.0,"width":0.11801862,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6263298,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7287234,"top":1.0,"width":0.01861702,"height":-0.023144484},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"screenpipe\"","depth":1,"bounds":{"left":0.49634308,"top":1.0,"width":0.027925532,"height":-0.02394259},"role_description":"text"}]...
|
4777604702677621356
|
7752477567467836769
|
manual
|
accessibility
|
NULL
|
Last login: Thu Apr 23 14:01:28 on ttys008
Poetry Last login: Thu Apr 23 14:01:28 on ttys008
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-start
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-04-24T09:19:23.948881Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store
checking permissions...
screen recording: ok
accessibility: ok
2026-04-24T09:19:24.012726Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-04-24T09:19:24.548628Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-04-24T09:19:24.550486Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-04-24T09:19:24.550876Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-04-24T09:19:24.587519Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-04-24T09:19:24.587575Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-04-24T09:19:24.587822Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-04-24T09:19:24.587784Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-04-24T09:19:24.587750Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-04-24T09:19:24.587842Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-04-24T09:19:24.587884Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-04-24T09:19:24.599482Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))
2026-04-24T09:19:24.604417Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-04-24T09:19:24.604614Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-04-24T09:19:24.605022Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-04-24T09:19:24.605182Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-04-24T09:19:24.605334Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-04-24T09:19:24.605840Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary
2026-04-24T09:19:24.605858Z INFO screenpipe_core::pipes: loaded 6 pipes from "/Users/lukas/.screenpipe/pipes"
_
__________________ ___ ____ ____ (_____ ___
/ ___/ ___/ ___/ _ \/ _ \/ __ \ / __ \/ / __ \/ _ \
(__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/
/____/\___/_/ \___/\___/_/ /_/ / .___/_/ .___/\___/
/_/ /_/
power AI by everything you've seen, said or heard
open source | runs locally | developer friendly
┌────────────────────────┬────────────────────────────────────┐
│ setting │ value │
├────────────────────────┼────────────────────────────────────┤
│ audio chunk duration │ 30 seconds │
│ port │ 3030 │
│ audio disabled │ true │
│ vision disabled │ false │
│ pause on DRM content │ false │
│ audio engine │ Parakeet │
│ vad engine │ Silero │
│ data directory │ /Users/lukas/.screenpipe │
│ debug mode │ false │
│ telemetry │ true │
│ use pii removal │ true │
│ use all monitors │ true │
│ ignored windows │ ["Boosteroid"] │
│ included windows │ [] │
│ cloud sync │ disabled │
│ auto-destruct pid │ 0 │
│ deepgram key │ not set │
│ api auth │ enabled │
2026-04-24T09:19:24.607221Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)
2026-04-24T09:19:24.612773Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh
│ encrypt secrets │ disabled │
│ retention days │ 14 │
├────────────────────────┼────────────────────────────────────┤
│ languages │ │
│ │ all languages │
├────────────────────────┼────────────────────────────────────┤
│ monitors │ │
│ │ id: 1 │
│ │ id: 2 │
├────────────────────────┼────────────────────────────────────┤
│ audio devices │ │
│ │ disabled │
└────────────────────────┴────────────────────────────────────┘
you are using local processing. all your data stays on your computer.
warning: telemetry is enabled. only error-level data will be sent.
to disable, use the --disable-telemetry flag.
check latest changes here: https://github.com/screenpipe/screenpipe/releases
2026-04-24T09:19:24.622220Z INFO screenpipe: starting UI event capture
2026-04-24T09:19:24.635769Z INFO screenpipe_engine::ui_recorder: Starting UI event capture
2026-04-24T09:19:24.649336Z INFO screenpipe_engine::ui_recorder: UI recording session started: d723d582-4d6f-4e04-921c-c054be5f7efc
2026-04-24T09:19:24.649340Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)
2026-04-24T09:19:24.649501Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-23 06:19:24.649500 UTC to 2026-04-24 06:19:24.649500 UTC)
2026-04-24T09:19:24.650143Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)
2026-04-24T09:19:24.657009Z INFO screenpipe_engine::server: Server listening on [IP_ADDRESS]:3030
2026-04-24T09:19:24.667216Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030
2026-04-24T09:19:24.729181Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)
2026-04-24T09:19:24.729212Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)
2026-04-24T09:19:24.729249Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)
2026-04-24T09:19:24.779505Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-04-24T09:19:24.779540Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-04-24T09:19:24.779553Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)
2026-04-24T09:19:24.779561Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)
2026-04-24T09:19:24.779558Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-04-24T09:19:25.448244Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)
2026-04-24T09:19:25.568925Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=75340, dur=59ms
2026-04-24T09:19:25.573938Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
⌥⌘1
screenpipe"...
|
NULL
|
|
75340
|
1877
|
0
|
2026-04-24T06:19:25.230192+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-24/1777 /Users/lukas/.screenpipe/data/data/2026-04-24/1777011565230_m1.jpg...
|
iTerm2
|
screenpipe"
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Last login: Thu Apr 23 14:01:28 on ttys008
Poetry Last login: Thu Apr 23 14:01:28 on ttys008
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-start
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-04-24T09:19:23.948881Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store
checking permissions...
screen recording: ok
accessibility: ok
2026-04-24T09:19:24.012726Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-04-24T09:19:24.548628Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-04-24T09:19:24.550486Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-04-24T09:19:24.550876Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-04-24T09:19:24.587519Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-04-24T09:19:24.587575Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-04-24T09:19:24.587822Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-04-24T09:19:24.587784Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-04-24T09:19:24.587750Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-04-24T09:19:24.587842Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-04-24T09:19:24.587884Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-04-24T09:19:24.599482Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))
2026-04-24T09:19:24.604417Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-04-24T09:19:24.604614Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-04-24T09:19:24.605022Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-04-24T09:19:24.605182Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-04-24T09:19:24.605334Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-04-24T09:19:24.605840Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary
2026-04-24T09:19:24.605858Z INFO screenpipe_core::pipes: loaded 6 pipes from "/Users/lukas/.screenpipe/pipes"
_
__________________ ___ ____ ____ (_____ ___
/ ___/ ___/ ___/ _ \/ _ \/ __ \ / __ \/ / __ \/ _ \
(__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/
/____/\___/_/ \___/\___/_/ /_/ / .___/_/ .___/\___/
/_/ /_/
power AI by everything you've seen, said or heard
open source | runs locally | developer friendly
┌────────────────────────┬────────────────────────────────────┐
│ setting │ value │
├────────────────────────┼────────────────────────────────────┤
│ audio chunk duration │ 30 seconds │
│ port │ 3030 │
│ audio disabled │ true │
│ vision disabled │ false │
│ pause on DRM content │ false │
│ audio engine │ Parakeet │
│ vad engine │ Silero │
│ data directory │ /Users/lukas/.screenpipe │
│ debug mode │ false │
│ telemetry │ true │
│ use pii removal │ true │
│ use all monitors │ true │
│ ignored windows │ ["Boosteroid"] │
│ included windows │ [] │
│ cloud sync │ disabled │
│ auto-destruct pid │ 0 │
│ deepgram key │ not set │
│ api auth │ enabled │
2026-04-24T09:19:24.607221Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)
2026-04-24T09:19:24.612773Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh
│ encrypt secrets │ disabled │
│ retention days │ 14 │
├────────────────────────┼────────────────────────────────────┤
│ languages │ │
│ │ all languages │
├────────────────────────┼────────────────────────────────────┤
│ monitors │ │
│ │ id: 1 │
│ │ id: 2 │
├────────────────────────┼────────────────────────────────────┤
│ audio devices │ │
│ │ disabled │
└────────────────────────┴────────────────────────────────────┘
you are using local processing. all your data stays on your computer.
warning: telemetry is enabled. only error-level data will be sent.
to disable, use the --disable-telemetry flag.
check latest changes here: https://github.com/screenpipe/screenpipe/releases
2026-04-24T09:19:24.622220Z INFO screenpipe: starting UI event capture
2026-04-24T09:19:24.635769Z INFO screenpipe_engine::ui_recorder: Starting UI event capture
2026-04-24T09:19:24.649336Z INFO screenpipe_engine::ui_recorder: UI recording session started: d723d582-4d6f-4e04-921c-c054be5f7efc
2026-04-24T09:19:24.649340Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)
2026-04-24T09:19:24.649501Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-23 06:19:24.649500 UTC to 2026-04-24 06:19:24.649500 UTC)
2026-04-24T09:19:24.650143Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)
2026-04-24T09:19:24.657009Z INFO screenpipe_engine::server: Server listening on [IP_ADDRESS]:3030
2026-04-24T09:19:24.667216Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030
2026-04-24T09:19:24.729181Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)
2026-04-24T09:19:24.729212Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)
2026-04-24T09:19:24.729249Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)
2026-04-24T09:19:24.779505Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-04-24T09:19:24.779540Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-04-24T09:19:24.779553Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)
2026-04-24T09:19:24.779561Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)
2026-04-24T09:19:24.779558Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-04-24T09:19:25.448244Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
⌥⌘1
screenpipe"...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"Last login: Thu Apr 23 14:01:28 on ttys008\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-status\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-start\ndetected hardware tier: Mid\nwarning: parakeet is not supported on this platform, using whisper-tiny instead\n2026-04-24T09:19:23.948881Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store\nchecking permissions...\n screen recording: ok\n accessibility: ok\n2026-04-24T09:19:24.012726Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6\n2026-04-24T09:19:24.548628Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor\n2026-04-24T09:19:24.550486Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)\n2026-04-24T09:19:24.550876Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)\n2026-04-24T09:19:24.587519Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true\n2026-04-24T09:19:24.587575Z INFO screenpipe: meeting detector enabled — independent of transcription mode\n2026-04-24T09:19:24.587822Z INFO screenpipe: API server listening on 127.0.0.1:3030 (localhost only)\n2026-04-24T09:19:24.587784Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)\n2026-04-24T09:19:24.587750Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)\n2026-04-24T09:19:24.587842Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key\n2026-04-24T09:19:24.587884Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager\n2026-04-24T09:19:24.599482Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-24T09:19:24.604417Z INFO screenpipe_core::pipes: loaded pipe: day-recap\n2026-04-24T09:19:24.604614Z INFO screenpipe_core::pipes: loaded pipe: standup-update\n2026-04-24T09:19:24.605022Z INFO screenpipe_core::pipes: loaded pipe: ai-habits\n2026-04-24T09:19:24.605182Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown\n2026-04-24T09:19:24.605334Z INFO screenpipe_core::pipes: loaded pipe: video-export\n2026-04-24T09:19:24.605840Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary\n2026-04-24T09:19:24.605858Z INFO screenpipe_core::pipes: loaded 6 pipes from \"/Users/lukas/.screenpipe/pipes\"\n\n\n\n _ \n __________________ ___ ____ ____ (_____ ___ \n / ___/ ___/ ___/ _ \\/ _ \\/ __ \\ / __ \\/ / __ \\/ _ \\\n (__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/\n/____/\\___/_/ \\___/\\___/_/ /_/ / .___/_/ .___/\\___/ \n /_/ /_/ \n\n\n\npower AI by everything you've seen, said or heard\nopen source | runs locally | developer friendly\n\n\n┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ true │\n│ vision disabled │ false │\n│ pause on DRM content │ false │\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n│ ignored windows │ [\"Boosteroid\"] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n│ api auth │ enabled │\n2026-04-24T09:19:24.607221Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n2026-04-24T09:19:24.612773Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n│ encrypt secrets │ disabled │\n│ retention days │ 14 │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ id: 1 │\n│ │ id: 2 │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ disabled │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-24T09:19:24.622220Z INFO screenpipe: starting UI event capture\n2026-04-24T09:19:24.635769Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-24T09:19:24.649336Z INFO screenpipe_engine::ui_recorder: UI recording session started: d723d582-4d6f-4e04-921c-c054be5f7efc\n2026-04-24T09:19:24.649340Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-24T09:19:24.649501Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-23 06:19:24.649500 UTC to 2026-04-24 06:19:24.649500 UTC)\n2026-04-24T09:19:24.650143Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-24T09:19:24.657009Z INFO screenpipe_engine::server: Server listening on 127.0.0.1:3030\n2026-04-24T09:19:24.667216Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-24T09:19:24.729181Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-24T09:19:24.729212Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-24T09:19:24.729249Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-24T09:19:24.779505Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-24T09:19:24.779540Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-24T09:19:24.779553Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)\n2026-04-24T09:19:24.779561Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)\n2026-04-24T09:19:24.779558Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-24T09:19:25.448244Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)","depth":4,"value":"Last login: Thu Apr 23 14:01:28 on ttys008\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-status\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-start\ndetected hardware tier: Mid\nwarning: parakeet is not supported on this platform, using whisper-tiny instead\n2026-04-24T09:19:23.948881Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store\nchecking permissions...\n screen recording: ok\n accessibility: ok\n2026-04-24T09:19:24.012726Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6\n2026-04-24T09:19:24.548628Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor\n2026-04-24T09:19:24.550486Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)\n2026-04-24T09:19:24.550876Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)\n2026-04-24T09:19:24.587519Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true\n2026-04-24T09:19:24.587575Z INFO screenpipe: meeting detector enabled — independent of transcription mode\n2026-04-24T09:19:24.587822Z INFO screenpipe: API server listening on 127.0.0.1:3030 (localhost only)\n2026-04-24T09:19:24.587784Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)\n2026-04-24T09:19:24.587750Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)\n2026-04-24T09:19:24.587842Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key\n2026-04-24T09:19:24.587884Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager\n2026-04-24T09:19:24.599482Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-24T09:19:24.604417Z INFO screenpipe_core::pipes: loaded pipe: day-recap\n2026-04-24T09:19:24.604614Z INFO screenpipe_core::pipes: loaded pipe: standup-update\n2026-04-24T09:19:24.605022Z INFO screenpipe_core::pipes: loaded pipe: ai-habits\n2026-04-24T09:19:24.605182Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown\n2026-04-24T09:19:24.605334Z INFO screenpipe_core::pipes: loaded pipe: video-export\n2026-04-24T09:19:24.605840Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary\n2026-04-24T09:19:24.605858Z INFO screenpipe_core::pipes: loaded 6 pipes from \"/Users/lukas/.screenpipe/pipes\"\n\n\n\n _ \n __________________ ___ ____ ____ (_____ ___ \n / ___/ ___/ ___/ _ \\/ _ \\/ __ \\ / __ \\/ / __ \\/ _ \\\n (__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/\n/____/\\___/_/ \\___/\\___/_/ /_/ / .___/_/ .___/\\___/ \n /_/ /_/ \n\n\n\npower AI by everything you've seen, said or heard\nopen source | runs locally | developer friendly\n\n\n┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ true │\n│ vision disabled │ false │\n│ pause on DRM content │ false │\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n│ ignored windows │ [\"Boosteroid\"] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n│ api auth │ enabled │\n2026-04-24T09:19:24.607221Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n2026-04-24T09:19:24.612773Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n│ encrypt secrets │ disabled │\n│ retention days │ 14 │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ id: 1 │\n│ │ id: 2 │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ disabled │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-24T09:19:24.622220Z INFO screenpipe: starting UI event capture\n2026-04-24T09:19:24.635769Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-24T09:19:24.649336Z INFO screenpipe_engine::ui_recorder: UI recording session started: d723d582-4d6f-4e04-921c-c054be5f7efc\n2026-04-24T09:19:24.649340Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-24T09:19:24.649501Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-23 06:19:24.649500 UTC to 2026-04-24 06:19:24.649500 UTC)\n2026-04-24T09:19:24.650143Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-24T09:19:24.657009Z INFO screenpipe_engine::server: Server listening on 127.0.0.1:3030\n2026-04-24T09:19:24.667216Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-24T09:19:24.729181Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-24T09:19:24.729212Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-24T09:19:24.729249Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-24T09:19:24.779505Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-24T09:19:24.779540Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-24T09:19:24.779553Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)\n2026-04-24T09:19:24.779561Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)\n2026-04-24T09:19:24.779558Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-24T09:19:25.448244Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.24652778,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.24652778,"top":0.05888889,"width":0.24652778,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.25069445,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.49305555,"top":0.05888889,"width":0.24652778,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.49722221,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.7395833,"top":0.05888889,"width":0.24652778,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.74375,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"screenpipe\"","depth":1,"bounds":{"left":0.4722222,"top":0.033333335,"width":0.058333334,"height":0.017777778},"role_description":"text"}]...
|
-2022245864110222619
|
7180520414791791969
|
manual
|
accessibility
|
NULL
|
Last login: Thu Apr 23 14:01:28 on ttys008
Poetry Last login: Thu Apr 23 14:01:28 on ttys008
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ sp-start
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-04-24T09:19:23.948881Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store
checking permissions...
screen recording: ok
accessibility: ok
2026-04-24T09:19:24.012726Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-04-24T09:19:24.548628Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-04-24T09:19:24.550486Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-04-24T09:19:24.550876Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-04-24T09:19:24.587519Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-04-24T09:19:24.587575Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-04-24T09:19:24.587822Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-04-24T09:19:24.587784Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-04-24T09:19:24.587750Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-04-24T09:19:24.587842Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-04-24T09:19:24.587884Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-04-24T09:19:24.599482Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))
2026-04-24T09:19:24.604417Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-04-24T09:19:24.604614Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-04-24T09:19:24.605022Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-04-24T09:19:24.605182Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-04-24T09:19:24.605334Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-04-24T09:19:24.605840Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary
2026-04-24T09:19:24.605858Z INFO screenpipe_core::pipes: loaded 6 pipes from "/Users/lukas/.screenpipe/pipes"
_
__________________ ___ ____ ____ (_____ ___
/ ___/ ___/ ___/ _ \/ _ \/ __ \ / __ \/ / __ \/ _ \
(__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/
/____/\___/_/ \___/\___/_/ /_/ / .___/_/ .___/\___/
/_/ /_/
power AI by everything you've seen, said or heard
open source | runs locally | developer friendly
┌────────────────────────┬────────────────────────────────────┐
│ setting │ value │
├────────────────────────┼────────────────────────────────────┤
│ audio chunk duration │ 30 seconds │
│ port │ 3030 │
│ audio disabled │ true │
│ vision disabled │ false │
│ pause on DRM content │ false │
│ audio engine │ Parakeet │
│ vad engine │ Silero │
│ data directory │ /Users/lukas/.screenpipe │
│ debug mode │ false │
│ telemetry │ true │
│ use pii removal │ true │
│ use all monitors │ true │
│ ignored windows │ ["Boosteroid"] │
│ included windows │ [] │
│ cloud sync │ disabled │
│ auto-destruct pid │ 0 │
│ deepgram key │ not set │
│ api auth │ enabled │
2026-04-24T09:19:24.607221Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)
2026-04-24T09:19:24.612773Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh
│ encrypt secrets │ disabled │
│ retention days │ 14 │
├────────────────────────┼────────────────────────────────────┤
│ languages │ │
│ │ all languages │
├────────────────────────┼────────────────────────────────────┤
│ monitors │ │
│ │ id: 1 │
│ │ id: 2 │
├────────────────────────┼────────────────────────────────────┤
│ audio devices │ │
│ │ disabled │
└────────────────────────┴────────────────────────────────────┘
you are using local processing. all your data stays on your computer.
warning: telemetry is enabled. only error-level data will be sent.
to disable, use the --disable-telemetry flag.
check latest changes here: https://github.com/screenpipe/screenpipe/releases
2026-04-24T09:19:24.622220Z INFO screenpipe: starting UI event capture
2026-04-24T09:19:24.635769Z INFO screenpipe_engine::ui_recorder: Starting UI event capture
2026-04-24T09:19:24.649336Z INFO screenpipe_engine::ui_recorder: UI recording session started: d723d582-4d6f-4e04-921c-c054be5f7efc
2026-04-24T09:19:24.649340Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)
2026-04-24T09:19:24.649501Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-23 06:19:24.649500 UTC to 2026-04-24 06:19:24.649500 UTC)
2026-04-24T09:19:24.650143Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)
2026-04-24T09:19:24.657009Z INFO screenpipe_engine::server: Server listening on [IP_ADDRESS]:3030
2026-04-24T09:19:24.667216Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030
2026-04-24T09:19:24.729181Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)
2026-04-24T09:19:24.729212Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)
2026-04-24T09:19:24.729249Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)
2026-04-24T09:19:24.779505Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-04-24T09:19:24.779540Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-04-24T09:19:24.779553Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)
2026-04-24T09:19:24.779561Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)
2026-04-24T09:19:24.779558Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-04-24T09:19:25.448244Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
⌥⌘1
screenpipe"...
|
NULL
|
|
74070
|
1839
|
62
|
2026-04-23T09:01:12.521629+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-23/1776 /Users/lukas/.screenpipe/data/data/2026-04-23/1776934872521_m2.jpg...
|
iTerm2
|
screenpipe"
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
\n device_name,\n timestamp\nFROM\n frames\nWHE \n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=44 elapsed=1.833842375s
2026-04-22T18:03:16.198578Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 44 eligible frames
2026-04-22T18:03:18.139382Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 2.0MB → 0.1MB (16.1x), 21 JPEGs deleted
2026-04-22T18:03:19.618803Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.5MB → 1.5MB (2.4x), 21 JPEGs deleted
2026-04-22T18:06:58.395218Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7639883349033148478, trigger=click)
2026-04-22T18:06:58.897470Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7639883349033148478, trigger=click)
2026-04-22T18:07:42.474566Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=607162597309748765, trigger=click)
2026-04-22T18:08:27.382204Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=28 elapsed=7.750844334s
2026-04-22T18:08:27.382491Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames
2026-04-22T18:08:29.032220Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.2MB → 0.1MB (10.4x), 13 JPEGs deleted
2026-04-22T18:08:30.573314Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.7MB → 0.6MB (4.2x), 13 JPEGs deleted
2026-04-22T18:13:38.096494Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=20 elapsed=6.760223375s
2026-04-22T18:13:38.099584Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 20 eligible frames
2026-04-22T18:13:38.806766Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 0.8MB → 0.1MB (7.4x), 9 JPEGs deleted
2026-04-22T18:13:39.606462Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 1.9MB → 0.5MB (3.8x), 9 JPEGs deleted
2026-04-22T18:18:41.943065Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=45 elapsed=2.325026709s
2026-04-22T18:18:41.943417Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 45 eligible frames
2026-04-22T18:18:43.289962Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 2.0MB → 0.1MB (16.7x), 21 JPEGs deleted
2026-04-22T18:18:45.689764Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 4.4MB → 1.3MB (3.4x), 22 JPEGs deleted
2026-04-22T18:18:54.020334Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6726632078176380015, trigger=click)
2026-04-22T18:18:54.540347Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6726632078176380015, trigger=click)
2026-04-22T18:18:55.737423Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6726632078176380015, trigger=click)
2026-04-22T18:18:56.477423Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6726632078176380015, trigger=click)
2026-04-22T18:20:28.510789Z WARN sqlx::query: summary="PRAGMA wal_checkpoint(TRUNCATE)" db.statement="" rows_affected=0 rows_returned=1 elapsed=5.273706125s
2026-04-22T18:20:28.511954Z WARN screenpipe_db::db: wal checkpoint: busy (could not truncate), 3177 pages in WAL
2026-04-22T18:20:28.562400Z WARN sqlx::query: summary="BEGIN IMMEDIATE" db.statement="" rows_affected=1 rows_returned=0 elapsed=2.291890708s
2026-04-22T18:23:52.302822Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=31 elapsed=6.325649833s
2026-04-22T18:23:52.304330Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 31 eligible frames
2026-04-22T18:23:53.163590Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 1.1MB → 0.1MB (9.9x), 12 JPEGs deleted
2026-04-22T18:23:55.277698Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.4MB → 1.6MB (2.2x), 17 JPEGs deleted
2026-04-22T18:28:56.007322Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 35 eligible frames
2026-04-22T18:28:57.403360Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.7MB → 1.5MB (1.9x), 16 JPEGs deleted
2026-04-22T18:28:58.752838Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.9MB → 0.8MB (3.6x), 17 JPEGs deleted
2026-04-22T18:34:01.165384Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=41 elapsed=2.400307625s
2026-04-22T18:34:01.165480Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 41 eligible frames
2026-04-22T18:34:02.291139Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.7MB → 0.8MB (3.5x), 15 JPEGs deleted
2026-04-22T18:34:04.197399Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.2MB → 1.7MB (2.4x), 24 JPEGs deleted
2026-04-22T18:35:56.027919Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5884937538005636030, trigger=visual_change)
2026-04-22T18:37:55.284482Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-439807993867665328, trigger=visual_change)
2026-04-22T18:39:08.660187Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=22 elapsed=4.451587125s
2026-04-22T18:39:08.660278Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames
2026-04-22T18:39:09.493828Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.5MB → 0.5MB (3.1x), 10 JPEGs deleted
2026-04-22T18:39:10.349740Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.1MB → 0.5MB (4.3x), 10 JPEGs deleted
2026-04-22T18:43:06.355073Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3304493437592891639, trigger=click)
2026-04-22T18:43:23.219621Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6603898485603033537, trigger=click)
2026-04-22T18:44:11.899645Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=21 elapsed=1.53441375s
2026-04-22T18:44:11.900197Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames
2026-04-22T18:44:12.802039Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 1.1MB → 0.2MB (6.3x), 9 JPEGs deleted
2026-04-22T18:44:14.694466Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.1MB → 0.3MB (5.9x), 10 JPEGs deleted
2026-04-22T18:45:14.778135Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6664853592767636193, trigger=click)
2026-04-22T18:46:36.923697Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1791249548195440516, trigger=visual_change)
2026-04-22T18:49:18.625635Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=46 elapsed=3.900838541s
2026-04-22T18:49:18.625996Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 46 eligible frames
2026-04-22T18:49:19.640722Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 1.8MB → 0.2MB (10.4x), 15 JPEGs deleted
2026-04-22T18:49:23.038596Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 5.2MB → 2.1MB (2.4x), 29 JPEGs deleted
2026-04-22T18:50:34.997361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=visual_change)
2026-04-22T18:50:39.846829Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)
2026-04-22T18:50:43.731899Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)
2026-04-22T18:51:20.200945Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=visual_change)
2026-04-22T18:51:23.144927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)
2026-04-22T18:51:23.976040Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=click)
2026-04-22T18:51:27.176876Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)
2026-04-22T18:51:28.227317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=click)
2026-04-22T18:51:31.555085Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)
2026-04-22T18:51:32.274042Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=click)
2026-04-22T18:51:35.352114Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)
2026-04-22T18:51:37.306495Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=visual_change)
2026-04-22T18:52:02.049971Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=visual_change)
2026-04-22T18:52:09.690330Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=visual_change)
2026-04-22T18:52:11.530065Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)
2026-04-22T18:52:12.090300Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=click)
2026-04-22T18:52:22.885838Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6951480031607957362, trigger=visual_change)
2026-04-22T18:52:58.986955Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7031607293039132919, trigger=click)
2026-04-22T18:53:47.690375Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3992755350865402319, trigger=visual_change)
2026-04-22T18:54:25.328228Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=52 elapsed=2.277973417s
2026-04-22T18:54:25.328316Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 52 eligible frames
2026-04-22T18:54:26.661506Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 2.6MB → 0.2MB (11.0x), 22 JPEGs deleted
2026-04-22T18:54:28.982139Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 4.3MB → 1.1MB (3.8x), 28 JPEGs deleted
2026-04-22T18:54:44.142044Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3992755350865402319, trigger=visual_change)
2026-04-22T18:55:01.465747Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2556650532703180759, trigger=click)
2026-04-22T18:55:02.524314Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2556650532703180759, trigger=click)
2026-04-22T18:55:35.312048Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3149441378543601087, trigger=visual_change)
2026-04-22T18:55:55.086761Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3149441378543601087, trigger=click)
2026-04-22T18:55:56.919853Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3149441378543601087, trigger=visual_change)
2026-04-22T18:56:05.807170Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7595806992634662117, trigger=visual_change)
2026-04-22T18:56:12.303927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7595806992634662117, trigger=visual_change)
2026-04-22T18:56:58.093656Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2070714172482892625, trigger=visual_change)
2026-04-22T18:57:00.459010Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2070714172482892625, trigger=visual_change)
2026-04-22T18:57:03.809894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2070714172482892625, trigger=visual_change)
2026-04-22T18:58:04.259354Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7284778144726625723, trigger=visual_change)
2026-04-22T18:58:07.302007Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7284778144726625723, trigger=visual_change)
2026-04-22T18:58:10.443744Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7284778144726625723, trigger=visual_change)
2026-04-22T18:58:40.416893Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6313361147559934277, trigger=click)
2026-04-22T18:58:59.229391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)
2026-04-22T18:59:10.795801Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)
2026-04-22T18:59:15.904155Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)
2026-04-22T18:59:30.308258Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=46 elapsed=1.303054333s
2026-04-22T18:59:30.308485Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 46 eligible frames
2026-04-22T18:59:31.535859Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 2.4MB → 0.3MB (7.5x), 20 JPEGs deleted
2026-04-22T18:59:33.536283Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 3.8MB → 1.3MB (3.0x), 24 JPEGs deleted
2026-04-22T18:59:39.897203Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)
2026-04-22T18:59:43.593017Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-71227342056343983, trigger=visual_change)
2026-04-22T18:59:55.722135Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)
2026-04-22T19:00:00.394304Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)
2026-04-22T19:00:27.869871Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2710856207947507007, trigger=visual_change)
2026-04-22T19:01:54.992910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6986338393283794423, trigger=visual_change)
2026-04-22T19:02:13.568012Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6986338393283794423, trigger=visual_change)
2026-04-22T19:02:16.092275Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6986338393283794423, trigger=visual_change)
2026-04-22T19:03:04.479425Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7704375629034044835, trigger=visual_change)
2026-04-22T19:03:35.287830Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2375149456869027114, trigger=visual_change)
2026-04-22T19:03:41.021583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2375149456869027114, trigger=visual_change)
2026-04-22T19:03:48.485601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6234474271212752005, trigger=visual_change)
2026-04-22T19:04:35.737525Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=82 elapsed=2.188209209s
2026-04-22T19:04:35.737670Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 82 eligible frames
2026-04-22T19:04:38.209886Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3880005638520398709, trigger=click)
2026-04-22T19:04:38.478674Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 4.8MB → 1.0MB (4.9x), 39 JPEGs deleted
2026-04-22T19:04:42.074270Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 41 frames, 7.5MB → 3.6MB (2.1x), 41 JPEGs deleted
2026-04-22T19:04:55.094599Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-635344842894947589, trigger=visual_change)
2026-04-22T19:05:20.336216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)
2026-04-22T19:05:54.388487Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)
2026-04-22T19:05:57.299176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)
2026-04-22T19:05:59.949506Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)
2026-04-22T19:06:25.531964Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5957740084085463727, trigger=visual_change)
2026-04-22T19:06:50.090567Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6422724880219484653, trigger=visual_change)
2026-04-22T19:07:22.963169Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2531925023067266044, trigger=click)
2026-04-22T19:07:24.045648Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2531925023067266044, trigger=click)
2026-04-22T19:07:27.834546Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2085088366939909076, trigger=click)
2026-04-22T19:07:28.381522Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2085088366939909076, trigger=click)
2026-04-22T19:08:34.175493Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3061313113729352595, trigger=click)
2026-04-22T19:09:42.454765Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 91 eligible frames
2026-04-22T19:09:45.816541Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 5.7MB → 2.4MB (2.3x), 32 JPEGs deleted
2026-04-22T19:09:50.140975Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 57 frames, 7.8MB → 2.3MB (3.4x), 57 JPEGs deleted
2026-04-22T19:10:13.441594Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=click)
2026-04-22T19:10:18.830768Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)
2026-04-22T19:10:21.842287Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)
2026-04-22T19:10:28.187487Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5292492680570276501, trigger=click)
^C2026-04-22T19:10:32.957264Z INFO screenpipe: received ctrl+c, initiating shutdown
2026-04-22T19:10:32.958125Z INFO screenpipe: stopping UI event capture
2026-04-22T19:10:32.958201Z INFO screenpipe: received shutdown signal for VisionManager
2026-04-22T19:10:32.958212Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker shutting down
2026-04-22T19:10:32.958217Z INFO screenpipe_engine::meeting_detector: meeting v2: shutdown received, exiting detection loop
2026-04-22T19:10:32.958646Z INFO screenpipe_engine::vision_manager::manager: Shutting down VisionManager
2026-04-22T19:10:32.958661Z INFO screenpipe_engine::vision_manager::manager: Stopping VisionManager
2026-04-22T19:10:32.958669Z INFO screenpipe_engine::vision_manager::manager: Stopping vision recording for monitor 2
2026-04-22T19:10:32.958804Z INFO screenpipe_engine::vision_manager::manager: Stopping vision recording for monitor 1
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ 2026-04-22T19:10:33.158623Z INFO screenpipe_engine::ui_recorder: UI recording session ended: e7729066-2ab4-4bf0-9d48-0c9790a4ee79
2026-04-22T19:10:33.159581Z INFO screenpipe: shutdown complete
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-stop
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ st-start
zsh: command not found: st-start
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-start
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-04-23T09:12:59.282987Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store
checking permissions...
screen recording: ok
accessibility: ok
2026-04-23T09:12:59.350556Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-04-23T09:13:00.537715Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-04-23T09:13:00.539247Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-04-23T09:13:00.539704Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-04-23T09:13:00.580622Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-04-23T09:13:00.580688Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-04-23T09:13:00.580873Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-04-23T09:13:00.581042Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-04-23T09:13:00.581050Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-04-23T09:13:00.580937Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-04-23T09:13:00.581202Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-04-23T09:13:00.599105Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))
2026-04-23T09:13:00.607481Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-04-23T09:13:00.608248Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-04-23T09:13:00.608416Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-04-23T09:13:00.608706Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-04-23T09:13:00.608849Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-04-23T09:13:00.609337Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary
2026-04-23T09:13:00.609353Z INFO screenpipe_core::pipes: loaded 6 pipes from "/Users/lukas/.screenpipe/pipes"
_
__________________ ___ ____ ____ (_____ ___
/ ___/ ___/ ___/ _ \/ _ \/ __ \ / __ \/ / __ \/ _ \
(__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/
/____/\___/_/ \___/\___/_/ /_/ / .___/_/ .___/\___/
/_/ /_/
power AI by everything you've seen, said or heard
open source | runs locally | developer friendly
┌────────────────────────┬────────────────────────────────────┐
│ setting │ value │
├────────────────────────┼────────────────────────────────────┤
│ audio chunk duration │ 30 seconds │
│ port │ 3030 │
│ audio disabled │ true │
│ vision disabled │ false │
│ pause on DRM content │ false │
│ audio engine │ Parakeet │
│ vad engine │ Silero │
│ data directory │ /Users/lukas/.screenpipe │
│ debug mode │ false │
│ telemetry │ true │
│ use pii removal │ true │
│ use all monitors │ true │
│ ignored windows │ ["Boosteroid"] │
│ included windows │ [] │
│ cloud sync │ disabled │
│ auto-destruct pid │ 0 │
│ deepgram key │ not set │
│ api auth │ enabled │
2026-04-23T09:13:00.610149Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)
2026-04-23T09:13:00.614023Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh
│ encrypt secrets │ disabled │
│ retention days │ 14 │
├────────────────────────┼────────────────────────────────────┤
│ languages │ │
│ │ all languages │
├────────────────────────┼────────────────────────────────────┤
│ monitors │ │
│ │ id: 1 │
│ │ id: 2 │
├────────────────────────┼────────────────────────────────────┤
│ audio devices │ │
│ │ disabled │
└────────────────────────┴────────────────────────────────────┘
you are using local processing. all your data stays on your computer.
warning: telemetry is enabled. only error-level data will be sent.
to disable, use the --disable-telemetry flag.
check latest changes here: https://github.com/screenpipe/screenpipe/releases
2026-04-23T09:13:00.626925Z INFO screenpipe: starting UI event capture
2026-04-23T09:13:00.644081Z INFO screenpipe_engine::ui_recorder: Starting UI event capture
2026-04-23T09:13:00.659604Z INFO screenpipe_engine::ui_recorder: UI recording session started: 64e213bd-3690-487f-90be-4e8348040416
2026-04-23T09:13:00.659568Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)
2026-04-23T09:13:00.659937Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-22 06:13:00.659935 UTC to 2026-04-23 06:13:00.659935 UTC)
2026-04-23T09:13:00.660681Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)
2026-04-23T09:13:00.671031Z INFO screenpipe_engine::server: Server listening on [IP_ADDRESS]:3030
2026-04-23T09:13:00.676357Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030
2026-04-23T09:13:02.822346Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)
2026-04-23T09:13:02.822390Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)
2026-04-23T09:13:02.822429Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)
2026-04-23T09:13:03.612915Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-04-23T09:13:03.612969Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-04-23T09:13:03.612981Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)
2026-04-23T09:13:03.612988Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)
2026-04-23T09:13:03.613032Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-04-23T09:13:04.172201Z WARN sqlx::query: summary="SELECT f.id, f.timestamp, f.offset_index, …" db.statement="\n\nSELECT\n f.id,\n f.timestamp,\n f.offset_index,\n COALESCE(\n SUBSTR(f.full_text, 1, 200),\n SUBSTR(f.accessibility_text, 1, 200),\n (\n SELECT\n SUBSTR(ot.text, 1, 200)\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as text,\n COALESCE(\n f.app_name,\n (\n SELECT\n ot.app_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as app_name,\n COALESCE(\n f.window_name,\n (\n SELECT\n ot.window_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as window_name,\n COALESCE(vc.device_name, f.device_name) as screen_device,\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\n COALESCE(vc.fps, 0.033) as chunk_fps,\n f.browser_url,\n f.machine_id\nFROM\n frames f\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\nWHERE\n f.timestamp >= ?1\n AND f.timestamp <= ?2\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\nORDER BY\n f.timestamp DESC,\n f.offset_index DESC\nLIMIT\n 10000\n" rows_affected=0 rows_returned=4305 elapsed=3.511492208s
2026-04-23T09:13:04.183200Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 4304 frame entries, coverage from 2026-04-22 06:13:00.659935 UTC
2026-04-23T09:13:07.349282Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)
2026-04-23T09:13:07.830685Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=72776, dur=70ms
2026-04-23T09:13:08.836958Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)
2026-04-23T09:13:09.378786Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=72777, dur=124ms
2026-04-23T09:13:09.380863Z INFO sck_rs::stream_manager: invalidated persistent stream for display 2
2026-04-23T09:13:32.742255Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)
2026-04-23T09:14:01.764079Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4702465002163205464, trigger=click)
2026-04-23T09:14:04.223149Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4702465002163205464, trigger=visual_change)
2026-04-23T09:14:06.953796Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=147 elapsed=6.3719465s
2026-04-23T09:14:06.954006Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 147 eligible frames
2026-04-23T09:14:12.566935Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 70 frames, 10.3MB → 2.7MB (3.8x), 70 JPEGs deleted
2026-04-23T09:14:17.358704Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 75 frames, 9.6MB → 3.0MB (3.2x), 75 JPEGs deleted
2026-04-23T09:15:47.544198Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3660881845293713510, trigger=visual_change)
2026-04-23T09:15:50.997492Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3660881845293713510, trigger=click)
2026-04-23T09:15:51.600725Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3660881845293713510, trigger=click)
2026-04-23T09:15:55.723800Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3660881845293713510, trigger=click)
2026-04-23T09:15:56.933987Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3660881845293713510, trigger=visual_change)
2026-04-23T09:15:59.012409Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3660881845293713510, trigger=visual_change)
2026-04-23T09:16:49.882963Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3759145274440377841, trigger=visual_change)
2026-04-23T09:16:51.405936Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3759145274440377841, trigger=click)
2026-04-23T09:16:52.823011Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3759145274440377841, trigger=click)
2026-04-23T09:16:54.220304Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3759145274440377841, trigger=click)
2026-04-23T09:16:54.887021Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3759145274440377841, trigger=click)
2026-04-23T09:16:58.589203Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3759145274440377841, trigger=visual_change)
2026-04-23T09:18:05.879649Z WARN screenpipe_db::db: wal checkpoint: busy (could not truncate), 5054 pages in WAL
2026-04-23T09:18:05.879619Z WARN sqlx::query: summary="PRAGMA wal_checkpoint(TRUNCATE)" db.statement="" rows_affected=0 rows_returned=1 elapsed=5.220339167s
2026-04-23T09:19:24.740122Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=2 elapsed=7.381061833s
2026-04-23T09:19:24.740850Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
2026-04-23T09:19:36.514406Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2079049776495123607, trigger=click)
2026-04-23T09:24:26.477446Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=11 elapsed=1.729545666s
2026-04-23T09:24:26.477540Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 11 eligible frames
2026-04-23T09:24:27.316363Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 5 frames, 1.4MB → 1.4MB (1.0x), 5 JPEGs deleted
2026-04-23T09:24:27.966623Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 6 frames, 0.6MB → 0.2MB (2.7x), 6 JPEGs deleted
2026-04-23T09:24:42.606557Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:26:03.160247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7786631749263421517, trigger=click)
2026-04-23T09:27:26.154494Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:27:34.433056Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:28:06.713361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:28:33.527151Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5209591986308457575, trigger=click)
2026-04-23T09:28:34.249353Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5209591986308457575, trigger=click)
2026-04-23T09:28:36.237199Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5209591986308457575, trigger=click)
2026-04-23T09:28:42.253183Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8747303508868961364, trigger=click)
2026-04-23T09:28:48.282686Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:28:50.613134Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:28:51.314522Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:29:31.961577Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=67 elapsed=3.996031s
2026-04-23T09:29:31.961670Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 67 eligible frames
2026-04-23T09:29:34.332658Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 5.8MB → 2.1MB (2.8x), 29 JPEGs deleted
2026-04-23T09:29:38.223511Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 7.4MB → 3.8MB (2.0x), 36 JPEGs deleted
2026-04-23T09:30:34.230785Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:30:39.665086Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:30:40.299751Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:30:45.663893Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:30:51.622228Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:30:52.321014Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:31:15.021588Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:31:15.691601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:31:17.946692Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:31:18.653547Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:32:17.960360Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:32:24.051490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:32:29.442560Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:32:30.131038Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:32:32.452540Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:32:36.585069Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:32:39.322258Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:33:18.072421Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:33:18.766929Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:33:22.098409Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:33:22.782084Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:34:27.313290Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:34:38.542722Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 89 eligible frames
2026-04-23T09:34:41.684595Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 38 frames, 5.6MB → 0.7MB (7.5x), 38 JPEGs deleted
2026-04-23T09:34:44.933963Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 10.6MB → 3.8MB (2.8x), 49 JPEGs deleted
2026-04-23T09:37:57.963204Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:37:58.697604Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:38:02.124214Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:38:53.190171Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:38:59.279885Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:39:02.308536Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:39:36.189861Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:39:49.122120Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=50 elapsed=4.188474542s
2026-04-23T09:39:49.122232Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 50 eligible frames
2026-04-23T09:39:51.115025Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 2.9MB → 0.3MB (9.4x), 24 JPEGs deleted
2026-04-23T09:39:53.096763Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 5.0MB → 2.3MB (2.2x), 24 JPEGs deleted
2026-04-23T09:40:57.095660Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:40:58.430714Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:41:01.130926Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:41:01.840278Z INFO screenpipe_engine::event_d...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=44 elapsed=1.833842375s\n2026-04-22T18:03:16.198578Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 44 eligible frames\n2026-04-22T18:03:18.139382Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 2.0MB → 0.1MB (16.1x), 21 JPEGs deleted\n2026-04-22T18:03:19.618803Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.5MB → 1.5MB (2.4x), 21 JPEGs deleted\n2026-04-22T18:06:58.395218Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7639883349033148478, trigger=click)\n2026-04-22T18:06:58.897470Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7639883349033148478, trigger=click)\n2026-04-22T18:07:42.474566Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=607162597309748765, trigger=click)\n2026-04-22T18:08:27.382204Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=28 elapsed=7.750844334s\n2026-04-22T18:08:27.382491Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames\n2026-04-22T18:08:29.032220Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.2MB → 0.1MB (10.4x), 13 JPEGs deleted\n2026-04-22T18:08:30.573314Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.7MB → 0.6MB (4.2x), 13 JPEGs deleted\n2026-04-22T18:13:38.096494Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=20 elapsed=6.760223375s\n2026-04-22T18:13:38.099584Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 20 eligible frames\n2026-04-22T18:13:38.806766Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 0.8MB → 0.1MB (7.4x), 9 JPEGs deleted\n2026-04-22T18:13:39.606462Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 1.9MB → 0.5MB (3.8x), 9 JPEGs deleted\n2026-04-22T18:18:41.943065Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=45 elapsed=2.325026709s\n2026-04-22T18:18:41.943417Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 45 eligible frames\n2026-04-22T18:18:43.289962Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 2.0MB → 0.1MB (16.7x), 21 JPEGs deleted\n2026-04-22T18:18:45.689764Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 4.4MB → 1.3MB (3.4x), 22 JPEGs deleted\n2026-04-22T18:18:54.020334Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6726632078176380015, trigger=click)\n2026-04-22T18:18:54.540347Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6726632078176380015, trigger=click)\n2026-04-22T18:18:55.737423Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6726632078176380015, trigger=click)\n2026-04-22T18:18:56.477423Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6726632078176380015, trigger=click)\n2026-04-22T18:20:28.510789Z WARN sqlx::query: summary=\"PRAGMA wal_checkpoint(TRUNCATE)\" db.statement=\"\" rows_affected=0 rows_returned=1 elapsed=5.273706125s\n2026-04-22T18:20:28.511954Z WARN screenpipe_db::db: wal checkpoint: busy (could not truncate), 3177 pages in WAL\n2026-04-22T18:20:28.562400Z WARN sqlx::query: summary=\"BEGIN IMMEDIATE\" db.statement=\"\" rows_affected=1 rows_returned=0 elapsed=2.291890708s\n2026-04-22T18:23:52.302822Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=31 elapsed=6.325649833s\n2026-04-22T18:23:52.304330Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 31 eligible frames\n2026-04-22T18:23:53.163590Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 1.1MB → 0.1MB (9.9x), 12 JPEGs deleted\n2026-04-22T18:23:55.277698Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.4MB → 1.6MB (2.2x), 17 JPEGs deleted\n2026-04-22T18:28:56.007322Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 35 eligible frames\n2026-04-22T18:28:57.403360Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.7MB → 1.5MB (1.9x), 16 JPEGs deleted\n2026-04-22T18:28:58.752838Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.9MB → 0.8MB (3.6x), 17 JPEGs deleted\n2026-04-22T18:34:01.165384Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=41 elapsed=2.400307625s\n2026-04-22T18:34:01.165480Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 41 eligible frames\n2026-04-22T18:34:02.291139Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.7MB → 0.8MB (3.5x), 15 JPEGs deleted\n2026-04-22T18:34:04.197399Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.2MB → 1.7MB (2.4x), 24 JPEGs deleted\n2026-04-22T18:35:56.027919Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5884937538005636030, trigger=visual_change)\n2026-04-22T18:37:55.284482Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-439807993867665328, trigger=visual_change)\n2026-04-22T18:39:08.660187Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=4.451587125s\n2026-04-22T18:39:08.660278Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-22T18:39:09.493828Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.5MB → 0.5MB (3.1x), 10 JPEGs deleted\n2026-04-22T18:39:10.349740Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.1MB → 0.5MB (4.3x), 10 JPEGs deleted\n2026-04-22T18:43:06.355073Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3304493437592891639, trigger=click)\n2026-04-22T18:43:23.219621Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6603898485603033537, trigger=click)\n2026-04-22T18:44:11.899645Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=21 elapsed=1.53441375s\n2026-04-22T18:44:11.900197Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames\n2026-04-22T18:44:12.802039Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 1.1MB → 0.2MB (6.3x), 9 JPEGs deleted\n2026-04-22T18:44:14.694466Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.1MB → 0.3MB (5.9x), 10 JPEGs deleted\n2026-04-22T18:45:14.778135Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6664853592767636193, trigger=click)\n2026-04-22T18:46:36.923697Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1791249548195440516, trigger=visual_change)\n2026-04-22T18:49:18.625635Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=46 elapsed=3.900838541s\n2026-04-22T18:49:18.625996Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 46 eligible frames\n2026-04-22T18:49:19.640722Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 1.8MB → 0.2MB (10.4x), 15 JPEGs deleted\n2026-04-22T18:49:23.038596Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 5.2MB → 2.1MB (2.4x), 29 JPEGs deleted\n2026-04-22T18:50:34.997361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=visual_change)\n2026-04-22T18:50:39.846829Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:50:43.731899Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:20.200945Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=visual_change)\n2026-04-22T18:51:23.144927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:23.976040Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:27.176876Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:28.227317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:31.555085Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:32.274042Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:35.352114Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:37.306495Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=visual_change)\n2026-04-22T18:52:02.049971Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=visual_change)\n2026-04-22T18:52:09.690330Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=visual_change)\n2026-04-22T18:52:11.530065Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:52:12.090300Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:52:22.885838Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6951480031607957362, trigger=visual_change)\n2026-04-22T18:52:58.986955Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7031607293039132919, trigger=click)\n2026-04-22T18:53:47.690375Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3992755350865402319, trigger=visual_change)\n2026-04-22T18:54:25.328228Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=52 elapsed=2.277973417s\n2026-04-22T18:54:25.328316Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 52 eligible frames\n2026-04-22T18:54:26.661506Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 2.6MB → 0.2MB (11.0x), 22 JPEGs deleted\n2026-04-22T18:54:28.982139Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 4.3MB → 1.1MB (3.8x), 28 JPEGs deleted\n2026-04-22T18:54:44.142044Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3992755350865402319, trigger=visual_change)\n2026-04-22T18:55:01.465747Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2556650532703180759, trigger=click)\n2026-04-22T18:55:02.524314Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2556650532703180759, trigger=click)\n2026-04-22T18:55:35.312048Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3149441378543601087, trigger=visual_change)\n2026-04-22T18:55:55.086761Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3149441378543601087, trigger=click)\n2026-04-22T18:55:56.919853Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3149441378543601087, trigger=visual_change)\n2026-04-22T18:56:05.807170Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7595806992634662117, trigger=visual_change)\n2026-04-22T18:56:12.303927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7595806992634662117, trigger=visual_change)\n2026-04-22T18:56:58.093656Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2070714172482892625, trigger=visual_change)\n2026-04-22T18:57:00.459010Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2070714172482892625, trigger=visual_change)\n2026-04-22T18:57:03.809894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2070714172482892625, trigger=visual_change)\n2026-04-22T18:58:04.259354Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7284778144726625723, trigger=visual_change)\n2026-04-22T18:58:07.302007Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7284778144726625723, trigger=visual_change)\n2026-04-22T18:58:10.443744Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7284778144726625723, trigger=visual_change)\n2026-04-22T18:58:40.416893Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6313361147559934277, trigger=click)\n2026-04-22T18:58:59.229391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)\n2026-04-22T18:59:10.795801Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)\n2026-04-22T18:59:15.904155Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)\n2026-04-22T18:59:30.308258Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=46 elapsed=1.303054333s\n2026-04-22T18:59:30.308485Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 46 eligible frames\n2026-04-22T18:59:31.535859Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 2.4MB → 0.3MB (7.5x), 20 JPEGs deleted\n2026-04-22T18:59:33.536283Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 3.8MB → 1.3MB (3.0x), 24 JPEGs deleted\n2026-04-22T18:59:39.897203Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)\n2026-04-22T18:59:43.593017Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-71227342056343983, trigger=visual_change)\n2026-04-22T18:59:55.722135Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)\n2026-04-22T19:00:00.394304Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)\n2026-04-22T19:00:27.869871Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2710856207947507007, trigger=visual_change)\n2026-04-22T19:01:54.992910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6986338393283794423, trigger=visual_change)\n2026-04-22T19:02:13.568012Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6986338393283794423, trigger=visual_change)\n2026-04-22T19:02:16.092275Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6986338393283794423, trigger=visual_change)\n2026-04-22T19:03:04.479425Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7704375629034044835, trigger=visual_change)\n2026-04-22T19:03:35.287830Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2375149456869027114, trigger=visual_change)\n2026-04-22T19:03:41.021583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2375149456869027114, trigger=visual_change)\n2026-04-22T19:03:48.485601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6234474271212752005, trigger=visual_change)\n2026-04-22T19:04:35.737525Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=82 elapsed=2.188209209s\n2026-04-22T19:04:35.737670Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 82 eligible frames\n2026-04-22T19:04:38.209886Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3880005638520398709, trigger=click)\n2026-04-22T19:04:38.478674Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 4.8MB → 1.0MB (4.9x), 39 JPEGs deleted\n2026-04-22T19:04:42.074270Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 41 frames, 7.5MB → 3.6MB (2.1x), 41 JPEGs deleted\n2026-04-22T19:04:55.094599Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-635344842894947589, trigger=visual_change)\n2026-04-22T19:05:20.336216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)\n2026-04-22T19:05:54.388487Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)\n2026-04-22T19:05:57.299176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)\n2026-04-22T19:05:59.949506Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)\n2026-04-22T19:06:25.531964Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5957740084085463727, trigger=visual_change)\n2026-04-22T19:06:50.090567Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6422724880219484653, trigger=visual_change)\n2026-04-22T19:07:22.963169Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2531925023067266044, trigger=click)\n2026-04-22T19:07:24.045648Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2531925023067266044, trigger=click)\n2026-04-22T19:07:27.834546Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2085088366939909076, trigger=click)\n2026-04-22T19:07:28.381522Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2085088366939909076, trigger=click)\n2026-04-22T19:08:34.175493Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3061313113729352595, trigger=click)\n2026-04-22T19:09:42.454765Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 91 eligible frames\n2026-04-22T19:09:45.816541Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 5.7MB → 2.4MB (2.3x), 32 JPEGs deleted\n2026-04-22T19:09:50.140975Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 57 frames, 7.8MB → 2.3MB (3.4x), 57 JPEGs deleted\n2026-04-22T19:10:13.441594Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=click)\n2026-04-22T19:10:18.830768Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)\n2026-04-22T19:10:21.842287Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)\n2026-04-22T19:10:28.187487Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5292492680570276501, trigger=click)\n^C2026-04-22T19:10:32.957264Z INFO screenpipe: received ctrl+c, initiating shutdown\n2026-04-22T19:10:32.958125Z INFO screenpipe: stopping UI event capture\n2026-04-22T19:10:32.958201Z INFO screenpipe: received shutdown signal for VisionManager\n2026-04-22T19:10:32.958212Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker shutting down\n2026-04-22T19:10:32.958217Z INFO screenpipe_engine::meeting_detector: meeting v2: shutdown received, exiting detection loop\n2026-04-22T19:10:32.958646Z INFO screenpipe_engine::vision_manager::manager: Shutting down VisionManager\n2026-04-22T19:10:32.958661Z INFO screenpipe_engine::vision_manager::manager: Stopping VisionManager\n2026-04-22T19:10:32.958669Z INFO screenpipe_engine::vision_manager::manager: Stopping vision recording for monitor 2\n2026-04-22T19:10:32.958804Z INFO screenpipe_engine::vision_manager::manager: Stopping vision recording for monitor 1\n\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ 2026-04-22T19:10:33.158623Z INFO screenpipe_engine::ui_recorder: UI recording session ended: e7729066-2ab4-4bf0-9d48-0c9790a4ee79\n2026-04-22T19:10:33.159581Z INFO screenpipe: shutdown complete\n\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-stop\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-status\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ st-start\nzsh: command not found: st-start\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-start\ndetected hardware tier: Mid\nwarning: parakeet is not supported on this platform, using whisper-tiny instead\n2026-04-23T09:12:59.282987Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store\nchecking permissions...\n screen recording: ok\n accessibility: ok\n2026-04-23T09:12:59.350556Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6\n2026-04-23T09:13:00.537715Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor\n2026-04-23T09:13:00.539247Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)\n2026-04-23T09:13:00.539704Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)\n2026-04-23T09:13:00.580622Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true\n2026-04-23T09:13:00.580688Z INFO screenpipe: meeting detector enabled — independent of transcription mode\n2026-04-23T09:13:00.580873Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)\n2026-04-23T09:13:00.581042Z INFO screenpipe: API server listening on 127.0.0.1:3030 (localhost only)\n2026-04-23T09:13:00.581050Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key\n2026-04-23T09:13:00.580937Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)\n2026-04-23T09:13:00.581202Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager\n2026-04-23T09:13:00.599105Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-23T09:13:00.607481Z INFO screenpipe_core::pipes: loaded pipe: day-recap\n2026-04-23T09:13:00.608248Z INFO screenpipe_core::pipes: loaded pipe: standup-update\n2026-04-23T09:13:00.608416Z INFO screenpipe_core::pipes: loaded pipe: ai-habits\n2026-04-23T09:13:00.608706Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown\n2026-04-23T09:13:00.608849Z INFO screenpipe_core::pipes: loaded pipe: video-export\n2026-04-23T09:13:00.609337Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary\n2026-04-23T09:13:00.609353Z INFO screenpipe_core::pipes: loaded 6 pipes from \"/Users/lukas/.screenpipe/pipes\"\n\n\n\n _ \n __________________ ___ ____ ____ (_____ ___ \n / ___/ ___/ ___/ _ \\/ _ \\/ __ \\ / __ \\/ / __ \\/ _ \\\n (__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/\n/____/\\___/_/ \\___/\\___/_/ /_/ / .___/_/ .___/\\___/ \n /_/ /_/ \n\n\n\npower AI by everything you've seen, said or heard\nopen source | runs locally | developer friendly\n\n\n┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ true │\n│ vision disabled │ false │\n│ pause on DRM content │ false │\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n│ ignored windows │ [\"Boosteroid\"] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n│ api auth │ enabled │\n2026-04-23T09:13:00.610149Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n2026-04-23T09:13:00.614023Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n│ encrypt secrets │ disabled │\n│ retention days │ 14 │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ id: 1 │\n│ │ id: 2 │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ disabled │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-23T09:13:00.626925Z INFO screenpipe: starting UI event capture\n2026-04-23T09:13:00.644081Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-23T09:13:00.659604Z INFO screenpipe_engine::ui_recorder: UI recording session started: 64e213bd-3690-487f-90be-4e8348040416\n2026-04-23T09:13:00.659568Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-23T09:13:00.659937Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-22 06:13:00.659935 UTC to 2026-04-23 06:13:00.659935 UTC)\n2026-04-23T09:13:00.660681Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-23T09:13:00.671031Z INFO screenpipe_engine::server: Server listening on 127.0.0.1:3030\n2026-04-23T09:13:00.676357Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-23T09:13:02.822346Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-23T09:13:02.822390Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-23T09:13:02.822429Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-23T09:13:03.612915Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-23T09:13:03.612969Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-23T09:13:03.612981Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)\n2026-04-23T09:13:03.612988Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)\n2026-04-23T09:13:03.613032Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-23T09:13:04.172201Z WARN sqlx::query: summary=\"SELECT f.id, f.timestamp, f.offset_index, …\" db.statement=\"\\n\\nSELECT\\n f.id,\\n f.timestamp,\\n f.offset_index,\\n COALESCE(\\n SUBSTR(f.full_text, 1, 200),\\n SUBSTR(f.accessibility_text, 1, 200),\\n (\\n SELECT\\n SUBSTR(ot.text, 1, 200)\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as text,\\n COALESCE(\\n f.app_name,\\n (\\n SELECT\\n ot.app_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as app_name,\\n COALESCE(\\n f.window_name,\\n (\\n SELECT\\n ot.window_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as window_name,\\n COALESCE(vc.device_name, f.device_name) as screen_device,\\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\\n COALESCE(vc.fps, 0.033) as chunk_fps,\\n f.browser_url,\\n f.machine_id\\nFROM\\n frames f\\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\\nWHERE\\n f.timestamp >= ?1\\n AND f.timestamp <= ?2\\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\\nORDER BY\\n f.timestamp DESC,\\n f.offset_index DESC\\nLIMIT\\n 10000\\n\" rows_affected=0 rows_returned=4305 elapsed=3.511492208s\n2026-04-23T09:13:04.183200Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 4304 frame entries, coverage from 2026-04-22 06:13:00.659935 UTC\n2026-04-23T09:13:07.349282Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-23T09:13:07.830685Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=72776, dur=70ms\n2026-04-23T09:13:08.836958Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-23T09:13:09.378786Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=72777, dur=124ms\n2026-04-23T09:13:09.380863Z INFO sck_rs::stream_manager: invalidated persistent stream for display 2\n2026-04-23T09:13:32.742255Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-23T09:14:01.764079Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4702465002163205464, trigger=click)\n2026-04-23T09:14:04.223149Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4702465002163205464, trigger=visual_change)\n2026-04-23T09:14:06.953796Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=147 elapsed=6.3719465s\n2026-04-23T09:14:06.954006Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 147 eligible frames\n2026-04-23T09:14:12.566935Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 70 frames, 10.3MB → 2.7MB (3.8x), 70 JPEGs deleted\n2026-04-23T09:14:17.358704Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 75 frames, 9.6MB → 3.0MB (3.2x), 75 JPEGs deleted\n2026-04-23T09:15:47.544198Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3660881845293713510, trigger=visual_change)\n2026-04-23T09:15:50.997492Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3660881845293713510, trigger=click)\n2026-04-23T09:15:51.600725Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3660881845293713510, trigger=click)\n2026-04-23T09:15:55.723800Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3660881845293713510, trigger=click)\n2026-04-23T09:15:56.933987Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3660881845293713510, trigger=visual_change)\n2026-04-23T09:15:59.012409Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3660881845293713510, trigger=visual_change)\n2026-04-23T09:16:49.882963Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3759145274440377841, trigger=visual_change)\n2026-04-23T09:16:51.405936Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3759145274440377841, trigger=click)\n2026-04-23T09:16:52.823011Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3759145274440377841, trigger=click)\n2026-04-23T09:16:54.220304Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3759145274440377841, trigger=click)\n2026-04-23T09:16:54.887021Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3759145274440377841, trigger=click)\n2026-04-23T09:16:58.589203Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3759145274440377841, trigger=visual_change)\n2026-04-23T09:18:05.879649Z WARN screenpipe_db::db: wal checkpoint: busy (could not truncate), 5054 pages in WAL\n2026-04-23T09:18:05.879619Z WARN sqlx::query: summary=\"PRAGMA wal_checkpoint(TRUNCATE)\" db.statement=\"\" rows_affected=0 rows_returned=1 elapsed=5.220339167s\n2026-04-23T09:19:24.740122Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=2 elapsed=7.381061833s\n2026-04-23T09:19:24.740850Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-23T09:19:36.514406Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2079049776495123607, trigger=click)\n2026-04-23T09:24:26.477446Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=11 elapsed=1.729545666s\n2026-04-23T09:24:26.477540Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 11 eligible frames\n2026-04-23T09:24:27.316363Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 5 frames, 1.4MB → 1.4MB (1.0x), 5 JPEGs deleted\n2026-04-23T09:24:27.966623Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 6 frames, 0.6MB → 0.2MB (2.7x), 6 JPEGs deleted\n2026-04-23T09:24:42.606557Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:26:03.160247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7786631749263421517, trigger=click)\n2026-04-23T09:27:26.154494Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:27:34.433056Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:28:06.713361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:28:33.527151Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5209591986308457575, trigger=click)\n2026-04-23T09:28:34.249353Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5209591986308457575, trigger=click)\n2026-04-23T09:28:36.237199Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5209591986308457575, trigger=click)\n2026-04-23T09:28:42.253183Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8747303508868961364, trigger=click)\n2026-04-23T09:28:48.282686Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:28:50.613134Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:28:51.314522Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:29:31.961577Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=67 elapsed=3.996031s\n2026-04-23T09:29:31.961670Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 67 eligible frames\n2026-04-23T09:29:34.332658Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 5.8MB → 2.1MB (2.8x), 29 JPEGs deleted\n2026-04-23T09:29:38.223511Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 7.4MB → 3.8MB (2.0x), 36 JPEGs deleted\n2026-04-23T09:30:34.230785Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:30:39.665086Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:30:40.299751Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:30:45.663893Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:30:51.622228Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:30:52.321014Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:31:15.021588Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:31:15.691601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:31:17.946692Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:31:18.653547Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:32:17.960360Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:32:24.051490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:32:29.442560Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:32:30.131038Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:32:32.452540Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:32:36.585069Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:32:39.322258Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:33:18.072421Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:33:18.766929Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:33:22.098409Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:33:22.782084Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:34:27.313290Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:34:38.542722Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 89 eligible frames\n2026-04-23T09:34:41.684595Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 38 frames, 5.6MB → 0.7MB (7.5x), 38 JPEGs deleted\n2026-04-23T09:34:44.933963Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 10.6MB → 3.8MB (2.8x), 49 JPEGs deleted\n2026-04-23T09:37:57.963204Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:37:58.697604Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:38:02.124214Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:38:53.190171Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:38:59.279885Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:39:02.308536Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:39:36.189861Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:39:49.122120Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=50 elapsed=4.188474542s\n2026-04-23T09:39:49.122232Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 50 eligible frames\n2026-04-23T09:39:51.115025Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 2.9MB → 0.3MB (9.4x), 24 JPEGs deleted\n2026-04-23T09:39:53.096763Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 5.0MB → 2.3MB (2.2x), 24 JPEGs deleted\n2026-04-23T09:40:57.095660Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:40:58.430714Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:41:01.130926Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:41:01.840278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:41:04.072034Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:41:09.252541Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:41:09.972092Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:41:12.313228Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:41:13.696141Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:41:15.723102Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:41:16.452657Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:42:46.382248Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:43:42.993741Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6469703639183038647, trigger=visual_change)\n2026-04-23T09:44:17.245560Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7072623502562616708, trigger=visual_change)\n2026-04-23T09:44:56.342637Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=21 elapsed=2.944921084s\n2026-04-23T09:44:56.343212Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames\n2026-04-23T09:44:57.216675Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.2MB → 0.2MB (6.9x), 10 JPEGs deleted\n2026-04-23T09:44:58.298212Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 2.1MB → 0.7MB (2.8x), 9 JPEGs deleted\n2026-04-23T09:45:10.982752Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Firefox, signals=2)\n2026-04-23T09:45:16.376695Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Firefox, signals=2, browser=true)\n2026-04-23T09:45:16.378791Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=9, app=Firefox, title=None)\n2026-04-23T09:50:01.989691Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=23 elapsed=3.688976042s\n2026-04-23T09:50:01.989962Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 23 eligible frames\n2026-04-23T09:50:03.098505Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.3MB → 0.2MB (7.4x), 11 JPEGs deleted\n2026-04-23T09:50:04.627741Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.4MB → 0.8MB (3.1x), 10 JPEGs deleted\n2026-04-23T09:50:07.629323Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4672421675042950776, trigger=click)\n2026-04-23T09:52:11.400798Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:52:15.346773Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:52:18.174934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:52:22.107623Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:52:32.020499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:53:33.890239Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:53:35.304629Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:53:58.176084Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:54:14.248454Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:54:18.287472Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:54:20.289467Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:54:24.904239Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:54:27.981243Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:54:29.172367Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:54:30.192245Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:54:31.161165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:55:11.821088Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=36 elapsed=7.192436875s\n2026-04-23T09:55:11.821248Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 36 eligible frames\n2026-04-23T09:55:13.532739Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 2.3MB → 0.5MB (5.0x), 19 JPEGs deleted\n2026-04-23T09:55:16.625152Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 3.3MB → 1.4MB (2.4x), 15 JPEGs deleted\n2026-04-23T09:56:01.584150Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:56:24.887186Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3078857793355977422, trigger=click)\n2026-04-23T09:56:32.005363Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3078857793355977422, trigger=visual_change)\n2026-04-23T09:56:41.374227Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3078857793355977422, trigger=visual_change)\n2026-04-23T09:56:54.666839Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3078857793355977422, trigger=click)\n2026-04-23T09:57:06.486753Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3593283938725328408, trigger=visual_change)\n2026-04-23T09:57:14.384178Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5341343601501307187, trigger=visual_change)\n2026-04-23T09:57:32.721765Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5341343601501307187, trigger=visual_change)\n2026-04-23T09:59:03.111441Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:59:18.292184Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:59:24.203906Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:59:28.763273Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:59:36.189282Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T10:00:16.817081Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 72 eligible frames\n2026-04-23T10:00:21.637421Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 45 frames, 7.5MB → 3.5MB (2.1x), 45 JPEGs deleted\n2026-04-23T10:00:24.683587Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.4MB → 1.4MB (3.2x), 25 JPEGs deleted\n2026-04-23T10:00:40.573974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6464745230001326344, trigger=visual_change)\n2026-04-23T10:02:52.495992Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8171437999531431641, trigger=click)\n2026-04-23T10:02:53.374393Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8171437999531431641, trigger=click)\n2026-04-23T10:03:37.373391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1961095499263201650, trigger=click)\n2026-04-23T10:04:58.338820Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T10:05:04.300061Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T10:05:10.114887Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T10:05:16.104422Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T10:05:20.754499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T10:05:25.933831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T10:05:30.717296Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=45 elapsed=5.043796209s\n2026-04-23T10:05:30.717708Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 45 eligible frames\n2026-04-23T10:05:33.129158Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.5MB → 1.3MB (2.8x), 21 JPEGs deleted\n2026-04-23T10:05:35.719261Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 3.9MB → 1.6MB (2.5x), 22 JPEGs deleted\n2026-04-23T10:06:54.427408Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T10:06:58.568476Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T10:07:35.294176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T10:07:36.671700Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T10:07:46.281682Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T10:10:42.001975Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=40 elapsed=6.278440792s\n2026-04-23T10:10:42.002064Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames\n2026-04-23T10:10:45.302375Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.7MB → 1.7MB (2.2x), 21 JPEGs deleted\n2026-04-23T10:10:47.110830Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 4.4MB → 0.6MB (7.8x), 17 JPEGs deleted\n2026-04-23T10:12:18.002465Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7144568667011834365, trigger=click)\n2026-04-23T10:13:16.229637Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3362537224271461493, trigger=visual_change)\n2026-04-23T10:13:20.127210Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3362537224271461493, trigger=visual_change)\n2026-04-23T10:15:43.498044Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-602531024127880156, trigger=visual_change)\n2026-04-23T10:15:46.873827Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-602531024127880156, trigger=visual_change)\n2026-04-23T10:15:49.085137Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 32 eligible frames\n2026-04-23T10:15:49.496235Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-602531024127880156, trigger=visual_change)\n2026-04-23T10:15:50.519319Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.0MB → 0.9MB (3.3x), 17 JPEGs deleted\n2026-04-23T10:15:51.657703Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 3.4MB → 0.5MB (6.7x), 13 JPEGs deleted\n2026-04-23T10:15:53.186964Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-602531024127880156, trigger=visual_change)\n2026-04-23T10:15:55.743993Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-602531024127880156, trigger=visual_change)\n2026-04-23T10:16:10.260016Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7730332891388508974, trigger=visual_change)\n2026-04-23T10:16:19.398464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5862100523266843105, trigger=visual_change)\n2026-04-23T10:16:23.686689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5862100523266843105, trigger=visual_change)\n2026-04-23T10:16:27.662719Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5862100523266843105, trigger=visual_change)\n2026-04-23T10:16:34.159786Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5862100523266843105, trigger=visual_change)\n2026-04-23T10:17:00.356336Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5862100523266843105, trigger=visual_change)\n2026-04-23T10:17:22.481007Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3265723714621232205, trigger=visual_change)\n2026-04-23T10:17:29.195939Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3265723714621232205, trigger=visual_change)\n2026-04-23T10:17:47.685112Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)\n2026-04-23T10:17:51.199158Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)\n2026-04-23T10:17:58.199222Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)\n2026-04-23T10:18:06.327777Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)\n2026-04-23T10:18:13.175283Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)\n2026-04-23T10:18:39.739176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)\n2026-04-23T10:19:27.720698Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)\n2026-04-23T10:19:31.148096Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)\n2026-04-23T10:19:35.991910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)\n2026-04-23T10:19:56.855761Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)\n2026-04-23T10:20:03.521058Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)\n2026-04-23T10:20:10.069690Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)\n2026-04-23T10:20:18.117006Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)\n2026-04-23T10:20:54.473088Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=27 elapsed=2.810096209s\n2026-04-23T10:20:54.473356Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 27 eligible frames\n2026-04-23T10:20:56.920972Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.2MB → 0.9MB (2.6x), 14 JPEGs deleted\n2026-04-23T10:20:58.678464Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 2.5MB → 0.8MB (3.0x), 11 JPEGs deleted\n2026-04-23T10:23:10.727426Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3844820439140861821, trigger=visual_change)\n2026-04-23T10:25:16.468416Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T10:25:32.507777Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T10:26:05.910946Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=33 elapsed=7.132200208s\n2026-04-23T10:26:05.912569Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 33 eligible frames\n2026-04-23T10:26:09.921886Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.0MB → 1.2MB (2.5x), 18 JPEGs deleted\n2026-04-23T10:26:13.670275Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.6MB → 0.9MB (3.0x), 13 JPEGs deleted\n2026-04-23T10:26:20.034712Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=click)\n2026-04-23T10:26:22.436991Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=click)\n2026-04-23T10:26:25.816727Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:27:46.056157Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1615606372458852745, trigger=click)\n2026-04-23T10:28:05.117587Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:28:16.307383Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:28:22.684004Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:28:39.022530Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:28:44.950116Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:28:50.090325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:28:52.144212Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:28:55.229550Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=click)\n2026-04-23T10:28:59.714370Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=click)\n2026-04-23T10:29:08.010841Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=click)\n2026-04-23T10:29:11.877274Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=click)\n2026-04-23T10:29:15.515889Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=click)\n2026-04-23T10:29:19.052095Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=click)\n2026-04-23T10:29:21.109938Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=click)\n2026-04-23T10:29:28.551159Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:29:30.947483Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:29:38.350095Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:29:51.477755Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:29:56.846851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:30:02.584960Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:30:06.779849Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:30:18.311444Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:30:22.665242Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:30:29.333028Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:30:37.983139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:30:48.829636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=click)\n2026-04-23T10:30:59.474314Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3712905987097609358, trigger=visual_change)\n2026-04-23T10:31:16.115641Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=34 elapsed=1.523826083s\n2026-04-23T10:31:16.115774Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 34 eligible frames\n2026-04-23T10:31:19.674413Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 3.4MB → 2.0MB (1.7x), 19 JPEGs deleted\n2026-04-23T10:31:20.281876Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:31:21.222414Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 3.4MB → 0.8MB (4.5x), 13 JPEGs deleted\n2026-04-23T10:31:30.589390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:31:31.649068Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:31:34.542890Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:31:35.913592Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:31:42.222598Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:31:46.314096Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:31:56.457995Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:32:02.440693Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=click)\n2026-04-23T10:32:11.844302Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=9, grace=300s)\n2026-04-23T10:36:21.778297Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 34 eligible frames\n2026-04-23T10:36:23.408803Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 3.2MB → 1.6MB (2.1x), 19 JPEGs deleted\n2026-04-23T10:36:24.427188Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 3.4MB → 0.7MB (4.8x), 13 JPEGs deleted\n2026-04-23T10:37:15.245266Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Idle (timeout=300s, app=Firefox, id=9)\n2026-04-23T10:37:15.499978Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting ended (id=9)\n2026-04-23T10:39:08.136849Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7072094695368023128, trigger=visual_change)\n2026-04-23T10:40:10.173692Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5626541066854626210, trigger=visual_change)\n2026-04-23T10:41:03.187335Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6908211675272154683, trigger=visual_change)\n2026-04-23T10:41:27.801144Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=32 elapsed=3.230263875s\n2026-04-23T10:41:27.801229Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 32 eligible frames\n2026-04-23T10:41:30.240257Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.7MB → 1.1MB (2.4x), 17 JPEGs deleted\n2026-04-23T10:41:31.414104Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 3.3MB → 1.1MB (3.1x), 13 JPEGs deleted\n2026-04-23T10:43:59.795473Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:44:00.574274Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:44:03.353223Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=visual_change)\n2026-04-23T10:44:06.333413Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=visual_change)\n2026-04-23T10:44:15.554031Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:44:16.272856Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:44:36.868831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=visual_change)\n2026-04-23T10:44:52.509317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=visual_change)\n2026-04-23T10:45:05.711036Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=visual_change)\n2026-04-23T10:45:15.149681Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:45:15.874930Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:45:18.722067Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:45:27.888960Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=visual_change)\n2026-04-23T10:45:32.102259Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:45:47.964284Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-250182447663358748, trigger=click)\n2026-04-23T10:45:57.352178Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-250182447663358748, trigger=click)\n2026-04-23T10:45:58.059330Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-250182447663358748, trigger=click)\n2026-04-23T10:46:00.786122Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-250182447663358748, trigger=click)\n2026-04-23T10:46:01.515587Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-250182447663358748, trigger=click)\n2026-04-23T10:46:32.335524Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 34 eligible frames\n2026-04-23T10:46:33.454412Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 1.3MB → 0.3MB (4.3x), 15 JPEGs deleted\n2026-04-23T10:46:35.185172Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 4.4MB → 0.8MB (5.1x), 17 JPEGs deleted\n2026-04-23T10:49:51.424053Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:49:52.278022Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:50:06.945403Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=visual_change)\n2026-04-23T10:50:20.071306Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:50:27.322330Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:50:28.025501Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:50:31.361324Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:50:32.067598Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:50:43.957181Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:50:49.116814Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:50:49.902205Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:50:52.787071Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:50:55.600444Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:50:56.613411Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:51:01.606653Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=visual_change)\n2026-04-23T10:51:36.294219Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames\n2026-04-23T10:51:37.139478Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.9MB → 0.1MB (8.1x), 10 JPEGs deleted\n2026-04-23T10:51:37.977586Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 2.4MB → 0.4MB (5.6x), 9 JPEGs deleted\n2026-04-23T10:53:10.914762Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5094416737894467752, trigger=click)\n2026-04-23T10:53:46.764312Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5492569374489755072, trigger=click)\n2026-04-23T10:53:47.493963Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5492569374489755072, trigger=click)\n2026-04-23T10:55:50.508246Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9185031867676948653, trigger=click)\n2026-04-23T10:56:18.190631Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8265869039182172474, trigger=visual_change)\n2026-04-23T10:56:21.391253Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8265869039182172474, trigger=visual_change)\n2026-04-23T10:56:44.441379Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=33 elapsed=6.451315834s\n2026-04-23T10:56:44.441894Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 33 eligible frames\n2026-04-23T10:56:46.435494Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 1.6MB → 0.1MB (14.8x), 17 JPEGs deleted\n2026-04-23T10:56:47.618773Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 3.5MB → 1.0MB (3.6x), 14 JPEGs deleted\n2026-04-23T10:56:48.429385Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3009288458992913716, trigger=visual_change)\n2026-04-23T10:56:55.377427Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3009288458992913716, trigger=visual_change)\n2026-04-23T10:56:58.331194Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3009288458992913716, trigger=visual_change)\n2026-04-23T10:57:31.580363Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=164293696523982731, trigger=visual_change)\n2026-04-23T10:57:37.142409Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=164293696523982731, trigger=visual_change)\n2026-04-23T11:01:54.879662Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=43 elapsed=6.651773875s\n2026-04-23T11:01:54.879780Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 43 eligible frames\n2026-04-23T11:01:56.181324Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 2.1MB → 0.5MB (4.0x), 20 JPEGs deleted\n2026-04-23T11:01:57.821885Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 4.6MB → 1.2MB (4.0x), 21 JPEGs deleted\n2026-04-23T11:05:34.805879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4133405882569027308, trigger=click)\n2026-04-23T11:05:42.692507Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-792819002159032212, trigger=click)\n2026-04-23T11:05:45.195836Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-792819002159032212, trigger=click)\n2026-04-23T11:06:58.003581Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 56 eligible frames\n2026-04-23T11:07:01.998524Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 4.2MB → 2.0MB (2.1x), 27 JPEGs deleted\n2026-04-23T11:07:04.632834Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 6.1MB → 1.2MB (5.2x), 27 JPEGs deleted\n2026-04-23T11:08:29.041425Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=811120582590877593, trigger=click)\n2026-04-23T11:11:26.078346Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=811120582590877593, trigger=click)\n2026-04-23T11:11:26.826746Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=811120582590877593, trigger=click)\n2026-04-23T11:11:29.736291Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=811120582590877593, trigger=click)\n2026-04-23T11:11:30.502898Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=811120582590877593, trigger=click)\n2026-04-23T11:11:33.284639Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=811120582590877593, trigger=click)\n2026-04-23T11:11:34.732219Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=811120582590877593, trigger=click)\n2026-04-23T11:11:36.846175Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=811120582590877593, trigger=click)\n2026-04-23T11:11:47.161668Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=811120582590877593, trigger=visual_change)\n2026-04-23T11:11:51.463126Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=811120582590877593, trigger=click)\n2026-04-23T11:11:55.190182Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=811120582590877593, trigger=click)\n2026-04-23T11:11:58.250612Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=811120582590877593, trigger=click)\n2026-04-23T11:11:58.984195Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=811120582590877593, trigger=click)\n2026-04-23T11:12:07.186907Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8190951420737299430, trigger=visual_change)\n2026-04-23T11:12:10.805150Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=28 elapsed=6.153365375s\n2026-04-23T11:12:10.806451Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames\n2026-04-23T11:12:12.869531Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.7MB → 1.2MB (2.2x), 16 JPEGs deleted\n2026-04-23T11:12:14.462884Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.2MB → 0.4MB (5.9x), 10 JPEGs deleted\n2026-04-23T11:14:59.283313Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-962688942467523245, trigger=click)\n2026-04-23T11:14:59.996111Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-962688942467523245, trigger=click)\n2026-04-23T11:15:52.562512Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4085483410823602662, trigger=click)\n2026-04-23T11:16:10.556556Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-680298114769977367, trigger=click)\n2026-04-23T11:16:44.987984Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-781142721963066587, trigger=click)\n2026-04-23T11:17:15.717626Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=34 elapsed=1.192290209s\n2026-04-23T11:17:15.717877Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 34 eligible frames\n2026-04-23T11:17:16.801524Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 1.7MB → 0.3MB (6.4x), 14 JPEGs deleted\n2026-04-23T11:17:18.950114Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 4.0MB → 0.9MB (4.3x), 18 JPEGs deleted\n2026-04-23T11:22:21.353046Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=27 elapsed=2.391216916s\n2026-04-23T11:22:21.353161Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 27 eligible frames\n2026-04-23T11:22:22.204810Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.6MB → 0.2MB (7.8x), 13 JPEGs deleted\n2026-04-23T11:22:23.352237Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.7MB → 1.1MB (2.5x), 12 JPEGs deleted\n2026-04-23T11:22:51.641783Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5591071779487381740, trigger=visual_change)\n2026-04-23T11:24:42.126313Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3622496340535697523, trigger=click)\n2026-04-23T11:27:16.328827Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3622496340535697523, trigger=click)\n2026-04-23T11:27:17.062717Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3622496340535697523, trigger=click)\n2026-04-23T11:27:20.131333Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3622496340535697523, trigger=visual_change)\n2026-04-23T11:27:27.263965Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=32 elapsed=2.915186083s\n2026-04-23T11:27:27.264345Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 32 eligible frames\n2026-04-23T11:27:29.317049Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.1MB → 0.6MB (3.5x), 16 JPEGs deleted\n2026-04-23T11:27:31.637712Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 3.0MB → 0.8MB (3.8x), 14 JPEGs deleted\n2026-04-23T11:29:03.406489Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1491366973306919482, trigger=visual_change)\n2026-04-23T11:29:37.371120Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1491366973306919482, trigger=click)\n2026-04-23T11:29:38.828999Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1491366973306919482, trigger=click)\n2026-04-23T11:30:05.594417Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7420299184765789117, trigger=click)\n2026-04-23T11:30:10.415695Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7420299184765789117, trigger=click)\n2026-04-23T11:30:37.438406Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Firefox, signals=2)\n2026-04-23T11:30:47.134756Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Firefox, signals=2, browser=true)\n2026-04-23T11:30:47.150842Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=10, app=Firefox, title=None)\n2026-04-23T11:32:52.795697Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=click, monitor=1) — DB pool may be saturated\n2026-04-23T11:32:54.063047Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=22.405129875s\n2026-04-23T11:32:54.065127Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-23T11:32:56.659956Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.7MB → 0.3MB (5.8x), 10 JPEGs deleted\n2026-04-23T11:32:58.390326Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.1MB → 0.4MB (5.1x), 10 JPEGs deleted\n2026-04-23T11:32:58.454323Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=click, monitor=2) — DB pool may be saturated\n2026-04-23T11:33:03.630685Z INFO screenpipe_engine::event_driven_capture: monitor 2 capture recovered after 1 consecutive errors\n2026-04-23T11:33:03.698376Z INFO screenpipe_engine::event_driven_capture: monitor 1 capture recovered after 1 consecutive errors\n2026-04-23T11:34:08.146813Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=visual_change, monitor=1) — DB pool may be saturated\n2026-04-23T11:34:19.115606Z INFO screenpipe_engine::event_driven_capture: monitor 1 capture recovered after 1 consecutive errors\n2026-04-23T11:38:06.413998Z WARN sqlx::query: summary=\"PRAGMA wal_checkpoint(TRUNCATE)\" db.statement=\"\" rows_affected=0 rows_returned=1 elapsed=5.320189792s\n2026-04-23T11:38:06.417026Z WARN screenpipe_db::db: wal checkpoint: busy (could not truncate), 1136 pages in WAL\n2026-04-23T11:38:06.480369Z WARN sqlx::query: summary=\"BEGIN IMMEDIATE\" db.statement=\"\" rows_affected=1 rows_returned=0 elapsed=3.645234084s\n2026-04-23T11:38:12.229580Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=26 elapsed=13.80812125s\n2026-04-23T11:38:12.232573Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 26 eligible frames\n2026-04-23T11:38:15.382662Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.9MB → 0.5MB (3.8x), 11 JPEGs deleted\n2026-04-23T11:38:16.795794Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=visual_change, monitor=1) — DB pool may be saturated\n2026-04-23T11:38:19.817599Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.7MB → 0.6MB (4.2x), 13 JPEGs deleted\n2026-04-23T11:38:24.993308Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=visual_change, monitor=2) — DB pool may be saturated\n2026-04-23T11:38:30.141938Z INFO screenpipe_engine::event_driven_capture: monitor 1 capture recovered after 1 consecutive errors\n2026-04-23T11:38:34.776814Z INFO screenpipe_engine::event_driven_capture: monitor 2 capture recovered after 1 consecutive errors\n2026-04-23T11:40:55.703155Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5781407336396073109, trigger=visual_change)\n2026-04-23T11:41:02.662314Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5781407336396073109, trigger=visual_change)\n2026-04-23T11:41:09.390136Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5781407336396073109, trigger=visual_change)\n2026-04-23T11:41:16.161715Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5781407336396073109, trigger=visual_change)\n2026-04-23T11:41:37.205648Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5781407336396073109, trigger=visual_change)\n2026-04-23T11:42:04.257036Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5781407336396073109, trigger=visual_change)\n2026-04-23T11:42:21.214633Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6679997250984875896, trigger=visual_change)\n2026-04-23T11:42:24.525053Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6679997250984875896, trigger=visual_change)\n2026-04-23T11:42:29.877589Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6679997250984875896, trigger=visual_change)\n2026-04-23T11:42:33.802238Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6679997250984875896, trigger=visual_change)\n2026-04-23T11:42:36.923509Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6679997250984875896, trigger=visual_change)\n2026-04-23T11:42:57.455576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6679997250984875896, trigger=visual_change)\n2026-04-23T11:43:12.031547Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=951548071599591969, trigger=visual_change)\n2026-04-23T11:43:18.874182Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=951548071599591969, trigger=visual_change)\n2026-04-23T11:43:24.247849Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=951548071599591969, trigger=visual_change)\n2026-04-23T11:43:26.259182Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=49 elapsed=6.405864s\n2026-04-23T11:43:26.263056Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 49 eligible frames\n2026-04-23T11:43:32.316690Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 3.7MB → 1.8MB (2.0x), 23 JPEGs deleted\n2026-04-23T11:43:34.974978Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=951548071599591969, trigger=visual_change)\n2026-04-23T11:43:36.047883Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.3MB → 1.5MB (2.9x), 24 JPEGs deleted\n2026-04-23T11:43:49.116309Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=951548071599591969, trigger=visual_change)\n2026-04-23T11:43:52.940018Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=951548071599591969, trigger=visual_change)\n2026-04-23T11:43:56.539135Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=951548071599591969, trigger=visual_change)\n2026-04-23T11:44:11.233290Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4079677798565982376, trigger=visual_change)\n2026-04-23T11:45:03.923694Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=click, monitor=2) — DB pool may be saturated\n2026-04-23T11:45:18.638512Z INFO screenpipe_engine::event_driven_capture: monitor 2 capture recovered after 1 consecutive errors\n2026-04-23T11:45:27.824824Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=click, monitor=1) — DB pool may be saturated\n2026-04-23T11:45:41.576372Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=click, monitor=2) — DB pool may be saturated\n2026-04-23T11:45:44.291896Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=click, monitor=1) — DB pool may be saturated\n2026-04-23T11:46:03.257280Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=click, monitor=1) — DB pool may be saturated\n2026-04-23T11:46:12.724398Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=visual_change, monitor=2) — DB pool may be saturated\n2026-04-23T11:46:22.727197Z INFO screenpipe_engine::event_driven_capture: monitor 1 capture recovered after 3 consecutive errors\n2026-04-23T11:46:24.228006Z INFO screenpipe_engine::event_driven_capture: monitor 2 capture recovered after 2 consecutive errors\n2026-04-23T11:46:40.390580Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7643951286516936585, trigger=visual_change)\n2026-04-23T11:46:49.248747Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7643951286516936585, trigger=visual_change)\n2026-04-23T11:46:55.471031Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7643951286516936585, trigger=visual_change)\n2026-04-23T11:47:02.336575Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7643951286516936585, trigger=visual_change)\n2026-04-23T11:48:17.252755Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7643951286516936585, trigger=visual_change)\n2026-04-23T11:48:25.013997Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7643951286516936585, trigger=visual_change)\n2026-04-23T11:48:53.059242Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=56 elapsed=13.220216708s\n2026-04-23T11:48:53.065643Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 56 eligible frames\n2026-04-23T11:48:58.527594Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 4.7MB → 2.2MB (2.1x), 30 JPEGs deleted\n2026-04-23T11:49:05.857012Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.3MB → 1.6MB (2.7x), 24 JPEGs deleted\n2026-04-23T11:49:06.658338Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5995459936453258264, trigger=visual_change)\n2026-04-23T11:49:28.247468Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5995459936453258264, trigger=visual_change)\n2026-04-23T11:49:46.108336Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4001297392414942723, trigger=visual_change)\n2026-04-23T11:49:53.084297Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4001297392414942723, trigger=visual_change)\n2026-04-23T11:49:56.028797Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4001297392414942723, trigger=click)\n2026-04-23T11:50:37.287127Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2527600923706712259, trigger=visual_change)\n2026-04-23T11:51:12.946650Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1489108089542937642, trigger=visual_change)\n2026-04-23T11:51:19.338386Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1489108089542937642, trigger=visual_change)\n2026-04-23T11:52:16.352383Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8163356110886780433, trigger=visual_change)\n2026-04-23T11:53:55.890568Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5293025605401136867, trigger=click)\n2026-04-23T11:54:09.640558Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=41 elapsed=3.460436583s\n2026-04-23T11:54:09.640693Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 41 eligible frames\n2026-04-23T11:54:13.152878Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 3.3MB → 1.5MB (2.2x), 22 JPEGs deleted\n2026-04-23T11:54:15.204535Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.9MB → 1.2MB (3.4x), 17 JPEGs deleted\n2026-04-23T11:58:11.876342Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=10, grace=300s)\n2026-04-23T11:59:15.385310Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames\n2026-04-23T11:59:16.921656Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.6MB → 0.6MB (2.8x), 13 JPEGs deleted\n2026-04-23T11:59:18.047335Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.2MB → 1.0MB (2.3x), 10 JPEGs deleted","depth":4,"value":"\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=44 elapsed=1.833842375s\n2026-04-22T18:03:16.198578Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 44 eligible frames\n2026-04-22T18:03:18.139382Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 2.0MB → 0.1MB (16.1x), 21 JPEGs deleted\n2026-04-22T18:03:19.618803Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.5MB → 1.5MB (2.4x), 21 JPEGs deleted\n2026-04-22T18:06:58.395218Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7639883349033148478, trigger=click)\n2026-04-22T18:06:58.897470Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7639883349033148478, trigger=click)\n2026-04-22T18:07:42.474566Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=607162597309748765, trigger=click)\n2026-04-22T18:08:27.382204Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=28 elapsed=7.750844334s\n2026-04-22T18:08:27.382491Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames\n2026-04-22T18:08:29.032220Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.2MB → 0.1MB (10.4x), 13 JPEGs deleted\n2026-04-22T18:08:30.573314Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.7MB → 0.6MB (4.2x), 13 JPEGs deleted\n2026-04-22T18:13:38.096494Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=20 elapsed=6.760223375s\n2026-04-22T18:13:38.099584Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 20 eligible frames\n2026-04-22T18:13:38.806766Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 0.8MB → 0.1MB (7.4x), 9 JPEGs deleted\n2026-04-22T18:13:39.606462Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 1.9MB → 0.5MB (3.8x), 9 JPEGs deleted\n2026-04-22T18:18:41.943065Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=45 elapsed=2.325026709s\n2026-04-22T18:18:41.943417Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 45 eligible frames\n2026-04-22T18:18:43.289962Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 2.0MB → 0.1MB (16.7x), 21 JPEGs deleted\n2026-04-22T18:18:45.689764Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 4.4MB → 1.3MB (3.4x), 22 JPEGs deleted\n2026-04-22T18:18:54.020334Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6726632078176380015, trigger=click)\n2026-04-22T18:18:54.540347Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6726632078176380015, trigger=click)\n2026-04-22T18:18:55.737423Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6726632078176380015, trigger=click)\n2026-04-22T18:18:56.477423Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6726632078176380015, trigger=click)\n2026-04-22T18:20:28.510789Z WARN sqlx::query: summary=\"PRAGMA wal_checkpoint(TRUNCATE)\" db.statement=\"\" rows_affected=0 rows_returned=1 elapsed=5.273706125s\n2026-04-22T18:20:28.511954Z WARN screenpipe_db::db: wal checkpoint: busy (could not truncate), 3177 pages in WAL\n2026-04-22T18:20:28.562400Z WARN sqlx::query: summary=\"BEGIN IMMEDIATE\" db.statement=\"\" rows_affected=1 rows_returned=0 elapsed=2.291890708s\n2026-04-22T18:23:52.302822Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=31 elapsed=6.325649833s\n2026-04-22T18:23:52.304330Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 31 eligible frames\n2026-04-22T18:23:53.163590Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 1.1MB → 0.1MB (9.9x), 12 JPEGs deleted\n2026-04-22T18:23:55.277698Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.4MB → 1.6MB (2.2x), 17 JPEGs deleted\n2026-04-22T18:28:56.007322Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 35 eligible frames\n2026-04-22T18:28:57.403360Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.7MB → 1.5MB (1.9x), 16 JPEGs deleted\n2026-04-22T18:28:58.752838Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.9MB → 0.8MB (3.6x), 17 JPEGs deleted\n2026-04-22T18:34:01.165384Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=41 elapsed=2.400307625s\n2026-04-22T18:34:01.165480Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 41 eligible frames\n2026-04-22T18:34:02.291139Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.7MB → 0.8MB (3.5x), 15 JPEGs deleted\n2026-04-22T18:34:04.197399Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.2MB → 1.7MB (2.4x), 24 JPEGs deleted\n2026-04-22T18:35:56.027919Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5884937538005636030, trigger=visual_change)\n2026-04-22T18:37:55.284482Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-439807993867665328, trigger=visual_change)\n2026-04-22T18:39:08.660187Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=4.451587125s\n2026-04-22T18:39:08.660278Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-22T18:39:09.493828Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.5MB → 0.5MB (3.1x), 10 JPEGs deleted\n2026-04-22T18:39:10.349740Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.1MB → 0.5MB (4.3x), 10 JPEGs deleted\n2026-04-22T18:43:06.355073Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3304493437592891639, trigger=click)\n2026-04-22T18:43:23.219621Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6603898485603033537, trigger=click)\n2026-04-22T18:44:11.899645Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=21 elapsed=1.53441375s\n2026-04-22T18:44:11.900197Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames\n2026-04-22T18:44:12.802039Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 1.1MB → 0.2MB (6.3x), 9 JPEGs deleted\n2026-04-22T18:44:14.694466Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.1MB → 0.3MB (5.9x), 10 JPEGs deleted\n2026-04-22T18:45:14.778135Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6664853592767636193, trigger=click)\n2026-04-22T18:46:36.923697Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1791249548195440516, trigger=visual_change)\n2026-04-22T18:49:18.625635Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=46 elapsed=3.900838541s\n2026-04-22T18:49:18.625996Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 46 eligible frames\n2026-04-22T18:49:19.640722Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 1.8MB → 0.2MB (10.4x), 15 JPEGs deleted\n2026-04-22T18:49:23.038596Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 5.2MB → 2.1MB (2.4x), 29 JPEGs deleted\n2026-04-22T18:50:34.997361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=visual_change)\n2026-04-22T18:50:39.846829Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:50:43.731899Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:20.200945Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=visual_change)\n2026-04-22T18:51:23.144927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:23.976040Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:27.176876Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:28.227317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:31.555085Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:32.274042Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:35.352114Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:37.306495Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=visual_change)\n2026-04-22T18:52:02.049971Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=visual_change)\n2026-04-22T18:52:09.690330Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=visual_change)\n2026-04-22T18:52:11.530065Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:52:12.090300Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:52:22.885838Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6951480031607957362, trigger=visual_change)\n2026-04-22T18:52:58.986955Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7031607293039132919, trigger=click)\n2026-04-22T18:53:47.690375Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3992755350865402319, trigger=visual_change)\n2026-04-22T18:54:25.328228Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=52 elapsed=2.277973417s\n2026-04-22T18:54:25.328316Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 52 eligible frames\n2026-04-22T18:54:26.661506Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 2.6MB → 0.2MB (11.0x), 22 JPEGs deleted\n2026-04-22T18:54:28.982139Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 4.3MB → 1.1MB (3.8x), 28 JPEGs deleted\n2026-04-22T18:54:44.142044Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3992755350865402319, trigger=visual_change)\n2026-04-22T18:55:01.465747Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2556650532703180759, trigger=click)\n2026-04-22T18:55:02.524314Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2556650532703180759, trigger=click)\n2026-04-22T18:55:35.312048Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3149441378543601087, trigger=visual_change)\n2026-04-22T18:55:55.086761Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3149441378543601087, trigger=click)\n2026-04-22T18:55:56.919853Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3149441378543601087, trigger=visual_change)\n2026-04-22T18:56:05.807170Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7595806992634662117, trigger=visual_change)\n2026-04-22T18:56:12.303927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7595806992634662117, trigger=visual_change)\n2026-04-22T18:56:58.093656Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2070714172482892625, trigger=visual_change)\n2026-04-22T18:57:00.459010Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2070714172482892625, trigger=visual_change)\n2026-04-22T18:57:03.809894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2070714172482892625, trigger=visual_change)\n2026-04-22T18:58:04.259354Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7284778144726625723, trigger=visual_change)\n2026-04-22T18:58:07.302007Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7284778144726625723, trigger=visual_change)\n2026-04-22T18:58:10.443744Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7284778144726625723, trigger=visual_change)\n2026-04-22T18:58:40.416893Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6313361147559934277, trigger=click)\n2026-04-22T18:58:59.229391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)\n2026-04-22T18:59:10.795801Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)\n2026-04-22T18:59:15.904155Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)\n2026-04-22T18:59:30.308258Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=46 elapsed=1.303054333s\n2026-04-22T18:59:30.308485Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 46 eligible frames\n2026-04-22T18:59:31.535859Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 2.4MB → 0.3MB (7.5x), 20 JPEGs deleted\n2026-04-22T18:59:33.536283Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 3.8MB → 1.3MB (3.0x), 24 JPEGs deleted\n2026-04-22T18:59:39.897203Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)\n2026-04-22T18:59:43.593017Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-71227342056343983, trigger=visual_change)\n2026-04-22T18:59:55.722135Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)\n2026-04-22T19:00:00.394304Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)\n2026-04-22T19:00:27.869871Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2710856207947507007, trigger=visual_change)\n2026-04-22T19:01:54.992910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6986338393283794423, trigger=visual_change)\n2026-04-22T19:02:13.568012Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6986338393283794423, trigger=visual_change)\n2026-04-22T19:02:16.092275Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6986338393283794423, trigger=visual_change)\n2026-04-22T19:03:04.479425Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7704375629034044835, trigger=visual_change)\n2026-04-22T19:03:35.287830Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2375149456869027114, trigger=visual_change)\n2026-04-22T19:03:41.021583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2375149456869027114, trigger=visual_change)\n2026-04-22T19:03:48.485601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6234474271212752005, trigger=visual_change)\n2026-04-22T19:04:35.737525Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=82 elapsed=2.188209209s\n2026-04-22T19:04:35.737670Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 82 eligible frames\n2026-04-22T19:04:38.209886Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3880005638520398709, trigger=click)\n2026-04-22T19:04:38.478674Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 4.8MB → 1.0MB (4.9x), 39 JPEGs deleted\n2026-04-22T19:04:42.074270Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 41 frames, 7.5MB → 3.6MB (2.1x), 41 JPEGs deleted\n2026-04-22T19:04:55.094599Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-635344842894947589, trigger=visual_change)\n2026-04-22T19:05:20.336216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)\n2026-04-22T19:05:54.388487Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)\n2026-04-22T19:05:57.299176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)\n2026-04-22T19:05:59.949506Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)\n2026-04-22T19:06:25.531964Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5957740084085463727, trigger=visual_change)\n2026-04-22T19:06:50.090567Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6422724880219484653, trigger=visual_change)\n2026-04-22T19:07:22.963169Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2531925023067266044, trigger=click)\n2026-04-22T19:07:24.045648Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2531925023067266044, trigger=click)\n2026-04-22T19:07:27.834546Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2085088366939909076, trigger=click)\n2026-04-22T19:07:28.381522Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2085088366939909076, trigger=click)\n2026-04-22T19:08:34.175493Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3061313113729352595, trigger=click)\n2026-04-22T19:09:42.454765Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 91 eligible frames\n2026-04-22T19:09:45.816541Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 5.7MB → 2.4MB (2.3x), 32 JPEGs deleted\n2026-04-22T19:09:50.140975Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 57 frames, 7.8MB → 2.3MB (3.4x), 57 JPEGs deleted\n2026-04-22T19:10:13.441594Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=click)\n2026-04-22T19:10:18.830768Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)\n2026-04-22T19:10:21.842287Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)\n2026-04-22T19:10:28.187487Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5292492680570276501, trigger=click)\n^C2026-04-22T19:10:32.957264Z INFO screenpipe: received ctrl+c, initiating shutdown\n2026-04-22T19:10:32.958125Z INFO screenpipe: stopping UI event capture\n2026-04-22T19:10:32.958201Z INFO screenpipe: received shutdown signal for VisionManager\n2026-04-22T19:10:32.958212Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker shutting down\n2026-04-22T19:10:32.958217Z INFO screenpipe_engine::meeting_detector: meeting v2: shutdown received, exiting detection loop\n2026-04-22T19:10:32.958646Z INFO screenpipe_engine::vision_manager::manager: Shutting down VisionManager\n2026-04-22T19:10:32.958661Z INFO screenpipe_engine::vision_manager::manager: Stopping VisionManager\n2026-04-22T19:10:32.958669Z INFO screenpipe_engine::vision_manager::manager: Stopping vision recording for monitor 2\n2026-04-22T19:10:32.958804Z INFO screenpipe_engine::vision_manager::manager: Stopping vision recording for monitor 1\n\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ 2026-04-22T19:10:33.158623Z INFO screenpipe_engine::ui_recorder: UI recording session ended: e7729066-2ab4-4bf0-9d48-0c9790a4ee79\n2026-04-22T19:10:33.159581Z INFO screenpipe: shutdown complete\n\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-stop\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-status\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ st-start\nzsh: command not found: st-start\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-start\ndetected hardware tier: Mid\nwarning: parakeet is not supported on this platform, using whisper-tiny instead\n2026-04-23T09:12:59.282987Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store\nchecking permissions...\n screen recording: ok\n accessibility: ok\n2026-04-23T09:12:59.350556Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6\n2026-04-23T09:13:00.537715Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor\n2026-04-23T09:13:00.539247Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)\n2026-04-23T09:13:00.539704Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)\n2026-04-23T09:13:00.580622Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true\n2026-04-23T09:13:00.580688Z INFO screenpipe: meeting detector enabled — independent of transcription mode\n2026-04-23T09:13:00.580873Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)\n2026-04-23T09:13:00.581042Z INFO screenpipe: API server listening on 127.0.0.1:3030 (localhost only)\n2026-04-23T09:13:00.581050Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key\n2026-04-23T09:13:00.580937Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)\n2026-04-23T09:13:00.581202Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager\n2026-04-23T09:13:00.599105Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-23T09:13:00.607481Z INFO screenpipe_core::pipes: loaded pipe: day-recap\n2026-04-23T09:13:00.608248Z INFO screenpipe_core::pipes: loaded pipe: standup-update\n2026-04-23T09:13:00.608416Z INFO screenpipe_core::pipes: loaded pipe: ai-habits\n2026-04-23T09:13:00.608706Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown\n2026-04-23T09:13:00.608849Z INFO screenpipe_core::pipes: loaded pipe: video-export\n2026-04-23T09:13:00.609337Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary\n2026-04-23T09:13:00.609353Z INFO screenpipe_core::pipes: loaded 6 pipes from \"/Users/lukas/.screenpipe/pipes\"\n\n\n\n _ \n __________________ ___ ____ ____ (_____ ___ \n / ___/ ___/ ___/ _ \\/ _ \\/ __ \\ / __ \\/ / __ \\/ _ \\\n (__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/\n/____/\\___/_/ \\___/\\___/_/ /_/ / .___/_/ .___/\\___/ \n /_/ /_/ \n\n\n\npower AI by everything you've seen, said or heard\nopen source | runs locally | developer friendly\n\n\n┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ true │\n│ vision disabled │ false │\n│ pause on DRM content │ false │\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n│ ignored windows │ [\"Boosteroid\"] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n│ api auth │ enabled │\n2026-04-23T09:13:00.610149Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n2026-04-23T09:13:00.614023Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n│ encrypt secrets │ disabled │\n│ retention days │ 14 │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ id: 1 │\n│ │ id: 2 │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ disabled │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-23T09:13:00.626925Z INFO screenpipe: starting UI event capture\n2026-04-23T09:13:00.644081Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-23T09:13:00.659604Z INFO screenpipe_engine::ui_recorder: UI recording session started: 64e213bd-3690-487f-90be-4e8348040416\n2026-04-23T09:13:00.659568Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-23T09:13:00.659937Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-22 06:13:00.659935 UTC to 2026-04-23 06:13:00.659935 UTC)\n2026-04-23T09:13:00.660681Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-23T09:13:00.671031Z INFO screenpipe_engine::server: Server listening on 127.0.0.1:3030\n2026-04-23T09:13:00.676357Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-23T09:13:02.822346Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-23T09:13:02.822390Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-23T09:13:02.822429Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-23T09:13:03.612915Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-23T09:13:03.612969Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-23T09:13:03.612981Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)\n2026-04-23T09:13:03.612988Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)\n2026-04-23T09:13:03.613032Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-23T09:13:04.172201Z WARN sqlx::query: summary=\"SELECT f.id, f.timestamp, f.offset_index, …\" db.statement=\"\\n\\nSELECT\\n f.id,\\n f.timestamp,\\n f.offset_index,\\n COALESCE(\\n SUBSTR(f.full_text, 1, 200),\\n SUBSTR(f.accessibility_text, 1, 200),\\n (\\n SELECT\\n SUBSTR(ot.text, 1, 200)\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as text,\\n COALESCE(\\n f.app_name,\\n (\\n SELECT\\n ot.app_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as app_name,\\n COALESCE(\\n f.window_name,\\n (\\n SELECT\\n ot.window_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as window_name,\\n COALESCE(vc.device_name, f.device_name) as screen_device,\\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\\n COALESCE(vc.fps, 0.033) as chunk_fps,\\n f.browser_url,\\n f.machine_id\\nFROM\\n frames f\\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\\nWHERE\\n f.timestamp >= ?1\\n AND f.timestamp <= ?2\\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\\nORDER BY\\n f.timestamp DESC,\\n f.offset_index DESC\\nLIMIT\\n 10000\\n\" rows_affected=0 rows_returned=4305 elapsed=3.511492208s\n2026-04-23T09:13:04.183200Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 4304 frame entries, coverage from 2026-04-22 06:13:00.659935 UTC\n2026-04-23T09:13:07.349282Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-23T09:13:07.830685Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=72776, dur=70ms\n2026-04-23T09:13:08.836958Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-23T09:13:09.378786Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=72777, dur=124ms\n2026-04-23T09:13:09.380863Z INFO sck_rs::stream_manager: invalidated persistent stream for display 2\n2026-04-23T09:13:32.742255Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-23T09:14:01.764079Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4702465002163205464, trigger=click)\n2026-04-23T09:14:04.223149Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4702465002163205464, trigger=visual_change)\n2026-04-23T09:14:06.953796Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=147 elapsed=6.3719465s\n2026-04-23T09:14:06.954006Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 147 eligible frames\n2026-04-23T09:14:12.566935Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 70 frames, 10.3MB → 2.7MB (3.8x), 70 JPEGs deleted\n2026-04-23T09:14:17.358704Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 75 frames, 9.6MB → 3.0MB (3.2x), 75 JPEGs deleted\n2026-04-23T09:15:47.544198Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3660881845293713510, trigger=visual_change)\n2026-04-23T09:15:50.997492Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3660881845293713510, trigger=click)\n2026-04-23T09:15:51.600725Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3660881845293713510, trigger=click)\n2026-04-23T09:15:55.723800Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3660881845293713510, trigger=click)\n2026-04-23T09:15:56.933987Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3660881845293713510, trigger=visual_change)\n2026-04-23T09:15:59.012409Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3660881845293713510, trigger=visual_change)\n2026-04-23T09:16:49.882963Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3759145274440377841, trigger=visual_change)\n2026-04-23T09:16:51.405936Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3759145274440377841, trigger=click)\n2026-04-23T09:16:52.823011Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3759145274440377841, trigger=click)\n2026-04-23T09:16:54.220304Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3759145274440377841, trigger=click)\n2026-04-23T09:16:54.887021Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3759145274440377841, trigger=click)\n2026-04-23T09:16:58.589203Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3759145274440377841, trigger=visual_change)\n2026-04-23T09:18:05.879649Z WARN screenpipe_db::db: wal checkpoint: busy (could not truncate), 5054 pages in WAL\n2026-04-23T09:18:05.879619Z WARN sqlx::query: summary=\"PRAGMA wal_checkpoint(TRUNCATE)\" db.statement=\"\" rows_affected=0 rows_returned=1 elapsed=5.220339167s\n2026-04-23T09:19:24.740122Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=2 elapsed=7.381061833s\n2026-04-23T09:19:24.740850Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-23T09:19:36.514406Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2079049776495123607, trigger=click)\n2026-04-23T09:24:26.477446Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=11 elapsed=1.729545666s\n2026-04-23T09:24:26.477540Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 11 eligible frames\n2026-04-23T09:24:27.316363Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 5 frames, 1.4MB → 1.4MB (1.0x), 5 JPEGs deleted\n2026-04-23T09:24:27.966623Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 6 frames, 0.6MB → 0.2MB (2.7x), 6 JPEGs deleted\n2026-04-23T09:24:42.606557Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:26:03.160247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7786631749263421517, trigger=click)\n2026-04-23T09:27:26.154494Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:27:34.433056Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:28:06.713361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:28:33.527151Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5209591986308457575, trigger=click)\n2026-04-23T09:28:34.249353Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5209591986308457575, trigger=click)\n2026-04-23T09:28:36.237199Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5209591986308457575, trigger=click)\n2026-04-23T09:28:42.253183Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8747303508868961364, trigger=click)\n2026-04-23T09:28:48.282686Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:28:50.613134Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:28:51.314522Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:29:31.961577Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=67 elapsed=3.996031s\n2026-04-23T09:29:31.961670Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 67 eligible frames\n2026-04-23T09:29:34.332658Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 5.8MB → 2.1MB (2.8x), 29 JPEGs deleted\n2026-04-23T09:29:38.223511Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 7.4MB → 3.8MB (2.0x), 36 JPEGs deleted\n2026-04-23T09:30:34.230785Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:30:39.665086Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:30:40.299751Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:30:45.663893Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:30:51.622228Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:30:52.321014Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:31:15.021588Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:31:15.691601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:31:17.946692Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:31:18.653547Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:32:17.960360Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:32:24.051490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:32:29.442560Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:32:30.131038Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:32:32.452540Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:32:36.585069Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:32:39.322258Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:33:18.072421Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:33:18.766929Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:33:22.098409Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:33:22.782084Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:34:27.313290Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:34:38.542722Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 89 eligible frames\n2026-04-23T09:34:41.684595Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 38 frames, 5.6MB → 0.7MB (7.5x), 38 JPEGs deleted\n2026-04-23T09:34:44.933963Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 10.6MB → 3.8MB (2.8x), 49 JPEGs deleted\n2026-04-23T09:37:57.963204Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:37:58.697604Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:38:02.124214Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:38:53.190171Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:38:59.279885Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:39:02.308536Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:39:36.189861Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:39:49.122120Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=50 elapsed=4.188474542s\n2026-04-23T09:39:49.122232Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 50 eligible frames\n2026-04-23T09:39:51.115025Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 2.9MB → 0.3MB (9.4x), 24 JPEGs deleted\n2026-04-23T09:39:53.096763Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 5.0MB → 2.3MB (2.2x), 24 JPEGs deleted\n2026-04-23T09:40:57.095660Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:40:58.430714Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:41:01.130926Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:41:01.840278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:41:04.072034Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:41:09.252541Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:41:09.972092Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:41:12.313228Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:41:13.696141Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:41:15.723102Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:41:16.452657Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:42:46.382248Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:43:42.993741Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6469703639183038647, trigger=visual_change)\n2026-04-23T09:44:17.245560Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7072623502562616708, trigger=visual_change)\n2026-04-23T09:44:56.342637Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=21 elapsed=2.944921084s\n2026-04-23T09:44:56.343212Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames\n2026-04-23T09:44:57.216675Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.2MB → 0.2MB (6.9x), 10 JPEGs deleted\n2026-04-23T09:44:58.298212Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 2.1MB → 0.7MB (2.8x), 9 JPEGs deleted\n2026-04-23T09:45:10.982752Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Firefox, signals=2)\n2026-04-23T09:45:16.376695Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Firefox, signals=2, browser=true)\n2026-04-23T09:45:16.378791Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=9, app=Firefox, title=None)\n2026-04-23T09:50:01.989691Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=23 elapsed=3.688976042s\n2026-04-23T09:50:01.989962Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 23 eligible frames\n2026-04-23T09:50:03.098505Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.3MB → 0.2MB (7.4x), 11 JPEGs deleted\n2026-04-23T09:50:04.627741Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.4MB → 0.8MB (3.1x), 10 JPEGs deleted\n2026-04-23T09:50:07.629323Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4672421675042950776, trigger=click)\n2026-04-23T09:52:11.400798Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:52:15.346773Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:52:18.174934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:52:22.107623Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:52:32.020499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:53:33.890239Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:53:35.304629Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:53:58.176084Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:54:14.248454Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:54:18.287472Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:54:20.289467Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:54:24.904239Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:54:27.981243Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:54:29.172367Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:54:30.192245Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:54:31.161165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:55:11.821088Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=36 elapsed=7.192436875s\n2026-04-23T09:55:11.821248Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 36 eligible frames\n2026-04-23T09:55:13.532739Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 2.3MB → 0.5MB (5.0x), 19 JPEGs deleted\n2026-04-23T09:55:16.625152Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 3.3MB → 1.4MB (2.4x), 15 JPEGs deleted\n2026-04-23T09:56:01.584150Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:56:24.887186Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3078857793355977422, trigger=click)\n2026-04-23T09:56:32.005363Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3078857793355977422, trigger=visual_change)\n2026-04-23T09:56:41.374227Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3078857793355977422, trigger=visual_change)\n2026-04-23T09:56:54.666839Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3078857793355977422, trigger=click)\n2026-04-23T09:57:06.486753Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3593283938725328408, trigger=visual_change)\n2026-04-23T09:57:14.384178Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5341343601501307187, trigger=visual_change)\n2026-04-23T09:57:32.721765Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5341343601501307187, trigger=visual_change)\n2026-04-23T09:59:03.111441Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:59:18.292184Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:59:24.203906Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:59:28.763273Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:59:36.189282Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T10:00:16.817081Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 72 eligible frames\n2026-04-23T10:00:21.637421Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 45 frames, 7.5MB → 3.5MB (2.1x), 45 JPEGs deleted\n2026-04-23T10:00:24.683587Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.4MB → 1.4MB (3.2x), 25 JPEGs deleted\n2026-04-23T10:00:40.573974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6464745230001326344, trigger=visual_change)\n2026-04-23T10:02:52.495992Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8171437999531431641, trigger=click)\n2026-04-23T10:02:53.374393Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8171437999531431641, trigger=click)\n2026-04-23T10:03:37.373391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1961095499263201650, trigger=click)\n2026-04-23T10:04:58.338820Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T10:05:04.300061Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T10:05:10.114887Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T10:05:16.104422Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T10:05:20.754499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T10:05:25.933831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T10:05:30.717296Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=45 elapsed=5.043796209s\n2026-04-23T10:05:30.717708Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 45 eligible frames\n2026-04-23T10:05:33.129158Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.5MB → 1.3MB (2.8x), 21 JPEGs deleted\n2026-04-23T10:05:35.719261Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 3.9MB → 1.6MB (2.5x), 22 JPEGs deleted\n2026-04-23T10:06:54.427408Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T10:06:58.568476Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T10:07:35.294176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T10:07:36.671700Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T10:07:46.281682Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T10:10:42.001975Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=40 elapsed=6.278440792s\n2026-04-23T10:10:42.002064Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames\n2026-04-23T10:10:45.302375Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.7MB → 1.7MB (2.2x), 21 JPEGs deleted\n2026-04-23T10:10:47.110830Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 4.4MB → 0.6MB (7.8x), 17 JPEGs deleted\n2026-04-23T10:12:18.002465Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7144568667011834365, trigger=click)\n2026-04-23T10:13:16.229637Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3362537224271461493, trigger=visual_change)\n2026-04-23T10:13:20.127210Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3362537224271461493, trigger=visual_change)\n2026-04-23T10:15:43.498044Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-602531024127880156, trigger=visual_change)\n2026-04-23T10:15:46.873827Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-602531024127880156, trigger=visual_change)\n2026-04-23T10:15:49.085137Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 32 eligible frames\n2026-04-23T10:15:49.496235Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-602531024127880156, trigger=visual_change)\n2026-04-23T10:15:50.519319Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.0MB → 0.9MB (3.3x), 17 JPEGs deleted\n2026-04-23T10:15:51.657703Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 3.4MB → 0.5MB (6.7x), 13 JPEGs deleted\n2026-04-23T10:15:53.186964Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-602531024127880156, trigger=visual_change)\n2026-04-23T10:15:55.743993Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-602531024127880156, trigger=visual_change)\n2026-04-23T10:16:10.260016Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7730332891388508974, trigger=visual_change)\n2026-04-23T10:16:19.398464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5862100523266843105, trigger=visual_change)\n2026-04-23T10:16:23.686689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5862100523266843105, trigger=visual_change)\n2026-04-23T10:16:27.662719Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5862100523266843105, trigger=visual_change)\n2026-04-23T10:16:34.159786Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5862100523266843105, trigger=visual_change)\n2026-04-23T10:17:00.356336Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5862100523266843105, trigger=visual_change)\n2026-04-23T10:17:22.481007Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3265723714621232205, trigger=visual_change)\n2026-04-23T10:17:29.195939Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3265723714621232205, trigger=visual_change)\n2026-04-23T10:17:47.685112Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)\n2026-04-23T10:17:51.199158Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)\n2026-04-23T10:17:58.199222Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)\n2026-04-23T10:18:06.327777Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)\n2026-04-23T10:18:13.175283Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)\n2026-04-23T10:18:39.739176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)\n2026-04-23T10:19:27.720698Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)\n2026-04-23T10:19:31.148096Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)\n2026-04-23T10:19:35.991910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)\n2026-04-23T10:19:56.855761Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)\n2026-04-23T10:20:03.521058Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)\n2026-04-23T10:20:10.069690Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)\n2026-04-23T10:20:18.117006Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)\n2026-04-23T10:20:54.473088Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=27 elapsed=2.810096209s\n2026-04-23T10:20:54.473356Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 27 eligible frames\n2026-04-23T10:20:56.920972Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.2MB → 0.9MB (2.6x), 14 JPEGs deleted\n2026-04-23T10:20:58.678464Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 2.5MB → 0.8MB (3.0x), 11 JPEGs deleted\n2026-04-23T10:23:10.727426Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3844820439140861821, trigger=visual_change)\n2026-04-23T10:25:16.468416Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T10:25:32.507777Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T10:26:05.910946Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=33 elapsed=7.132200208s\n2026-04-23T10:26:05.912569Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 33 eligible frames\n2026-04-23T10:26:09.921886Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.0MB → 1.2MB (2.5x), 18 JPEGs deleted\n2026-04-23T10:26:13.670275Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.6MB → 0.9MB (3.0x), 13 JPEGs deleted\n2026-04-23T10:26:20.034712Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=click)\n2026-04-23T10:26:22.436991Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=click)\n2026-04-23T10:26:25.816727Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:27:46.056157Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1615606372458852745, trigger=click)\n2026-04-23T10:28:05.117587Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:28:16.307383Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:28:22.684004Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:28:39.022530Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:28:44.950116Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:28:50.090325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:28:52.144212Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:28:55.229550Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=click)\n2026-04-23T10:28:59.714370Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=click)\n2026-04-23T10:29:08.010841Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=click)\n2026-04-23T10:29:11.877274Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=click)\n2026-04-23T10:29:15.515889Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=click)\n2026-04-23T10:29:19.052095Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=click)\n2026-04-23T10:29:21.109938Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=click)\n2026-04-23T10:29:28.551159Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:29:30.947483Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:29:38.350095Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:29:51.477755Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:29:56.846851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:30:02.584960Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:30:06.779849Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:30:18.311444Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:30:22.665242Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:30:29.333028Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:30:37.983139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:30:48.829636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=click)\n2026-04-23T10:30:59.474314Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3712905987097609358, trigger=visual_change)\n2026-04-23T10:31:16.115641Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=34 elapsed=1.523826083s\n2026-04-23T10:31:16.115774Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 34 eligible frames\n2026-04-23T10:31:19.674413Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 3.4MB → 2.0MB (1.7x), 19 JPEGs deleted\n2026-04-23T10:31:20.281876Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:31:21.222414Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 3.4MB → 0.8MB (4.5x), 13 JPEGs deleted\n2026-04-23T10:31:30.589390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:31:31.649068Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:31:34.542890Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:31:35.913592Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:31:42.222598Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:31:46.314096Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:31:56.457995Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:32:02.440693Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=click)\n2026-04-23T10:32:11.844302Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=9, grace=300s)\n2026-04-23T10:36:21.778297Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 34 eligible frames\n2026-04-23T10:36:23.408803Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 3.2MB → 1.6MB (2.1x), 19 JPEGs deleted\n2026-04-23T10:36:24.427188Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 3.4MB → 0.7MB (4.8x), 13 JPEGs deleted\n2026-04-23T10:37:15.245266Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Idle (timeout=300s, app=Firefox, id=9)\n2026-04-23T10:37:15.499978Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting ended (id=9)\n2026-04-23T10:39:08.136849Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7072094695368023128, trigger=visual_change)\n2026-04-23T10:40:10.173692Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5626541066854626210, trigger=visual_change)\n2026-04-23T10:41:03.187335Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6908211675272154683, trigger=visual_change)\n2026-04-23T10:41:27.801144Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=32 elapsed=3.230263875s\n2026-04-23T10:41:27.801229Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 32 eligible frames\n2026-04-23T10:41:30.240257Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.7MB → 1.1MB (2.4x), 17 JPEGs deleted\n2026-04-23T10:41:31.414104Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 3.3MB → 1.1MB (3.1x), 13 JPEGs deleted\n2026-04-23T10:43:59.795473Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:44:00.574274Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:44:03.353223Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=visual_change)\n2026-04-23T10:44:06.333413Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=visual_change)\n2026-04-23T10:44:15.554031Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:44:16.272856Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:44:36.868831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=visual_change)\n2026-04-23T10:44:52.509317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=visual_change)\n2026-04-23T10:45:05.711036Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=visual_change)\n2026-04-23T10:45:15.149681Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:45:15.874930Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:45:18.722067Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:45:27.888960Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=visual_change)\n2026-04-23T10:45:32.102259Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:45:47.964284Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-250182447663358748, trigger=click)\n2026-04-23T10:45:57.352178Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-250182447663358748, trigger=click)\n2026-04-23T10:45:58.059330Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-250182447663358748, trigger=click)\n2026-04-23T10:46:00.786122Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-250182447663358748, trigger=click)\n2026-04-23T10:46:01.515587Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-250182447663358748, trigger=click)\n2026-04-23T10:46:32.335524Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 34 eligible frames\n2026-04-23T10:46:33.454412Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 1.3MB → 0.3MB (4.3x), 15 JPEGs deleted\n2026-04-23T10:46:35.185172Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 4.4MB → 0.8MB (5.1x), 17 JPEGs deleted\n2026-04-23T10:49:51.424053Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:49:52.278022Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:50:06.945403Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=visual_change)\n2026-04-23T10:50:20.071306Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:50:27.322330Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:50:28.025501Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:50:31.361324Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:50:32.067598Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:50:43.957181Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:50:49.116814Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:50:49.902205Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:50:52.787071Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:50:55.600444Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:50:56.613411Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:51:01.606653Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=visual_change)\n2026-04-23T10:51:36.294219Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames\n2026-04-23T10:51:37.139478Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.9MB → 0.1MB (8.1x), 10 JPEGs deleted\n2026-04-23T10:51:37.977586Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 2.4MB → 0.4MB (5.6x), 9 JPEGs deleted\n2026-04-23T10:53:10.914762Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5094416737894467752, trigger=click)\n2026-04-23T10:53:46.764312Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5492569374489755072, trigger=click)\n2026-04-23T10:53:47.493963Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5492569374489755072, trigger=click)\n2026-04-23T10:55:50.508246Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9185031867676948653, trigger=click)\n2026-04-23T10:56:18.190631Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8265869039182172474, trigger=visual_change)\n2026-04-23T10:56:21.391253Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8265869039182172474, trigger=visual_change)\n2026-04-23T10:56:44.441379Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=33 elapsed=6.451315834s\n2026-04-23T10:56:44.441894Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 33 eligible frames\n2026-04-23T10:56:46.435494Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 1.6MB → 0.1MB (14.8x), 17 JPEGs deleted\n2026-04-23T10:56:47.618773Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 3.5MB → 1.0MB (3.6x), 14 JPEGs deleted\n2026-04-23T10:56:48.429385Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3009288458992913716, trigger=visual_change)\n2026-04-23T10:56:55.377427Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3009288458992913716, trigger=visual_change)\n2026-04-23T10:56:58.331194Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3009288458992913716, trigger=visual_change)\n2026-04-23T10:57:31.580363Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=164293696523982731, trigger=visual_change)\n2026-04-23T10:57:37.142409Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=164293696523982731, trigger=visual_change)\n2026-04-23T11:01:54.879662Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=43 elapsed=6.651773875s\n2026-04-23T11:01:54.879780Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 43 eligible frames\n2026-04-23T11:01:56.181324Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 2.1MB → 0.5MB (4.0x), 20 JPEGs deleted\n2026-04-23T11:01:57.821885Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 4.6MB → 1.2MB (4.0x), 21 JPEGs deleted\n2026-04-23T11:05:34.805879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4133405882569027308, trigger=click)\n2026-04-23T11:05:42.692507Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-792819002159032212, trigger=click)\n2026-04-23T11:05:45.195836Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-792819002159032212, trigger=click)\n2026-04-23T11:06:58.003581Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 56 eligible frames\n2026-04-23T11:07:01.998524Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 4.2MB → 2.0MB (2.1x), 27 JPEGs deleted\n2026-04-23T11:07:04.632834Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 6.1MB → 1.2MB (5.2x), 27 JPEGs deleted\n2026-04-23T11:08:29.041425Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=811120582590877593, trigger=click)\n2026-04-23T11:11:26.078346Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=811120582590877593, trigger=click)\n2026-04-23T11:11:26.826746Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=811120582590877593, trigger=click)\n2026-04-23T11:11:29.736291Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=811120582590877593, trigger=click)\n2026-04-23T11:11:30.502898Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=811120582590877593, trigger=click)\n2026-04-23T11:11:33.284639Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=811120582590877593, trigger=click)\n2026-04-23T11:11:34.732219Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=811120582590877593, trigger=click)\n2026-04-23T11:11:36.846175Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=811120582590877593, trigger=click)\n2026-04-23T11:11:47.161668Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=811120582590877593, trigger=visual_change)\n2026-04-23T11:11:51.463126Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=811120582590877593, trigger=click)\n2026-04-23T11:11:55.190182Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=811120582590877593, trigger=click)\n2026-04-23T11:11:58.250612Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=811120582590877593, trigger=click)\n2026-04-23T11:11:58.984195Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=811120582590877593, trigger=click)\n2026-04-23T11:12:07.186907Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8190951420737299430, trigger=visual_change)\n2026-04-23T11:12:10.805150Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=28 elapsed=6.153365375s\n2026-04-23T11:12:10.806451Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames\n2026-04-23T11:12:12.869531Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.7MB → 1.2MB (2.2x), 16 JPEGs deleted\n2026-04-23T11:12:14.462884Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.2MB → 0.4MB (5.9x), 10 JPEGs deleted\n2026-04-23T11:14:59.283313Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-962688942467523245, trigger=click)\n2026-04-23T11:14:59.996111Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-962688942467523245, trigger=click)\n2026-04-23T11:15:52.562512Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4085483410823602662, trigger=click)\n2026-04-23T11:16:10.556556Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-680298114769977367, trigger=click)\n2026-04-23T11:16:44.987984Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-781142721963066587, trigger=click)\n2026-04-23T11:17:15.717626Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=34 elapsed=1.192290209s\n2026-04-23T11:17:15.717877Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 34 eligible frames\n2026-04-23T11:17:16.801524Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 1.7MB → 0.3MB (6.4x), 14 JPEGs deleted\n2026-04-23T11:17:18.950114Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 4.0MB → 0.9MB (4.3x), 18 JPEGs deleted\n2026-04-23T11:22:21.353046Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=27 elapsed=2.391216916s\n2026-04-23T11:22:21.353161Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 27 eligible frames\n2026-04-23T11:22:22.204810Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.6MB → 0.2MB (7.8x), 13 JPEGs deleted\n2026-04-23T11:22:23.352237Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.7MB → 1.1MB (2.5x), 12 JPEGs deleted\n2026-04-23T11:22:51.641783Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5591071779487381740, trigger=visual_change)\n2026-04-23T11:24:42.126313Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3622496340535697523, trigger=click)\n2026-04-23T11:27:16.328827Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3622496340535697523, trigger=click)\n2026-04-23T11:27:17.062717Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3622496340535697523, trigger=click)\n2026-04-23T11:27:20.131333Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3622496340535697523, trigger=visual_change)\n2026-04-23T11:27:27.263965Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=32 elapsed=2.915186083s\n2026-04-23T11:27:27.264345Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 32 eligible frames\n2026-04-23T11:27:29.317049Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.1MB → 0.6MB (3.5x), 16 JPEGs deleted\n2026-04-23T11:27:31.637712Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 3.0MB → 0.8MB (3.8x), 14 JPEGs deleted\n2026-04-23T11:29:03.406489Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1491366973306919482, trigger=visual_change)\n2026-04-23T11:29:37.371120Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1491366973306919482, trigger=click)\n2026-04-23T11:29:38.828999Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1491366973306919482, trigger=click)\n2026-04-23T11:30:05.594417Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7420299184765789117, trigger=click)\n2026-04-23T11:30:10.415695Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7420299184765789117, trigger=click)\n2026-04-23T11:30:37.438406Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Firefox, signals=2)\n2026-04-23T11:30:47.134756Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Firefox, signals=2, browser=true)\n2026-04-23T11:30:47.150842Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=10, app=Firefox, title=None)\n2026-04-23T11:32:52.795697Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=click, monitor=1) — DB pool may be saturated\n2026-04-23T11:32:54.063047Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=22.405129875s\n2026-04-23T11:32:54.065127Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-23T11:32:56.659956Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.7MB → 0.3MB (5.8x), 10 JPEGs deleted\n2026-04-23T11:32:58.390326Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.1MB → 0.4MB (5.1x), 10 JPEGs deleted\n2026-04-23T11:32:58.454323Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=click, monitor=2) — DB pool may be saturated\n2026-04-23T11:33:03.630685Z INFO screenpipe_engine::event_driven_capture: monitor 2 capture recovered after 1 consecutive errors\n2026-04-23T11:33:03.698376Z INFO screenpipe_engine::event_driven_capture: monitor 1 capture recovered after 1 consecutive errors\n2026-04-23T11:34:08.146813Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=visual_change, monitor=1) — DB pool may be saturated\n2026-04-23T11:34:19.115606Z INFO screenpipe_engine::event_driven_capture: monitor 1 capture recovered after 1 consecutive errors\n2026-04-23T11:38:06.413998Z WARN sqlx::query: summary=\"PRAGMA wal_checkpoint(TRUNCATE)\" db.statement=\"\" rows_affected=0 rows_returned=1 elapsed=5.320189792s\n2026-04-23T11:38:06.417026Z WARN screenpipe_db::db: wal checkpoint: busy (could not truncate), 1136 pages in WAL\n2026-04-23T11:38:06.480369Z WARN sqlx::query: summary=\"BEGIN IMMEDIATE\" db.statement=\"\" rows_affected=1 rows_returned=0 elapsed=3.645234084s\n2026-04-23T11:38:12.229580Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=26 elapsed=13.80812125s\n2026-04-23T11:38:12.232573Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 26 eligible frames\n2026-04-23T11:38:15.382662Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.9MB → 0.5MB (3.8x), 11 JPEGs deleted\n2026-04-23T11:38:16.795794Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=visual_change, monitor=1) — DB pool may be saturated\n2026-04-23T11:38:19.817599Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.7MB → 0.6MB (4.2x), 13 JPEGs deleted\n2026-04-23T11:38:24.993308Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=visual_change, monitor=2) — DB pool may be saturated\n2026-04-23T11:38:30.141938Z INFO screenpipe_engine::event_driven_capture: monitor 1 capture recovered after 1 consecutive errors\n2026-04-23T11:38:34.776814Z INFO screenpipe_engine::event_driven_capture: monitor 2 capture recovered after 1 consecutive errors\n2026-04-23T11:40:55.703155Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5781407336396073109, trigger=visual_change)\n2026-04-23T11:41:02.662314Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5781407336396073109, trigger=visual_change)\n2026-04-23T11:41:09.390136Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5781407336396073109, trigger=visual_change)\n2026-04-23T11:41:16.161715Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5781407336396073109, trigger=visual_change)\n2026-04-23T11:41:37.205648Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5781407336396073109, trigger=visual_change)\n2026-04-23T11:42:04.257036Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5781407336396073109, trigger=visual_change)\n2026-04-23T11:42:21.214633Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6679997250984875896, trigger=visual_change)\n2026-04-23T11:42:24.525053Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6679997250984875896, trigger=visual_change)\n2026-04-23T11:42:29.877589Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6679997250984875896, trigger=visual_change)\n2026-04-23T11:42:33.802238Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6679997250984875896, trigger=visual_change)\n2026-04-23T11:42:36.923509Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6679997250984875896, trigger=visual_change)\n2026-04-23T11:42:57.455576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6679997250984875896, trigger=visual_change)\n2026-04-23T11:43:12.031547Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=951548071599591969, trigger=visual_change)\n2026-04-23T11:43:18.874182Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=951548071599591969, trigger=visual_change)\n2026-04-23T11:43:24.247849Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=951548071599591969, trigger=visual_change)\n2026-04-23T11:43:26.259182Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=49 elapsed=6.405864s\n2026-04-23T11:43:26.263056Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 49 eligible frames\n2026-04-23T11:43:32.316690Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 3.7MB → 1.8MB (2.0x), 23 JPEGs deleted\n2026-04-23T11:43:34.974978Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=951548071599591969, trigger=visual_change)\n2026-04-23T11:43:36.047883Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.3MB → 1.5MB (2.9x), 24 JPEGs deleted\n2026-04-23T11:43:49.116309Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=951548071599591969, trigger=visual_change)\n2026-04-23T11:43:52.940018Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=951548071599591969, trigger=visual_change)\n2026-04-23T11:43:56.539135Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=951548071599591969, trigger=visual_change)\n2026-04-23T11:44:11.233290Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4079677798565982376, trigger=visual_change)\n2026-04-23T11:45:03.923694Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=click, monitor=2) — DB pool may be saturated\n2026-04-23T11:45:18.638512Z INFO screenpipe_engine::event_driven_capture: monitor 2 capture recovered after 1 consecutive errors\n2026-04-23T11:45:27.824824Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=click, monitor=1) — DB pool may be saturated\n2026-04-23T11:45:41.576372Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=click, monitor=2) — DB pool may be saturated\n2026-04-23T11:45:44.291896Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=click, monitor=1) — DB pool may be saturated\n2026-04-23T11:46:03.257280Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=click, monitor=1) — DB pool may be saturated\n2026-04-23T11:46:12.724398Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=visual_change, monitor=2) — DB pool may be saturated\n2026-04-23T11:46:22.727197Z INFO screenpipe_engine::event_driven_capture: monitor 1 capture recovered after 3 consecutive errors\n2026-04-23T11:46:24.228006Z INFO screenpipe_engine::event_driven_capture: monitor 2 capture recovered after 2 consecutive errors\n2026-04-23T11:46:40.390580Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7643951286516936585, trigger=visual_change)\n2026-04-23T11:46:49.248747Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7643951286516936585, trigger=visual_change)\n2026-04-23T11:46:55.471031Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7643951286516936585, trigger=visual_change)\n2026-04-23T11:47:02.336575Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7643951286516936585, trigger=visual_change)\n2026-04-23T11:48:17.252755Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7643951286516936585, trigger=visual_change)\n2026-04-23T11:48:25.013997Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7643951286516936585, trigger=visual_change)\n2026-04-23T11:48:53.059242Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=56 elapsed=13.220216708s\n2026-04-23T11:48:53.065643Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 56 eligible frames\n2026-04-23T11:48:58.527594Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 4.7MB → 2.2MB (2.1x), 30 JPEGs deleted\n2026-04-23T11:49:05.857012Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.3MB → 1.6MB (2.7x), 24 JPEGs deleted\n2026-04-23T11:49:06.658338Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5995459936453258264, trigger=visual_change)\n2026-04-23T11:49:28.247468Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5995459936453258264, trigger=visual_change)\n2026-04-23T11:49:46.108336Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4001297392414942723, trigger=visual_change)\n2026-04-23T11:49:53.084297Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4001297392414942723, trigger=visual_change)\n2026-04-23T11:49:56.028797Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4001297392414942723, trigger=click)\n2026-04-23T11:50:37.287127Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2527600923706712259, trigger=visual_change)\n2026-04-23T11:51:12.946650Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1489108089542937642, trigger=visual_change)\n2026-04-23T11:51:19.338386Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1489108089542937642, trigger=visual_change)\n2026-04-23T11:52:16.352383Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8163356110886780433, trigger=visual_change)\n2026-04-23T11:53:55.890568Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5293025605401136867, trigger=click)\n2026-04-23T11:54:09.640558Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=41 elapsed=3.460436583s\n2026-04-23T11:54:09.640693Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 41 eligible frames\n2026-04-23T11:54:13.152878Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 3.3MB → 1.5MB (2.2x), 22 JPEGs deleted\n2026-04-23T11:54:15.204535Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.9MB → 1.2MB (3.4x), 17 JPEGs deleted\n2026-04-23T11:58:11.876342Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=10, grace=300s)\n2026-04-23T11:59:15.385310Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames\n2026-04-23T11:59:16.921656Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.6MB → 0.6MB (2.8x), 13 JPEGs deleted\n2026-04-23T11:59:18.047335Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.2MB → 1.0MB (2.3x), 10 JPEGs deleted","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.042298485,"width":0.065990694,"height":0.01915403},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.0019946808,"top":0.045490824,"width":0.005319149,"height":0.012769354},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.065990694,"top":0.042298485,"width":0.065990694,"height":0.01915403},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.06798537,"top":0.045490824,"width":0.005319149,"height":0.012769354},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.13198139,"top":0.042298485,"width":0.065990694,"height":0.01915403},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.13397606,"top":0.045490824,"width":0.005319149,"height":0.012769354},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"✳ Build full day activity summary from Screenpipe (claude)","depth":2,"bounds":{"left":0.19797207,"top":0.042298485,"width":0.065990694,"height":0.01915403},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.19996676,"top":0.045490824,"width":0.005319149,"height":0.012769354},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.26396278,"top":0.042298485,"width":0.06582447,"height":0.01915403},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.26595744,"top":0.045490824,"width":0.005319149,"height":0.012769354},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.32978722,"top":0.042298485,"width":0.06582447,"height":0.01915403},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.33178192,"top":0.045490824,"width":0.005319149,"height":0.012769354},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.3956117,"top":0.042298485,"width":0.06582447,"height":0.01915403},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.39760637,"top":0.045490824,"width":0.005319149,"height":0.012769354},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"ec2-user@ip-10-30-159-186:~ (-zsh)","depth":2,"bounds":{"left":0.46143618,"top":0.042298485,"width":0.06582447,"height":0.01915403},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.46343085,"top":0.045490824,"width":0.005319149,"height":0.012769354},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.51363033,"top":0.023144454,"width":0.01861702,"height":0.013567438},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"screenpipe\"","depth":1,"bounds":{"left":0.25365692,"top":0.023942538,"width":0.027925532,"height":0.012769354},"role_description":"text"}]...
|
7823854956395915880
|
914697014260639091
|
visual_change
|
accessibility
|
NULL
|
\n device_name,\n timestamp\nFROM\n frames\nWHE \n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=44 elapsed=1.833842375s
2026-04-22T18:03:16.198578Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 44 eligible frames
2026-04-22T18:03:18.139382Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 2.0MB → 0.1MB (16.1x), 21 JPEGs deleted
2026-04-22T18:03:19.618803Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.5MB → 1.5MB (2.4x), 21 JPEGs deleted
2026-04-22T18:06:58.395218Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7639883349033148478, trigger=click)
2026-04-22T18:06:58.897470Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7639883349033148478, trigger=click)
2026-04-22T18:07:42.474566Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=607162597309748765, trigger=click)
2026-04-22T18:08:27.382204Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=28 elapsed=7.750844334s
2026-04-22T18:08:27.382491Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames
2026-04-22T18:08:29.032220Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.2MB → 0.1MB (10.4x), 13 JPEGs deleted
2026-04-22T18:08:30.573314Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.7MB → 0.6MB (4.2x), 13 JPEGs deleted
2026-04-22T18:13:38.096494Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=20 elapsed=6.760223375s
2026-04-22T18:13:38.099584Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 20 eligible frames
2026-04-22T18:13:38.806766Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 0.8MB → 0.1MB (7.4x), 9 JPEGs deleted
2026-04-22T18:13:39.606462Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 1.9MB → 0.5MB (3.8x), 9 JPEGs deleted
2026-04-22T18:18:41.943065Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=45 elapsed=2.325026709s
2026-04-22T18:18:41.943417Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 45 eligible frames
2026-04-22T18:18:43.289962Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 2.0MB → 0.1MB (16.7x), 21 JPEGs deleted
2026-04-22T18:18:45.689764Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 4.4MB → 1.3MB (3.4x), 22 JPEGs deleted
2026-04-22T18:18:54.020334Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6726632078176380015, trigger=click)
2026-04-22T18:18:54.540347Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6726632078176380015, trigger=click)
2026-04-22T18:18:55.737423Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6726632078176380015, trigger=click)
2026-04-22T18:18:56.477423Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6726632078176380015, trigger=click)
2026-04-22T18:20:28.510789Z WARN sqlx::query: summary="PRAGMA wal_checkpoint(TRUNCATE)" db.statement="" rows_affected=0 rows_returned=1 elapsed=5.273706125s
2026-04-22T18:20:28.511954Z WARN screenpipe_db::db: wal checkpoint: busy (could not truncate), 3177 pages in WAL
2026-04-22T18:20:28.562400Z WARN sqlx::query: summary="BEGIN IMMEDIATE" db.statement="" rows_affected=1 rows_returned=0 elapsed=2.291890708s
2026-04-22T18:23:52.302822Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=31 elapsed=6.325649833s
2026-04-22T18:23:52.304330Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 31 eligible frames
2026-04-22T18:23:53.163590Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 1.1MB → 0.1MB (9.9x), 12 JPEGs deleted
2026-04-22T18:23:55.277698Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.4MB → 1.6MB (2.2x), 17 JPEGs deleted
2026-04-22T18:28:56.007322Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 35 eligible frames
2026-04-22T18:28:57.403360Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.7MB → 1.5MB (1.9x), 16 JPEGs deleted
2026-04-22T18:28:58.752838Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.9MB → 0.8MB (3.6x), 17 JPEGs deleted
2026-04-22T18:34:01.165384Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=41 elapsed=2.400307625s
2026-04-22T18:34:01.165480Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 41 eligible frames
2026-04-22T18:34:02.291139Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.7MB → 0.8MB (3.5x), 15 JPEGs deleted
2026-04-22T18:34:04.197399Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.2MB → 1.7MB (2.4x), 24 JPEGs deleted
2026-04-22T18:35:56.027919Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5884937538005636030, trigger=visual_change)
2026-04-22T18:37:55.284482Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-439807993867665328, trigger=visual_change)
2026-04-22T18:39:08.660187Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=22 elapsed=4.451587125s
2026-04-22T18:39:08.660278Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames
2026-04-22T18:39:09.493828Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.5MB → 0.5MB (3.1x), 10 JPEGs deleted
2026-04-22T18:39:10.349740Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.1MB → 0.5MB (4.3x), 10 JPEGs deleted
2026-04-22T18:43:06.355073Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3304493437592891639, trigger=click)
2026-04-22T18:43:23.219621Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6603898485603033537, trigger=click)
2026-04-22T18:44:11.899645Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=21 elapsed=1.53441375s
2026-04-22T18:44:11.900197Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames
2026-04-22T18:44:12.802039Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 1.1MB → 0.2MB (6.3x), 9 JPEGs deleted
2026-04-22T18:44:14.694466Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.1MB → 0.3MB (5.9x), 10 JPEGs deleted
2026-04-22T18:45:14.778135Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6664853592767636193, trigger=click)
2026-04-22T18:46:36.923697Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1791249548195440516, trigger=visual_change)
2026-04-22T18:49:18.625635Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=46 elapsed=3.900838541s
2026-04-22T18:49:18.625996Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 46 eligible frames
2026-04-22T18:49:19.640722Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 1.8MB → 0.2MB (10.4x), 15 JPEGs deleted
2026-04-22T18:49:23.038596Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 5.2MB → 2.1MB (2.4x), 29 JPEGs deleted
2026-04-22T18:50:34.997361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=visual_change)
2026-04-22T18:50:39.846829Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)
2026-04-22T18:50:43.731899Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)
2026-04-22T18:51:20.200945Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=visual_change)
2026-04-22T18:51:23.144927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)
2026-04-22T18:51:23.976040Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=click)
2026-04-22T18:51:27.176876Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)
2026-04-22T18:51:28.227317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=click)
2026-04-22T18:51:31.555085Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)
2026-04-22T18:51:32.274042Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=click)
2026-04-22T18:51:35.352114Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)
2026-04-22T18:51:37.306495Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=visual_change)
2026-04-22T18:52:02.049971Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=visual_change)
2026-04-22T18:52:09.690330Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=visual_change)
2026-04-22T18:52:11.530065Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)
2026-04-22T18:52:12.090300Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=click)
2026-04-22T18:52:22.885838Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6951480031607957362, trigger=visual_change)
2026-04-22T18:52:58.986955Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7031607293039132919, trigger=click)
2026-04-22T18:53:47.690375Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3992755350865402319, trigger=visual_change)
2026-04-22T18:54:25.328228Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=52 elapsed=2.277973417s
2026-04-22T18:54:25.328316Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 52 eligible frames
2026-04-22T18:54:26.661506Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 2.6MB → 0.2MB (11.0x), 22 JPEGs deleted
2026-04-22T18:54:28.982139Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 4.3MB → 1.1MB (3.8x), 28 JPEGs deleted
2026-04-22T18:54:44.142044Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3992755350865402319, trigger=visual_change)
2026-04-22T18:55:01.465747Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2556650532703180759, trigger=click)
2026-04-22T18:55:02.524314Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2556650532703180759, trigger=click)
2026-04-22T18:55:35.312048Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3149441378543601087, trigger=visual_change)
2026-04-22T18:55:55.086761Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3149441378543601087, trigger=click)
2026-04-22T18:55:56.919853Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3149441378543601087, trigger=visual_change)
2026-04-22T18:56:05.807170Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7595806992634662117, trigger=visual_change)
2026-04-22T18:56:12.303927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7595806992634662117, trigger=visual_change)
2026-04-22T18:56:58.093656Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2070714172482892625, trigger=visual_change)
2026-04-22T18:57:00.459010Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2070714172482892625, trigger=visual_change)
2026-04-22T18:57:03.809894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2070714172482892625, trigger=visual_change)
2026-04-22T18:58:04.259354Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7284778144726625723, trigger=visual_change)
2026-04-22T18:58:07.302007Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7284778144726625723, trigger=visual_change)
2026-04-22T18:58:10.443744Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7284778144726625723, trigger=visual_change)
2026-04-22T18:58:40.416893Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6313361147559934277, trigger=click)
2026-04-22T18:58:59.229391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)
2026-04-22T18:59:10.795801Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)
2026-04-22T18:59:15.904155Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)
2026-04-22T18:59:30.308258Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=46 elapsed=1.303054333s
2026-04-22T18:59:30.308485Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 46 eligible frames
2026-04-22T18:59:31.535859Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 2.4MB → 0.3MB (7.5x), 20 JPEGs deleted
2026-04-22T18:59:33.536283Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 3.8MB → 1.3MB (3.0x), 24 JPEGs deleted
2026-04-22T18:59:39.897203Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)
2026-04-22T18:59:43.593017Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-71227342056343983, trigger=visual_change)
2026-04-22T18:59:55.722135Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)
2026-04-22T19:00:00.394304Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)
2026-04-22T19:00:27.869871Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2710856207947507007, trigger=visual_change)
2026-04-22T19:01:54.992910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6986338393283794423, trigger=visual_change)
2026-04-22T19:02:13.568012Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6986338393283794423, trigger=visual_change)
2026-04-22T19:02:16.092275Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6986338393283794423, trigger=visual_change)
2026-04-22T19:03:04.479425Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7704375629034044835, trigger=visual_change)
2026-04-22T19:03:35.287830Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2375149456869027114, trigger=visual_change)
2026-04-22T19:03:41.021583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2375149456869027114, trigger=visual_change)
2026-04-22T19:03:48.485601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6234474271212752005, trigger=visual_change)
2026-04-22T19:04:35.737525Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=82 elapsed=2.188209209s
2026-04-22T19:04:35.737670Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 82 eligible frames
2026-04-22T19:04:38.209886Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3880005638520398709, trigger=click)
2026-04-22T19:04:38.478674Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 4.8MB → 1.0MB (4.9x), 39 JPEGs deleted
2026-04-22T19:04:42.074270Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 41 frames, 7.5MB → 3.6MB (2.1x), 41 JPEGs deleted
2026-04-22T19:04:55.094599Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-635344842894947589, trigger=visual_change)
2026-04-22T19:05:20.336216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)
2026-04-22T19:05:54.388487Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)
2026-04-22T19:05:57.299176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)
2026-04-22T19:05:59.949506Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)
2026-04-22T19:06:25.531964Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5957740084085463727, trigger=visual_change)
2026-04-22T19:06:50.090567Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6422724880219484653, trigger=visual_change)
2026-04-22T19:07:22.963169Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2531925023067266044, trigger=click)
2026-04-22T19:07:24.045648Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2531925023067266044, trigger=click)
2026-04-22T19:07:27.834546Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2085088366939909076, trigger=click)
2026-04-22T19:07:28.381522Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2085088366939909076, trigger=click)
2026-04-22T19:08:34.175493Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3061313113729352595, trigger=click)
2026-04-22T19:09:42.454765Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 91 eligible frames
2026-04-22T19:09:45.816541Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 5.7MB → 2.4MB (2.3x), 32 JPEGs deleted
2026-04-22T19:09:50.140975Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 57 frames, 7.8MB → 2.3MB (3.4x), 57 JPEGs deleted
2026-04-22T19:10:13.441594Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=click)
2026-04-22T19:10:18.830768Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)
2026-04-22T19:10:21.842287Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)
2026-04-22T19:10:28.187487Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5292492680570276501, trigger=click)
^C2026-04-22T19:10:32.957264Z INFO screenpipe: received ctrl+c, initiating shutdown
2026-04-22T19:10:32.958125Z INFO screenpipe: stopping UI event capture
2026-04-22T19:10:32.958201Z INFO screenpipe: received shutdown signal for VisionManager
2026-04-22T19:10:32.958212Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker shutting down
2026-04-22T19:10:32.958217Z INFO screenpipe_engine::meeting_detector: meeting v2: shutdown received, exiting detection loop
2026-04-22T19:10:32.958646Z INFO screenpipe_engine::vision_manager::manager: Shutting down VisionManager
2026-04-22T19:10:32.958661Z INFO screenpipe_engine::vision_manager::manager: Stopping VisionManager
2026-04-22T19:10:32.958669Z INFO screenpipe_engine::vision_manager::manager: Stopping vision recording for monitor 2
2026-04-22T19:10:32.958804Z INFO screenpipe_engine::vision_manager::manager: Stopping vision recording for monitor 1
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ 2026-04-22T19:10:33.158623Z INFO screenpipe_engine::ui_recorder: UI recording session ended: e7729066-2ab4-4bf0-9d48-0c9790a4ee79
2026-04-22T19:10:33.159581Z INFO screenpipe: shutdown complete
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-stop
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ st-start
zsh: command not found: st-start
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-start
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-04-23T09:12:59.282987Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store
checking permissions...
screen recording: ok
accessibility: ok
2026-04-23T09:12:59.350556Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-04-23T09:13:00.537715Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-04-23T09:13:00.539247Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-04-23T09:13:00.539704Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-04-23T09:13:00.580622Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-04-23T09:13:00.580688Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-04-23T09:13:00.580873Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-04-23T09:13:00.581042Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-04-23T09:13:00.581050Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-04-23T09:13:00.580937Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-04-23T09:13:00.581202Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-04-23T09:13:00.599105Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))
2026-04-23T09:13:00.607481Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-04-23T09:13:00.608248Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-04-23T09:13:00.608416Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-04-23T09:13:00.608706Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-04-23T09:13:00.608849Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-04-23T09:13:00.609337Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary
2026-04-23T09:13:00.609353Z INFO screenpipe_core::pipes: loaded 6 pipes from "/Users/lukas/.screenpipe/pipes"
_
__________________ ___ ____ ____ (_____ ___
/ ___/ ___/ ___/ _ \/ _ \/ __ \ / __ \/ / __ \/ _ \
(__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/
/____/\___/_/ \___/\___/_/ /_/ / .___/_/ .___/\___/
/_/ /_/
power AI by everything you've seen, said or heard
open source | runs locally | developer friendly
┌────────────────────────┬────────────────────────────────────┐
│ setting │ value │
├────────────────────────┼────────────────────────────────────┤
│ audio chunk duration │ 30 seconds │
│ port │ 3030 │
│ audio disabled │ true │
│ vision disabled │ false │
│ pause on DRM content │ false │
│ audio engine │ Parakeet │
│ vad engine │ Silero │
│ data directory │ /Users/lukas/.screenpipe │
│ debug mode │ false │
│ telemetry │ true │
│ use pii removal │ true │
│ use all monitors │ true │
│ ignored windows │ ["Boosteroid"] │
│ included windows │ [] │
│ cloud sync │ disabled │
│ auto-destruct pid │ 0 │
│ deepgram key │ not set │
│ api auth │ enabled │
2026-04-23T09:13:00.610149Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)
2026-04-23T09:13:00.614023Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh
│ encrypt secrets │ disabled │
│ retention days │ 14 │
├────────────────────────┼────────────────────────────────────┤
│ languages │ │
│ │ all languages │
├────────────────────────┼────────────────────────────────────┤
│ monitors │ │
│ │ id: 1 │
│ │ id: 2 │
├────────────────────────┼────────────────────────────────────┤
│ audio devices │ │
│ │ disabled │
└────────────────────────┴────────────────────────────────────┘
you are using local processing. all your data stays on your computer.
warning: telemetry is enabled. only error-level data will be sent.
to disable, use the --disable-telemetry flag.
check latest changes here: https://github.com/screenpipe/screenpipe/releases
2026-04-23T09:13:00.626925Z INFO screenpipe: starting UI event capture
2026-04-23T09:13:00.644081Z INFO screenpipe_engine::ui_recorder: Starting UI event capture
2026-04-23T09:13:00.659604Z INFO screenpipe_engine::ui_recorder: UI recording session started: 64e213bd-3690-487f-90be-4e8348040416
2026-04-23T09:13:00.659568Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)
2026-04-23T09:13:00.659937Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-22 06:13:00.659935 UTC to 2026-04-23 06:13:00.659935 UTC)
2026-04-23T09:13:00.660681Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)
2026-04-23T09:13:00.671031Z INFO screenpipe_engine::server: Server listening on [IP_ADDRESS]:3030
2026-04-23T09:13:00.676357Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030
2026-04-23T09:13:02.822346Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)
2026-04-23T09:13:02.822390Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)
2026-04-23T09:13:02.822429Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)
2026-04-23T09:13:03.612915Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-04-23T09:13:03.612969Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-04-23T09:13:03.612981Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)
2026-04-23T09:13:03.612988Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)
2026-04-23T09:13:03.613032Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-04-23T09:13:04.172201Z WARN sqlx::query: summary="SELECT f.id, f.timestamp, f.offset_index, …" db.statement="\n\nSELECT\n f.id,\n f.timestamp,\n f.offset_index,\n COALESCE(\n SUBSTR(f.full_text, 1, 200),\n SUBSTR(f.accessibility_text, 1, 200),\n (\n SELECT\n SUBSTR(ot.text, 1, 200)\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as text,\n COALESCE(\n f.app_name,\n (\n SELECT\n ot.app_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as app_name,\n COALESCE(\n f.window_name,\n (\n SELECT\n ot.window_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as window_name,\n COALESCE(vc.device_name, f.device_name) as screen_device,\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\n COALESCE(vc.fps, 0.033) as chunk_fps,\n f.browser_url,\n f.machine_id\nFROM\n frames f\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\nWHERE\n f.timestamp >= ?1\n AND f.timestamp <= ?2\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\nORDER BY\n f.timestamp DESC,\n f.offset_index DESC\nLIMIT\n 10000\n" rows_affected=0 rows_returned=4305 elapsed=3.511492208s
2026-04-23T09:13:04.183200Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 4304 frame entries, coverage from 2026-04-22 06:13:00.659935 UTC
2026-04-23T09:13:07.349282Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)
2026-04-23T09:13:07.830685Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=72776, dur=70ms
2026-04-23T09:13:08.836958Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)
2026-04-23T09:13:09.378786Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=72777, dur=124ms
2026-04-23T09:13:09.380863Z INFO sck_rs::stream_manager: invalidated persistent stream for display 2
2026-04-23T09:13:32.742255Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)
2026-04-23T09:14:01.764079Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4702465002163205464, trigger=click)
2026-04-23T09:14:04.223149Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4702465002163205464, trigger=visual_change)
2026-04-23T09:14:06.953796Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=147 elapsed=6.3719465s
2026-04-23T09:14:06.954006Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 147 eligible frames
2026-04-23T09:14:12.566935Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 70 frames, 10.3MB → 2.7MB (3.8x), 70 JPEGs deleted
2026-04-23T09:14:17.358704Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 75 frames, 9.6MB → 3.0MB (3.2x), 75 JPEGs deleted
2026-04-23T09:15:47.544198Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3660881845293713510, trigger=visual_change)
2026-04-23T09:15:50.997492Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3660881845293713510, trigger=click)
2026-04-23T09:15:51.600725Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3660881845293713510, trigger=click)
2026-04-23T09:15:55.723800Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3660881845293713510, trigger=click)
2026-04-23T09:15:56.933987Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3660881845293713510, trigger=visual_change)
2026-04-23T09:15:59.012409Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3660881845293713510, trigger=visual_change)
2026-04-23T09:16:49.882963Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3759145274440377841, trigger=visual_change)
2026-04-23T09:16:51.405936Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3759145274440377841, trigger=click)
2026-04-23T09:16:52.823011Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3759145274440377841, trigger=click)
2026-04-23T09:16:54.220304Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3759145274440377841, trigger=click)
2026-04-23T09:16:54.887021Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3759145274440377841, trigger=click)
2026-04-23T09:16:58.589203Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3759145274440377841, trigger=visual_change)
2026-04-23T09:18:05.879649Z WARN screenpipe_db::db: wal checkpoint: busy (could not truncate), 5054 pages in WAL
2026-04-23T09:18:05.879619Z WARN sqlx::query: summary="PRAGMA wal_checkpoint(TRUNCATE)" db.statement="" rows_affected=0 rows_returned=1 elapsed=5.220339167s
2026-04-23T09:19:24.740122Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=2 elapsed=7.381061833s
2026-04-23T09:19:24.740850Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
2026-04-23T09:19:36.514406Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2079049776495123607, trigger=click)
2026-04-23T09:24:26.477446Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=11 elapsed=1.729545666s
2026-04-23T09:24:26.477540Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 11 eligible frames
2026-04-23T09:24:27.316363Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 5 frames, 1.4MB → 1.4MB (1.0x), 5 JPEGs deleted
2026-04-23T09:24:27.966623Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 6 frames, 0.6MB → 0.2MB (2.7x), 6 JPEGs deleted
2026-04-23T09:24:42.606557Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:26:03.160247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7786631749263421517, trigger=click)
2026-04-23T09:27:26.154494Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:27:34.433056Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:28:06.713361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:28:33.527151Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5209591986308457575, trigger=click)
2026-04-23T09:28:34.249353Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5209591986308457575, trigger=click)
2026-04-23T09:28:36.237199Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5209591986308457575, trigger=click)
2026-04-23T09:28:42.253183Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8747303508868961364, trigger=click)
2026-04-23T09:28:48.282686Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:28:50.613134Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:28:51.314522Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:29:31.961577Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=67 elapsed=3.996031s
2026-04-23T09:29:31.961670Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 67 eligible frames
2026-04-23T09:29:34.332658Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 5.8MB → 2.1MB (2.8x), 29 JPEGs deleted
2026-04-23T09:29:38.223511Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 7.4MB → 3.8MB (2.0x), 36 JPEGs deleted
2026-04-23T09:30:34.230785Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:30:39.665086Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:30:40.299751Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:30:45.663893Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:30:51.622228Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:30:52.321014Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:31:15.021588Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:31:15.691601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:31:17.946692Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:31:18.653547Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:32:17.960360Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:32:24.051490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:32:29.442560Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:32:30.131038Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:32:32.452540Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:32:36.585069Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:32:39.322258Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:33:18.072421Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:33:18.766929Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:33:22.098409Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:33:22.782084Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:34:27.313290Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:34:38.542722Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 89 eligible frames
2026-04-23T09:34:41.684595Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 38 frames, 5.6MB → 0.7MB (7.5x), 38 JPEGs deleted
2026-04-23T09:34:44.933963Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 10.6MB → 3.8MB (2.8x), 49 JPEGs deleted
2026-04-23T09:37:57.963204Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:37:58.697604Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:38:02.124214Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:38:53.190171Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:38:59.279885Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:39:02.308536Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:39:36.189861Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:39:49.122120Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=50 elapsed=4.188474542s
2026-04-23T09:39:49.122232Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 50 eligible frames
2026-04-23T09:39:51.115025Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 2.9MB → 0.3MB (9.4x), 24 JPEGs deleted
2026-04-23T09:39:53.096763Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 5.0MB → 2.3MB (2.2x), 24 JPEGs deleted
2026-04-23T09:40:57.095660Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:40:58.430714Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:41:01.130926Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:41:01.840278Z INFO screenpipe_engine::event_d...
|
NULL
|
|
74069
|
1838
|
58
|
2026-04-23T09:01:11.451071+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-23/1776 /Users/lukas/.screenpipe/data/data/2026-04-23/1776934871451_m1.jpg...
|
iTerm2
|
screenpipe"
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
\n device_name,\n timestamp\nFROM\n frames\nWHE \n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=44 elapsed=1.833842375s
2026-04-22T18:03:16.198578Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 44 eligible frames
2026-04-22T18:03:18.139382Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 2.0MB → 0.1MB (16.1x), 21 JPEGs deleted
2026-04-22T18:03:19.618803Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.5MB → 1.5MB (2.4x), 21 JPEGs deleted
2026-04-22T18:06:58.395218Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7639883349033148478, trigger=click)
2026-04-22T18:06:58.897470Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7639883349033148478, trigger=click)
2026-04-22T18:07:42.474566Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=607162597309748765, trigger=click)
2026-04-22T18:08:27.382204Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=28 elapsed=7.750844334s
2026-04-22T18:08:27.382491Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames
2026-04-22T18:08:29.032220Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.2MB → 0.1MB (10.4x), 13 JPEGs deleted
2026-04-22T18:08:30.573314Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.7MB → 0.6MB (4.2x), 13 JPEGs deleted
2026-04-22T18:13:38.096494Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=20 elapsed=6.760223375s
2026-04-22T18:13:38.099584Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 20 eligible frames
2026-04-22T18:13:38.806766Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 0.8MB → 0.1MB (7.4x), 9 JPEGs deleted
2026-04-22T18:13:39.606462Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 1.9MB → 0.5MB (3.8x), 9 JPEGs deleted
2026-04-22T18:18:41.943065Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=45 elapsed=2.325026709s
2026-04-22T18:18:41.943417Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 45 eligible frames
2026-04-22T18:18:43.289962Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 2.0MB → 0.1MB (16.7x), 21 JPEGs deleted
2026-04-22T18:18:45.689764Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 4.4MB → 1.3MB (3.4x), 22 JPEGs deleted
2026-04-22T18:18:54.020334Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6726632078176380015, trigger=click)
2026-04-22T18:18:54.540347Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6726632078176380015, trigger=click)
2026-04-22T18:18:55.737423Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6726632078176380015, trigger=click)
2026-04-22T18:18:56.477423Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6726632078176380015, trigger=click)
2026-04-22T18:20:28.510789Z WARN sqlx::query: summary="PRAGMA wal_checkpoint(TRUNCATE)" db.statement="" rows_affected=0 rows_returned=1 elapsed=5.273706125s
2026-04-22T18:20:28.511954Z WARN screenpipe_db::db: wal checkpoint: busy (could not truncate), 3177 pages in WAL
2026-04-22T18:20:28.562400Z WARN sqlx::query: summary="BEGIN IMMEDIATE" db.statement="" rows_affected=1 rows_returned=0 elapsed=2.291890708s
2026-04-22T18:23:52.302822Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=31 elapsed=6.325649833s
2026-04-22T18:23:52.304330Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 31 eligible frames
2026-04-22T18:23:53.163590Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 1.1MB → 0.1MB (9.9x), 12 JPEGs deleted
2026-04-22T18:23:55.277698Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.4MB → 1.6MB (2.2x), 17 JPEGs deleted
2026-04-22T18:28:56.007322Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 35 eligible frames
2026-04-22T18:28:57.403360Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.7MB → 1.5MB (1.9x), 16 JPEGs deleted
2026-04-22T18:28:58.752838Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.9MB → 0.8MB (3.6x), 17 JPEGs deleted
2026-04-22T18:34:01.165384Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=41 elapsed=2.400307625s
2026-04-22T18:34:01.165480Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 41 eligible frames
2026-04-22T18:34:02.291139Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.7MB → 0.8MB (3.5x), 15 JPEGs deleted
2026-04-22T18:34:04.197399Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.2MB → 1.7MB (2.4x), 24 JPEGs deleted
2026-04-22T18:35:56.027919Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5884937538005636030, trigger=visual_change)
2026-04-22T18:37:55.284482Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-439807993867665328, trigger=visual_change)
2026-04-22T18:39:08.660187Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=22 elapsed=4.451587125s
2026-04-22T18:39:08.660278Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames
2026-04-22T18:39:09.493828Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.5MB → 0.5MB (3.1x), 10 JPEGs deleted
2026-04-22T18:39:10.349740Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.1MB → 0.5MB (4.3x), 10 JPEGs deleted
2026-04-22T18:43:06.355073Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3304493437592891639, trigger=click)
2026-04-22T18:43:23.219621Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6603898485603033537, trigger=click)
2026-04-22T18:44:11.899645Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=21 elapsed=1.53441375s
2026-04-22T18:44:11.900197Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames
2026-04-22T18:44:12.802039Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 1.1MB → 0.2MB (6.3x), 9 JPEGs deleted
2026-04-22T18:44:14.694466Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.1MB → 0.3MB (5.9x), 10 JPEGs deleted
2026-04-22T18:45:14.778135Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6664853592767636193, trigger=click)
2026-04-22T18:46:36.923697Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1791249548195440516, trigger=visual_change)
2026-04-22T18:49:18.625635Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=46 elapsed=3.900838541s
2026-04-22T18:49:18.625996Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 46 eligible frames
2026-04-22T18:49:19.640722Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 1.8MB → 0.2MB (10.4x), 15 JPEGs deleted
2026-04-22T18:49:23.038596Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 5.2MB → 2.1MB (2.4x), 29 JPEGs deleted
2026-04-22T18:50:34.997361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=visual_change)
2026-04-22T18:50:39.846829Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)
2026-04-22T18:50:43.731899Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)
2026-04-22T18:51:20.200945Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=visual_change)
2026-04-22T18:51:23.144927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)
2026-04-22T18:51:23.976040Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=click)
2026-04-22T18:51:27.176876Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)
2026-04-22T18:51:28.227317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=click)
2026-04-22T18:51:31.555085Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)
2026-04-22T18:51:32.274042Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=click)
2026-04-22T18:51:35.352114Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)
2026-04-22T18:51:37.306495Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=visual_change)
2026-04-22T18:52:02.049971Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=visual_change)
2026-04-22T18:52:09.690330Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=visual_change)
2026-04-22T18:52:11.530065Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)
2026-04-22T18:52:12.090300Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=click)
2026-04-22T18:52:22.885838Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6951480031607957362, trigger=visual_change)
2026-04-22T18:52:58.986955Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7031607293039132919, trigger=click)
2026-04-22T18:53:47.690375Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3992755350865402319, trigger=visual_change)
2026-04-22T18:54:25.328228Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=52 elapsed=2.277973417s
2026-04-22T18:54:25.328316Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 52 eligible frames
2026-04-22T18:54:26.661506Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 2.6MB → 0.2MB (11.0x), 22 JPEGs deleted
2026-04-22T18:54:28.982139Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 4.3MB → 1.1MB (3.8x), 28 JPEGs deleted
2026-04-22T18:54:44.142044Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3992755350865402319, trigger=visual_change)
2026-04-22T18:55:01.465747Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2556650532703180759, trigger=click)
2026-04-22T18:55:02.524314Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2556650532703180759, trigger=click)
2026-04-22T18:55:35.312048Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3149441378543601087, trigger=visual_change)
2026-04-22T18:55:55.086761Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3149441378543601087, trigger=click)
2026-04-22T18:55:56.919853Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3149441378543601087, trigger=visual_change)
2026-04-22T18:56:05.807170Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7595806992634662117, trigger=visual_change)
2026-04-22T18:56:12.303927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7595806992634662117, trigger=visual_change)
2026-04-22T18:56:58.093656Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2070714172482892625, trigger=visual_change)
2026-04-22T18:57:00.459010Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2070714172482892625, trigger=visual_change)
2026-04-22T18:57:03.809894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2070714172482892625, trigger=visual_change)
2026-04-22T18:58:04.259354Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7284778144726625723, trigger=visual_change)
2026-04-22T18:58:07.302007Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7284778144726625723, trigger=visual_change)
2026-04-22T18:58:10.443744Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7284778144726625723, trigger=visual_change)
2026-04-22T18:58:40.416893Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6313361147559934277, trigger=click)
2026-04-22T18:58:59.229391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)
2026-04-22T18:59:10.795801Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)
2026-04-22T18:59:15.904155Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)
2026-04-22T18:59:30.308258Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=46 elapsed=1.303054333s
2026-04-22T18:59:30.308485Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 46 eligible frames
2026-04-22T18:59:31.535859Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 2.4MB → 0.3MB (7.5x), 20 JPEGs deleted
2026-04-22T18:59:33.536283Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 3.8MB → 1.3MB (3.0x), 24 JPEGs deleted
2026-04-22T18:59:39.897203Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)
2026-04-22T18:59:43.593017Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-71227342056343983, trigger=visual_change)
2026-04-22T18:59:55.722135Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)
2026-04-22T19:00:00.394304Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)
2026-04-22T19:00:27.869871Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2710856207947507007, trigger=visual_change)
2026-04-22T19:01:54.992910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6986338393283794423, trigger=visual_change)
2026-04-22T19:02:13.568012Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6986338393283794423, trigger=visual_change)
2026-04-22T19:02:16.092275Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6986338393283794423, trigger=visual_change)
2026-04-22T19:03:04.479425Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7704375629034044835, trigger=visual_change)
2026-04-22T19:03:35.287830Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2375149456869027114, trigger=visual_change)
2026-04-22T19:03:41.021583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2375149456869027114, trigger=visual_change)
2026-04-22T19:03:48.485601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6234474271212752005, trigger=visual_change)
2026-04-22T19:04:35.737525Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=82 elapsed=2.188209209s
2026-04-22T19:04:35.737670Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 82 eligible frames
2026-04-22T19:04:38.209886Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3880005638520398709, trigger=click)
2026-04-22T19:04:38.478674Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 4.8MB → 1.0MB (4.9x), 39 JPEGs deleted
2026-04-22T19:04:42.074270Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 41 frames, 7.5MB → 3.6MB (2.1x), 41 JPEGs deleted
2026-04-22T19:04:55.094599Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-635344842894947589, trigger=visual_change)
2026-04-22T19:05:20.336216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)
2026-04-22T19:05:54.388487Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)
2026-04-22T19:05:57.299176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)
2026-04-22T19:05:59.949506Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)
2026-04-22T19:06:25.531964Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5957740084085463727, trigger=visual_change)
2026-04-22T19:06:50.090567Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6422724880219484653, trigger=visual_change)
2026-04-22T19:07:22.963169Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2531925023067266044, trigger=click)
2026-04-22T19:07:24.045648Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2531925023067266044, trigger=click)
2026-04-22T19:07:27.834546Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2085088366939909076, trigger=click)
2026-04-22T19:07:28.381522Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2085088366939909076, trigger=click)
2026-04-22T19:08:34.175493Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3061313113729352595, trigger=click)
2026-04-22T19:09:42.454765Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 91 eligible frames
2026-04-22T19:09:45.816541Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 5.7MB → 2.4MB (2.3x), 32 JPEGs deleted
2026-04-22T19:09:50.140975Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 57 frames, 7.8MB → 2.3MB (3.4x), 57 JPEGs deleted
2026-04-22T19:10:13.441594Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=click)
2026-04-22T19:10:18.830768Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)
2026-04-22T19:10:21.842287Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)
2026-04-22T19:10:28.187487Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5292492680570276501, trigger=click)
^C2026-04-22T19:10:32.957264Z INFO screenpipe: received ctrl+c, initiating shutdown
2026-04-22T19:10:32.958125Z INFO screenpipe: stopping UI event capture
2026-04-22T19:10:32.958201Z INFO screenpipe: received shutdown signal for VisionManager
2026-04-22T19:10:32.958212Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker shutting down
2026-04-22T19:10:32.958217Z INFO screenpipe_engine::meeting_detector: meeting v2: shutdown received, exiting detection loop
2026-04-22T19:10:32.958646Z INFO screenpipe_engine::vision_manager::manager: Shutting down VisionManager
2026-04-22T19:10:32.958661Z INFO screenpipe_engine::vision_manager::manager: Stopping VisionManager
2026-04-22T19:10:32.958669Z INFO screenpipe_engine::vision_manager::manager: Stopping vision recording for monitor 2
2026-04-22T19:10:32.958804Z INFO screenpipe_engine::vision_manager::manager: Stopping vision recording for monitor 1
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ 2026-04-22T19:10:33.158623Z INFO screenpipe_engine::ui_recorder: UI recording session ended: e7729066-2ab4-4bf0-9d48-0c9790a4ee79
2026-04-22T19:10:33.159581Z INFO screenpipe: shutdown complete
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-stop
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ st-start
zsh: command not found: st-start
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-start
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-04-23T09:12:59.282987Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store
checking permissions...
screen recording: ok
accessibility: ok
2026-04-23T09:12:59.350556Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-04-23T09:13:00.537715Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-04-23T09:13:00.539247Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-04-23T09:13:00.539704Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-04-23T09:13:00.580622Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-04-23T09:13:00.580688Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-04-23T09:13:00.580873Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-04-23T09:13:00.581042Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-04-23T09:13:00.581050Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-04-23T09:13:00.580937Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-04-23T09:13:00.581202Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-04-23T09:13:00.599105Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))
2026-04-23T09:13:00.607481Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-04-23T09:13:00.608248Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-04-23T09:13:00.608416Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-04-23T09:13:00.608706Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-04-23T09:13:00.608849Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-04-23T09:13:00.609337Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary
2026-04-23T09:13:00.609353Z INFO screenpipe_core::pipes: loaded 6 pipes from "/Users/lukas/.screenpipe/pipes"
_
__________________ ___ ____ ____ (_____ ___
/ ___/ ___/ ___/ _ \/ _ \/ __ \ / __ \/ / __ \/ _ \
(__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/
/____/\___/_/ \___/\___/_/ /_/ / .___/_/ .___/\___/
/_/ /_/
power AI by everything you've seen, said or heard
open source | runs locally | developer friendly
┌────────────────────────┬────────────────────────────────────┐
│ setting │ value │
├────────────────────────┼────────────────────────────────────┤
│ audio chunk duration │ 30 seconds │
│ port │ 3030 │
│ audio disabled │ true │
│ vision disabled │ false │
│ pause on DRM content │ false │
│ audio engine │ Parakeet │
│ vad engine │ Silero │
│ data directory │ /Users/lukas/.screenpipe │
│ debug mode │ false │
│ telemetry │ true │
│ use pii removal │ true │
│ use all monitors │ true │
│ ignored windows │ ["Boosteroid"] │
│ included windows │ [] │
│ cloud sync │ disabled │
│ auto-destruct pid │ 0 │
│ deepgram key │ not set │
│ api auth │ enabled │
2026-04-23T09:13:00.610149Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)
2026-04-23T09:13:00.614023Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh
│ encrypt secrets │ disabled │
│ retention days │ 14 │
├────────────────────────┼────────────────────────────────────┤
│ languages │ │
│ │ all languages │
├────────────────────────┼────────────────────────────────────┤
│ monitors │ │
│ │ id: 1 │
│ │ id: 2 │
├────────────────────────┼────────────────────────────────────┤
│ audio devices │ │
│ │ disabled │
└────────────────────────┴────────────────────────────────────┘
you are using local processing. all your data stays on your computer.
warning: telemetry is enabled. only error-level data will be sent.
to disable, use the --disable-telemetry flag.
check latest changes here: https://github.com/screenpipe/screenpipe/releases
2026-04-23T09:13:00.626925Z INFO screenpipe: starting UI event capture
2026-04-23T09:13:00.644081Z INFO screenpipe_engine::ui_recorder: Starting UI event capture
2026-04-23T09:13:00.659604Z INFO screenpipe_engine::ui_recorder: UI recording session started: 64e213bd-3690-487f-90be-4e8348040416
2026-04-23T09:13:00.659568Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)
2026-04-23T09:13:00.659937Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-22 06:13:00.659935 UTC to 2026-04-23 06:13:00.659935 UTC)
2026-04-23T09:13:00.660681Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)
2026-04-23T09:13:00.671031Z INFO screenpipe_engine::server: Server listening on [IP_ADDRESS]:3030
2026-04-23T09:13:00.676357Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030
2026-04-23T09:13:02.822346Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)
2026-04-23T09:13:02.822390Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)
2026-04-23T09:13:02.822429Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)
2026-04-23T09:13:03.612915Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-04-23T09:13:03.612969Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-04-23T09:13:03.612981Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)
2026-04-23T09:13:03.612988Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)
2026-04-23T09:13:03.613032Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-04-23T09:13:04.172201Z WARN sqlx::query: summary="SELECT f.id, f.timestamp, f.offset_index, …" db.statement="\n\nSELECT\n f.id,\n f.timestamp,\n f.offset_index,\n COALESCE(\n SUBSTR(f.full_text, 1, 200),\n SUBSTR(f.accessibility_text, 1, 200),\n (\n SELECT\n SUBSTR(ot.text, 1, 200)\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as text,\n COALESCE(\n f.app_name,\n (\n SELECT\n ot.app_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as app_name,\n COALESCE(\n f.window_name,\n (\n SELECT\n ot.window_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as window_name,\n COALESCE(vc.device_name, f.device_name) as screen_device,\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\n COALESCE(vc.fps, 0.033) as chunk_fps,\n f.browser_url,\n f.machine_id\nFROM\n frames f\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\nWHERE\n f.timestamp >= ?1\n AND f.timestamp <= ?2\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\nORDER BY\n f.timestamp DESC,\n f.offset_index DESC\nLIMIT\n 10000\n" rows_affected=0 rows_returned=4305 elapsed=3.511492208s
2026-04-23T09:13:04.183200Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 4304 frame entries, coverage from 2026-04-22 06:13:00.659935 UTC
2026-04-23T09:13:07.349282Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)
2026-04-23T09:13:07.830685Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=72776, dur=70ms
2026-04-23T09:13:08.836958Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)
2026-04-23T09:13:09.378786Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=72777, dur=124ms
2026-04-23T09:13:09.380863Z INFO sck_rs::stream_manager: invalidated persistent stream for display 2
2026-04-23T09:13:32.742255Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)
2026-04-23T09:14:01.764079Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4702465002163205464, trigger=click)
2026-04-23T09:14:04.223149Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4702465002163205464, trigger=visual_change)
2026-04-23T09:14:06.953796Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=147 elapsed=6.3719465s
2026-04-23T09:14:06.954006Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 147 eligible frames
2026-04-23T09:14:12.566935Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 70 frames, 10.3MB → 2.7MB (3.8x), 70 JPEGs deleted
2026-04-23T09:14:17.358704Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 75 frames, 9.6MB → 3.0MB (3.2x), 75 JPEGs deleted
2026-04-23T09:15:47.544198Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3660881845293713510, trigger=visual_change)
2026-04-23T09:15:50.997492Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3660881845293713510, trigger=click)
2026-04-23T09:15:51.600725Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3660881845293713510, trigger=click)
2026-04-23T09:15:55.723800Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3660881845293713510, trigger=click)
2026-04-23T09:15:56.933987Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3660881845293713510, trigger=visual_change)
2026-04-23T09:15:59.012409Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3660881845293713510, trigger=visual_change)
2026-04-23T09:16:49.882963Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3759145274440377841, trigger=visual_change)
2026-04-23T09:16:51.405936Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3759145274440377841, trigger=click)
2026-04-23T09:16:52.823011Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3759145274440377841, trigger=click)
2026-04-23T09:16:54.220304Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3759145274440377841, trigger=click)
2026-04-23T09:16:54.887021Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3759145274440377841, trigger=click)
2026-04-23T09:16:58.589203Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3759145274440377841, trigger=visual_change)
2026-04-23T09:18:05.879649Z WARN screenpipe_db::db: wal checkpoint: busy (could not truncate), 5054 pages in WAL
2026-04-23T09:18:05.879619Z WARN sqlx::query: summary="PRAGMA wal_checkpoint(TRUNCATE)" db.statement="" rows_affected=0 rows_returned=1 elapsed=5.220339167s
2026-04-23T09:19:24.740122Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=2 elapsed=7.381061833s
2026-04-23T09:19:24.740850Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
2026-04-23T09:19:36.514406Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2079049776495123607, trigger=click)
2026-04-23T09:24:26.477446Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=11 elapsed=1.729545666s
2026-04-23T09:24:26.477540Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 11 eligible frames
2026-04-23T09:24:27.316363Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 5 frames, 1.4MB → 1.4MB (1.0x), 5 JPEGs deleted
2026-04-23T09:24:27.966623Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 6 frames, 0.6MB → 0.2MB (2.7x), 6 JPEGs deleted
2026-04-23T09:24:42.606557Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:26:03.160247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7786631749263421517, trigger=click)
2026-04-23T09:27:26.154494Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:27:34.433056Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:28:06.713361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:28:33.527151Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5209591986308457575, trigger=click)
2026-04-23T09:28:34.249353Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5209591986308457575, trigger=click)
2026-04-23T09:28:36.237199Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5209591986308457575, trigger=click)
2026-04-23T09:28:42.253183Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8747303508868961364, trigger=click)
2026-04-23T09:28:48.282686Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:28:50.613134Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:28:51.314522Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:29:31.961577Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=67 elapsed=3.996031s
2026-04-23T09:29:31.961670Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 67 eligible frames
2026-04-23T09:29:34.332658Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 5.8MB → 2.1MB (2.8x), 29 JPEGs deleted
2026-04-23T09:29:38.223511Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 7.4MB → 3.8MB (2.0x), 36 JPEGs deleted
2026-04-23T09:30:34.230785Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:30:39.665086Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:30:40.299751Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:30:45.663893Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:30:51.622228Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:30:52.321014Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:31:15.021588Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:31:15.691601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:31:17.946692Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:31:18.653547Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:32:17.960360Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:32:24.051490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:32:29.442560Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:32:30.131038Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:32:32.452540Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:32:36.585069Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:32:39.322258Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:33:18.072421Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:33:18.766929Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:33:22.098409Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:33:22.782084Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:34:27.313290Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:34:38.542722Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 89 eligible frames
2026-04-23T09:34:41.684595Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 38 frames, 5.6MB → 0.7MB (7.5x), 38 JPEGs deleted
2026-04-23T09:34:44.933963Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 10.6MB → 3.8MB (2.8x), 49 JPEGs deleted
2026-04-23T09:37:57.963204Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:37:58.697604Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:38:02.124214Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:38:53.190171Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:38:59.279885Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:39:02.308536Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:39:36.189861Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:39:49.122120Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=50 elapsed=4.188474542s
2026-04-23T09:39:49.122232Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 50 eligible frames
2026-04-23T09:39:51.115025Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 2.9MB → 0.3MB (9.4x), 24 JPEGs deleted
2026-04-23T09:39:53.096763Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 5.0MB → 2.3MB (2.2x), 24 JPEGs deleted
2026-04-23T09:40:57.095660Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:40:58.430714Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:41:01.130926Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:41:01.840278Z INFO screenpipe_engine::event_d...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=44 elapsed=1.833842375s\n2026-04-22T18:03:16.198578Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 44 eligible frames\n2026-04-22T18:03:18.139382Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 2.0MB → 0.1MB (16.1x), 21 JPEGs deleted\n2026-04-22T18:03:19.618803Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.5MB → 1.5MB (2.4x), 21 JPEGs deleted\n2026-04-22T18:06:58.395218Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7639883349033148478, trigger=click)\n2026-04-22T18:06:58.897470Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7639883349033148478, trigger=click)\n2026-04-22T18:07:42.474566Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=607162597309748765, trigger=click)\n2026-04-22T18:08:27.382204Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=28 elapsed=7.750844334s\n2026-04-22T18:08:27.382491Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames\n2026-04-22T18:08:29.032220Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.2MB → 0.1MB (10.4x), 13 JPEGs deleted\n2026-04-22T18:08:30.573314Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.7MB → 0.6MB (4.2x), 13 JPEGs deleted\n2026-04-22T18:13:38.096494Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=20 elapsed=6.760223375s\n2026-04-22T18:13:38.099584Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 20 eligible frames\n2026-04-22T18:13:38.806766Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 0.8MB → 0.1MB (7.4x), 9 JPEGs deleted\n2026-04-22T18:13:39.606462Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 1.9MB → 0.5MB (3.8x), 9 JPEGs deleted\n2026-04-22T18:18:41.943065Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=45 elapsed=2.325026709s\n2026-04-22T18:18:41.943417Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 45 eligible frames\n2026-04-22T18:18:43.289962Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 2.0MB → 0.1MB (16.7x), 21 JPEGs deleted\n2026-04-22T18:18:45.689764Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 4.4MB → 1.3MB (3.4x), 22 JPEGs deleted\n2026-04-22T18:18:54.020334Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6726632078176380015, trigger=click)\n2026-04-22T18:18:54.540347Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6726632078176380015, trigger=click)\n2026-04-22T18:18:55.737423Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6726632078176380015, trigger=click)\n2026-04-22T18:18:56.477423Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6726632078176380015, trigger=click)\n2026-04-22T18:20:28.510789Z WARN sqlx::query: summary=\"PRAGMA wal_checkpoint(TRUNCATE)\" db.statement=\"\" rows_affected=0 rows_returned=1 elapsed=5.273706125s\n2026-04-22T18:20:28.511954Z WARN screenpipe_db::db: wal checkpoint: busy (could not truncate), 3177 pages in WAL\n2026-04-22T18:20:28.562400Z WARN sqlx::query: summary=\"BEGIN IMMEDIATE\" db.statement=\"\" rows_affected=1 rows_returned=0 elapsed=2.291890708s\n2026-04-22T18:23:52.302822Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=31 elapsed=6.325649833s\n2026-04-22T18:23:52.304330Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 31 eligible frames\n2026-04-22T18:23:53.163590Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 1.1MB → 0.1MB (9.9x), 12 JPEGs deleted\n2026-04-22T18:23:55.277698Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.4MB → 1.6MB (2.2x), 17 JPEGs deleted\n2026-04-22T18:28:56.007322Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 35 eligible frames\n2026-04-22T18:28:57.403360Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.7MB → 1.5MB (1.9x), 16 JPEGs deleted\n2026-04-22T18:28:58.752838Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.9MB → 0.8MB (3.6x), 17 JPEGs deleted\n2026-04-22T18:34:01.165384Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=41 elapsed=2.400307625s\n2026-04-22T18:34:01.165480Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 41 eligible frames\n2026-04-22T18:34:02.291139Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.7MB → 0.8MB (3.5x), 15 JPEGs deleted\n2026-04-22T18:34:04.197399Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.2MB → 1.7MB (2.4x), 24 JPEGs deleted\n2026-04-22T18:35:56.027919Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5884937538005636030, trigger=visual_change)\n2026-04-22T18:37:55.284482Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-439807993867665328, trigger=visual_change)\n2026-04-22T18:39:08.660187Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=4.451587125s\n2026-04-22T18:39:08.660278Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-22T18:39:09.493828Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.5MB → 0.5MB (3.1x), 10 JPEGs deleted\n2026-04-22T18:39:10.349740Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.1MB → 0.5MB (4.3x), 10 JPEGs deleted\n2026-04-22T18:43:06.355073Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3304493437592891639, trigger=click)\n2026-04-22T18:43:23.219621Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6603898485603033537, trigger=click)\n2026-04-22T18:44:11.899645Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=21 elapsed=1.53441375s\n2026-04-22T18:44:11.900197Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames\n2026-04-22T18:44:12.802039Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 1.1MB → 0.2MB (6.3x), 9 JPEGs deleted\n2026-04-22T18:44:14.694466Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.1MB → 0.3MB (5.9x), 10 JPEGs deleted\n2026-04-22T18:45:14.778135Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6664853592767636193, trigger=click)\n2026-04-22T18:46:36.923697Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1791249548195440516, trigger=visual_change)\n2026-04-22T18:49:18.625635Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=46 elapsed=3.900838541s\n2026-04-22T18:49:18.625996Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 46 eligible frames\n2026-04-22T18:49:19.640722Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 1.8MB → 0.2MB (10.4x), 15 JPEGs deleted\n2026-04-22T18:49:23.038596Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 5.2MB → 2.1MB (2.4x), 29 JPEGs deleted\n2026-04-22T18:50:34.997361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=visual_change)\n2026-04-22T18:50:39.846829Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:50:43.731899Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:20.200945Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=visual_change)\n2026-04-22T18:51:23.144927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:23.976040Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:27.176876Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:28.227317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:31.555085Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:32.274042Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:35.352114Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:37.306495Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=visual_change)\n2026-04-22T18:52:02.049971Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=visual_change)\n2026-04-22T18:52:09.690330Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=visual_change)\n2026-04-22T18:52:11.530065Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:52:12.090300Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:52:22.885838Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6951480031607957362, trigger=visual_change)\n2026-04-22T18:52:58.986955Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7031607293039132919, trigger=click)\n2026-04-22T18:53:47.690375Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3992755350865402319, trigger=visual_change)\n2026-04-22T18:54:25.328228Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=52 elapsed=2.277973417s\n2026-04-22T18:54:25.328316Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 52 eligible frames\n2026-04-22T18:54:26.661506Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 2.6MB → 0.2MB (11.0x), 22 JPEGs deleted\n2026-04-22T18:54:28.982139Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 4.3MB → 1.1MB (3.8x), 28 JPEGs deleted\n2026-04-22T18:54:44.142044Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3992755350865402319, trigger=visual_change)\n2026-04-22T18:55:01.465747Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2556650532703180759, trigger=click)\n2026-04-22T18:55:02.524314Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2556650532703180759, trigger=click)\n2026-04-22T18:55:35.312048Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3149441378543601087, trigger=visual_change)\n2026-04-22T18:55:55.086761Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3149441378543601087, trigger=click)\n2026-04-22T18:55:56.919853Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3149441378543601087, trigger=visual_change)\n2026-04-22T18:56:05.807170Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7595806992634662117, trigger=visual_change)\n2026-04-22T18:56:12.303927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7595806992634662117, trigger=visual_change)\n2026-04-22T18:56:58.093656Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2070714172482892625, trigger=visual_change)\n2026-04-22T18:57:00.459010Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2070714172482892625, trigger=visual_change)\n2026-04-22T18:57:03.809894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2070714172482892625, trigger=visual_change)\n2026-04-22T18:58:04.259354Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7284778144726625723, trigger=visual_change)\n2026-04-22T18:58:07.302007Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7284778144726625723, trigger=visual_change)\n2026-04-22T18:58:10.443744Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7284778144726625723, trigger=visual_change)\n2026-04-22T18:58:40.416893Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6313361147559934277, trigger=click)\n2026-04-22T18:58:59.229391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)\n2026-04-22T18:59:10.795801Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)\n2026-04-22T18:59:15.904155Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)\n2026-04-22T18:59:30.308258Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=46 elapsed=1.303054333s\n2026-04-22T18:59:30.308485Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 46 eligible frames\n2026-04-22T18:59:31.535859Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 2.4MB → 0.3MB (7.5x), 20 JPEGs deleted\n2026-04-22T18:59:33.536283Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 3.8MB → 1.3MB (3.0x), 24 JPEGs deleted\n2026-04-22T18:59:39.897203Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)\n2026-04-22T18:59:43.593017Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-71227342056343983, trigger=visual_change)\n2026-04-22T18:59:55.722135Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)\n2026-04-22T19:00:00.394304Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)\n2026-04-22T19:00:27.869871Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2710856207947507007, trigger=visual_change)\n2026-04-22T19:01:54.992910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6986338393283794423, trigger=visual_change)\n2026-04-22T19:02:13.568012Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6986338393283794423, trigger=visual_change)\n2026-04-22T19:02:16.092275Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6986338393283794423, trigger=visual_change)\n2026-04-22T19:03:04.479425Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7704375629034044835, trigger=visual_change)\n2026-04-22T19:03:35.287830Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2375149456869027114, trigger=visual_change)\n2026-04-22T19:03:41.021583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2375149456869027114, trigger=visual_change)\n2026-04-22T19:03:48.485601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6234474271212752005, trigger=visual_change)\n2026-04-22T19:04:35.737525Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=82 elapsed=2.188209209s\n2026-04-22T19:04:35.737670Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 82 eligible frames\n2026-04-22T19:04:38.209886Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3880005638520398709, trigger=click)\n2026-04-22T19:04:38.478674Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 4.8MB → 1.0MB (4.9x), 39 JPEGs deleted\n2026-04-22T19:04:42.074270Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 41 frames, 7.5MB → 3.6MB (2.1x), 41 JPEGs deleted\n2026-04-22T19:04:55.094599Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-635344842894947589, trigger=visual_change)\n2026-04-22T19:05:20.336216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)\n2026-04-22T19:05:54.388487Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)\n2026-04-22T19:05:57.299176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)\n2026-04-22T19:05:59.949506Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)\n2026-04-22T19:06:25.531964Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5957740084085463727, trigger=visual_change)\n2026-04-22T19:06:50.090567Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6422724880219484653, trigger=visual_change)\n2026-04-22T19:07:22.963169Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2531925023067266044, trigger=click)\n2026-04-22T19:07:24.045648Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2531925023067266044, trigger=click)\n2026-04-22T19:07:27.834546Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2085088366939909076, trigger=click)\n2026-04-22T19:07:28.381522Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2085088366939909076, trigger=click)\n2026-04-22T19:08:34.175493Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3061313113729352595, trigger=click)\n2026-04-22T19:09:42.454765Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 91 eligible frames\n2026-04-22T19:09:45.816541Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 5.7MB → 2.4MB (2.3x), 32 JPEGs deleted\n2026-04-22T19:09:50.140975Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 57 frames, 7.8MB → 2.3MB (3.4x), 57 JPEGs deleted\n2026-04-22T19:10:13.441594Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=click)\n2026-04-22T19:10:18.830768Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)\n2026-04-22T19:10:21.842287Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)\n2026-04-22T19:10:28.187487Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5292492680570276501, trigger=click)\n^C2026-04-22T19:10:32.957264Z INFO screenpipe: received ctrl+c, initiating shutdown\n2026-04-22T19:10:32.958125Z INFO screenpipe: stopping UI event capture\n2026-04-22T19:10:32.958201Z INFO screenpipe: received shutdown signal for VisionManager\n2026-04-22T19:10:32.958212Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker shutting down\n2026-04-22T19:10:32.958217Z INFO screenpipe_engine::meeting_detector: meeting v2: shutdown received, exiting detection loop\n2026-04-22T19:10:32.958646Z INFO screenpipe_engine::vision_manager::manager: Shutting down VisionManager\n2026-04-22T19:10:32.958661Z INFO screenpipe_engine::vision_manager::manager: Stopping VisionManager\n2026-04-22T19:10:32.958669Z INFO screenpipe_engine::vision_manager::manager: Stopping vision recording for monitor 2\n2026-04-22T19:10:32.958804Z INFO screenpipe_engine::vision_manager::manager: Stopping vision recording for monitor 1\n\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ 2026-04-22T19:10:33.158623Z INFO screenpipe_engine::ui_recorder: UI recording session ended: e7729066-2ab4-4bf0-9d48-0c9790a4ee79\n2026-04-22T19:10:33.159581Z INFO screenpipe: shutdown complete\n\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-stop\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-status\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ st-start\nzsh: command not found: st-start\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-start\ndetected hardware tier: Mid\nwarning: parakeet is not supported on this platform, using whisper-tiny instead\n2026-04-23T09:12:59.282987Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store\nchecking permissions...\n screen recording: ok\n accessibility: ok\n2026-04-23T09:12:59.350556Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6\n2026-04-23T09:13:00.537715Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor\n2026-04-23T09:13:00.539247Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)\n2026-04-23T09:13:00.539704Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)\n2026-04-23T09:13:00.580622Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true\n2026-04-23T09:13:00.580688Z INFO screenpipe: meeting detector enabled — independent of transcription mode\n2026-04-23T09:13:00.580873Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)\n2026-04-23T09:13:00.581042Z INFO screenpipe: API server listening on 127.0.0.1:3030 (localhost only)\n2026-04-23T09:13:00.581050Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key\n2026-04-23T09:13:00.580937Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)\n2026-04-23T09:13:00.581202Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager\n2026-04-23T09:13:00.599105Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-23T09:13:00.607481Z INFO screenpipe_core::pipes: loaded pipe: day-recap\n2026-04-23T09:13:00.608248Z INFO screenpipe_core::pipes: loaded pipe: standup-update\n2026-04-23T09:13:00.608416Z INFO screenpipe_core::pipes: loaded pipe: ai-habits\n2026-04-23T09:13:00.608706Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown\n2026-04-23T09:13:00.608849Z INFO screenpipe_core::pipes: loaded pipe: video-export\n2026-04-23T09:13:00.609337Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary\n2026-04-23T09:13:00.609353Z INFO screenpipe_core::pipes: loaded 6 pipes from \"/Users/lukas/.screenpipe/pipes\"\n\n\n\n _ \n __________________ ___ ____ ____ (_____ ___ \n / ___/ ___/ ___/ _ \\/ _ \\/ __ \\ / __ \\/ / __ \\/ _ \\\n (__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/\n/____/\\___/_/ \\___/\\___/_/ /_/ / .___/_/ .___/\\___/ \n /_/ /_/ \n\n\n\npower AI by everything you've seen, said or heard\nopen source | runs locally | developer friendly\n\n\n┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ true │\n│ vision disabled │ false │\n│ pause on DRM content │ false │\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n│ ignored windows │ [\"Boosteroid\"] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n│ api auth │ enabled │\n2026-04-23T09:13:00.610149Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n2026-04-23T09:13:00.614023Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n│ encrypt secrets │ disabled │\n│ retention days │ 14 │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ id: 1 │\n│ │ id: 2 │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ disabled │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-23T09:13:00.626925Z INFO screenpipe: starting UI event capture\n2026-04-23T09:13:00.644081Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-23T09:13:00.659604Z INFO screenpipe_engine::ui_recorder: UI recording session started: 64e213bd-3690-487f-90be-4e8348040416\n2026-04-23T09:13:00.659568Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-23T09:13:00.659937Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-22 06:13:00.659935 UTC to 2026-04-23 06:13:00.659935 UTC)\n2026-04-23T09:13:00.660681Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-23T09:13:00.671031Z INFO screenpipe_engine::server: Server listening on 127.0.0.1:3030\n2026-04-23T09:13:00.676357Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-23T09:13:02.822346Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-23T09:13:02.822390Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-23T09:13:02.822429Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-23T09:13:03.612915Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-23T09:13:03.612969Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-23T09:13:03.612981Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)\n2026-04-23T09:13:03.612988Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)\n2026-04-23T09:13:03.613032Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-23T09:13:04.172201Z WARN sqlx::query: summary=\"SELECT f.id, f.timestamp, f.offset_index, …\" db.statement=\"\\n\\nSELECT\\n f.id,\\n f.timestamp,\\n f.offset_index,\\n COALESCE(\\n SUBSTR(f.full_text, 1, 200),\\n SUBSTR(f.accessibility_text, 1, 200),\\n (\\n SELECT\\n SUBSTR(ot.text, 1, 200)\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as text,\\n COALESCE(\\n f.app_name,\\n (\\n SELECT\\n ot.app_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as app_name,\\n COALESCE(\\n f.window_name,\\n (\\n SELECT\\n ot.window_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as window_name,\\n COALESCE(vc.device_name, f.device_name) as screen_device,\\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\\n COALESCE(vc.fps, 0.033) as chunk_fps,\\n f.browser_url,\\n f.machine_id\\nFROM\\n frames f\\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\\nWHERE\\n f.timestamp >= ?1\\n AND f.timestamp <= ?2\\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\\nORDER BY\\n f.timestamp DESC,\\n f.offset_index DESC\\nLIMIT\\n 10000\\n\" rows_affected=0 rows_returned=4305 elapsed=3.511492208s\n2026-04-23T09:13:04.183200Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 4304 frame entries, coverage from 2026-04-22 06:13:00.659935 UTC\n2026-04-23T09:13:07.349282Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-23T09:13:07.830685Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=72776, dur=70ms\n2026-04-23T09:13:08.836958Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-23T09:13:09.378786Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=72777, dur=124ms\n2026-04-23T09:13:09.380863Z INFO sck_rs::stream_manager: invalidated persistent stream for display 2\n2026-04-23T09:13:32.742255Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-23T09:14:01.764079Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4702465002163205464, trigger=click)\n2026-04-23T09:14:04.223149Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4702465002163205464, trigger=visual_change)\n2026-04-23T09:14:06.953796Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=147 elapsed=6.3719465s\n2026-04-23T09:14:06.954006Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 147 eligible frames\n2026-04-23T09:14:12.566935Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 70 frames, 10.3MB → 2.7MB (3.8x), 70 JPEGs deleted\n2026-04-23T09:14:17.358704Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 75 frames, 9.6MB → 3.0MB (3.2x), 75 JPEGs deleted\n2026-04-23T09:15:47.544198Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3660881845293713510, trigger=visual_change)\n2026-04-23T09:15:50.997492Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3660881845293713510, trigger=click)\n2026-04-23T09:15:51.600725Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3660881845293713510, trigger=click)\n2026-04-23T09:15:55.723800Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3660881845293713510, trigger=click)\n2026-04-23T09:15:56.933987Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3660881845293713510, trigger=visual_change)\n2026-04-23T09:15:59.012409Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3660881845293713510, trigger=visual_change)\n2026-04-23T09:16:49.882963Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3759145274440377841, trigger=visual_change)\n2026-04-23T09:16:51.405936Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3759145274440377841, trigger=click)\n2026-04-23T09:16:52.823011Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3759145274440377841, trigger=click)\n2026-04-23T09:16:54.220304Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3759145274440377841, trigger=click)\n2026-04-23T09:16:54.887021Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3759145274440377841, trigger=click)\n2026-04-23T09:16:58.589203Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3759145274440377841, trigger=visual_change)\n2026-04-23T09:18:05.879649Z WARN screenpipe_db::db: wal checkpoint: busy (could not truncate), 5054 pages in WAL\n2026-04-23T09:18:05.879619Z WARN sqlx::query: summary=\"PRAGMA wal_checkpoint(TRUNCATE)\" db.statement=\"\" rows_affected=0 rows_returned=1 elapsed=5.220339167s\n2026-04-23T09:19:24.740122Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=2 elapsed=7.381061833s\n2026-04-23T09:19:24.740850Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-23T09:19:36.514406Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2079049776495123607, trigger=click)\n2026-04-23T09:24:26.477446Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=11 elapsed=1.729545666s\n2026-04-23T09:24:26.477540Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 11 eligible frames\n2026-04-23T09:24:27.316363Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 5 frames, 1.4MB → 1.4MB (1.0x), 5 JPEGs deleted\n2026-04-23T09:24:27.966623Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 6 frames, 0.6MB → 0.2MB (2.7x), 6 JPEGs deleted\n2026-04-23T09:24:42.606557Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:26:03.160247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7786631749263421517, trigger=click)\n2026-04-23T09:27:26.154494Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:27:34.433056Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:28:06.713361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:28:33.527151Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5209591986308457575, trigger=click)\n2026-04-23T09:28:34.249353Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5209591986308457575, trigger=click)\n2026-04-23T09:28:36.237199Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5209591986308457575, trigger=click)\n2026-04-23T09:28:42.253183Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8747303508868961364, trigger=click)\n2026-04-23T09:28:48.282686Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:28:50.613134Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:28:51.314522Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:29:31.961577Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=67 elapsed=3.996031s\n2026-04-23T09:29:31.961670Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 67 eligible frames\n2026-04-23T09:29:34.332658Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 5.8MB → 2.1MB (2.8x), 29 JPEGs deleted\n2026-04-23T09:29:38.223511Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 7.4MB → 3.8MB (2.0x), 36 JPEGs deleted\n2026-04-23T09:30:34.230785Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:30:39.665086Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:30:40.299751Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:30:45.663893Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:30:51.622228Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:30:52.321014Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:31:15.021588Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:31:15.691601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:31:17.946692Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:31:18.653547Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:32:17.960360Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:32:24.051490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:32:29.442560Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:32:30.131038Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:32:32.452540Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:32:36.585069Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:32:39.322258Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:33:18.072421Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:33:18.766929Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:33:22.098409Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:33:22.782084Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:34:27.313290Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:34:38.542722Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 89 eligible frames\n2026-04-23T09:34:41.684595Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 38 frames, 5.6MB → 0.7MB (7.5x), 38 JPEGs deleted\n2026-04-23T09:34:44.933963Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 10.6MB → 3.8MB (2.8x), 49 JPEGs deleted\n2026-04-23T09:37:57.963204Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:37:58.697604Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:38:02.124214Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:38:53.190171Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:38:59.279885Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:39:02.308536Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:39:36.189861Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:39:49.122120Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=50 elapsed=4.188474542s\n2026-04-23T09:39:49.122232Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 50 eligible frames\n2026-04-23T09:39:51.115025Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 2.9MB → 0.3MB (9.4x), 24 JPEGs deleted\n2026-04-23T09:39:53.096763Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 5.0MB → 2.3MB (2.2x), 24 JPEGs deleted\n2026-04-23T09:40:57.095660Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:40:58.430714Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:41:01.130926Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:41:01.840278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:41:04.072034Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:41:09.252541Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:41:09.972092Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:41:12.313228Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:41:13.696141Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:41:15.723102Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:41:16.452657Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:42:46.382248Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:43:42.993741Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6469703639183038647, trigger=visual_change)\n2026-04-23T09:44:17.245560Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7072623502562616708, trigger=visual_change)\n2026-04-23T09:44:56.342637Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=21 elapsed=2.944921084s\n2026-04-23T09:44:56.343212Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames\n2026-04-23T09:44:57.216675Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.2MB → 0.2MB (6.9x), 10 JPEGs deleted\n2026-04-23T09:44:58.298212Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 2.1MB → 0.7MB (2.8x), 9 JPEGs deleted\n2026-04-23T09:45:10.982752Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Firefox, signals=2)\n2026-04-23T09:45:16.376695Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Firefox, signals=2, browser=true)\n2026-04-23T09:45:16.378791Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=9, app=Firefox, title=None)\n2026-04-23T09:50:01.989691Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=23 elapsed=3.688976042s\n2026-04-23T09:50:01.989962Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 23 eligible frames\n2026-04-23T09:50:03.098505Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.3MB → 0.2MB (7.4x), 11 JPEGs deleted\n2026-04-23T09:50:04.627741Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.4MB → 0.8MB (3.1x), 10 JPEGs deleted\n2026-04-23T09:50:07.629323Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4672421675042950776, trigger=click)\n2026-04-23T09:52:11.400798Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:52:15.346773Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:52:18.174934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:52:22.107623Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:52:32.020499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:53:33.890239Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:53:35.304629Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:53:58.176084Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:54:14.248454Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:54:18.287472Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:54:20.289467Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:54:24.904239Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:54:27.981243Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:54:29.172367Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:54:30.192245Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:54:31.161165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:55:11.821088Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=36 elapsed=7.192436875s\n2026-04-23T09:55:11.821248Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 36 eligible frames\n2026-04-23T09:55:13.532739Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 2.3MB → 0.5MB (5.0x), 19 JPEGs deleted\n2026-04-23T09:55:16.625152Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 3.3MB → 1.4MB (2.4x), 15 JPEGs deleted\n2026-04-23T09:56:01.584150Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:56:24.887186Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3078857793355977422, trigger=click)\n2026-04-23T09:56:32.005363Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3078857793355977422, trigger=visual_change)\n2026-04-23T09:56:41.374227Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3078857793355977422, trigger=visual_change)\n2026-04-23T09:56:54.666839Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3078857793355977422, trigger=click)\n2026-04-23T09:57:06.486753Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3593283938725328408, trigger=visual_change)\n2026-04-23T09:57:14.384178Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5341343601501307187, trigger=visual_change)\n2026-04-23T09:57:32.721765Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5341343601501307187, trigger=visual_change)\n2026-04-23T09:59:03.111441Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:59:18.292184Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:59:24.203906Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:59:28.763273Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:59:36.189282Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T10:00:16.817081Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 72 eligible frames\n2026-04-23T10:00:21.637421Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 45 frames, 7.5MB → 3.5MB (2.1x), 45 JPEGs deleted\n2026-04-23T10:00:24.683587Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.4MB → 1.4MB (3.2x), 25 JPEGs deleted\n2026-04-23T10:00:40.573974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6464745230001326344, trigger=visual_change)\n2026-04-23T10:02:52.495992Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8171437999531431641, trigger=click)\n2026-04-23T10:02:53.374393Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8171437999531431641, trigger=click)\n2026-04-23T10:03:37.373391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1961095499263201650, trigger=click)\n2026-04-23T10:04:58.338820Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T10:05:04.300061Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T10:05:10.114887Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T10:05:16.104422Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T10:05:20.754499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T10:05:25.933831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T10:05:30.717296Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=45 elapsed=5.043796209s\n2026-04-23T10:05:30.717708Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 45 eligible frames\n2026-04-23T10:05:33.129158Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.5MB → 1.3MB (2.8x), 21 JPEGs deleted\n2026-04-23T10:05:35.719261Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 3.9MB → 1.6MB (2.5x), 22 JPEGs deleted\n2026-04-23T10:06:54.427408Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T10:06:58.568476Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T10:07:35.294176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T10:07:36.671700Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T10:07:46.281682Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T10:10:42.001975Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=40 elapsed=6.278440792s\n2026-04-23T10:10:42.002064Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames\n2026-04-23T10:10:45.302375Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.7MB → 1.7MB (2.2x), 21 JPEGs deleted\n2026-04-23T10:10:47.110830Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 4.4MB → 0.6MB (7.8x), 17 JPEGs deleted\n2026-04-23T10:12:18.002465Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7144568667011834365, trigger=click)\n2026-04-23T10:13:16.229637Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3362537224271461493, trigger=visual_change)\n2026-04-23T10:13:20.127210Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3362537224271461493, trigger=visual_change)\n2026-04-23T10:15:43.498044Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-602531024127880156, trigger=visual_change)\n2026-04-23T10:15:46.873827Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-602531024127880156, trigger=visual_change)\n2026-04-23T10:15:49.085137Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 32 eligible frames\n2026-04-23T10:15:49.496235Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-602531024127880156, trigger=visual_change)\n2026-04-23T10:15:50.519319Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.0MB → 0.9MB (3.3x), 17 JPEGs deleted\n2026-04-23T10:15:51.657703Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 3.4MB → 0.5MB (6.7x), 13 JPEGs deleted\n2026-04-23T10:15:53.186964Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-602531024127880156, trigger=visual_change)\n2026-04-23T10:15:55.743993Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-602531024127880156, trigger=visual_change)\n2026-04-23T10:16:10.260016Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7730332891388508974, trigger=visual_change)\n2026-04-23T10:16:19.398464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5862100523266843105, trigger=visual_change)\n2026-04-23T10:16:23.686689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5862100523266843105, trigger=visual_change)\n2026-04-23T10:16:27.662719Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5862100523266843105, trigger=visual_change)\n2026-04-23T10:16:34.159786Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5862100523266843105, trigger=visual_change)\n2026-04-23T10:17:00.356336Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5862100523266843105, trigger=visual_change)\n2026-04-23T10:17:22.481007Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3265723714621232205, trigger=visual_change)\n2026-04-23T10:17:29.195939Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3265723714621232205, trigger=visual_change)\n2026-04-23T10:17:47.685112Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)\n2026-04-23T10:17:51.199158Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)\n2026-04-23T10:17:58.199222Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)\n2026-04-23T10:18:06.327777Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)\n2026-04-23T10:18:13.175283Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)\n2026-04-23T10:18:39.739176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)\n2026-04-23T10:19:27.720698Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)\n2026-04-23T10:19:31.148096Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)\n2026-04-23T10:19:35.991910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)\n2026-04-23T10:19:56.855761Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)\n2026-04-23T10:20:03.521058Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)\n2026-04-23T10:20:10.069690Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)\n2026-04-23T10:20:18.117006Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)\n2026-04-23T10:20:54.473088Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=27 elapsed=2.810096209s\n2026-04-23T10:20:54.473356Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 27 eligible frames\n2026-04-23T10:20:56.920972Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.2MB → 0.9MB (2.6x), 14 JPEGs deleted\n2026-04-23T10:20:58.678464Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 2.5MB → 0.8MB (3.0x), 11 JPEGs deleted\n2026-04-23T10:23:10.727426Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3844820439140861821, trigger=visual_change)\n2026-04-23T10:25:16.468416Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T10:25:32.507777Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T10:26:05.910946Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=33 elapsed=7.132200208s\n2026-04-23T10:26:05.912569Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 33 eligible frames\n2026-04-23T10:26:09.921886Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.0MB → 1.2MB (2.5x), 18 JPEGs deleted\n2026-04-23T10:26:13.670275Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.6MB → 0.9MB (3.0x), 13 JPEGs deleted\n2026-04-23T10:26:20.034712Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=click)\n2026-04-23T10:26:22.436991Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=click)\n2026-04-23T10:26:25.816727Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:27:46.056157Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1615606372458852745, trigger=click)\n2026-04-23T10:28:05.117587Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:28:16.307383Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:28:22.684004Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:28:39.022530Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:28:44.950116Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:28:50.090325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:28:52.144212Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:28:55.229550Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=click)\n2026-04-23T10:28:59.714370Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=click)\n2026-04-23T10:29:08.010841Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=click)\n2026-04-23T10:29:11.877274Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=click)\n2026-04-23T10:29:15.515889Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=click)\n2026-04-23T10:29:19.052095Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=click)\n2026-04-23T10:29:21.109938Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=click)\n2026-04-23T10:29:28.551159Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:29:30.947483Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:29:38.350095Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:29:51.477755Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:29:56.846851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:30:02.584960Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:30:06.779849Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:30:18.311444Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:30:22.665242Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:30:29.333028Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:30:37.983139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:30:48.829636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=click)\n2026-04-23T10:30:59.474314Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3712905987097609358, trigger=visual_change)\n2026-04-23T10:31:16.115641Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=34 elapsed=1.523826083s\n2026-04-23T10:31:16.115774Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 34 eligible frames\n2026-04-23T10:31:19.674413Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 3.4MB → 2.0MB (1.7x), 19 JPEGs deleted\n2026-04-23T10:31:20.281876Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:31:21.222414Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 3.4MB → 0.8MB (4.5x), 13 JPEGs deleted\n2026-04-23T10:31:30.589390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:31:31.649068Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:31:34.542890Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:31:35.913592Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:31:42.222598Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:31:46.314096Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:31:56.457995Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:32:02.440693Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=click)\n2026-04-23T10:32:11.844302Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=9, grace=300s)\n2026-04-23T10:36:21.778297Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 34 eligible frames\n2026-04-23T10:36:23.408803Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 3.2MB → 1.6MB (2.1x), 19 JPEGs deleted\n2026-04-23T10:36:24.427188Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 3.4MB → 0.7MB (4.8x), 13 JPEGs deleted\n2026-04-23T10:37:15.245266Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Idle (timeout=300s, app=Firefox, id=9)\n2026-04-23T10:37:15.499978Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting ended (id=9)\n2026-04-23T10:39:08.136849Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7072094695368023128, trigger=visual_change)\n2026-04-23T10:40:10.173692Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5626541066854626210, trigger=visual_change)\n2026-04-23T10:41:03.187335Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6908211675272154683, trigger=visual_change)\n2026-04-23T10:41:27.801144Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=32 elapsed=3.230263875s\n2026-04-23T10:41:27.801229Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 32 eligible frames\n2026-04-23T10:41:30.240257Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.7MB → 1.1MB (2.4x), 17 JPEGs deleted\n2026-04-23T10:41:31.414104Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 3.3MB → 1.1MB (3.1x), 13 JPEGs deleted\n2026-04-23T10:43:59.795473Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:44:00.574274Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:44:03.353223Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=visual_change)\n2026-04-23T10:44:06.333413Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=visual_change)\n2026-04-23T10:44:15.554031Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:44:16.272856Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:44:36.868831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=visual_change)\n2026-04-23T10:44:52.509317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=visual_change)\n2026-04-23T10:45:05.711036Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=visual_change)\n2026-04-23T10:45:15.149681Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:45:15.874930Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:45:18.722067Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:45:27.888960Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=visual_change)\n2026-04-23T10:45:32.102259Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:45:47.964284Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-250182447663358748, trigger=click)\n2026-04-23T10:45:57.352178Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-250182447663358748, trigger=click)\n2026-04-23T10:45:58.059330Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-250182447663358748, trigger=click)\n2026-04-23T10:46:00.786122Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-250182447663358748, trigger=click)\n2026-04-23T10:46:01.515587Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-250182447663358748, trigger=click)\n2026-04-23T10:46:32.335524Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 34 eligible frames\n2026-04-23T10:46:33.454412Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 1.3MB → 0.3MB (4.3x), 15 JPEGs deleted\n2026-04-23T10:46:35.185172Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 4.4MB → 0.8MB (5.1x), 17 JPEGs deleted\n2026-04-23T10:49:51.424053Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:49:52.278022Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:50:06.945403Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=visual_change)\n2026-04-23T10:50:20.071306Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:50:27.322330Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:50:28.025501Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:50:31.361324Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:50:32.067598Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:50:43.957181Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:50:49.116814Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:50:49.902205Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:50:52.787071Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:50:55.600444Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:50:56.613411Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:51:01.606653Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=visual_change)\n2026-04-23T10:51:36.294219Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames\n2026-04-23T10:51:37.139478Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.9MB → 0.1MB (8.1x), 10 JPEGs deleted\n2026-04-23T10:51:37.977586Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 2.4MB → 0.4MB (5.6x), 9 JPEGs deleted\n2026-04-23T10:53:10.914762Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5094416737894467752, trigger=click)\n2026-04-23T10:53:46.764312Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5492569374489755072, trigger=click)\n2026-04-23T10:53:47.493963Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5492569374489755072, trigger=click)\n2026-04-23T10:55:50.508246Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9185031867676948653, trigger=click)\n2026-04-23T10:56:18.190631Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8265869039182172474, trigger=visual_change)\n2026-04-23T10:56:21.391253Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8265869039182172474, trigger=visual_change)\n2026-04-23T10:56:44.441379Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=33 elapsed=6.451315834s\n2026-04-23T10:56:44.441894Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 33 eligible frames\n2026-04-23T10:56:46.435494Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 1.6MB → 0.1MB (14.8x), 17 JPEGs deleted\n2026-04-23T10:56:47.618773Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 3.5MB → 1.0MB (3.6x), 14 JPEGs deleted\n2026-04-23T10:56:48.429385Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3009288458992913716, trigger=visual_change)\n2026-04-23T10:56:55.377427Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3009288458992913716, trigger=visual_change)\n2026-04-23T10:56:58.331194Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3009288458992913716, trigger=visual_change)\n2026-04-23T10:57:31.580363Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=164293696523982731, trigger=visual_change)\n2026-04-23T10:57:37.142409Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=164293696523982731, trigger=visual_change)\n2026-04-23T11:01:54.879662Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=43 elapsed=6.651773875s\n2026-04-23T11:01:54.879780Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 43 eligible frames\n2026-04-23T11:01:56.181324Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 2.1MB → 0.5MB (4.0x), 20 JPEGs deleted\n2026-04-23T11:01:57.821885Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 4.6MB → 1.2MB (4.0x), 21 JPEGs deleted\n2026-04-23T11:05:34.805879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4133405882569027308, trigger=click)\n2026-04-23T11:05:42.692507Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-792819002159032212, trigger=click)\n2026-04-23T11:05:45.195836Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-792819002159032212, trigger=click)\n2026-04-23T11:06:58.003581Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 56 eligible frames\n2026-04-23T11:07:01.998524Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 4.2MB → 2.0MB (2.1x), 27 JPEGs deleted\n2026-04-23T11:07:04.632834Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 6.1MB → 1.2MB (5.2x), 27 JPEGs deleted\n2026-04-23T11:08:29.041425Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=811120582590877593, trigger=click)\n2026-04-23T11:11:26.078346Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=811120582590877593, trigger=click)\n2026-04-23T11:11:26.826746Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=811120582590877593, trigger=click)\n2026-04-23T11:11:29.736291Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=811120582590877593, trigger=click)\n2026-04-23T11:11:30.502898Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=811120582590877593, trigger=click)\n2026-04-23T11:11:33.284639Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=811120582590877593, trigger=click)\n2026-04-23T11:11:34.732219Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=811120582590877593, trigger=click)\n2026-04-23T11:11:36.846175Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=811120582590877593, trigger=click)\n2026-04-23T11:11:47.161668Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=811120582590877593, trigger=visual_change)\n2026-04-23T11:11:51.463126Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=811120582590877593, trigger=click)\n2026-04-23T11:11:55.190182Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=811120582590877593, trigger=click)\n2026-04-23T11:11:58.250612Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=811120582590877593, trigger=click)\n2026-04-23T11:11:58.984195Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=811120582590877593, trigger=click)\n2026-04-23T11:12:07.186907Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8190951420737299430, trigger=visual_change)\n2026-04-23T11:12:10.805150Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=28 elapsed=6.153365375s\n2026-04-23T11:12:10.806451Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames\n2026-04-23T11:12:12.869531Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.7MB → 1.2MB (2.2x), 16 JPEGs deleted\n2026-04-23T11:12:14.462884Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.2MB → 0.4MB (5.9x), 10 JPEGs deleted\n2026-04-23T11:14:59.283313Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-962688942467523245, trigger=click)\n2026-04-23T11:14:59.996111Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-962688942467523245, trigger=click)\n2026-04-23T11:15:52.562512Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4085483410823602662, trigger=click)\n2026-04-23T11:16:10.556556Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-680298114769977367, trigger=click)\n2026-04-23T11:16:44.987984Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-781142721963066587, trigger=click)\n2026-04-23T11:17:15.717626Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=34 elapsed=1.192290209s\n2026-04-23T11:17:15.717877Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 34 eligible frames\n2026-04-23T11:17:16.801524Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 1.7MB → 0.3MB (6.4x), 14 JPEGs deleted\n2026-04-23T11:17:18.950114Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 4.0MB → 0.9MB (4.3x), 18 JPEGs deleted\n2026-04-23T11:22:21.353046Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=27 elapsed=2.391216916s\n2026-04-23T11:22:21.353161Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 27 eligible frames\n2026-04-23T11:22:22.204810Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.6MB → 0.2MB (7.8x), 13 JPEGs deleted\n2026-04-23T11:22:23.352237Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.7MB → 1.1MB (2.5x), 12 JPEGs deleted\n2026-04-23T11:22:51.641783Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5591071779487381740, trigger=visual_change)\n2026-04-23T11:24:42.126313Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3622496340535697523, trigger=click)\n2026-04-23T11:27:16.328827Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3622496340535697523, trigger=click)\n2026-04-23T11:27:17.062717Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3622496340535697523, trigger=click)\n2026-04-23T11:27:20.131333Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3622496340535697523, trigger=visual_change)\n2026-04-23T11:27:27.263965Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=32 elapsed=2.915186083s\n2026-04-23T11:27:27.264345Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 32 eligible frames\n2026-04-23T11:27:29.317049Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.1MB → 0.6MB (3.5x), 16 JPEGs deleted\n2026-04-23T11:27:31.637712Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 3.0MB → 0.8MB (3.8x), 14 JPEGs deleted\n2026-04-23T11:29:03.406489Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1491366973306919482, trigger=visual_change)\n2026-04-23T11:29:37.371120Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1491366973306919482, trigger=click)\n2026-04-23T11:29:38.828999Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1491366973306919482, trigger=click)\n2026-04-23T11:30:05.594417Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7420299184765789117, trigger=click)\n2026-04-23T11:30:10.415695Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7420299184765789117, trigger=click)\n2026-04-23T11:30:37.438406Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Firefox, signals=2)\n2026-04-23T11:30:47.134756Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Firefox, signals=2, browser=true)\n2026-04-23T11:30:47.150842Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=10, app=Firefox, title=None)\n2026-04-23T11:32:52.795697Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=click, monitor=1) — DB pool may be saturated\n2026-04-23T11:32:54.063047Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=22.405129875s\n2026-04-23T11:32:54.065127Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-23T11:32:56.659956Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.7MB → 0.3MB (5.8x), 10 JPEGs deleted\n2026-04-23T11:32:58.390326Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.1MB → 0.4MB (5.1x), 10 JPEGs deleted\n2026-04-23T11:32:58.454323Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=click, monitor=2) — DB pool may be saturated\n2026-04-23T11:33:03.630685Z INFO screenpipe_engine::event_driven_capture: monitor 2 capture recovered after 1 consecutive errors\n2026-04-23T11:33:03.698376Z INFO screenpipe_engine::event_driven_capture: monitor 1 capture recovered after 1 consecutive errors\n2026-04-23T11:34:08.146813Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=visual_change, monitor=1) — DB pool may be saturated\n2026-04-23T11:34:19.115606Z INFO screenpipe_engine::event_driven_capture: monitor 1 capture recovered after 1 consecutive errors\n2026-04-23T11:38:06.413998Z WARN sqlx::query: summary=\"PRAGMA wal_checkpoint(TRUNCATE)\" db.statement=\"\" rows_affected=0 rows_returned=1 elapsed=5.320189792s\n2026-04-23T11:38:06.417026Z WARN screenpipe_db::db: wal checkpoint: busy (could not truncate), 1136 pages in WAL\n2026-04-23T11:38:06.480369Z WARN sqlx::query: summary=\"BEGIN IMMEDIATE\" db.statement=\"\" rows_affected=1 rows_returned=0 elapsed=3.645234084s\n2026-04-23T11:38:12.229580Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=26 elapsed=13.80812125s\n2026-04-23T11:38:12.232573Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 26 eligible frames\n2026-04-23T11:38:15.382662Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.9MB → 0.5MB (3.8x), 11 JPEGs deleted\n2026-04-23T11:38:16.795794Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=visual_change, monitor=1) — DB pool may be saturated\n2026-04-23T11:38:19.817599Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.7MB → 0.6MB (4.2x), 13 JPEGs deleted\n2026-04-23T11:38:24.993308Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=visual_change, monitor=2) — DB pool may be saturated\n2026-04-23T11:38:30.141938Z INFO screenpipe_engine::event_driven_capture: monitor 1 capture recovered after 1 consecutive errors\n2026-04-23T11:38:34.776814Z INFO screenpipe_engine::event_driven_capture: monitor 2 capture recovered after 1 consecutive errors\n2026-04-23T11:40:55.703155Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5781407336396073109, trigger=visual_change)\n2026-04-23T11:41:02.662314Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5781407336396073109, trigger=visual_change)\n2026-04-23T11:41:09.390136Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5781407336396073109, trigger=visual_change)\n2026-04-23T11:41:16.161715Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5781407336396073109, trigger=visual_change)\n2026-04-23T11:41:37.205648Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5781407336396073109, trigger=visual_change)\n2026-04-23T11:42:04.257036Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5781407336396073109, trigger=visual_change)\n2026-04-23T11:42:21.214633Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6679997250984875896, trigger=visual_change)\n2026-04-23T11:42:24.525053Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6679997250984875896, trigger=visual_change)\n2026-04-23T11:42:29.877589Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6679997250984875896, trigger=visual_change)\n2026-04-23T11:42:33.802238Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6679997250984875896, trigger=visual_change)\n2026-04-23T11:42:36.923509Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6679997250984875896, trigger=visual_change)\n2026-04-23T11:42:57.455576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6679997250984875896, trigger=visual_change)\n2026-04-23T11:43:12.031547Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=951548071599591969, trigger=visual_change)\n2026-04-23T11:43:18.874182Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=951548071599591969, trigger=visual_change)\n2026-04-23T11:43:24.247849Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=951548071599591969, trigger=visual_change)\n2026-04-23T11:43:26.259182Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=49 elapsed=6.405864s\n2026-04-23T11:43:26.263056Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 49 eligible frames\n2026-04-23T11:43:32.316690Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 3.7MB → 1.8MB (2.0x), 23 JPEGs deleted\n2026-04-23T11:43:34.974978Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=951548071599591969, trigger=visual_change)\n2026-04-23T11:43:36.047883Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.3MB → 1.5MB (2.9x), 24 JPEGs deleted\n2026-04-23T11:43:49.116309Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=951548071599591969, trigger=visual_change)\n2026-04-23T11:43:52.940018Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=951548071599591969, trigger=visual_change)\n2026-04-23T11:43:56.539135Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=951548071599591969, trigger=visual_change)\n2026-04-23T11:44:11.233290Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4079677798565982376, trigger=visual_change)\n2026-04-23T11:45:03.923694Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=click, monitor=2) — DB pool may be saturated\n2026-04-23T11:45:18.638512Z INFO screenpipe_engine::event_driven_capture: monitor 2 capture recovered after 1 consecutive errors\n2026-04-23T11:45:27.824824Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=click, monitor=1) — DB pool may be saturated\n2026-04-23T11:45:41.576372Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=click, monitor=2) — DB pool may be saturated\n2026-04-23T11:45:44.291896Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=click, monitor=1) — DB pool may be saturated\n2026-04-23T11:46:03.257280Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=click, monitor=1) — DB pool may be saturated\n2026-04-23T11:46:12.724398Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=visual_change, monitor=2) — DB pool may be saturated\n2026-04-23T11:46:22.727197Z INFO screenpipe_engine::event_driven_capture: monitor 1 capture recovered after 3 consecutive errors\n2026-04-23T11:46:24.228006Z INFO screenpipe_engine::event_driven_capture: monitor 2 capture recovered after 2 consecutive errors\n2026-04-23T11:46:40.390580Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7643951286516936585, trigger=visual_change)\n2026-04-23T11:46:49.248747Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7643951286516936585, trigger=visual_change)\n2026-04-23T11:46:55.471031Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7643951286516936585, trigger=visual_change)\n2026-04-23T11:47:02.336575Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7643951286516936585, trigger=visual_change)\n2026-04-23T11:48:17.252755Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7643951286516936585, trigger=visual_change)\n2026-04-23T11:48:25.013997Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7643951286516936585, trigger=visual_change)\n2026-04-23T11:48:53.059242Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=56 elapsed=13.220216708s\n2026-04-23T11:48:53.065643Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 56 eligible frames\n2026-04-23T11:48:58.527594Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 4.7MB → 2.2MB (2.1x), 30 JPEGs deleted\n2026-04-23T11:49:05.857012Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.3MB → 1.6MB (2.7x), 24 JPEGs deleted\n2026-04-23T11:49:06.658338Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5995459936453258264, trigger=visual_change)\n2026-04-23T11:49:28.247468Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5995459936453258264, trigger=visual_change)\n2026-04-23T11:49:46.108336Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4001297392414942723, trigger=visual_change)\n2026-04-23T11:49:53.084297Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4001297392414942723, trigger=visual_change)\n2026-04-23T11:49:56.028797Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4001297392414942723, trigger=click)\n2026-04-23T11:50:37.287127Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2527600923706712259, trigger=visual_change)\n2026-04-23T11:51:12.946650Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1489108089542937642, trigger=visual_change)\n2026-04-23T11:51:19.338386Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1489108089542937642, trigger=visual_change)\n2026-04-23T11:52:16.352383Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8163356110886780433, trigger=visual_change)\n2026-04-23T11:53:55.890568Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5293025605401136867, trigger=click)\n2026-04-23T11:54:09.640558Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=41 elapsed=3.460436583s\n2026-04-23T11:54:09.640693Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 41 eligible frames\n2026-04-23T11:54:13.152878Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 3.3MB → 1.5MB (2.2x), 22 JPEGs deleted\n2026-04-23T11:54:15.204535Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.9MB → 1.2MB (3.4x), 17 JPEGs deleted\n2026-04-23T11:58:11.876342Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=10, grace=300s)\n2026-04-23T11:59:15.385310Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames\n2026-04-23T11:59:16.921656Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.6MB → 0.6MB (2.8x), 13 JPEGs deleted\n2026-04-23T11:59:18.047335Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.2MB → 1.0MB (2.3x), 10 JPEGs deleted","depth":4,"value":"\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=44 elapsed=1.833842375s\n2026-04-22T18:03:16.198578Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 44 eligible frames\n2026-04-22T18:03:18.139382Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 2.0MB → 0.1MB (16.1x), 21 JPEGs deleted\n2026-04-22T18:03:19.618803Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.5MB → 1.5MB (2.4x), 21 JPEGs deleted\n2026-04-22T18:06:58.395218Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7639883349033148478, trigger=click)\n2026-04-22T18:06:58.897470Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7639883349033148478, trigger=click)\n2026-04-22T18:07:42.474566Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=607162597309748765, trigger=click)\n2026-04-22T18:08:27.382204Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=28 elapsed=7.750844334s\n2026-04-22T18:08:27.382491Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames\n2026-04-22T18:08:29.032220Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.2MB → 0.1MB (10.4x), 13 JPEGs deleted\n2026-04-22T18:08:30.573314Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.7MB → 0.6MB (4.2x), 13 JPEGs deleted\n2026-04-22T18:13:38.096494Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=20 elapsed=6.760223375s\n2026-04-22T18:13:38.099584Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 20 eligible frames\n2026-04-22T18:13:38.806766Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 0.8MB → 0.1MB (7.4x), 9 JPEGs deleted\n2026-04-22T18:13:39.606462Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 1.9MB → 0.5MB (3.8x), 9 JPEGs deleted\n2026-04-22T18:18:41.943065Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=45 elapsed=2.325026709s\n2026-04-22T18:18:41.943417Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 45 eligible frames\n2026-04-22T18:18:43.289962Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 2.0MB → 0.1MB (16.7x), 21 JPEGs deleted\n2026-04-22T18:18:45.689764Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 4.4MB → 1.3MB (3.4x), 22 JPEGs deleted\n2026-04-22T18:18:54.020334Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6726632078176380015, trigger=click)\n2026-04-22T18:18:54.540347Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6726632078176380015, trigger=click)\n2026-04-22T18:18:55.737423Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6726632078176380015, trigger=click)\n2026-04-22T18:18:56.477423Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6726632078176380015, trigger=click)\n2026-04-22T18:20:28.510789Z WARN sqlx::query: summary=\"PRAGMA wal_checkpoint(TRUNCATE)\" db.statement=\"\" rows_affected=0 rows_returned=1 elapsed=5.273706125s\n2026-04-22T18:20:28.511954Z WARN screenpipe_db::db: wal checkpoint: busy (could not truncate), 3177 pages in WAL\n2026-04-22T18:20:28.562400Z WARN sqlx::query: summary=\"BEGIN IMMEDIATE\" db.statement=\"\" rows_affected=1 rows_returned=0 elapsed=2.291890708s\n2026-04-22T18:23:52.302822Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=31 elapsed=6.325649833s\n2026-04-22T18:23:52.304330Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 31 eligible frames\n2026-04-22T18:23:53.163590Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 1.1MB → 0.1MB (9.9x), 12 JPEGs deleted\n2026-04-22T18:23:55.277698Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.4MB → 1.6MB (2.2x), 17 JPEGs deleted\n2026-04-22T18:28:56.007322Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 35 eligible frames\n2026-04-22T18:28:57.403360Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.7MB → 1.5MB (1.9x), 16 JPEGs deleted\n2026-04-22T18:28:58.752838Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.9MB → 0.8MB (3.6x), 17 JPEGs deleted\n2026-04-22T18:34:01.165384Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=41 elapsed=2.400307625s\n2026-04-22T18:34:01.165480Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 41 eligible frames\n2026-04-22T18:34:02.291139Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.7MB → 0.8MB (3.5x), 15 JPEGs deleted\n2026-04-22T18:34:04.197399Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.2MB → 1.7MB (2.4x), 24 JPEGs deleted\n2026-04-22T18:35:56.027919Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5884937538005636030, trigger=visual_change)\n2026-04-22T18:37:55.284482Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-439807993867665328, trigger=visual_change)\n2026-04-22T18:39:08.660187Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=4.451587125s\n2026-04-22T18:39:08.660278Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-22T18:39:09.493828Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.5MB → 0.5MB (3.1x), 10 JPEGs deleted\n2026-04-22T18:39:10.349740Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.1MB → 0.5MB (4.3x), 10 JPEGs deleted\n2026-04-22T18:43:06.355073Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3304493437592891639, trigger=click)\n2026-04-22T18:43:23.219621Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6603898485603033537, trigger=click)\n2026-04-22T18:44:11.899645Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=21 elapsed=1.53441375s\n2026-04-22T18:44:11.900197Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames\n2026-04-22T18:44:12.802039Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 1.1MB → 0.2MB (6.3x), 9 JPEGs deleted\n2026-04-22T18:44:14.694466Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.1MB → 0.3MB (5.9x), 10 JPEGs deleted\n2026-04-22T18:45:14.778135Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6664853592767636193, trigger=click)\n2026-04-22T18:46:36.923697Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1791249548195440516, trigger=visual_change)\n2026-04-22T18:49:18.625635Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=46 elapsed=3.900838541s\n2026-04-22T18:49:18.625996Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 46 eligible frames\n2026-04-22T18:49:19.640722Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 1.8MB → 0.2MB (10.4x), 15 JPEGs deleted\n2026-04-22T18:49:23.038596Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 5.2MB → 2.1MB (2.4x), 29 JPEGs deleted\n2026-04-22T18:50:34.997361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=visual_change)\n2026-04-22T18:50:39.846829Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:50:43.731899Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:20.200945Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=visual_change)\n2026-04-22T18:51:23.144927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:23.976040Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:27.176876Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:28.227317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:31.555085Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:32.274042Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:35.352114Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:37.306495Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=visual_change)\n2026-04-22T18:52:02.049971Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=visual_change)\n2026-04-22T18:52:09.690330Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=visual_change)\n2026-04-22T18:52:11.530065Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:52:12.090300Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:52:22.885838Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6951480031607957362, trigger=visual_change)\n2026-04-22T18:52:58.986955Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7031607293039132919, trigger=click)\n2026-04-22T18:53:47.690375Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3992755350865402319, trigger=visual_change)\n2026-04-22T18:54:25.328228Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=52 elapsed=2.277973417s\n2026-04-22T18:54:25.328316Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 52 eligible frames\n2026-04-22T18:54:26.661506Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 2.6MB → 0.2MB (11.0x), 22 JPEGs deleted\n2026-04-22T18:54:28.982139Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 4.3MB → 1.1MB (3.8x), 28 JPEGs deleted\n2026-04-22T18:54:44.142044Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3992755350865402319, trigger=visual_change)\n2026-04-22T18:55:01.465747Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2556650532703180759, trigger=click)\n2026-04-22T18:55:02.524314Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2556650532703180759, trigger=click)\n2026-04-22T18:55:35.312048Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3149441378543601087, trigger=visual_change)\n2026-04-22T18:55:55.086761Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3149441378543601087, trigger=click)\n2026-04-22T18:55:56.919853Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3149441378543601087, trigger=visual_change)\n2026-04-22T18:56:05.807170Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7595806992634662117, trigger=visual_change)\n2026-04-22T18:56:12.303927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7595806992634662117, trigger=visual_change)\n2026-04-22T18:56:58.093656Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2070714172482892625, trigger=visual_change)\n2026-04-22T18:57:00.459010Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2070714172482892625, trigger=visual_change)\n2026-04-22T18:57:03.809894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2070714172482892625, trigger=visual_change)\n2026-04-22T18:58:04.259354Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7284778144726625723, trigger=visual_change)\n2026-04-22T18:58:07.302007Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7284778144726625723, trigger=visual_change)\n2026-04-22T18:58:10.443744Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7284778144726625723, trigger=visual_change)\n2026-04-22T18:58:40.416893Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6313361147559934277, trigger=click)\n2026-04-22T18:58:59.229391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)\n2026-04-22T18:59:10.795801Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)\n2026-04-22T18:59:15.904155Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)\n2026-04-22T18:59:30.308258Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=46 elapsed=1.303054333s\n2026-04-22T18:59:30.308485Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 46 eligible frames\n2026-04-22T18:59:31.535859Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 2.4MB → 0.3MB (7.5x), 20 JPEGs deleted\n2026-04-22T18:59:33.536283Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 3.8MB → 1.3MB (3.0x), 24 JPEGs deleted\n2026-04-22T18:59:39.897203Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)\n2026-04-22T18:59:43.593017Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-71227342056343983, trigger=visual_change)\n2026-04-22T18:59:55.722135Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)\n2026-04-22T19:00:00.394304Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)\n2026-04-22T19:00:27.869871Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2710856207947507007, trigger=visual_change)\n2026-04-22T19:01:54.992910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6986338393283794423, trigger=visual_change)\n2026-04-22T19:02:13.568012Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6986338393283794423, trigger=visual_change)\n2026-04-22T19:02:16.092275Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6986338393283794423, trigger=visual_change)\n2026-04-22T19:03:04.479425Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7704375629034044835, trigger=visual_change)\n2026-04-22T19:03:35.287830Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2375149456869027114, trigger=visual_change)\n2026-04-22T19:03:41.021583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2375149456869027114, trigger=visual_change)\n2026-04-22T19:03:48.485601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6234474271212752005, trigger=visual_change)\n2026-04-22T19:04:35.737525Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=82 elapsed=2.188209209s\n2026-04-22T19:04:35.737670Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 82 eligible frames\n2026-04-22T19:04:38.209886Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3880005638520398709, trigger=click)\n2026-04-22T19:04:38.478674Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 4.8MB → 1.0MB (4.9x), 39 JPEGs deleted\n2026-04-22T19:04:42.074270Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 41 frames, 7.5MB → 3.6MB (2.1x), 41 JPEGs deleted\n2026-04-22T19:04:55.094599Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-635344842894947589, trigger=visual_change)\n2026-04-22T19:05:20.336216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)\n2026-04-22T19:05:54.388487Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)\n2026-04-22T19:05:57.299176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)\n2026-04-22T19:05:59.949506Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)\n2026-04-22T19:06:25.531964Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5957740084085463727, trigger=visual_change)\n2026-04-22T19:06:50.090567Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6422724880219484653, trigger=visual_change)\n2026-04-22T19:07:22.963169Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2531925023067266044, trigger=click)\n2026-04-22T19:07:24.045648Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2531925023067266044, trigger=click)\n2026-04-22T19:07:27.834546Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2085088366939909076, trigger=click)\n2026-04-22T19:07:28.381522Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2085088366939909076, trigger=click)\n2026-04-22T19:08:34.175493Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3061313113729352595, trigger=click)\n2026-04-22T19:09:42.454765Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 91 eligible frames\n2026-04-22T19:09:45.816541Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 5.7MB → 2.4MB (2.3x), 32 JPEGs deleted\n2026-04-22T19:09:50.140975Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 57 frames, 7.8MB → 2.3MB (3.4x), 57 JPEGs deleted\n2026-04-22T19:10:13.441594Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=click)\n2026-04-22T19:10:18.830768Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)\n2026-04-22T19:10:21.842287Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)\n2026-04-22T19:10:28.187487Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5292492680570276501, trigger=click)\n^C2026-04-22T19:10:32.957264Z INFO screenpipe: received ctrl+c, initiating shutdown\n2026-04-22T19:10:32.958125Z INFO screenpipe: stopping UI event capture\n2026-04-22T19:10:32.958201Z INFO screenpipe: received shutdown signal for VisionManager\n2026-04-22T19:10:32.958212Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker shutting down\n2026-04-22T19:10:32.958217Z INFO screenpipe_engine::meeting_detector: meeting v2: shutdown received, exiting detection loop\n2026-04-22T19:10:32.958646Z INFO screenpipe_engine::vision_manager::manager: Shutting down VisionManager\n2026-04-22T19:10:32.958661Z INFO screenpipe_engine::vision_manager::manager: Stopping VisionManager\n2026-04-22T19:10:32.958669Z INFO screenpipe_engine::vision_manager::manager: Stopping vision recording for monitor 2\n2026-04-22T19:10:32.958804Z INFO screenpipe_engine::vision_manager::manager: Stopping vision recording for monitor 1\n\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ 2026-04-22T19:10:33.158623Z INFO screenpipe_engine::ui_recorder: UI recording session ended: e7729066-2ab4-4bf0-9d48-0c9790a4ee79\n2026-04-22T19:10:33.159581Z INFO screenpipe: shutdown complete\n\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-stop\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-status\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ st-start\nzsh: command not found: st-start\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-start\ndetected hardware tier: Mid\nwarning: parakeet is not supported on this platform, using whisper-tiny instead\n2026-04-23T09:12:59.282987Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store\nchecking permissions...\n screen recording: ok\n accessibility: ok\n2026-04-23T09:12:59.350556Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6\n2026-04-23T09:13:00.537715Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor\n2026-04-23T09:13:00.539247Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)\n2026-04-23T09:13:00.539704Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)\n2026-04-23T09:13:00.580622Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true\n2026-04-23T09:13:00.580688Z INFO screenpipe: meeting detector enabled — independent of transcription mode\n2026-04-23T09:13:00.580873Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)\n2026-04-23T09:13:00.581042Z INFO screenpipe: API server listening on 127.0.0.1:3030 (localhost only)\n2026-04-23T09:13:00.581050Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key\n2026-04-23T09:13:00.580937Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)\n2026-04-23T09:13:00.581202Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager\n2026-04-23T09:13:00.599105Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-23T09:13:00.607481Z INFO screenpipe_core::pipes: loaded pipe: day-recap\n2026-04-23T09:13:00.608248Z INFO screenpipe_core::pipes: loaded pipe: standup-update\n2026-04-23T09:13:00.608416Z INFO screenpipe_core::pipes: loaded pipe: ai-habits\n2026-04-23T09:13:00.608706Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown\n2026-04-23T09:13:00.608849Z INFO screenpipe_core::pipes: loaded pipe: video-export\n2026-04-23T09:13:00.609337Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary\n2026-04-23T09:13:00.609353Z INFO screenpipe_core::pipes: loaded 6 pipes from \"/Users/lukas/.screenpipe/pipes\"\n\n\n\n _ \n __________________ ___ ____ ____ (_____ ___ \n / ___/ ___/ ___/ _ \\/ _ \\/ __ \\ / __ \\/ / __ \\/ _ \\\n (__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/\n/____/\\___/_/ \\___/\\___/_/ /_/ / .___/_/ .___/\\___/ \n /_/ /_/ \n\n\n\npower AI by everything you've seen, said or heard\nopen source | runs locally | developer friendly\n\n\n┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ true │\n│ vision disabled │ false │\n│ pause on DRM content │ false │\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n│ ignored windows │ [\"Boosteroid\"] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n│ api auth │ enabled │\n2026-04-23T09:13:00.610149Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n2026-04-23T09:13:00.614023Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n│ encrypt secrets │ disabled │\n│ retention days │ 14 │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ id: 1 │\n│ │ id: 2 │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ disabled │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-23T09:13:00.626925Z INFO screenpipe: starting UI event capture\n2026-04-23T09:13:00.644081Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-23T09:13:00.659604Z INFO screenpipe_engine::ui_recorder: UI recording session started: 64e213bd-3690-487f-90be-4e8348040416\n2026-04-23T09:13:00.659568Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-23T09:13:00.659937Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-22 06:13:00.659935 UTC to 2026-04-23 06:13:00.659935 UTC)\n2026-04-23T09:13:00.660681Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-23T09:13:00.671031Z INFO screenpipe_engine::server: Server listening on 127.0.0.1:3030\n2026-04-23T09:13:00.676357Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-23T09:13:02.822346Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-23T09:13:02.822390Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-23T09:13:02.822429Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-23T09:13:03.612915Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-23T09:13:03.612969Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-23T09:13:03.612981Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)\n2026-04-23T09:13:03.612988Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)\n2026-04-23T09:13:03.613032Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-23T09:13:04.172201Z WARN sqlx::query: summary=\"SELECT f.id, f.timestamp, f.offset_index, …\" db.statement=\"\\n\\nSELECT\\n f.id,\\n f.timestamp,\\n f.offset_index,\\n COALESCE(\\n SUBSTR(f.full_text, 1, 200),\\n SUBSTR(f.accessibility_text, 1, 200),\\n (\\n SELECT\\n SUBSTR(ot.text, 1, 200)\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as text,\\n COALESCE(\\n f.app_name,\\n (\\n SELECT\\n ot.app_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as app_name,\\n COALESCE(\\n f.window_name,\\n (\\n SELECT\\n ot.window_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as window_name,\\n COALESCE(vc.device_name, f.device_name) as screen_device,\\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\\n COALESCE(vc.fps, 0.033) as chunk_fps,\\n f.browser_url,\\n f.machine_id\\nFROM\\n frames f\\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\\nWHERE\\n f.timestamp >= ?1\\n AND f.timestamp <= ?2\\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\\nORDER BY\\n f.timestamp DESC,\\n f.offset_index DESC\\nLIMIT\\n 10000\\n\" rows_affected=0 rows_returned=4305 elapsed=3.511492208s\n2026-04-23T09:13:04.183200Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 4304 frame entries, coverage from 2026-04-22 06:13:00.659935 UTC\n2026-04-23T09:13:07.349282Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-23T09:13:07.830685Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=72776, dur=70ms\n2026-04-23T09:13:08.836958Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-23T09:13:09.378786Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=72777, dur=124ms\n2026-04-23T09:13:09.380863Z INFO sck_rs::stream_manager: invalidated persistent stream for display 2\n2026-04-23T09:13:32.742255Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-23T09:14:01.764079Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4702465002163205464, trigger=click)\n2026-04-23T09:14:04.223149Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4702465002163205464, trigger=visual_change)\n2026-04-23T09:14:06.953796Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=147 elapsed=6.3719465s\n2026-04-23T09:14:06.954006Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 147 eligible frames\n2026-04-23T09:14:12.566935Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 70 frames, 10.3MB → 2.7MB (3.8x), 70 JPEGs deleted\n2026-04-23T09:14:17.358704Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 75 frames, 9.6MB → 3.0MB (3.2x), 75 JPEGs deleted\n2026-04-23T09:15:47.544198Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3660881845293713510, trigger=visual_change)\n2026-04-23T09:15:50.997492Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3660881845293713510, trigger=click)\n2026-04-23T09:15:51.600725Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3660881845293713510, trigger=click)\n2026-04-23T09:15:55.723800Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3660881845293713510, trigger=click)\n2026-04-23T09:15:56.933987Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3660881845293713510, trigger=visual_change)\n2026-04-23T09:15:59.012409Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3660881845293713510, trigger=visual_change)\n2026-04-23T09:16:49.882963Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3759145274440377841, trigger=visual_change)\n2026-04-23T09:16:51.405936Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3759145274440377841, trigger=click)\n2026-04-23T09:16:52.823011Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3759145274440377841, trigger=click)\n2026-04-23T09:16:54.220304Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3759145274440377841, trigger=click)\n2026-04-23T09:16:54.887021Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3759145274440377841, trigger=click)\n2026-04-23T09:16:58.589203Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3759145274440377841, trigger=visual_change)\n2026-04-23T09:18:05.879649Z WARN screenpipe_db::db: wal checkpoint: busy (could not truncate), 5054 pages in WAL\n2026-04-23T09:18:05.879619Z WARN sqlx::query: summary=\"PRAGMA wal_checkpoint(TRUNCATE)\" db.statement=\"\" rows_affected=0 rows_returned=1 elapsed=5.220339167s\n2026-04-23T09:19:24.740122Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=2 elapsed=7.381061833s\n2026-04-23T09:19:24.740850Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-23T09:19:36.514406Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2079049776495123607, trigger=click)\n2026-04-23T09:24:26.477446Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=11 elapsed=1.729545666s\n2026-04-23T09:24:26.477540Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 11 eligible frames\n2026-04-23T09:24:27.316363Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 5 frames, 1.4MB → 1.4MB (1.0x), 5 JPEGs deleted\n2026-04-23T09:24:27.966623Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 6 frames, 0.6MB → 0.2MB (2.7x), 6 JPEGs deleted\n2026-04-23T09:24:42.606557Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:26:03.160247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7786631749263421517, trigger=click)\n2026-04-23T09:27:26.154494Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:27:34.433056Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:28:06.713361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:28:33.527151Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5209591986308457575, trigger=click)\n2026-04-23T09:28:34.249353Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5209591986308457575, trigger=click)\n2026-04-23T09:28:36.237199Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5209591986308457575, trigger=click)\n2026-04-23T09:28:42.253183Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8747303508868961364, trigger=click)\n2026-04-23T09:28:48.282686Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:28:50.613134Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:28:51.314522Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:29:31.961577Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=67 elapsed=3.996031s\n2026-04-23T09:29:31.961670Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 67 eligible frames\n2026-04-23T09:29:34.332658Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 5.8MB → 2.1MB (2.8x), 29 JPEGs deleted\n2026-04-23T09:29:38.223511Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 7.4MB → 3.8MB (2.0x), 36 JPEGs deleted\n2026-04-23T09:30:34.230785Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:30:39.665086Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:30:40.299751Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:30:45.663893Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:30:51.622228Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:30:52.321014Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:31:15.021588Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:31:15.691601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:31:17.946692Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:31:18.653547Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:32:17.960360Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:32:24.051490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:32:29.442560Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:32:30.131038Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:32:32.452540Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:32:36.585069Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:32:39.322258Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:33:18.072421Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:33:18.766929Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:33:22.098409Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:33:22.782084Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:34:27.313290Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:34:38.542722Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 89 eligible frames\n2026-04-23T09:34:41.684595Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 38 frames, 5.6MB → 0.7MB (7.5x), 38 JPEGs deleted\n2026-04-23T09:34:44.933963Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 10.6MB → 3.8MB (2.8x), 49 JPEGs deleted\n2026-04-23T09:37:57.963204Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:37:58.697604Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:38:02.124214Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:38:53.190171Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:38:59.279885Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:39:02.308536Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:39:36.189861Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:39:49.122120Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=50 elapsed=4.188474542s\n2026-04-23T09:39:49.122232Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 50 eligible frames\n2026-04-23T09:39:51.115025Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 2.9MB → 0.3MB (9.4x), 24 JPEGs deleted\n2026-04-23T09:39:53.096763Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 5.0MB → 2.3MB (2.2x), 24 JPEGs deleted\n2026-04-23T09:40:57.095660Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:40:58.430714Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:41:01.130926Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:41:01.840278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:41:04.072034Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:41:09.252541Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:41:09.972092Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:41:12.313228Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:41:13.696141Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:41:15.723102Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:41:16.452657Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:42:46.382248Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:43:42.993741Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6469703639183038647, trigger=visual_change)\n2026-04-23T09:44:17.245560Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7072623502562616708, trigger=visual_change)\n2026-04-23T09:44:56.342637Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=21 elapsed=2.944921084s\n2026-04-23T09:44:56.343212Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames\n2026-04-23T09:44:57.216675Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.2MB → 0.2MB (6.9x), 10 JPEGs deleted\n2026-04-23T09:44:58.298212Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 2.1MB → 0.7MB (2.8x), 9 JPEGs deleted\n2026-04-23T09:45:10.982752Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Firefox, signals=2)\n2026-04-23T09:45:16.376695Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Firefox, signals=2, browser=true)\n2026-04-23T09:45:16.378791Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=9, app=Firefox, title=None)\n2026-04-23T09:50:01.989691Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=23 elapsed=3.688976042s\n2026-04-23T09:50:01.989962Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 23 eligible frames\n2026-04-23T09:50:03.098505Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.3MB → 0.2MB (7.4x), 11 JPEGs deleted\n2026-04-23T09:50:04.627741Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.4MB → 0.8MB (3.1x), 10 JPEGs deleted\n2026-04-23T09:50:07.629323Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4672421675042950776, trigger=click)\n2026-04-23T09:52:11.400798Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:52:15.346773Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:52:18.174934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:52:22.107623Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:52:32.020499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:53:33.890239Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:53:35.304629Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:53:58.176084Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:54:14.248454Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:54:18.287472Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:54:20.289467Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:54:24.904239Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:54:27.981243Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:54:29.172367Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:54:30.192245Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:54:31.161165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:55:11.821088Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=36 elapsed=7.192436875s\n2026-04-23T09:55:11.821248Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 36 eligible frames\n2026-04-23T09:55:13.532739Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 2.3MB → 0.5MB (5.0x), 19 JPEGs deleted\n2026-04-23T09:55:16.625152Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 3.3MB → 1.4MB (2.4x), 15 JPEGs deleted\n2026-04-23T09:56:01.584150Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:56:24.887186Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3078857793355977422, trigger=click)\n2026-04-23T09:56:32.005363Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3078857793355977422, trigger=visual_change)\n2026-04-23T09:56:41.374227Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3078857793355977422, trigger=visual_change)\n2026-04-23T09:56:54.666839Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3078857793355977422, trigger=click)\n2026-04-23T09:57:06.486753Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3593283938725328408, trigger=visual_change)\n2026-04-23T09:57:14.384178Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5341343601501307187, trigger=visual_change)\n2026-04-23T09:57:32.721765Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5341343601501307187, trigger=visual_change)\n2026-04-23T09:59:03.111441Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T09:59:18.292184Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:59:24.203906Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:59:28.763273Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T09:59:36.189282Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T10:00:16.817081Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 72 eligible frames\n2026-04-23T10:00:21.637421Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 45 frames, 7.5MB → 3.5MB (2.1x), 45 JPEGs deleted\n2026-04-23T10:00:24.683587Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.4MB → 1.4MB (3.2x), 25 JPEGs deleted\n2026-04-23T10:00:40.573974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6464745230001326344, trigger=visual_change)\n2026-04-23T10:02:52.495992Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8171437999531431641, trigger=click)\n2026-04-23T10:02:53.374393Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8171437999531431641, trigger=click)\n2026-04-23T10:03:37.373391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1961095499263201650, trigger=click)\n2026-04-23T10:04:58.338820Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T10:05:04.300061Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T10:05:10.114887Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T10:05:16.104422Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T10:05:20.754499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T10:05:25.933831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T10:05:30.717296Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=45 elapsed=5.043796209s\n2026-04-23T10:05:30.717708Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 45 eligible frames\n2026-04-23T10:05:33.129158Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.5MB → 1.3MB (2.8x), 21 JPEGs deleted\n2026-04-23T10:05:35.719261Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 3.9MB → 1.6MB (2.5x), 22 JPEGs deleted\n2026-04-23T10:06:54.427408Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T10:06:58.568476Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T10:07:35.294176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T10:07:36.671700Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)\n2026-04-23T10:07:46.281682Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)\n2026-04-23T10:10:42.001975Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=40 elapsed=6.278440792s\n2026-04-23T10:10:42.002064Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames\n2026-04-23T10:10:45.302375Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.7MB → 1.7MB (2.2x), 21 JPEGs deleted\n2026-04-23T10:10:47.110830Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 4.4MB → 0.6MB (7.8x), 17 JPEGs deleted\n2026-04-23T10:12:18.002465Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7144568667011834365, trigger=click)\n2026-04-23T10:13:16.229637Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3362537224271461493, trigger=visual_change)\n2026-04-23T10:13:20.127210Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3362537224271461493, trigger=visual_change)\n2026-04-23T10:15:43.498044Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-602531024127880156, trigger=visual_change)\n2026-04-23T10:15:46.873827Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-602531024127880156, trigger=visual_change)\n2026-04-23T10:15:49.085137Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 32 eligible frames\n2026-04-23T10:15:49.496235Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-602531024127880156, trigger=visual_change)\n2026-04-23T10:15:50.519319Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.0MB → 0.9MB (3.3x), 17 JPEGs deleted\n2026-04-23T10:15:51.657703Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 3.4MB → 0.5MB (6.7x), 13 JPEGs deleted\n2026-04-23T10:15:53.186964Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-602531024127880156, trigger=visual_change)\n2026-04-23T10:15:55.743993Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-602531024127880156, trigger=visual_change)\n2026-04-23T10:16:10.260016Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7730332891388508974, trigger=visual_change)\n2026-04-23T10:16:19.398464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5862100523266843105, trigger=visual_change)\n2026-04-23T10:16:23.686689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5862100523266843105, trigger=visual_change)\n2026-04-23T10:16:27.662719Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5862100523266843105, trigger=visual_change)\n2026-04-23T10:16:34.159786Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5862100523266843105, trigger=visual_change)\n2026-04-23T10:17:00.356336Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5862100523266843105, trigger=visual_change)\n2026-04-23T10:17:22.481007Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3265723714621232205, trigger=visual_change)\n2026-04-23T10:17:29.195939Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3265723714621232205, trigger=visual_change)\n2026-04-23T10:17:47.685112Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)\n2026-04-23T10:17:51.199158Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)\n2026-04-23T10:17:58.199222Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)\n2026-04-23T10:18:06.327777Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)\n2026-04-23T10:18:13.175283Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)\n2026-04-23T10:18:39.739176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)\n2026-04-23T10:19:27.720698Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)\n2026-04-23T10:19:31.148096Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)\n2026-04-23T10:19:35.991910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)\n2026-04-23T10:19:56.855761Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)\n2026-04-23T10:20:03.521058Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)\n2026-04-23T10:20:10.069690Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)\n2026-04-23T10:20:18.117006Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3396265690023637464, trigger=visual_change)\n2026-04-23T10:20:54.473088Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=27 elapsed=2.810096209s\n2026-04-23T10:20:54.473356Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 27 eligible frames\n2026-04-23T10:20:56.920972Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.2MB → 0.9MB (2.6x), 14 JPEGs deleted\n2026-04-23T10:20:58.678464Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 2.5MB → 0.8MB (3.0x), 11 JPEGs deleted\n2026-04-23T10:23:10.727426Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3844820439140861821, trigger=visual_change)\n2026-04-23T10:25:16.468416Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T10:25:32.507777Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=visual_change)\n2026-04-23T10:26:05.910946Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=33 elapsed=7.132200208s\n2026-04-23T10:26:05.912569Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 33 eligible frames\n2026-04-23T10:26:09.921886Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.0MB → 1.2MB (2.5x), 18 JPEGs deleted\n2026-04-23T10:26:13.670275Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.6MB → 0.9MB (3.0x), 13 JPEGs deleted\n2026-04-23T10:26:20.034712Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=click)\n2026-04-23T10:26:22.436991Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=click)\n2026-04-23T10:26:25.816727Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:27:46.056157Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1615606372458852745, trigger=click)\n2026-04-23T10:28:05.117587Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:28:16.307383Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:28:22.684004Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:28:39.022530Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:28:44.950116Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:28:50.090325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:28:52.144212Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:28:55.229550Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=click)\n2026-04-23T10:28:59.714370Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=click)\n2026-04-23T10:29:08.010841Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=click)\n2026-04-23T10:29:11.877274Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=click)\n2026-04-23T10:29:15.515889Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=click)\n2026-04-23T10:29:19.052095Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=click)\n2026-04-23T10:29:21.109938Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=click)\n2026-04-23T10:29:28.551159Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:29:30.947483Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:29:38.350095Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:29:51.477755Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:29:56.846851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:30:02.584960Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:30:06.779849Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:30:18.311444Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:30:22.665242Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:30:29.333028Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:30:37.983139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:30:48.829636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=click)\n2026-04-23T10:30:59.474314Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3712905987097609358, trigger=visual_change)\n2026-04-23T10:31:16.115641Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=34 elapsed=1.523826083s\n2026-04-23T10:31:16.115774Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 34 eligible frames\n2026-04-23T10:31:19.674413Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 3.4MB → 2.0MB (1.7x), 19 JPEGs deleted\n2026-04-23T10:31:20.281876Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:31:21.222414Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 3.4MB → 0.8MB (4.5x), 13 JPEGs deleted\n2026-04-23T10:31:30.589390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:31:31.649068Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:31:34.542890Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:31:35.913592Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:31:42.222598Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:31:46.314096Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:31:56.457995Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=visual_change)\n2026-04-23T10:32:02.440693Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2090548142966872323, trigger=click)\n2026-04-23T10:32:11.844302Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=9, grace=300s)\n2026-04-23T10:36:21.778297Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 34 eligible frames\n2026-04-23T10:36:23.408803Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 3.2MB → 1.6MB (2.1x), 19 JPEGs deleted\n2026-04-23T10:36:24.427188Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 3.4MB → 0.7MB (4.8x), 13 JPEGs deleted\n2026-04-23T10:37:15.245266Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Idle (timeout=300s, app=Firefox, id=9)\n2026-04-23T10:37:15.499978Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting ended (id=9)\n2026-04-23T10:39:08.136849Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7072094695368023128, trigger=visual_change)\n2026-04-23T10:40:10.173692Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5626541066854626210, trigger=visual_change)\n2026-04-23T10:41:03.187335Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6908211675272154683, trigger=visual_change)\n2026-04-23T10:41:27.801144Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=32 elapsed=3.230263875s\n2026-04-23T10:41:27.801229Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 32 eligible frames\n2026-04-23T10:41:30.240257Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.7MB → 1.1MB (2.4x), 17 JPEGs deleted\n2026-04-23T10:41:31.414104Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 3.3MB → 1.1MB (3.1x), 13 JPEGs deleted\n2026-04-23T10:43:59.795473Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:44:00.574274Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:44:03.353223Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=visual_change)\n2026-04-23T10:44:06.333413Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=visual_change)\n2026-04-23T10:44:15.554031Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:44:16.272856Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:44:36.868831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=visual_change)\n2026-04-23T10:44:52.509317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=visual_change)\n2026-04-23T10:45:05.711036Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=visual_change)\n2026-04-23T10:45:15.149681Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:45:15.874930Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:45:18.722067Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:45:27.888960Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=visual_change)\n2026-04-23T10:45:32.102259Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:45:47.964284Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-250182447663358748, trigger=click)\n2026-04-23T10:45:57.352178Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-250182447663358748, trigger=click)\n2026-04-23T10:45:58.059330Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-250182447663358748, trigger=click)\n2026-04-23T10:46:00.786122Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-250182447663358748, trigger=click)\n2026-04-23T10:46:01.515587Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-250182447663358748, trigger=click)\n2026-04-23T10:46:32.335524Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 34 eligible frames\n2026-04-23T10:46:33.454412Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 1.3MB → 0.3MB (4.3x), 15 JPEGs deleted\n2026-04-23T10:46:35.185172Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 4.4MB → 0.8MB (5.1x), 17 JPEGs deleted\n2026-04-23T10:49:51.424053Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:49:52.278022Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:50:06.945403Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=visual_change)\n2026-04-23T10:50:20.071306Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:50:27.322330Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:50:28.025501Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:50:31.361324Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:50:32.067598Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:50:43.957181Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:50:49.116814Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:50:49.902205Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:50:52.787071Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:50:55.600444Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:50:56.613411Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5090325678268650097, trigger=click)\n2026-04-23T10:51:01.606653Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5090325678268650097, trigger=visual_change)\n2026-04-23T10:51:36.294219Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames\n2026-04-23T10:51:37.139478Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.9MB → 0.1MB (8.1x), 10 JPEGs deleted\n2026-04-23T10:51:37.977586Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 2.4MB → 0.4MB (5.6x), 9 JPEGs deleted\n2026-04-23T10:53:10.914762Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5094416737894467752, trigger=click)\n2026-04-23T10:53:46.764312Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5492569374489755072, trigger=click)\n2026-04-23T10:53:47.493963Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5492569374489755072, trigger=click)\n2026-04-23T10:55:50.508246Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9185031867676948653, trigger=click)\n2026-04-23T10:56:18.190631Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8265869039182172474, trigger=visual_change)\n2026-04-23T10:56:21.391253Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8265869039182172474, trigger=visual_change)\n2026-04-23T10:56:44.441379Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=33 elapsed=6.451315834s\n2026-04-23T10:56:44.441894Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 33 eligible frames\n2026-04-23T10:56:46.435494Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 1.6MB → 0.1MB (14.8x), 17 JPEGs deleted\n2026-04-23T10:56:47.618773Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 3.5MB → 1.0MB (3.6x), 14 JPEGs deleted\n2026-04-23T10:56:48.429385Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3009288458992913716, trigger=visual_change)\n2026-04-23T10:56:55.377427Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3009288458992913716, trigger=visual_change)\n2026-04-23T10:56:58.331194Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3009288458992913716, trigger=visual_change)\n2026-04-23T10:57:31.580363Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=164293696523982731, trigger=visual_change)\n2026-04-23T10:57:37.142409Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=164293696523982731, trigger=visual_change)\n2026-04-23T11:01:54.879662Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=43 elapsed=6.651773875s\n2026-04-23T11:01:54.879780Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 43 eligible frames\n2026-04-23T11:01:56.181324Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 2.1MB → 0.5MB (4.0x), 20 JPEGs deleted\n2026-04-23T11:01:57.821885Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 4.6MB → 1.2MB (4.0x), 21 JPEGs deleted\n2026-04-23T11:05:34.805879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4133405882569027308, trigger=click)\n2026-04-23T11:05:42.692507Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-792819002159032212, trigger=click)\n2026-04-23T11:05:45.195836Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-792819002159032212, trigger=click)\n2026-04-23T11:06:58.003581Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 56 eligible frames\n2026-04-23T11:07:01.998524Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 4.2MB → 2.0MB (2.1x), 27 JPEGs deleted\n2026-04-23T11:07:04.632834Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 6.1MB → 1.2MB (5.2x), 27 JPEGs deleted\n2026-04-23T11:08:29.041425Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=811120582590877593, trigger=click)\n2026-04-23T11:11:26.078346Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=811120582590877593, trigger=click)\n2026-04-23T11:11:26.826746Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=811120582590877593, trigger=click)\n2026-04-23T11:11:29.736291Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=811120582590877593, trigger=click)\n2026-04-23T11:11:30.502898Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=811120582590877593, trigger=click)\n2026-04-23T11:11:33.284639Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=811120582590877593, trigger=click)\n2026-04-23T11:11:34.732219Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=811120582590877593, trigger=click)\n2026-04-23T11:11:36.846175Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=811120582590877593, trigger=click)\n2026-04-23T11:11:47.161668Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=811120582590877593, trigger=visual_change)\n2026-04-23T11:11:51.463126Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=811120582590877593, trigger=click)\n2026-04-23T11:11:55.190182Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=811120582590877593, trigger=click)\n2026-04-23T11:11:58.250612Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=811120582590877593, trigger=click)\n2026-04-23T11:11:58.984195Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=811120582590877593, trigger=click)\n2026-04-23T11:12:07.186907Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8190951420737299430, trigger=visual_change)\n2026-04-23T11:12:10.805150Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=28 elapsed=6.153365375s\n2026-04-23T11:12:10.806451Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames\n2026-04-23T11:12:12.869531Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.7MB → 1.2MB (2.2x), 16 JPEGs deleted\n2026-04-23T11:12:14.462884Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.2MB → 0.4MB (5.9x), 10 JPEGs deleted\n2026-04-23T11:14:59.283313Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-962688942467523245, trigger=click)\n2026-04-23T11:14:59.996111Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-962688942467523245, trigger=click)\n2026-04-23T11:15:52.562512Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4085483410823602662, trigger=click)\n2026-04-23T11:16:10.556556Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-680298114769977367, trigger=click)\n2026-04-23T11:16:44.987984Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-781142721963066587, trigger=click)\n2026-04-23T11:17:15.717626Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=34 elapsed=1.192290209s\n2026-04-23T11:17:15.717877Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 34 eligible frames\n2026-04-23T11:17:16.801524Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 1.7MB → 0.3MB (6.4x), 14 JPEGs deleted\n2026-04-23T11:17:18.950114Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 4.0MB → 0.9MB (4.3x), 18 JPEGs deleted\n2026-04-23T11:22:21.353046Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=27 elapsed=2.391216916s\n2026-04-23T11:22:21.353161Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 27 eligible frames\n2026-04-23T11:22:22.204810Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.6MB → 0.2MB (7.8x), 13 JPEGs deleted\n2026-04-23T11:22:23.352237Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.7MB → 1.1MB (2.5x), 12 JPEGs deleted\n2026-04-23T11:22:51.641783Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5591071779487381740, trigger=visual_change)\n2026-04-23T11:24:42.126313Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3622496340535697523, trigger=click)\n2026-04-23T11:27:16.328827Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3622496340535697523, trigger=click)\n2026-04-23T11:27:17.062717Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3622496340535697523, trigger=click)\n2026-04-23T11:27:20.131333Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3622496340535697523, trigger=visual_change)\n2026-04-23T11:27:27.263965Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=32 elapsed=2.915186083s\n2026-04-23T11:27:27.264345Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 32 eligible frames\n2026-04-23T11:27:29.317049Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.1MB → 0.6MB (3.5x), 16 JPEGs deleted\n2026-04-23T11:27:31.637712Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 3.0MB → 0.8MB (3.8x), 14 JPEGs deleted\n2026-04-23T11:29:03.406489Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1491366973306919482, trigger=visual_change)\n2026-04-23T11:29:37.371120Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1491366973306919482, trigger=click)\n2026-04-23T11:29:38.828999Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1491366973306919482, trigger=click)\n2026-04-23T11:30:05.594417Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7420299184765789117, trigger=click)\n2026-04-23T11:30:10.415695Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7420299184765789117, trigger=click)\n2026-04-23T11:30:37.438406Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Firefox, signals=2)\n2026-04-23T11:30:47.134756Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Firefox, signals=2, browser=true)\n2026-04-23T11:30:47.150842Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=10, app=Firefox, title=None)\n2026-04-23T11:32:52.795697Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=click, monitor=1) — DB pool may be saturated\n2026-04-23T11:32:54.063047Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=22.405129875s\n2026-04-23T11:32:54.065127Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-23T11:32:56.659956Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.7MB → 0.3MB (5.8x), 10 JPEGs deleted\n2026-04-23T11:32:58.390326Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.1MB → 0.4MB (5.1x), 10 JPEGs deleted\n2026-04-23T11:32:58.454323Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=click, monitor=2) — DB pool may be saturated\n2026-04-23T11:33:03.630685Z INFO screenpipe_engine::event_driven_capture: monitor 2 capture recovered after 1 consecutive errors\n2026-04-23T11:33:03.698376Z INFO screenpipe_engine::event_driven_capture: monitor 1 capture recovered after 1 consecutive errors\n2026-04-23T11:34:08.146813Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=visual_change, monitor=1) — DB pool may be saturated\n2026-04-23T11:34:19.115606Z INFO screenpipe_engine::event_driven_capture: monitor 1 capture recovered after 1 consecutive errors\n2026-04-23T11:38:06.413998Z WARN sqlx::query: summary=\"PRAGMA wal_checkpoint(TRUNCATE)\" db.statement=\"\" rows_affected=0 rows_returned=1 elapsed=5.320189792s\n2026-04-23T11:38:06.417026Z WARN screenpipe_db::db: wal checkpoint: busy (could not truncate), 1136 pages in WAL\n2026-04-23T11:38:06.480369Z WARN sqlx::query: summary=\"BEGIN IMMEDIATE\" db.statement=\"\" rows_affected=1 rows_returned=0 elapsed=3.645234084s\n2026-04-23T11:38:12.229580Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=26 elapsed=13.80812125s\n2026-04-23T11:38:12.232573Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 26 eligible frames\n2026-04-23T11:38:15.382662Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.9MB → 0.5MB (3.8x), 11 JPEGs deleted\n2026-04-23T11:38:16.795794Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=visual_change, monitor=1) — DB pool may be saturated\n2026-04-23T11:38:19.817599Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.7MB → 0.6MB (4.2x), 13 JPEGs deleted\n2026-04-23T11:38:24.993308Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=visual_change, monitor=2) — DB pool may be saturated\n2026-04-23T11:38:30.141938Z INFO screenpipe_engine::event_driven_capture: monitor 1 capture recovered after 1 consecutive errors\n2026-04-23T11:38:34.776814Z INFO screenpipe_engine::event_driven_capture: monitor 2 capture recovered after 1 consecutive errors\n2026-04-23T11:40:55.703155Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5781407336396073109, trigger=visual_change)\n2026-04-23T11:41:02.662314Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5781407336396073109, trigger=visual_change)\n2026-04-23T11:41:09.390136Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5781407336396073109, trigger=visual_change)\n2026-04-23T11:41:16.161715Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5781407336396073109, trigger=visual_change)\n2026-04-23T11:41:37.205648Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5781407336396073109, trigger=visual_change)\n2026-04-23T11:42:04.257036Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5781407336396073109, trigger=visual_change)\n2026-04-23T11:42:21.214633Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6679997250984875896, trigger=visual_change)\n2026-04-23T11:42:24.525053Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6679997250984875896, trigger=visual_change)\n2026-04-23T11:42:29.877589Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6679997250984875896, trigger=visual_change)\n2026-04-23T11:42:33.802238Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6679997250984875896, trigger=visual_change)\n2026-04-23T11:42:36.923509Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6679997250984875896, trigger=visual_change)\n2026-04-23T11:42:57.455576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6679997250984875896, trigger=visual_change)\n2026-04-23T11:43:12.031547Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=951548071599591969, trigger=visual_change)\n2026-04-23T11:43:18.874182Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=951548071599591969, trigger=visual_change)\n2026-04-23T11:43:24.247849Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=951548071599591969, trigger=visual_change)\n2026-04-23T11:43:26.259182Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=49 elapsed=6.405864s\n2026-04-23T11:43:26.263056Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 49 eligible frames\n2026-04-23T11:43:32.316690Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 3.7MB → 1.8MB (2.0x), 23 JPEGs deleted\n2026-04-23T11:43:34.974978Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=951548071599591969, trigger=visual_change)\n2026-04-23T11:43:36.047883Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.3MB → 1.5MB (2.9x), 24 JPEGs deleted\n2026-04-23T11:43:49.116309Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=951548071599591969, trigger=visual_change)\n2026-04-23T11:43:52.940018Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=951548071599591969, trigger=visual_change)\n2026-04-23T11:43:56.539135Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=951548071599591969, trigger=visual_change)\n2026-04-23T11:44:11.233290Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4079677798565982376, trigger=visual_change)\n2026-04-23T11:45:03.923694Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=click, monitor=2) — DB pool may be saturated\n2026-04-23T11:45:18.638512Z INFO screenpipe_engine::event_driven_capture: monitor 2 capture recovered after 1 consecutive errors\n2026-04-23T11:45:27.824824Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=click, monitor=1) — DB pool may be saturated\n2026-04-23T11:45:41.576372Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=click, monitor=2) — DB pool may be saturated\n2026-04-23T11:45:44.291896Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=click, monitor=1) — DB pool may be saturated\n2026-04-23T11:46:03.257280Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=click, monitor=1) — DB pool may be saturated\n2026-04-23T11:46:12.724398Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=visual_change, monitor=2) — DB pool may be saturated\n2026-04-23T11:46:22.727197Z INFO screenpipe_engine::event_driven_capture: monitor 1 capture recovered after 3 consecutive errors\n2026-04-23T11:46:24.228006Z INFO screenpipe_engine::event_driven_capture: monitor 2 capture recovered after 2 consecutive errors\n2026-04-23T11:46:40.390580Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7643951286516936585, trigger=visual_change)\n2026-04-23T11:46:49.248747Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7643951286516936585, trigger=visual_change)\n2026-04-23T11:46:55.471031Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7643951286516936585, trigger=visual_change)\n2026-04-23T11:47:02.336575Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7643951286516936585, trigger=visual_change)\n2026-04-23T11:48:17.252755Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7643951286516936585, trigger=visual_change)\n2026-04-23T11:48:25.013997Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7643951286516936585, trigger=visual_change)\n2026-04-23T11:48:53.059242Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=56 elapsed=13.220216708s\n2026-04-23T11:48:53.065643Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 56 eligible frames\n2026-04-23T11:48:58.527594Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 4.7MB → 2.2MB (2.1x), 30 JPEGs deleted\n2026-04-23T11:49:05.857012Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.3MB → 1.6MB (2.7x), 24 JPEGs deleted\n2026-04-23T11:49:06.658338Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5995459936453258264, trigger=visual_change)\n2026-04-23T11:49:28.247468Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5995459936453258264, trigger=visual_change)\n2026-04-23T11:49:46.108336Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4001297392414942723, trigger=visual_change)\n2026-04-23T11:49:53.084297Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4001297392414942723, trigger=visual_change)\n2026-04-23T11:49:56.028797Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4001297392414942723, trigger=click)\n2026-04-23T11:50:37.287127Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2527600923706712259, trigger=visual_change)\n2026-04-23T11:51:12.946650Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1489108089542937642, trigger=visual_change)\n2026-04-23T11:51:19.338386Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1489108089542937642, trigger=visual_change)\n2026-04-23T11:52:16.352383Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8163356110886780433, trigger=visual_change)\n2026-04-23T11:53:55.890568Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5293025605401136867, trigger=click)\n2026-04-23T11:54:09.640558Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=41 elapsed=3.460436583s\n2026-04-23T11:54:09.640693Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 41 eligible frames\n2026-04-23T11:54:13.152878Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 3.3MB → 1.5MB (2.2x), 22 JPEGs deleted\n2026-04-23T11:54:15.204535Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.9MB → 1.2MB (3.4x), 17 JPEGs deleted\n2026-04-23T11:58:11.876342Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=10, grace=300s)\n2026-04-23T11:59:15.385310Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames\n2026-04-23T11:59:16.921656Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.6MB → 0.6MB (2.8x), 13 JPEGs deleted\n2026-04-23T11:59:18.047335Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.2MB → 1.0MB (2.3x), 10 JPEGs deleted","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"✳ Build full day activity summary from Screenpipe (claude)","depth":2,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"ec2-user@ip-10-30-159-186:~ (-zsh)","depth":2,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"screenpipe\"","depth":1,"role_description":"text"}]...
|
7823854956395915880
|
914697014260639091
|
visual_change
|
accessibility
|
NULL
|
\n device_name,\n timestamp\nFROM\n frames\nWHE \n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=44 elapsed=1.833842375s
2026-04-22T18:03:16.198578Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 44 eligible frames
2026-04-22T18:03:18.139382Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 2.0MB → 0.1MB (16.1x), 21 JPEGs deleted
2026-04-22T18:03:19.618803Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.5MB → 1.5MB (2.4x), 21 JPEGs deleted
2026-04-22T18:06:58.395218Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7639883349033148478, trigger=click)
2026-04-22T18:06:58.897470Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7639883349033148478, trigger=click)
2026-04-22T18:07:42.474566Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=607162597309748765, trigger=click)
2026-04-22T18:08:27.382204Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=28 elapsed=7.750844334s
2026-04-22T18:08:27.382491Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames
2026-04-22T18:08:29.032220Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.2MB → 0.1MB (10.4x), 13 JPEGs deleted
2026-04-22T18:08:30.573314Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.7MB → 0.6MB (4.2x), 13 JPEGs deleted
2026-04-22T18:13:38.096494Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=20 elapsed=6.760223375s
2026-04-22T18:13:38.099584Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 20 eligible frames
2026-04-22T18:13:38.806766Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 0.8MB → 0.1MB (7.4x), 9 JPEGs deleted
2026-04-22T18:13:39.606462Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 1.9MB → 0.5MB (3.8x), 9 JPEGs deleted
2026-04-22T18:18:41.943065Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=45 elapsed=2.325026709s
2026-04-22T18:18:41.943417Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 45 eligible frames
2026-04-22T18:18:43.289962Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 2.0MB → 0.1MB (16.7x), 21 JPEGs deleted
2026-04-22T18:18:45.689764Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 4.4MB → 1.3MB (3.4x), 22 JPEGs deleted
2026-04-22T18:18:54.020334Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6726632078176380015, trigger=click)
2026-04-22T18:18:54.540347Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6726632078176380015, trigger=click)
2026-04-22T18:18:55.737423Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6726632078176380015, trigger=click)
2026-04-22T18:18:56.477423Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6726632078176380015, trigger=click)
2026-04-22T18:20:28.510789Z WARN sqlx::query: summary="PRAGMA wal_checkpoint(TRUNCATE)" db.statement="" rows_affected=0 rows_returned=1 elapsed=5.273706125s
2026-04-22T18:20:28.511954Z WARN screenpipe_db::db: wal checkpoint: busy (could not truncate), 3177 pages in WAL
2026-04-22T18:20:28.562400Z WARN sqlx::query: summary="BEGIN IMMEDIATE" db.statement="" rows_affected=1 rows_returned=0 elapsed=2.291890708s
2026-04-22T18:23:52.302822Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=31 elapsed=6.325649833s
2026-04-22T18:23:52.304330Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 31 eligible frames
2026-04-22T18:23:53.163590Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 1.1MB → 0.1MB (9.9x), 12 JPEGs deleted
2026-04-22T18:23:55.277698Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.4MB → 1.6MB (2.2x), 17 JPEGs deleted
2026-04-22T18:28:56.007322Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 35 eligible frames
2026-04-22T18:28:57.403360Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.7MB → 1.5MB (1.9x), 16 JPEGs deleted
2026-04-22T18:28:58.752838Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.9MB → 0.8MB (3.6x), 17 JPEGs deleted
2026-04-22T18:34:01.165384Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=41 elapsed=2.400307625s
2026-04-22T18:34:01.165480Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 41 eligible frames
2026-04-22T18:34:02.291139Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.7MB → 0.8MB (3.5x), 15 JPEGs deleted
2026-04-22T18:34:04.197399Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.2MB → 1.7MB (2.4x), 24 JPEGs deleted
2026-04-22T18:35:56.027919Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5884937538005636030, trigger=visual_change)
2026-04-22T18:37:55.284482Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-439807993867665328, trigger=visual_change)
2026-04-22T18:39:08.660187Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=22 elapsed=4.451587125s
2026-04-22T18:39:08.660278Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames
2026-04-22T18:39:09.493828Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.5MB → 0.5MB (3.1x), 10 JPEGs deleted
2026-04-22T18:39:10.349740Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.1MB → 0.5MB (4.3x), 10 JPEGs deleted
2026-04-22T18:43:06.355073Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3304493437592891639, trigger=click)
2026-04-22T18:43:23.219621Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6603898485603033537, trigger=click)
2026-04-22T18:44:11.899645Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=21 elapsed=1.53441375s
2026-04-22T18:44:11.900197Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames
2026-04-22T18:44:12.802039Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 1.1MB → 0.2MB (6.3x), 9 JPEGs deleted
2026-04-22T18:44:14.694466Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.1MB → 0.3MB (5.9x), 10 JPEGs deleted
2026-04-22T18:45:14.778135Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6664853592767636193, trigger=click)
2026-04-22T18:46:36.923697Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1791249548195440516, trigger=visual_change)
2026-04-22T18:49:18.625635Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=46 elapsed=3.900838541s
2026-04-22T18:49:18.625996Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 46 eligible frames
2026-04-22T18:49:19.640722Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 1.8MB → 0.2MB (10.4x), 15 JPEGs deleted
2026-04-22T18:49:23.038596Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 5.2MB → 2.1MB (2.4x), 29 JPEGs deleted
2026-04-22T18:50:34.997361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=visual_change)
2026-04-22T18:50:39.846829Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)
2026-04-22T18:50:43.731899Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)
2026-04-22T18:51:20.200945Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=visual_change)
2026-04-22T18:51:23.144927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)
2026-04-22T18:51:23.976040Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=click)
2026-04-22T18:51:27.176876Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)
2026-04-22T18:51:28.227317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=click)
2026-04-22T18:51:31.555085Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)
2026-04-22T18:51:32.274042Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=click)
2026-04-22T18:51:35.352114Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)
2026-04-22T18:51:37.306495Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=visual_change)
2026-04-22T18:52:02.049971Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=visual_change)
2026-04-22T18:52:09.690330Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=visual_change)
2026-04-22T18:52:11.530065Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)
2026-04-22T18:52:12.090300Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=click)
2026-04-22T18:52:22.885838Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6951480031607957362, trigger=visual_change)
2026-04-22T18:52:58.986955Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7031607293039132919, trigger=click)
2026-04-22T18:53:47.690375Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3992755350865402319, trigger=visual_change)
2026-04-22T18:54:25.328228Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=52 elapsed=2.277973417s
2026-04-22T18:54:25.328316Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 52 eligible frames
2026-04-22T18:54:26.661506Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 2.6MB → 0.2MB (11.0x), 22 JPEGs deleted
2026-04-22T18:54:28.982139Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 4.3MB → 1.1MB (3.8x), 28 JPEGs deleted
2026-04-22T18:54:44.142044Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3992755350865402319, trigger=visual_change)
2026-04-22T18:55:01.465747Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2556650532703180759, trigger=click)
2026-04-22T18:55:02.524314Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2556650532703180759, trigger=click)
2026-04-22T18:55:35.312048Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3149441378543601087, trigger=visual_change)
2026-04-22T18:55:55.086761Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3149441378543601087, trigger=click)
2026-04-22T18:55:56.919853Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3149441378543601087, trigger=visual_change)
2026-04-22T18:56:05.807170Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7595806992634662117, trigger=visual_change)
2026-04-22T18:56:12.303927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7595806992634662117, trigger=visual_change)
2026-04-22T18:56:58.093656Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2070714172482892625, trigger=visual_change)
2026-04-22T18:57:00.459010Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2070714172482892625, trigger=visual_change)
2026-04-22T18:57:03.809894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2070714172482892625, trigger=visual_change)
2026-04-22T18:58:04.259354Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7284778144726625723, trigger=visual_change)
2026-04-22T18:58:07.302007Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7284778144726625723, trigger=visual_change)
2026-04-22T18:58:10.443744Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7284778144726625723, trigger=visual_change)
2026-04-22T18:58:40.416893Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6313361147559934277, trigger=click)
2026-04-22T18:58:59.229391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)
2026-04-22T18:59:10.795801Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)
2026-04-22T18:59:15.904155Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)
2026-04-22T18:59:30.308258Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=46 elapsed=1.303054333s
2026-04-22T18:59:30.308485Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 46 eligible frames
2026-04-22T18:59:31.535859Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 2.4MB → 0.3MB (7.5x), 20 JPEGs deleted
2026-04-22T18:59:33.536283Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 3.8MB → 1.3MB (3.0x), 24 JPEGs deleted
2026-04-22T18:59:39.897203Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)
2026-04-22T18:59:43.593017Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-71227342056343983, trigger=visual_change)
2026-04-22T18:59:55.722135Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)
2026-04-22T19:00:00.394304Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)
2026-04-22T19:00:27.869871Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2710856207947507007, trigger=visual_change)
2026-04-22T19:01:54.992910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6986338393283794423, trigger=visual_change)
2026-04-22T19:02:13.568012Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6986338393283794423, trigger=visual_change)
2026-04-22T19:02:16.092275Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6986338393283794423, trigger=visual_change)
2026-04-22T19:03:04.479425Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7704375629034044835, trigger=visual_change)
2026-04-22T19:03:35.287830Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2375149456869027114, trigger=visual_change)
2026-04-22T19:03:41.021583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2375149456869027114, trigger=visual_change)
2026-04-22T19:03:48.485601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6234474271212752005, trigger=visual_change)
2026-04-22T19:04:35.737525Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=82 elapsed=2.188209209s
2026-04-22T19:04:35.737670Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 82 eligible frames
2026-04-22T19:04:38.209886Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3880005638520398709, trigger=click)
2026-04-22T19:04:38.478674Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 4.8MB → 1.0MB (4.9x), 39 JPEGs deleted
2026-04-22T19:04:42.074270Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 41 frames, 7.5MB → 3.6MB (2.1x), 41 JPEGs deleted
2026-04-22T19:04:55.094599Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-635344842894947589, trigger=visual_change)
2026-04-22T19:05:20.336216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)
2026-04-22T19:05:54.388487Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)
2026-04-22T19:05:57.299176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)
2026-04-22T19:05:59.949506Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)
2026-04-22T19:06:25.531964Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5957740084085463727, trigger=visual_change)
2026-04-22T19:06:50.090567Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6422724880219484653, trigger=visual_change)
2026-04-22T19:07:22.963169Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2531925023067266044, trigger=click)
2026-04-22T19:07:24.045648Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2531925023067266044, trigger=click)
2026-04-22T19:07:27.834546Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2085088366939909076, trigger=click)
2026-04-22T19:07:28.381522Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2085088366939909076, trigger=click)
2026-04-22T19:08:34.175493Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3061313113729352595, trigger=click)
2026-04-22T19:09:42.454765Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 91 eligible frames
2026-04-22T19:09:45.816541Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 5.7MB → 2.4MB (2.3x), 32 JPEGs deleted
2026-04-22T19:09:50.140975Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 57 frames, 7.8MB → 2.3MB (3.4x), 57 JPEGs deleted
2026-04-22T19:10:13.441594Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=click)
2026-04-22T19:10:18.830768Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)
2026-04-22T19:10:21.842287Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)
2026-04-22T19:10:28.187487Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5292492680570276501, trigger=click)
^C2026-04-22T19:10:32.957264Z INFO screenpipe: received ctrl+c, initiating shutdown
2026-04-22T19:10:32.958125Z INFO screenpipe: stopping UI event capture
2026-04-22T19:10:32.958201Z INFO screenpipe: received shutdown signal for VisionManager
2026-04-22T19:10:32.958212Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker shutting down
2026-04-22T19:10:32.958217Z INFO screenpipe_engine::meeting_detector: meeting v2: shutdown received, exiting detection loop
2026-04-22T19:10:32.958646Z INFO screenpipe_engine::vision_manager::manager: Shutting down VisionManager
2026-04-22T19:10:32.958661Z INFO screenpipe_engine::vision_manager::manager: Stopping VisionManager
2026-04-22T19:10:32.958669Z INFO screenpipe_engine::vision_manager::manager: Stopping vision recording for monitor 2
2026-04-22T19:10:32.958804Z INFO screenpipe_engine::vision_manager::manager: Stopping vision recording for monitor 1
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ 2026-04-22T19:10:33.158623Z INFO screenpipe_engine::ui_recorder: UI recording session ended: e7729066-2ab4-4bf0-9d48-0c9790a4ee79
2026-04-22T19:10:33.159581Z INFO screenpipe: shutdown complete
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-stop
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ st-start
zsh: command not found: st-start
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-start
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-04-23T09:12:59.282987Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store
checking permissions...
screen recording: ok
accessibility: ok
2026-04-23T09:12:59.350556Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-04-23T09:13:00.537715Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-04-23T09:13:00.539247Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-04-23T09:13:00.539704Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-04-23T09:13:00.580622Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-04-23T09:13:00.580688Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-04-23T09:13:00.580873Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-04-23T09:13:00.581042Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-04-23T09:13:00.581050Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-04-23T09:13:00.580937Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-04-23T09:13:00.581202Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-04-23T09:13:00.599105Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))
2026-04-23T09:13:00.607481Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-04-23T09:13:00.608248Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-04-23T09:13:00.608416Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-04-23T09:13:00.608706Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-04-23T09:13:00.608849Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-04-23T09:13:00.609337Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary
2026-04-23T09:13:00.609353Z INFO screenpipe_core::pipes: loaded 6 pipes from "/Users/lukas/.screenpipe/pipes"
_
__________________ ___ ____ ____ (_____ ___
/ ___/ ___/ ___/ _ \/ _ \/ __ \ / __ \/ / __ \/ _ \
(__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/
/____/\___/_/ \___/\___/_/ /_/ / .___/_/ .___/\___/
/_/ /_/
power AI by everything you've seen, said or heard
open source | runs locally | developer friendly
┌────────────────────────┬────────────────────────────────────┐
│ setting │ value │
├────────────────────────┼────────────────────────────────────┤
│ audio chunk duration │ 30 seconds │
│ port │ 3030 │
│ audio disabled │ true │
│ vision disabled │ false │
│ pause on DRM content │ false │
│ audio engine │ Parakeet │
│ vad engine │ Silero │
│ data directory │ /Users/lukas/.screenpipe │
│ debug mode │ false │
│ telemetry │ true │
│ use pii removal │ true │
│ use all monitors │ true │
│ ignored windows │ ["Boosteroid"] │
│ included windows │ [] │
│ cloud sync │ disabled │
│ auto-destruct pid │ 0 │
│ deepgram key │ not set │
│ api auth │ enabled │
2026-04-23T09:13:00.610149Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)
2026-04-23T09:13:00.614023Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh
│ encrypt secrets │ disabled │
│ retention days │ 14 │
├────────────────────────┼────────────────────────────────────┤
│ languages │ │
│ │ all languages │
├────────────────────────┼────────────────────────────────────┤
│ monitors │ │
│ │ id: 1 │
│ │ id: 2 │
├────────────────────────┼────────────────────────────────────┤
│ audio devices │ │
│ │ disabled │
└────────────────────────┴────────────────────────────────────┘
you are using local processing. all your data stays on your computer.
warning: telemetry is enabled. only error-level data will be sent.
to disable, use the --disable-telemetry flag.
check latest changes here: https://github.com/screenpipe/screenpipe/releases
2026-04-23T09:13:00.626925Z INFO screenpipe: starting UI event capture
2026-04-23T09:13:00.644081Z INFO screenpipe_engine::ui_recorder: Starting UI event capture
2026-04-23T09:13:00.659604Z INFO screenpipe_engine::ui_recorder: UI recording session started: 64e213bd-3690-487f-90be-4e8348040416
2026-04-23T09:13:00.659568Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)
2026-04-23T09:13:00.659937Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-22 06:13:00.659935 UTC to 2026-04-23 06:13:00.659935 UTC)
2026-04-23T09:13:00.660681Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)
2026-04-23T09:13:00.671031Z INFO screenpipe_engine::server: Server listening on [IP_ADDRESS]:3030
2026-04-23T09:13:00.676357Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030
2026-04-23T09:13:02.822346Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)
2026-04-23T09:13:02.822390Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)
2026-04-23T09:13:02.822429Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)
2026-04-23T09:13:03.612915Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-04-23T09:13:03.612969Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-04-23T09:13:03.612981Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)
2026-04-23T09:13:03.612988Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)
2026-04-23T09:13:03.613032Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-04-23T09:13:04.172201Z WARN sqlx::query: summary="SELECT f.id, f.timestamp, f.offset_index, …" db.statement="\n\nSELECT\n f.id,\n f.timestamp,\n f.offset_index,\n COALESCE(\n SUBSTR(f.full_text, 1, 200),\n SUBSTR(f.accessibility_text, 1, 200),\n (\n SELECT\n SUBSTR(ot.text, 1, 200)\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as text,\n COALESCE(\n f.app_name,\n (\n SELECT\n ot.app_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as app_name,\n COALESCE(\n f.window_name,\n (\n SELECT\n ot.window_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as window_name,\n COALESCE(vc.device_name, f.device_name) as screen_device,\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\n COALESCE(vc.fps, 0.033) as chunk_fps,\n f.browser_url,\n f.machine_id\nFROM\n frames f\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\nWHERE\n f.timestamp >= ?1\n AND f.timestamp <= ?2\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\nORDER BY\n f.timestamp DESC,\n f.offset_index DESC\nLIMIT\n 10000\n" rows_affected=0 rows_returned=4305 elapsed=3.511492208s
2026-04-23T09:13:04.183200Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 4304 frame entries, coverage from 2026-04-22 06:13:00.659935 UTC
2026-04-23T09:13:07.349282Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)
2026-04-23T09:13:07.830685Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=72776, dur=70ms
2026-04-23T09:13:08.836958Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)
2026-04-23T09:13:09.378786Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=72777, dur=124ms
2026-04-23T09:13:09.380863Z INFO sck_rs::stream_manager: invalidated persistent stream for display 2
2026-04-23T09:13:32.742255Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)
2026-04-23T09:14:01.764079Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4702465002163205464, trigger=click)
2026-04-23T09:14:04.223149Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4702465002163205464, trigger=visual_change)
2026-04-23T09:14:06.953796Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=147 elapsed=6.3719465s
2026-04-23T09:14:06.954006Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 147 eligible frames
2026-04-23T09:14:12.566935Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 70 frames, 10.3MB → 2.7MB (3.8x), 70 JPEGs deleted
2026-04-23T09:14:17.358704Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 75 frames, 9.6MB → 3.0MB (3.2x), 75 JPEGs deleted
2026-04-23T09:15:47.544198Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3660881845293713510, trigger=visual_change)
2026-04-23T09:15:50.997492Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3660881845293713510, trigger=click)
2026-04-23T09:15:51.600725Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3660881845293713510, trigger=click)
2026-04-23T09:15:55.723800Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3660881845293713510, trigger=click)
2026-04-23T09:15:56.933987Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3660881845293713510, trigger=visual_change)
2026-04-23T09:15:59.012409Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3660881845293713510, trigger=visual_change)
2026-04-23T09:16:49.882963Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3759145274440377841, trigger=visual_change)
2026-04-23T09:16:51.405936Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3759145274440377841, trigger=click)
2026-04-23T09:16:52.823011Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3759145274440377841, trigger=click)
2026-04-23T09:16:54.220304Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3759145274440377841, trigger=click)
2026-04-23T09:16:54.887021Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3759145274440377841, trigger=click)
2026-04-23T09:16:58.589203Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3759145274440377841, trigger=visual_change)
2026-04-23T09:18:05.879649Z WARN screenpipe_db::db: wal checkpoint: busy (could not truncate), 5054 pages in WAL
2026-04-23T09:18:05.879619Z WARN sqlx::query: summary="PRAGMA wal_checkpoint(TRUNCATE)" db.statement="" rows_affected=0 rows_returned=1 elapsed=5.220339167s
2026-04-23T09:19:24.740122Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=2 elapsed=7.381061833s
2026-04-23T09:19:24.740850Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
2026-04-23T09:19:36.514406Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2079049776495123607, trigger=click)
2026-04-23T09:24:26.477446Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=11 elapsed=1.729545666s
2026-04-23T09:24:26.477540Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 11 eligible frames
2026-04-23T09:24:27.316363Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 5 frames, 1.4MB → 1.4MB (1.0x), 5 JPEGs deleted
2026-04-23T09:24:27.966623Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 6 frames, 0.6MB → 0.2MB (2.7x), 6 JPEGs deleted
2026-04-23T09:24:42.606557Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:26:03.160247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7786631749263421517, trigger=click)
2026-04-23T09:27:26.154494Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:27:34.433056Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:28:06.713361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:28:33.527151Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5209591986308457575, trigger=click)
2026-04-23T09:28:34.249353Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5209591986308457575, trigger=click)
2026-04-23T09:28:36.237199Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5209591986308457575, trigger=click)
2026-04-23T09:28:42.253183Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8747303508868961364, trigger=click)
2026-04-23T09:28:48.282686Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:28:50.613134Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:28:51.314522Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:29:31.961577Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=67 elapsed=3.996031s
2026-04-23T09:29:31.961670Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 67 eligible frames
2026-04-23T09:29:34.332658Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 5.8MB → 2.1MB (2.8x), 29 JPEGs deleted
2026-04-23T09:29:38.223511Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 7.4MB → 3.8MB (2.0x), 36 JPEGs deleted
2026-04-23T09:30:34.230785Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:30:39.665086Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:30:40.299751Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:30:45.663893Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:30:51.622228Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:30:52.321014Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:31:15.021588Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:31:15.691601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:31:17.946692Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:31:18.653547Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:32:17.960360Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:32:24.051490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:32:29.442560Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:32:30.131038Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:32:32.452540Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:32:36.585069Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:32:39.322258Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:33:18.072421Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:33:18.766929Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:33:22.098409Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:33:22.782084Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:34:27.313290Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:34:38.542722Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 89 eligible frames
2026-04-23T09:34:41.684595Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 38 frames, 5.6MB → 0.7MB (7.5x), 38 JPEGs deleted
2026-04-23T09:34:44.933963Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 10.6MB → 3.8MB (2.8x), 49 JPEGs deleted
2026-04-23T09:37:57.963204Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:37:58.697604Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:38:02.124214Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:38:53.190171Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:38:59.279885Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:39:02.308536Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:39:36.189861Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:39:49.122120Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=50 elapsed=4.188474542s
2026-04-23T09:39:49.122232Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 50 eligible frames
2026-04-23T09:39:51.115025Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 2.9MB → 0.3MB (9.4x), 24 JPEGs deleted
2026-04-23T09:39:53.096763Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 5.0MB → 2.3MB (2.2x), 24 JPEGs deleted
2026-04-23T09:40:57.095660Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=visual_change)
2026-04-23T09:40:58.430714Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3407362332434637772, trigger=click)
2026-04-23T09:41:01.130926Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3407362332434637772, trigger=click)
2026-04-23T09:41:01.840278Z INFO screenpipe_engine::event_d...
|
NULL
|
|
72777
|
1775
|
0
|
2026-04-23T06:13:04.113261+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-23/1776 /Users/lukas/.screenpipe/data/data/2026-04-23/1776924784113_m2.jpg...
|
iTerm2
|
screenpipe"
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
2026-04-22T13:54:45.480269Z INFO screenpipe_engin 2026-04-22T13:54:45.480269Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)
2026-04-22T13:54:45.525295Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2
2026-04-22T13:54:47.277567Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)
2026-04-22T13:54:47.557900Z WARN screenpipe_engine::event_driven_capture: skipping capture: lock screen app 'loginwindow' on monitor 2
2026-04-22T13:54:50.517321Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)
2026-04-22T13:54:50.531527Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2
2026-04-22T13:54:50.539783Z INFO sck_rs::stream_manager: stopped 1 persistent stream(s)
2026-04-22T13:54:51.633834Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)
2026-04-22T13:54:57.215619Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)
2026-04-22T13:54:57.475388Z WARN screenpipe_engine::event_driven_capture: skipping capture: lock screen app 'loginwindow' on monitor 1
2026-04-22T13:55:00.526322Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)
2026-04-22T13:55:00.545282Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2
2026-04-22T13:55:01.132848Z INFO sck_rs::stream_manager: stopped 2 persistent stream(s)
2026-04-22T13:55:02.005737Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)
2026-04-22T13:55:02.633821Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)
2026-04-22T13:55:19.838192Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3145826437395305149, trigger=click)
2026-04-22T13:55:20.300634Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3145826437395305149, trigger=click)
2026-04-22T13:55:21.567188Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3145826437395305149, trigger=click)
2026-04-22T13:55:42.189258Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=38 elapsed=6.884820208s
2026-04-22T13:55:42.189981Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 38 eligible frames
2026-04-22T13:55:43.595617Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.1MB → 0.2MB (11.9x), 16 JPEGs deleted
2026-04-22T13:55:46.392329Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.1MB → 1.1MB (3.6x), 20 JPEGs deleted
2026-04-22T13:55:56.140186Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:55:57.408560Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:58:03.696726Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:58:06.390518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:58:08.300896Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:58:08.718730Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:58:09.912001Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:58:10.311583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:58:13.273546Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=visual_change)
2026-04-22T13:58:19.346181Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=visual_change)
2026-04-22T13:58:58.360554Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:58:58.786340Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:59:04.430986Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:59:04.893282Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:59:45.902049Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:59:46.348987Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:59:48.470706Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:59:48.898805Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:59:54.274180Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:59:56.495414Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)
2026-04-22T14:00:02.522746Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)
2026-04-22T14:00:35.856416Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6212304827203743747, trigger=click)
2026-04-22T14:00:44.303637Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6212304827203743747, trigger=visual_change)
2026-04-22T14:00:55.518274Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=22 elapsed=9.118070709s
2026-04-22T14:00:55.518433Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames
2026-04-22T14:00:57.099120Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.3MB → 0.2MB (7.7x), 10 JPEGs deleted
2026-04-22T14:00:58.767986Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.2MB → 0.4MB (6.0x), 10 JPEGs deleted
2026-04-22T14:04:15.220880Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3837731717837980920, trigger=visual_change)
2026-04-22T14:05:28.069620Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1051548329161768346, trigger=click)
2026-04-22T14:05:28.937013Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1051548329161768346, trigger=click)
2026-04-22T14:06:00.164534Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=16 elapsed=1.199258208s
2026-04-22T14:06:00.164673Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 16 eligible frames
2026-04-22T14:06:02.024968Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 7 frames, 0.9MB → 0.2MB (5.3x), 7 JPEGs deleted
2026-04-22T14:06:05.188088Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 7 frames, 1.5MB → 0.7MB (2.2x), 7 JPEGs deleted
2026-04-22T14:06:46.071139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)
2026-04-22T14:06:54.570039Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)
2026-04-22T14:10:11.311868Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)
2026-04-22T14:10:11.803732Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)
2026-04-22T14:10:14.694406Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)
2026-04-22T14:10:15.147426Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)
2026-04-22T14:10:20.551057Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)
2026-04-22T14:10:21.045391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)
2026-04-22T14:10:22.951330Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)
2026-04-22T14:10:23.467707Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)
2026-04-22T14:10:30.780582Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)
2026-04-22T14:10:31.189747Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)
2026-04-22T14:11:11.060150Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=27 elapsed=4.548210084s
2026-04-22T14:11:11.060281Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 27 eligible frames
2026-04-22T14:11:12.404803Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.4MB → 0.2MB (8.3x), 11 JPEGs deleted
2026-04-22T14:11:14.840042Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.7MB → 0.9MB (3.1x), 14 JPEGs deleted
2026-04-22T14:13:35.976326Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4968702094796127351, trigger=click)
2026-04-22T14:14:34.729623Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4357453572186956917, trigger=click)
2026-04-22T14:14:35.105620Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4357453572186956917, trigger=click)
2026-04-22T14:14:42.802189Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3105240340990619874, trigger=visual_change)
2026-04-22T14:15:50.965557Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3105240340990619874, trigger=click)
2026-04-22T14:16:12.161692Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6479516063853776409, trigger=click)
2026-04-22T14:16:16.153590Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=48 elapsed=1.32668825s
2026-04-22T14:16:16.155403Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 48 eligible frames
2026-04-22T14:16:18.705225Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 5.0MB → 0.8MB (5.9x), 20 JPEGs deleted
2026-04-22T14:16:23.744196Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.4MB → 1.3MB (3.4x), 26 JPEGs deleted
2026-04-22T14:16:41.068116Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1903229694032021789, trigger=click)
2026-04-22T14:19:15.519118Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4529195482775946524, trigger=click)
2026-04-22T14:19:22.366746Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)
2026-04-22T14:19:30.208098Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)
2026-04-22T14:19:33.496128Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)
2026-04-22T14:19:38.751833Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6094503686615299639, trigger=click)
2026-04-22T14:19:41.173256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6094503686615299639, trigger=visual_change)
2026-04-22T14:19:42.912499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6094503686615299639, trigger=click)
2026-04-22T14:19:46.351486Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6094503686615299639, trigger=click)
2026-04-22T14:19:59.152409Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4952826635443255860, trigger=click)
2026-04-22T14:20:01.518389Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4952826635443255860, trigger=click)
2026-04-22T14:20:08.061611Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3675157249828056010, trigger=click)
2026-04-22T14:21:28.984120Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=25 elapsed=4.855522625s
2026-04-22T14:21:28.985458Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames
2026-04-22T14:21:30.346636Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 2.5MB → 0.5MB (5.1x), 11 JPEGs deleted
2026-04-22T14:21:32.359178Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.6MB → 0.6MB (4.3x), 12 JPEGs deleted
2026-04-22T14:23:49.639071Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=click)
2026-04-22T14:24:02.782818Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=click)
2026-04-22T14:24:15.622633Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)
2026-04-22T14:26:10.392401Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)
2026-04-22T14:26:10.788712Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=click)
2026-04-22T14:26:12.799270Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)
2026-04-22T14:26:13.219651Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=visual_change)
2026-04-22T14:26:38.732555Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=36 elapsed=6.323619459s
2026-04-22T14:26:38.732888Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 36 eligible frames
2026-04-22T14:26:39.785513Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 1.2MB → 0.1MB (9.0x), 16 JPEGs deleted
2026-04-22T14:26:41.678236Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 4.1MB → 1.7MB (2.4x), 18 JPEGs deleted
2026-04-22T14:26:51.433436Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=click)
2026-04-22T14:26:52.304457Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)
2026-04-22T14:26:54.907598Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=click)
2026-04-22T14:26:55.381293Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)
2026-04-22T14:27:00.185936Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)
2026-04-22T14:27:01.160650Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=visual_change)
2026-04-22T14:27:24.714027Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)
2026-04-22T14:27:25.724851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=visual_change)
2026-04-22T14:27:26.222818Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)
2026-04-22T14:27:27.755899Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=click)
2026-04-22T14:27:28.274266Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)
2026-04-22T14:30:08.479659Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1095112307124202838, trigger=click)
2026-04-22T14:31:42.105262Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 38 eligible frames
2026-04-22T14:31:43.197127Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.5MB → 1.0MB (2.5x), 15 JPEGs deleted
2026-04-22T14:31:45.195588Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 4.3MB → 1.6MB (2.6x), 21 JPEGs deleted
2026-04-22T14:32:02.263422Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3223987862501414590, trigger=click)
2026-04-22T14:32:02.639431Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3223987862501414590, trigger=click)
2026-04-22T14:32:19.705800Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1632013320203273627, trigger=click)
2026-04-22T14:32:56.235240Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=257019738165452929, trigger=click)
2026-04-22T14:32:59.969256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=257019738165452929, trigger=click)
2026-04-22T14:33:03.317113Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=257019738165452929, trigger=click)
2026-04-22T14:33:06.798109Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=257019738165452929, trigger=click)
2026-04-22T14:33:17.093100Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3308965711270161120, trigger=click)
2026-04-22T14:33:17.486074Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3308965711270161120, trigger=click)
2026-04-22T14:33:22.565377Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3308965711270161120, trigger=click)
2026-04-22T14:33:23.216523Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3308965711270161120, trigger=click)
2026-04-22T14:33:35.842809Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=435352143489435154, trigger=click)
2026-04-22T14:36:49.764156Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=34 elapsed=4.516637708s
2026-04-22T14:36:49.764263Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 34 eligible frames
2026-04-22T14:36:51.311395Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.0MB → 0.7MB (4.6x), 17 JPEGs deleted
2026-04-22T14:36:52.531817Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 3.0MB → 1.1MB (2.6x), 15 JPEGs deleted
2026-04-22T14:37:28.108242Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=435352143489435154, trigger=click)
2026-04-22T14:37:28.485856Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=435352143489435154, trigger=click)
2026-04-22T14:37:58.316339Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3668856246823891896, trigger=click)
2026-04-22T14:38:23.725006Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3668856246823891896, trigger=visual_change)
2026-04-22T14:38:38.826158Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3668856246823891896, trigger=click)
2026-04-22T14:39:14.985595Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2152077026286113228, trigger=click)
2026-04-22T14:39:41.085287Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2152077026286113228, trigger=click)
2026-04-22T14:39:48.325144Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2152077026286113228, trigger=click)
2026-04-22T14:39:54.042692Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2152077026286113228, trigger=click)
2026-04-22T14:40:56.876512Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2152077026286113228, trigger=click)
2026-04-22T14:41:03.035671Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2747516377298098397, trigger=click)
2026-04-22T14:41:21.141064Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2710026494434395739, trigger=click)
2026-04-22T14:41:34.026128Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2710026494434395739, trigger=click)
2026-04-22T14:41:59.929978Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=38 elapsed=5.991404375s
2026-04-22T14:41:59.930138Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 38 eligible frames
2026-04-22T14:42:03.556178Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.2MB → 0.3MB (11.1x), 18 JPEGs deleted
2026-04-22T14:42:06.257184Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.3MB → 1.1MB (2.9x), 18 JPEGs deleted
2026-04-22T14:42:25.479048Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8568923258494843591, trigger=click)
2026-04-22T14:42:43.658087Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1714642257969983896, trigger=click)
2026-04-22T14:42:44.150668Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1714642257969983896, trigger=click)
2026-04-22T14:42:46.347489Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1714642257969983896, trigger=click)
2026-04-22T14:42:46.976364Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1714642257969983896, trigger=click)
2026-04-22T14:42:54.146640Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8318058469467001879, trigger=click)
2026-04-22T14:43:16.054664Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2746665666832385858, trigger=click)
2026-04-22T14:43:27.592095Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2746665666832385858, trigger=click)
2026-04-22T14:43:28.904486Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2746665666832385858, trigger=click)
2026-04-22T14:43:33.115401Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2746665666832385858, trigger=click)
2026-04-22T14:43:33.548704Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2746665666832385858, trigger=click)
2026-04-22T14:43:34.528422Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2746665666832385858, trigger=click)
2026-04-22T14:43:35.101040Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2746665666832385858, trigger=click)
2026-04-22T14:43:42.182992Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2746665666832385858, trigger=click)
2026-04-22T14:43:44.575989Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2746665666832385858, trigger=click)
2026-04-22T14:44:46.365793Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6679194177618586363, trigger=click)
2026-04-22T14:47:14.092894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6118025119517316583, trigger=click)
2026-04-22T14:47:14.453307Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6118025119517316583, trigger=click)
2026-04-22T14:47:15.216109Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=38 elapsed=7.876438917s
2026-04-22T14:47:15.216433Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 38 eligible frames
2026-04-22T14:47:16.019464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6118025119517316583, trigger=click)
2026-04-22T14:47:16.544950Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6118025119517316583, trigger=click)
2026-04-22T14:47:16.818898Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.2MB → 0.4MB (7.6x), 18 JPEGs deleted
2026-04-22T14:47:18.385927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6118025119517316583, trigger=click)
2026-04-22T14:47:18.475181Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.3MB → 1.2MB (2.9x), 18 JPEGs deleted
2026-04-22T14:47:19.386449Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6118025119517316583, trigger=click)
2026-04-22T14:47:20.087965Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6118025119517316583, trigger=click)
2026-04-22T14:47:59.950079Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2150958068002330087, trigger=click)
2026-04-22T14:48:01.449829Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2150958068002330087, trigger=click)
2026-04-22T14:48:09.502190Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2150958068002330087, trigger=visual_change)
2026-04-22T14:48:34.932290Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8599886822383806507, trigger=click)
2026-04-22T14:48:44.486878Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3332409860485365312, trigger=click)
2026-04-22T14:48:45.527964Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3332409860485365312, trigger=click)
2026-04-22T14:49:38.888769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=472424603195027632, trigger=click)
2026-04-22T14:49:45.417282Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=472424603195027632, trigger=click)
2026-04-22T14:49:47.792067Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=472424603195027632, trigger=click)
2026-04-22T14:50:00.945819Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4843648253222399128, trigger=click)
2026-04-22T14:50:02.876637Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4843648253222399128, trigger=click)
2026-04-22T14:52:21.989580Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=42 elapsed=3.480045958s
2026-04-22T14:52:21.990045Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 42 eligible frames
2026-04-22T14:52:23.358528Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 3.9MB → 0.4MB (8.7x), 22 JPEGs deleted
2026-04-22T14:52:24.693261Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.5MB → 1.3MB (2.6x), 18 JPEGs deleted
2026-04-22T14:53:02.184100Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8042719790331908666, trigger=click)
2026-04-22T14:53:02.666973Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8042719790331908666, trigger=click)
2026-04-22T14:53:44.356357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8042719790331908666, trigger=click)
2026-04-22T14:53:44.849679Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8042719790331908666, trigger=click)
2026-04-22T14:57:28.770189Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=52 elapsed=4.063771166s
2026-04-22T14:57:28.770886Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 52 eligible frames
2026-04-22T14:57:31.445523Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.2MB → 0.5MB (7.8x), 25 JPEGs deleted
2026-04-22T14:57:35.130193Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.0MB → 2.4MB (2.1x), 25 JPEGs deleted
2026-04-22T15:00:02.686939Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Slack, signals=2)
2026-04-22T15:00:08.703872Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Slack, signals=2, browser=false)
2026-04-22T15:00:08.707794Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=8, app=Slack, title=None)
2026-04-22T15:00:09.697915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)
2026-04-22T15:00:25.820838Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)
2026-04-22T15:00:30.742889Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)
2026-04-22T15:00:35.932789Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)
2026-04-22T15:00:38.982205Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)
2026-04-22T15:00:42.607387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)
2026-04-22T15:00:45.252062Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)
2026-04-22T15:00:48.655907Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)
2026-04-22T15:00:54.706686Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)
2026-04-22T15:02:07.634898Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)
2026-04-22T15:02:43.352910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=click)
2026-04-22T15:02:43.752028Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=57 elapsed=8.590900375s
2026-04-22T15:02:43.756244Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 57 eligible frames
2026-04-22T15:02:46.231236Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 4.8MB → 2.0MB (2.4x), 29 JPEGs deleted
2026-04-22T15:02:46.417502Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)
2026-04-22T15:02:49.039329Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.9MB → 1.8MB (2.8x), 26 JPEGs deleted
2026-04-22T15:02:50.878563Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)
2026-04-22T15:02:53.936710Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)
2026-04-22T15:02:56.977078Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)
2026-04-22T15:03:19.571166Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)
2026-04-22T15:03:26.066470Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)
2026-04-22T15:03:31.414066Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)
2026-04-22T15:04:07.475454Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)
2026-04-22T15:04:10.605093Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)
2026-04-22T15:04:13.512293Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)
2026-04-22T15:04:16.529473Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)
2026-04-22T15:04:53.720517Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)
2026-04-22T15:04:55.658228Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)
2026-04-22T15:05:01.010633Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)
2026-04-22T15:05:03.051970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)
2026-04-22T15:05:06.145567Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)
2026-04-22T15:05:29.469376Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=797137072065105312, trigger=click)
2026-04-22T15:05:55.103542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-116347373995830011, trigger=click)
2026-04-22T15:05:55.539275Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-116347373995830011, trigger=click)
2026-04-22T15:06:41.788384Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-116347373995830011, trigger=click)
2026-04-22T15:06:42.204175Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-116347373995830011, trigger=click)
2026-04-22T15:07:03.704733Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Slack, id=8, grace=30s)
2026-04-22T15:07:39.449504Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Idle (timeout=30s, app=Slack, id=8)
2026-04-22T15:07:39.915187Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting ended (id=8)
2026-04-22T15:07:49.691643Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 27 eligible frames
2026-04-22T15:07:51.650549Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.3MB → 0.3MB (7.0x), 13 JPEGs deleted
2026-04-22T15:07:53.582709Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.6MB → 0.9MB (3.0x), 12 JPEGs deleted
2026-04-22T15:07:53.988144Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1303595353837004202, trigger=click)
2026-04-22T15:09:49.799139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4589403011857874475, trigger=click)
2026-04-22T15:09:52.656133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4589403011857874475, trigger=click)
2026-04-22T15:13:00.784316Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=44 elapsed=7.176940333s
2026-04-22T15:13:00.784701Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 44 eligible frames
2026-04-22T15:13:06.141480Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 3.7MB → 1.4MB (2.7x), 23 JPEGs deleted
2026-04-22T15:13:09.087116Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 5.4MB → 1.4MB (4.0x), 19 JPEGs deleted
2026-04-22T15:18:11.493152Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=37 elapsed=2.382042209s
2026-04-22T15:18:11.496118Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 37 eligible frames
2026-04-22T15:18:15.568523Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.0MB → 1.3MB (2.3x), 18 JPEGs deleted
2026-04-22T15:18:18.268870Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 5.0MB → 1.2MB (4.0x), 17 JPEGs deleted
2026-04-22T15:21:12.476028Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3813526692250337476, trigger=visual_change)
2026-04-22T15:23:28.271759Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=63 elapsed=9.511646458s
2026-04-22T15:23:28.282671Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 63 eligible frames
2026-04-22T15:23:34.267737Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 6.8MB → 3.5MB (1.9x), 31 JPEGs deleted
2026-04-22T15:23:38.696265Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 5.7MB → 1.2MB (4.7x), 30 JPEGs deleted
2026-04-22T15:25:18.297937Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)
2026-04-22T15:25:21.238617Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)
2026-04-22T15:25:58.399479Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6869659017523937306, trigger=click)
2026-04-22T15:26:00.086631Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6869659017523937306, trigger=click)
2026-04-22T15:26:01.910963Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6869659017523937306, trigger=visual_change)
2026-04-22T15:26:02.357258Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6869659017523937306, trigger=visual_change)
2026-04-22T15:26:04.744325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6869659017523937306, trigger=click)
2026-04-22T15:26:05.686404Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6869659017523937306, trigger=visual_change)
2026-04-22T15:26:07.341872Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6869659017523937306, trigger=click)
2026-04-22T15:26:07.841961Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6869659017523937306, trigger=click)
2026-04-22T15:27:08.518409Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=click)
2026-04-22T15:27:14.348556Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)
2026-04-22T15:27:19.567077Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)
2026-04-22T15:27:23.928137Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6983242470914211958, trigger=click)
2026-04-22T15:27:25.430871Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=click)
2026-04-22T15:27:32.704396Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6983242470914211958, trigger=click)
2026-04-22T15:27:39.006433Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)
2026-04-22T15:27:43.060533Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)
2026-04-22T15:27:45.902424Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)
2026-04-22T15:27:53.866025Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)
2026-04-22T15:27:56.855542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)
2026-04-22T15:28:06.329802Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)
2026-04-22T15:28:16.947758Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=click)
2026-04-22T15:28:17.639628Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6983242470914211958, trigger=click)
2026-04-22T15:28:19.702614Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)
2026-04-22T15:28:22.257394Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=click)
2026-04-22T15:28:22.756941Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6983242470914211958, trigger=click)
2026-04-22T15:28:25.405205Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=click)
2026-04-22T15:28:26.273821Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6983242470914211958, trigger=click)
2026-04-22T15:...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"2026-04-22T13:54:45.480269Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)\n2026-04-22T13:54:45.525295Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2\n2026-04-22T13:54:47.277567Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-22T13:54:47.557900Z WARN screenpipe_engine::event_driven_capture: skipping capture: lock screen app 'loginwindow' on monitor 2\n2026-04-22T13:54:50.517321Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)\n2026-04-22T13:54:50.531527Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2\n2026-04-22T13:54:50.539783Z INFO sck_rs::stream_manager: stopped 1 persistent stream(s)\n2026-04-22T13:54:51.633834Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-22T13:54:57.215619Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-22T13:54:57.475388Z WARN screenpipe_engine::event_driven_capture: skipping capture: lock screen app 'loginwindow' on monitor 1\n2026-04-22T13:55:00.526322Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)\n2026-04-22T13:55:00.545282Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2\n2026-04-22T13:55:01.132848Z INFO sck_rs::stream_manager: stopped 2 persistent stream(s)\n2026-04-22T13:55:02.005737Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-22T13:55:02.633821Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-22T13:55:19.838192Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3145826437395305149, trigger=click)\n2026-04-22T13:55:20.300634Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3145826437395305149, trigger=click)\n2026-04-22T13:55:21.567188Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3145826437395305149, trigger=click)\n2026-04-22T13:55:42.189258Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=38 elapsed=6.884820208s\n2026-04-22T13:55:42.189981Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 38 eligible frames\n2026-04-22T13:55:43.595617Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.1MB → 0.2MB (11.9x), 16 JPEGs deleted\n2026-04-22T13:55:46.392329Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.1MB → 1.1MB (3.6x), 20 JPEGs deleted\n2026-04-22T13:55:56.140186Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:55:57.408560Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:58:03.696726Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:58:06.390518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:58:08.300896Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:58:08.718730Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:58:09.912001Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:58:10.311583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:58:13.273546Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=visual_change)\n2026-04-22T13:58:19.346181Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=visual_change)\n2026-04-22T13:58:58.360554Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:58:58.786340Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:59:04.430986Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:59:04.893282Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:59:45.902049Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:59:46.348987Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:59:48.470706Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:59:48.898805Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:59:54.274180Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:59:56.495414Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)\n2026-04-22T14:00:02.522746Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)\n2026-04-22T14:00:35.856416Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6212304827203743747, trigger=click)\n2026-04-22T14:00:44.303637Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6212304827203743747, trigger=visual_change)\n2026-04-22T14:00:55.518274Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=9.118070709s\n2026-04-22T14:00:55.518433Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-22T14:00:57.099120Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.3MB → 0.2MB (7.7x), 10 JPEGs deleted\n2026-04-22T14:00:58.767986Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.2MB → 0.4MB (6.0x), 10 JPEGs deleted\n2026-04-22T14:04:15.220880Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3837731717837980920, trigger=visual_change)\n2026-04-22T14:05:28.069620Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1051548329161768346, trigger=click)\n2026-04-22T14:05:28.937013Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1051548329161768346, trigger=click)\n2026-04-22T14:06:00.164534Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=16 elapsed=1.199258208s\n2026-04-22T14:06:00.164673Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 16 eligible frames\n2026-04-22T14:06:02.024968Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 7 frames, 0.9MB → 0.2MB (5.3x), 7 JPEGs deleted\n2026-04-22T14:06:05.188088Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 7 frames, 1.5MB → 0.7MB (2.2x), 7 JPEGs deleted\n2026-04-22T14:06:46.071139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:06:54.570039Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:10:11.311868Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:10:11.803732Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:10:14.694406Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:10:15.147426Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:10:20.551057Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:10:21.045391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:10:22.951330Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:10:23.467707Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:10:30.780582Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:10:31.189747Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:11:11.060150Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=27 elapsed=4.548210084s\n2026-04-22T14:11:11.060281Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 27 eligible frames\n2026-04-22T14:11:12.404803Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.4MB → 0.2MB (8.3x), 11 JPEGs deleted\n2026-04-22T14:11:14.840042Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.7MB → 0.9MB (3.1x), 14 JPEGs deleted\n2026-04-22T14:13:35.976326Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4968702094796127351, trigger=click)\n2026-04-22T14:14:34.729623Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4357453572186956917, trigger=click)\n2026-04-22T14:14:35.105620Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4357453572186956917, trigger=click)\n2026-04-22T14:14:42.802189Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3105240340990619874, trigger=visual_change)\n2026-04-22T14:15:50.965557Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3105240340990619874, trigger=click)\n2026-04-22T14:16:12.161692Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6479516063853776409, trigger=click)\n2026-04-22T14:16:16.153590Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=48 elapsed=1.32668825s\n2026-04-22T14:16:16.155403Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 48 eligible frames\n2026-04-22T14:16:18.705225Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 5.0MB → 0.8MB (5.9x), 20 JPEGs deleted\n2026-04-22T14:16:23.744196Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.4MB → 1.3MB (3.4x), 26 JPEGs deleted\n2026-04-22T14:16:41.068116Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1903229694032021789, trigger=click)\n2026-04-22T14:19:15.519118Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4529195482775946524, trigger=click)\n2026-04-22T14:19:22.366746Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:19:30.208098Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:19:33.496128Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:19:38.751833Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6094503686615299639, trigger=click)\n2026-04-22T14:19:41.173256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6094503686615299639, trigger=visual_change)\n2026-04-22T14:19:42.912499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6094503686615299639, trigger=click)\n2026-04-22T14:19:46.351486Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6094503686615299639, trigger=click)\n2026-04-22T14:19:59.152409Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4952826635443255860, trigger=click)\n2026-04-22T14:20:01.518389Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4952826635443255860, trigger=click)\n2026-04-22T14:20:08.061611Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3675157249828056010, trigger=click)\n2026-04-22T14:21:28.984120Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=25 elapsed=4.855522625s\n2026-04-22T14:21:28.985458Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames\n2026-04-22T14:21:30.346636Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 2.5MB → 0.5MB (5.1x), 11 JPEGs deleted\n2026-04-22T14:21:32.359178Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.6MB → 0.6MB (4.3x), 12 JPEGs deleted\n2026-04-22T14:23:49.639071Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:24:02.782818Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:24:15.622633Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:26:10.392401Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:26:10.788712Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:26:12.799270Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:26:13.219651Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=visual_change)\n2026-04-22T14:26:38.732555Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=36 elapsed=6.323619459s\n2026-04-22T14:26:38.732888Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 36 eligible frames\n2026-04-22T14:26:39.785513Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 1.2MB → 0.1MB (9.0x), 16 JPEGs deleted\n2026-04-22T14:26:41.678236Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 4.1MB → 1.7MB (2.4x), 18 JPEGs deleted\n2026-04-22T14:26:51.433436Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:26:52.304457Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:26:54.907598Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:26:55.381293Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:27:00.185936Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:27:01.160650Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=visual_change)\n2026-04-22T14:27:24.714027Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:27:25.724851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=visual_change)\n2026-04-22T14:27:26.222818Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:27:27.755899Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:27:28.274266Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:30:08.479659Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1095112307124202838, trigger=click)\n2026-04-22T14:31:42.105262Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 38 eligible frames\n2026-04-22T14:31:43.197127Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.5MB → 1.0MB (2.5x), 15 JPEGs deleted\n2026-04-22T14:31:45.195588Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 4.3MB → 1.6MB (2.6x), 21 JPEGs deleted\n2026-04-22T14:32:02.263422Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3223987862501414590, trigger=click)\n2026-04-22T14:32:02.639431Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3223987862501414590, trigger=click)\n2026-04-22T14:32:19.705800Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1632013320203273627, trigger=click)\n2026-04-22T14:32:56.235240Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=257019738165452929, trigger=click)\n2026-04-22T14:32:59.969256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=257019738165452929, trigger=click)\n2026-04-22T14:33:03.317113Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=257019738165452929, trigger=click)\n2026-04-22T14:33:06.798109Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=257019738165452929, trigger=click)\n2026-04-22T14:33:17.093100Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3308965711270161120, trigger=click)\n2026-04-22T14:33:17.486074Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3308965711270161120, trigger=click)\n2026-04-22T14:33:22.565377Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3308965711270161120, trigger=click)\n2026-04-22T14:33:23.216523Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3308965711270161120, trigger=click)\n2026-04-22T14:33:35.842809Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=435352143489435154, trigger=click)\n2026-04-22T14:36:49.764156Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=34 elapsed=4.516637708s\n2026-04-22T14:36:49.764263Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 34 eligible frames\n2026-04-22T14:36:51.311395Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.0MB → 0.7MB (4.6x), 17 JPEGs deleted\n2026-04-22T14:36:52.531817Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 3.0MB → 1.1MB (2.6x), 15 JPEGs deleted\n2026-04-22T14:37:28.108242Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=435352143489435154, trigger=click)\n2026-04-22T14:37:28.485856Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=435352143489435154, trigger=click)\n2026-04-22T14:37:58.316339Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3668856246823891896, trigger=click)\n2026-04-22T14:38:23.725006Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3668856246823891896, trigger=visual_change)\n2026-04-22T14:38:38.826158Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3668856246823891896, trigger=click)\n2026-04-22T14:39:14.985595Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2152077026286113228, trigger=click)\n2026-04-22T14:39:41.085287Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2152077026286113228, trigger=click)\n2026-04-22T14:39:48.325144Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2152077026286113228, trigger=click)\n2026-04-22T14:39:54.042692Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2152077026286113228, trigger=click)\n2026-04-22T14:40:56.876512Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2152077026286113228, trigger=click)\n2026-04-22T14:41:03.035671Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2747516377298098397, trigger=click)\n2026-04-22T14:41:21.141064Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2710026494434395739, trigger=click)\n2026-04-22T14:41:34.026128Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2710026494434395739, trigger=click)\n2026-04-22T14:41:59.929978Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=38 elapsed=5.991404375s\n2026-04-22T14:41:59.930138Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 38 eligible frames\n2026-04-22T14:42:03.556178Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.2MB → 0.3MB (11.1x), 18 JPEGs deleted\n2026-04-22T14:42:06.257184Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.3MB → 1.1MB (2.9x), 18 JPEGs deleted\n2026-04-22T14:42:25.479048Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8568923258494843591, trigger=click)\n2026-04-22T14:42:43.658087Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1714642257969983896, trigger=click)\n2026-04-22T14:42:44.150668Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1714642257969983896, trigger=click)\n2026-04-22T14:42:46.347489Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1714642257969983896, trigger=click)\n2026-04-22T14:42:46.976364Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1714642257969983896, trigger=click)\n2026-04-22T14:42:54.146640Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8318058469467001879, trigger=click)\n2026-04-22T14:43:16.054664Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2746665666832385858, trigger=click)\n2026-04-22T14:43:27.592095Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2746665666832385858, trigger=click)\n2026-04-22T14:43:28.904486Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2746665666832385858, trigger=click)\n2026-04-22T14:43:33.115401Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2746665666832385858, trigger=click)\n2026-04-22T14:43:33.548704Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2746665666832385858, trigger=click)\n2026-04-22T14:43:34.528422Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2746665666832385858, trigger=click)\n2026-04-22T14:43:35.101040Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2746665666832385858, trigger=click)\n2026-04-22T14:43:42.182992Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2746665666832385858, trigger=click)\n2026-04-22T14:43:44.575989Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2746665666832385858, trigger=click)\n2026-04-22T14:44:46.365793Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6679194177618586363, trigger=click)\n2026-04-22T14:47:14.092894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6118025119517316583, trigger=click)\n2026-04-22T14:47:14.453307Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6118025119517316583, trigger=click)\n2026-04-22T14:47:15.216109Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=38 elapsed=7.876438917s\n2026-04-22T14:47:15.216433Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 38 eligible frames\n2026-04-22T14:47:16.019464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6118025119517316583, trigger=click)\n2026-04-22T14:47:16.544950Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6118025119517316583, trigger=click)\n2026-04-22T14:47:16.818898Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.2MB → 0.4MB (7.6x), 18 JPEGs deleted\n2026-04-22T14:47:18.385927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6118025119517316583, trigger=click)\n2026-04-22T14:47:18.475181Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.3MB → 1.2MB (2.9x), 18 JPEGs deleted\n2026-04-22T14:47:19.386449Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6118025119517316583, trigger=click)\n2026-04-22T14:47:20.087965Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6118025119517316583, trigger=click)\n2026-04-22T14:47:59.950079Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2150958068002330087, trigger=click)\n2026-04-22T14:48:01.449829Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2150958068002330087, trigger=click)\n2026-04-22T14:48:09.502190Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2150958068002330087, trigger=visual_change)\n2026-04-22T14:48:34.932290Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8599886822383806507, trigger=click)\n2026-04-22T14:48:44.486878Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3332409860485365312, trigger=click)\n2026-04-22T14:48:45.527964Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3332409860485365312, trigger=click)\n2026-04-22T14:49:38.888769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=472424603195027632, trigger=click)\n2026-04-22T14:49:45.417282Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=472424603195027632, trigger=click)\n2026-04-22T14:49:47.792067Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=472424603195027632, trigger=click)\n2026-04-22T14:50:00.945819Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4843648253222399128, trigger=click)\n2026-04-22T14:50:02.876637Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4843648253222399128, trigger=click)\n2026-04-22T14:52:21.989580Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=42 elapsed=3.480045958s\n2026-04-22T14:52:21.990045Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 42 eligible frames\n2026-04-22T14:52:23.358528Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 3.9MB → 0.4MB (8.7x), 22 JPEGs deleted\n2026-04-22T14:52:24.693261Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.5MB → 1.3MB (2.6x), 18 JPEGs deleted\n2026-04-22T14:53:02.184100Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8042719790331908666, trigger=click)\n2026-04-22T14:53:02.666973Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8042719790331908666, trigger=click)\n2026-04-22T14:53:44.356357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8042719790331908666, trigger=click)\n2026-04-22T14:53:44.849679Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8042719790331908666, trigger=click)\n2026-04-22T14:57:28.770189Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=52 elapsed=4.063771166s\n2026-04-22T14:57:28.770886Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 52 eligible frames\n2026-04-22T14:57:31.445523Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.2MB → 0.5MB (7.8x), 25 JPEGs deleted\n2026-04-22T14:57:35.130193Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.0MB → 2.4MB (2.1x), 25 JPEGs deleted\n2026-04-22T15:00:02.686939Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Slack, signals=2)\n2026-04-22T15:00:08.703872Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Slack, signals=2, browser=false)\n2026-04-22T15:00:08.707794Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=8, app=Slack, title=None)\n2026-04-22T15:00:09.697915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:00:25.820838Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:00:30.742889Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:00:35.932789Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:00:38.982205Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:00:42.607387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:00:45.252062Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:00:48.655907Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:00:54.706686Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:02:07.634898Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:02:43.352910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=click)\n2026-04-22T15:02:43.752028Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=57 elapsed=8.590900375s\n2026-04-22T15:02:43.756244Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 57 eligible frames\n2026-04-22T15:02:46.231236Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 4.8MB → 2.0MB (2.4x), 29 JPEGs deleted\n2026-04-22T15:02:46.417502Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)\n2026-04-22T15:02:49.039329Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.9MB → 1.8MB (2.8x), 26 JPEGs deleted\n2026-04-22T15:02:50.878563Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)\n2026-04-22T15:02:53.936710Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)\n2026-04-22T15:02:56.977078Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)\n2026-04-22T15:03:19.571166Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)\n2026-04-22T15:03:26.066470Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)\n2026-04-22T15:03:31.414066Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)\n2026-04-22T15:04:07.475454Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)\n2026-04-22T15:04:10.605093Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)\n2026-04-22T15:04:13.512293Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)\n2026-04-22T15:04:16.529473Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)\n2026-04-22T15:04:53.720517Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:04:55.658228Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:05:01.010633Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:05:03.051970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:05:06.145567Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:05:29.469376Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=797137072065105312, trigger=click)\n2026-04-22T15:05:55.103542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-116347373995830011, trigger=click)\n2026-04-22T15:05:55.539275Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-116347373995830011, trigger=click)\n2026-04-22T15:06:41.788384Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-116347373995830011, trigger=click)\n2026-04-22T15:06:42.204175Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-116347373995830011, trigger=click)\n2026-04-22T15:07:03.704733Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Slack, id=8, grace=30s)\n2026-04-22T15:07:39.449504Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Idle (timeout=30s, app=Slack, id=8)\n2026-04-22T15:07:39.915187Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting ended (id=8)\n2026-04-22T15:07:49.691643Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 27 eligible frames\n2026-04-22T15:07:51.650549Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.3MB → 0.3MB (7.0x), 13 JPEGs deleted\n2026-04-22T15:07:53.582709Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.6MB → 0.9MB (3.0x), 12 JPEGs deleted\n2026-04-22T15:07:53.988144Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1303595353837004202, trigger=click)\n2026-04-22T15:09:49.799139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4589403011857874475, trigger=click)\n2026-04-22T15:09:52.656133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4589403011857874475, trigger=click)\n2026-04-22T15:13:00.784316Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=44 elapsed=7.176940333s\n2026-04-22T15:13:00.784701Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 44 eligible frames\n2026-04-22T15:13:06.141480Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 3.7MB → 1.4MB (2.7x), 23 JPEGs deleted\n2026-04-22T15:13:09.087116Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 5.4MB → 1.4MB (4.0x), 19 JPEGs deleted\n2026-04-22T15:18:11.493152Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=37 elapsed=2.382042209s\n2026-04-22T15:18:11.496118Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 37 eligible frames\n2026-04-22T15:18:15.568523Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.0MB → 1.3MB (2.3x), 18 JPEGs deleted\n2026-04-22T15:18:18.268870Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 5.0MB → 1.2MB (4.0x), 17 JPEGs deleted\n2026-04-22T15:21:12.476028Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3813526692250337476, trigger=visual_change)\n2026-04-22T15:23:28.271759Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=63 elapsed=9.511646458s\n2026-04-22T15:23:28.282671Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 63 eligible frames\n2026-04-22T15:23:34.267737Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 6.8MB → 3.5MB (1.9x), 31 JPEGs deleted\n2026-04-22T15:23:38.696265Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 5.7MB → 1.2MB (4.7x), 30 JPEGs deleted\n2026-04-22T15:25:18.297937Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:25:21.238617Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:25:58.399479Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6869659017523937306, trigger=click)\n2026-04-22T15:26:00.086631Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6869659017523937306, trigger=click)\n2026-04-22T15:26:01.910963Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6869659017523937306, trigger=visual_change)\n2026-04-22T15:26:02.357258Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6869659017523937306, trigger=visual_change)\n2026-04-22T15:26:04.744325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6869659017523937306, trigger=click)\n2026-04-22T15:26:05.686404Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6869659017523937306, trigger=visual_change)\n2026-04-22T15:26:07.341872Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6869659017523937306, trigger=click)\n2026-04-22T15:26:07.841961Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6869659017523937306, trigger=click)\n2026-04-22T15:27:08.518409Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=click)\n2026-04-22T15:27:14.348556Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)\n2026-04-22T15:27:19.567077Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)\n2026-04-22T15:27:23.928137Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6983242470914211958, trigger=click)\n2026-04-22T15:27:25.430871Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=click)\n2026-04-22T15:27:32.704396Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6983242470914211958, trigger=click)\n2026-04-22T15:27:39.006433Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)\n2026-04-22T15:27:43.060533Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)\n2026-04-22T15:27:45.902424Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)\n2026-04-22T15:27:53.866025Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)\n2026-04-22T15:27:56.855542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)\n2026-04-22T15:28:06.329802Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)\n2026-04-22T15:28:16.947758Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=click)\n2026-04-22T15:28:17.639628Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6983242470914211958, trigger=click)\n2026-04-22T15:28:19.702614Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)\n2026-04-22T15:28:22.257394Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=click)\n2026-04-22T15:28:22.756941Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6983242470914211958, trigger=click)\n2026-04-22T15:28:25.405205Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=click)\n2026-04-22T15:28:26.273821Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6983242470914211958, trigger=click)\n2026-04-22T15:28:37.225888Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4416148030571332734, trigger=click)\n2026-04-22T15:28:41.503684Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4416148030571332734, trigger=visual_change)\n2026-04-22T15:28:42.412245Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4416148030571332734, trigger=click)\n2026-04-22T15:28:44.900893Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4416148030571332734, trigger=click)\n2026-04-22T15:28:45.281047Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4416148030571332734, trigger=click)\n2026-04-22T15:28:47.806415Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=61 elapsed=8.915603625s\n2026-04-22T15:28:47.808575Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 61 eligible frames\n2026-04-22T15:28:51.748955Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4416148030571332734, trigger=click)\n2026-04-22T15:28:52.058480Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 33 frames, 7.4MB → 2.7MB (2.7x), 33 JPEGs deleted\n2026-04-22T15:28:57.816868Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.8MB → 2.2MB (2.2x), 26 JPEGs deleted\n2026-04-22T15:28:59.171732Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4416148030571332734, trigger=visual_change)\n2026-04-22T15:29:19.001260Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4416148030571332734, trigger=visual_change)\n2026-04-22T15:29:26.828215Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4416148030571332734, trigger=visual_change)\n2026-04-22T15:30:54.757442Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2182844197261250370, trigger=click)\n2026-04-22T15:31:30.516711Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2182844197261250370, trigger=click)\n2026-04-22T15:31:49.431335Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4416148030571332734, trigger=visual_change)\n2026-04-22T15:31:54.155985Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4416148030571332734, trigger=visual_change)\n2026-04-22T15:31:58.427528Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4416148030571332734, trigger=visual_change)\n2026-04-22T15:32:21.666172Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7700301847216802583, trigger=click)\n2026-04-22T15:32:26.019679Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7700301847216802583, trigger=visual_change)\n2026-04-22T15:33:34.334309Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5496326212892813056, trigger=visual_change)\n2026-04-22T15:33:41.606418Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5496326212892813056, trigger=visual_change)\n2026-04-22T15:34:04.695051Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5496326212892813056, trigger=click)\n2026-04-22T15:34:06.919005Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=73 elapsed=9.073921416s\n2026-04-22T15:34:06.919292Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 73 eligible frames\n2026-04-22T15:34:11.489642Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 40 frames, 9.1MB → 3.4MB (2.6x), 40 JPEGs deleted\n2026-04-22T15:34:15.335063Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 6.0MB → 2.0MB (3.0x), 31 JPEGs deleted\n2026-04-22T15:36:46.398267Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3562390500463334923, trigger=visual_change)\n2026-04-22T15:36:49.359581Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3562390500463334923, trigger=visual_change)\n2026-04-22T15:36:56.667177Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3562390500463334923, trigger=click)\n2026-04-22T15:37:01.305805Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3562390500463334923, trigger=click)\n2026-04-22T15:37:04.552815Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3562390500463334923, trigger=click)\n2026-04-22T15:37:05.365649Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3562390500463334923, trigger=click)\n2026-04-22T15:37:06.657172Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3562390500463334923, trigger=visual_change)\n2026-04-22T15:37:20.005928Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3562390500463334923, trigger=visual_change)\n2026-04-22T15:37:22.572092Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3562390500463334923, trigger=visual_change)\n2026-04-22T15:37:28.745166Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3562390500463334923, trigger=visual_change)\n2026-04-22T15:37:32.112106Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3562390500463334923, trigger=visual_change)\n2026-04-22T15:37:40.817103Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3562390500463334923, trigger=visual_change)\n2026-04-22T15:37:44.068041Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3562390500463334923, trigger=visual_change)\n2026-04-22T15:37:49.735129Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3562390500463334923, trigger=click)\n2026-04-22T15:37:50.302210Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3562390500463334923, trigger=click)\n2026-04-22T15:38:55.433464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=666278282122949848, trigger=visual_change)\n2026-04-22T15:38:58.142835Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=666278282122949848, trigger=visual_change)\n2026-04-22T15:39:15.500379Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=666278282122949848, trigger=click)\n2026-04-22T15:39:15.987757Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=666278282122949848, trigger=click)\n2026-04-22T15:39:17.228167Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=666278282122949848, trigger=visual_change)\n2026-04-22T15:39:18.307711Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=666278282122949848, trigger=visual_change)\n2026-04-22T15:39:21.533092Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=666278282122949848, trigger=visual_change)\n2026-04-22T15:39:21.807148Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=62 elapsed=6.322537666s\n2026-04-22T15:39:21.807242Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 62 eligible frames\n2026-04-22T15:39:23.654129Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=666278282122949848, trigger=visual_change)\n2026-04-22T15:39:24.158197Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=666278282122949848, trigger=click)\n2026-04-22T15:39:24.238758Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 6.7MB → 2.4MB (2.8x), 29 JPEGs deleted\n2026-04-22T15:39:24.919127Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=666278282122949848, trigger=click)\n2026-04-22T15:39:26.522050Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 6.2MB → 2.3MB (2.7x), 31 JPEGs deleted\n2026-04-22T15:39:32.912924Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=666278282122949848, trigger=visual_change)\n2026-04-22T15:39:33.735345Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=666278282122949848, trigger=click)\n2026-04-22T15:39:35.375360Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=666278282122949848, trigger=click)\n2026-04-22T15:39:36.995841Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=666278282122949848, trigger=click)\n2026-04-22T15:39:37.467108Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=666278282122949848, trigger=click)\n2026-04-22T15:39:40.369538Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=666278282122949848, trigger=click)\n2026-04-22T15:39:43.276197Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=666278282122949848, trigger=click)\n2026-04-22T15:40:07.556081Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:40:09.930821Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:40:11.154450Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:40:19.449508Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:40:29.519581Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8135701070039948601, trigger=visual_change)\n2026-04-22T15:41:56.970803Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:42:06.118149Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:44:30.869060Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=59 elapsed=4.334722834s\n2026-04-22T15:44:30.869438Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 59 eligible frames\n2026-04-22T15:44:36.682494Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 7.0MB → 3.2MB (2.1x), 31 JPEGs deleted\n2026-04-22T15:44:41.069797Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.9MB → 1.5MB (3.3x), 26 JPEGs deleted\n2026-04-22T15:47:16.707141Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:47:26.476915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:47:30.506202Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:47:33.490610Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:47:37.439486Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:48:10.814782Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:48:49.253754Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:48:58.005092Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:49:44.222629Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=41 elapsed=2.9267015s\n2026-04-22T15:49:44.223441Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 41 eligible frames\n2026-04-22T15:49:46.632623Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:49:46.707995Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 4.3MB → 2.2MB (2.0x), 19 JPEGs deleted\n2026-04-22T15:49:48.648095Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.5MB → 2.1MB (2.2x), 20 JPEGs deleted\n2026-04-22T15:49:55.585051Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:49:58.557820Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:50:04.689651Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:50:10.744245Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:50:32.681643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:50:37.792790Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:50:40.260147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:50:46.805742Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:50:53.026194Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:50:55.961999Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:51:02.210628Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:51:04.537374Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:51:17.321401Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:51:23.393544Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:51:26.412142Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:51:32.600472Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:51:35.220938Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:51:41.194536Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:51:44.210722Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:51:50.304611Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:51:56.294115Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:51:59.321943Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:52:05.342699Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:52:17.436700Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:52:21.187208Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:52:49.374507Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:52:51.550918Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:52:53.892542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:52:59.947921Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:53:03.308386Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:53:10.465051Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:53:18.275354Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:53:19.882281Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:53:26.102339Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:53:28.677581Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:53:38.195861Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:53:40.759223Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:53:44.211689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:53:49.661798Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:53:51.254730Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:53:56.539255Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:53:58.004998Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:53:58.491246Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:54:00.207899Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:54:00.960349Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:54:06.030857Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:54:09.163227Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:54:09.608141Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:54:29.884648Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7221551953177750058, trigger=visual_change)\n2026-04-22T15:54:32.904873Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7221551953177750058, trigger=visual_change)\n2026-04-22T15:54:38.529745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7221551953177750058, trigger=visual_change)\n2026-04-22T15:54:42.030930Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7221551953177750058, trigger=visual_change)\n2026-04-22T15:54:53.757845Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=44 elapsed=5.12885025s\n2026-04-22T15:54:53.758028Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 44 eligible frames\n2026-04-22T15:54:56.216519Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.7MB → 2.2MB (2.6x), 25 JPEGs deleted\n2026-04-22T15:54:57.253500Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7221551953177750058, trigger=visual_change)\n2026-04-22T15:54:57.778380Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.8MB → 1.4MB (2.7x), 17 JPEGs deleted\n2026-04-22T15:55:14.227919Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:55:29.347981Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:55:34.911796Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:55:37.679086Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:55:55.657449Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:55:56.235238Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:55:58.080012Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:56:03.489838Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:56:19.773160Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:58:04.898631Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:58:05.507970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:58:19.974744Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7937570718597551457, trigger=visual_change)\n2026-04-22T16:00:07.397412Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=28 elapsed=9.608749083s\n2026-04-22T16:00:07.397774Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames\n2026-04-22T16:00:11.353157Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.7MB → 1.6MB (1.7x), 12 JPEGs deleted\n2026-04-22T16:00:14.732810Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 3.1MB → 1.4MB (2.2x), 14 JPEGs deleted\n2026-04-22T16:05:14.875841Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 26 eligible frames\n2026-04-22T16:05:21.176398Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.7MB → 1.5MB (1.8x), 12 JPEGs deleted\n2026-04-22T16:05:23.500634Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.7MB → 0.8MB (3.5x), 12 JPEGs deleted\n2026-04-22T16:09:43.057186Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1700548679087424896, trigger=click)\n2026-04-22T16:09:43.726339Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1700548679087424896, trigger=click)\n2026-04-22T16:10:33.202772Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=32 elapsed=8.151029333s\n2026-04-22T16:10:33.205709Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 32 eligible frames\n2026-04-22T16:10:36.241109Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.9MB → 0.8MB (3.6x), 16 JPEGs deleted\n2026-04-22T16:10:39.638416Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.4MB → 1.1MB (2.2x), 14 JPEGs deleted\n2026-04-22T16:12:57.604636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3640531240517672751, trigger=visual_change)\n2026-04-22T16:14:48.477621Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3640531240517672751, trigger=click)\n2026-04-22T16:14:49.113238Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3640531240517672751, trigger=click)\n2026-04-22T16:14:52.803148Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3640531240517672751, trigger=click)\n2026-04-22T16:15:48.370916Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=21 elapsed=8.52753825s\n2026-04-22T16:15:48.371084Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames\n2026-04-22T16:15:49.801978Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 1.6MB → 0.3MB (5.7x), 9 JPEGs deleted\n2026-04-22T16:15:51.456711Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.4MB (4.1x), 10 JPEGs deleted\n2026-04-22T16:16:39.820921Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:16:40.258041Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:16:42.604047Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4659444575687776884, trigger=visual_change)\n2026-04-22T16:16:44.729225Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:16:45.395942Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:16:48.031036Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:16:53.808716Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:16:57.947511Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:16:58.661906Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:17:00.203848Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:17:00.510442Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:17:10.932565Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:17:13.262897Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:17:16.009682Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:17:16.360136Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:17:18.987777Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:17:19.385866Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:17:22.098836Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:17:22.469613Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:17:45.084378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T16:17:45.488587Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T16:17:46.265772Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T16:17:50.794900Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T16:17:51.193853Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T16:17:56.183149Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T16:17:56.903285Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T16:18:02.302062Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2014082630808116476, trigger=click)\n2026-04-22T16:19:28.148117Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7767962928162902459, trigger=visual_change)\n2026-04-22T16:19:30.526236Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7767962928162902459, trigger=click)\n2026-04-22T16:19:31.195837Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7767962928162902459, trigger=click)\n2026-04-22T16:19:33.715299Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7767962928162902459, trigger=click)\n2026-04-22T16:19:34.357828Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7767962928162902459, trigger=click)\n2026-04-22T16:19:35.020610Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7767962928162902459, trigger=click)\n2026-04-22T16:19:35.698451Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7767962928162902459, trigger=click)\n2026-04-22T16:20:53.732098Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=2.258795792s\n2026-04-22T16:20:53.732443Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-22T16:20:54.463494Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 1.6MB → 0.3MB (5.7x), 9 JPEGs deleted\n2026-04-22T16:20:55.529460Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 2.5MB → 1.1MB (2.3x), 11 JPEGs deleted\n2026-04-22T16:24:20.510070Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2383132637107085157, trigger=click)\n2026-04-22T16:24:27.782475Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1404306881477617387, trigger=click)\n2026-04-22T16:24:44.481677Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6805760601486189718, trigger=click)\n2026-04-22T16:25:13.403567Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=666355421012968666, trigger=click)\n2026-04-22T16:26:01.606241Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=32 elapsed=6.054129542s\n2026-04-22T16:26:01.608081Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 32 eligible frames\n2026-04-22T16:26:04.408527Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.5MB → 0.3MB (8.7x), 14 JPEGs deleted\n2026-04-22T16:26:09.345870Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 3.9MB → 2.5MB (1.6x), 16 JPEGs deleted\n2026-04-22T16:31:16.523778Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=48 elapsed=6.261290959s\n2026-04-22T16:31:16.523889Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 48 eligible frames\n2026-04-22T16:31:18.062354Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 4.1MB → 0.5MB (9.1x), 23 JPEGs deleted\n2026-04-22T16:31:19.733335Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 6.0MB → 1.6MB (3.8x), 23 JPEGs deleted\n2026-04-22T16:35:14.998679Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-930197057256512338, trigger=click)\n2026-04-22T16:35:28.307910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T16:35:30.218730Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T16:35:50.703840Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4332103135047682933, trigger=visual_change)\n2026-04-22T16:35:52.711832Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4332103135047682933, trigger=click)\n2026-04-22T16:35:53.307064Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4332103135047682933, trigger=visual_change)\n2026-04-22T16:36:26.222531Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=53 elapsed=6.476373125s\n2026-04-22T16:36:26.222663Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 53 eligible frames\n2026-04-22T16:36:28.058618Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 3.4MB → 1.1MB (3.1x), 27 JPEGs deleted\n2026-04-22T16:36:29.824864Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 6.2MB → 0.7MB (8.9x), 24 JPEGs deleted\n2026-04-22T16:38:27.295549Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4399336884068833789, trigger=click)\n2026-04-22T16:38:31.082408Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4399336884068833789, trigger=click)\n2026-04-22T16:40:46.732079Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4399336884068833789, trigger=visual_change)\n2026-04-22T16:40:50.641593Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4399336884068833789, trigger=click)\n2026-04-22T16:40:51.044794Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4399336884068833789, trigger=click)\n2026-04-22T16:40:55.679492Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4399336884068833789, trigger=click)\n2026-04-22T16:40:56.491807Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4399336884068833789, trigger=click)\n2026-04-22T16:41:32.562032Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=29 elapsed=2.600218041s\n2026-04-22T16:41:32.562136Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 29 eligible frames\n2026-04-22T16:41:33.652619Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 1.3MB → 0.2MB (6.4x), 14 JPEGs deleted\n2026-04-22T16:41:35.202361Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 3.3MB → 0.5MB (7.0x), 13 JPEGs deleted\n2026-04-22T16:46:38.330333Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=32 elapsed=3.117707958s\n2026-04-22T16:46:38.330439Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 32 eligible frames\n2026-04-22T16:46:39.948332Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 1.3MB → 0.1MB (9.1x), 14 JPEGs deleted\n2026-04-22T16:46:41.506017Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 4.0MB → 1.2MB (3.3x), 16 JPEGs deleted\n2026-04-22T16:51:48.131482Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=23 elapsed=6.613640791s\n2026-04-22T16:51:48.132937Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 23 eligible frames\n2026-04-22T16:51:49.003952Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.0MB → 0.1MB (8.7x), 11 JPEGs deleted\n2026-04-22T16:51:50.053842Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.0MB → 0.7MB (2.7x), 10 JPEGs deleted\n2026-04-22T16:52:34.780923Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)\n2026-04-22T16:52:48.863893Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=app_switch, monitor=1) — DB pool may be saturated\n2026-04-22T16:52:48.863900Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=app_switch, monitor=2) — DB pool may be saturated\n2026-04-22T16:53:01.610713Z INFO sck_rs::stream_manager: recreating stream for display 1 (resolution change)\n2026-04-22T16:53:29.988978Z INFO sck_rs::stream_manager: recreating stream for display 2 (resolution change)\n2026-04-22T16:56:56.495427Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=6.425245416s\n2026-04-22T16:56:56.495542Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-22T16:56:57.336306Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.9MB → 0.1MB (7.9x), 10 JPEGs deleted\n2026-04-22T16:56:58.175049Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.9MB → 0.3MB (6.3x), 10 JPEGs deleted\n2026-04-22T17:01:58.685859Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-22T17:01:59.473339Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.9MB → 0.1MB (8.0x), 10 JPEGs deleted\n2026-04-22T17:02:00.310277Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.9MB → 0.3MB (6.3x), 10 JPEGs deleted\n2026-04-22T17:07:01.945755Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=4 elapsed=1.626160375s\n2026-04-22T17:07:01.945847Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 4 eligible frames\n2026-04-22T17:07:02.187343Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 1 frames, 0.1MB → 0.1MB (1.0x), 1 JPEGs deleted\n2026-04-22T17:07:02.450702Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 1 frames, 0.2MB → 0.2MB (0.8x), 1 JPEGs deleted\n2026-04-22T17:12:06.874189Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=2 elapsed=4.3861715s\n2026-04-22T17:12:06.874452Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-22T17:17:13.193100Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=6.294200125s\n2026-04-22T17:20:07.541995Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)\n2026-04-22T17:20:07.630953Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 1\n2026-04-22T17:20:14.084721Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-22T17:20:14.480434Z INFO screenpipe_engine::event_driven_capture: monitor 1 capture recovered after 1 consecutive errors\n2026-04-22T17:20:15.608548Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-22T17:20:16.850029Z INFO screenpipe_engine::event_driven_capture: monitor 2 capture recovered after 1 consecutive errors\n2026-04-22T17:20:59.606795Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=353611364339833193, trigger=visual_change)\n2026-04-22T17:21:05.782785Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6518006199864472489, trigger=click)\n2026-04-22T17:21:48.543394Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6518006199864472489, trigger=click)\n2026-04-22T17:21:52.452327Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6518006199864472489, trigger=click)\n2026-04-22T17:22:24.575958Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=11.371497042s\n2026-04-22T17:27:29.081900Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=4.457444667s\n2026-04-22T17:32:30.295309Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 20 eligible frames\n2026-04-22T17:32:30.964048Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 7 frames, 0.7MB → 0.1MB (5.8x), 7 JPEGs deleted\n2026-04-22T17:32:32.430798Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.9MB → 0.8MB (3.6x), 13 JPEGs deleted\n2026-04-22T17:37:36.325676Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=24 elapsed=3.882934833s\n2026-04-22T17:37:36.326088Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 24 eligible frames\n2026-04-22T17:37:37.732598Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.9MB → 0.1MB (8.1x), 10 JPEGs deleted\n2026-04-22T17:37:38.875813Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.5MB → 0.9MB (2.7x), 12 JPEGs deleted\n2026-04-22T17:42:43.122610Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=28 elapsed=4.232872583s\n2026-04-22T17:42:43.122797Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames\n2026-04-22T17:42:44.139661Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.0MB → 0.2MB (6.5x), 11 JPEGs deleted\n2026-04-22T17:42:45.850747Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 3.1MB → 1.5MB (2.1x), 15 JPEGs deleted\n2026-04-22T17:42:57.144176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5398018417063851890, trigger=click)\n2026-04-22T17:42:57.653834Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5398018417063851890, trigger=click)\n2026-04-22T17:43:28.190643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7326608657648522043, trigger=click)\n2026-04-22T17:43:30.037343Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7326608657648522043, trigger=visual_change)\n2026-04-22T17:44:17.081083Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=900127091433810136, trigger=click)\n2026-04-22T17:44:17.605660Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=900127091433810136, trigger=click)\n2026-04-22T17:45:37.216031Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=900127091433810136, trigger=visual_change)\n2026-04-22T17:47:22.339709Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=900127091433810136, trigger=visual_change)\n2026-04-22T17:47:28.305597Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=900127091433810136, trigger=click)\n2026-04-22T17:47:29.056879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=900127091433810136, trigger=click)\n2026-04-22T17:47:52.285649Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=900127091433810136, trigger=visual_change)\n2026-04-22T17:47:53.496727Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=42 elapsed=7.316425834s\n2026-04-22T17:47:53.496837Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 42 eligible frames\n2026-04-22T17:47:54.629113Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 1.5MB → 0.1MB (12.5x), 16 JPEGs deleted\n2026-04-22T17:47:56.497927Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 5.4MB → 1.6MB (3.4x), 24 JPEGs deleted\n2026-04-22T17:49:23.365540Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7724578834627729847, trigger=click)\n2026-04-22T17:53:02.690403Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=27 elapsed=6.179264s\n2026-04-22T17:53:02.690738Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 27 eligible frames\n2026-04-22T17:53:03.556672Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.2MB → 0.1MB (10.3x), 13 JPEGs deleted\n2026-04-22T17:53:05.211208Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.5MB → 0.6MB (4.0x), 12 JPEGs deleted\n2026-04-22T17:57:40.568162Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1851379926418959813, trigger=click)\n2026-04-22T17:57:41.079468Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1851379926418959813, trigger=click)\n2026-04-22T17:58:10.456601Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=45 elapsed=4.691370125s\n2026-04-22T17:58:10.457220Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 45 eligible frames\n2026-04-22T17:58:12.041940Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 2.1MB → 0.2MB (11.4x), 22 JPEGs deleted\n2026-04-22T17:58:14.351810Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.8MB → 2.2MB (1.8x), 21 JPEGs deleted\n2026-04-22T17:58:21.350110Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1851379926418959813, trigger=click)\n2026-04-22T17:58:21.948643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1851379926418959813, trigger=click)\n2026-04-22T18:03:16.198465Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=44 elapsed=1.833842375s\n2026-04-22T18:03:16.198578Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 44 eligible frames\n2026-04-22T18:03:18.139382Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 2.0MB → 0.1MB (16.1x), 21 JPEGs deleted\n2026-04-22T18:03:19.618803Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.5MB → 1.5MB (2.4x), 21 JPEGs deleted\n2026-04-22T18:06:58.395218Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7639883349033148478, trigger=click)\n2026-04-22T18:06:58.897470Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7639883349033148478, trigger=click)\n2026-04-22T18:07:42.474566Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=607162597309748765, trigger=click)\n2026-04-22T18:08:27.382204Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=28 elapsed=7.750844334s\n2026-04-22T18:08:27.382491Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames\n2026-04-22T18:08:29.032220Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.2MB → 0.1MB (10.4x), 13 JPEGs deleted\n2026-04-22T18:08:30.573314Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.7MB → 0.6MB (4.2x), 13 JPEGs deleted\n2026-04-22T18:13:38.096494Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=20 elapsed=6.760223375s\n2026-04-22T18:13:38.099584Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 20 eligible frames\n2026-04-22T18:13:38.806766Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 0.8MB → 0.1MB (7.4x), 9 JPEGs deleted\n2026-04-22T18:13:39.606462Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 1.9MB → 0.5MB (3.8x), 9 JPEGs deleted\n2026-04-22T18:18:41.943065Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=45 elapsed=2.325026709s\n2026-04-22T18:18:41.943417Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 45 eligible frames\n2026-04-22T18:18:43.289962Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 2.0MB → 0.1MB (16.7x), 21 JPEGs deleted\n2026-04-22T18:18:45.689764Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 4.4MB → 1.3MB (3.4x), 22 JPEGs deleted\n2026-04-22T18:18:54.020334Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6726632078176380015, trigger=click)\n2026-04-22T18:18:54.540347Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6726632078176380015, trigger=click)\n2026-04-22T18:18:55.737423Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6726632078176380015, trigger=click)\n2026-04-22T18:18:56.477423Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6726632078176380015, trigger=click)\n2026-04-22T18:20:28.510789Z WARN sqlx::query: summary=\"PRAGMA wal_checkpoint(TRUNCATE)\" db.statement=\"\" rows_affected=0 rows_returned=1 elapsed=5.273706125s\n2026-04-22T18:20:28.511954Z WARN screenpipe_db::db: wal checkpoint: busy (could not truncate), 3177 pages in WAL\n2026-04-22T18:20:28.562400Z WARN sqlx::query: summary=\"BEGIN IMMEDIATE\" db.statement=\"\" rows_affected=1 rows_returned=0 elapsed=2.291890708s\n2026-04-22T18:23:52.302822Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=31 elapsed=6.325649833s\n2026-04-22T18:23:52.304330Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 31 eligible frames\n2026-04-22T18:23:53.163590Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 1.1MB → 0.1MB (9.9x), 12 JPEGs deleted\n2026-04-22T18:23:55.277698Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.4MB → 1.6MB (2.2x), 17 JPEGs deleted\n2026-04-22T18:28:56.007322Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 35 eligible frames\n2026-04-22T18:28:57.403360Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.7MB → 1.5MB (1.9x), 16 JPEGs deleted\n2026-04-22T18:28:58.752838Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.9MB → 0.8MB (3.6x), 17 JPEGs deleted\n2026-04-22T18:34:01.165384Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=41 elapsed=2.400307625s\n2026-04-22T18:34:01.165480Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 41 eligible frames\n2026-04-22T18:34:02.291139Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.7MB → 0.8MB (3.5x), 15 JPEGs deleted\n2026-04-22T18:34:04.197399Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.2MB → 1.7MB (2.4x), 24 JPEGs deleted\n2026-04-22T18:35:56.027919Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5884937538005636030, trigger=visual_change)\n2026-04-22T18:37:55.284482Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-439807993867665328, trigger=visual_change)\n2026-04-22T18:39:08.660187Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=4.451587125s\n2026-04-22T18:39:08.660278Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-22T18:39:09.493828Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.5MB → 0.5MB (3.1x), 10 JPEGs deleted\n2026-04-22T18:39:10.349740Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.1MB → 0.5MB (4.3x), 10 JPEGs deleted\n2026-04-22T18:43:06.355073Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3304493437592891639, trigger=click)\n2026-04-22T18:43:23.219621Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6603898485603033537, trigger=click)\n2026-04-22T18:44:11.899645Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=21 elapsed=1.53441375s\n2026-04-22T18:44:11.900197Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames\n2026-04-22T18:44:12.802039Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 1.1MB → 0.2MB (6.3x), 9 JPEGs deleted\n2026-04-22T18:44:14.694466Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.1MB → 0.3MB (5.9x), 10 JPEGs deleted\n2026-04-22T18:45:14.778135Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6664853592767636193, trigger=click)\n2026-04-22T18:46:36.923697Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1791249548195440516, trigger=visual_change)\n2026-04-22T18:49:18.625635Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=46 elapsed=3.900838541s\n2026-04-22T18:49:18.625996Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 46 eligible frames\n2026-04-22T18:49:19.640722Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 1.8MB → 0.2MB (10.4x), 15 JPEGs deleted\n2026-04-22T18:49:23.038596Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 5.2MB → 2.1MB (2.4x), 29 JPEGs deleted\n2026-04-22T18:50:34.997361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=visual_change)\n2026-04-22T18:50:39.846829Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:50:43.731899Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:20.200945Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=visual_change)\n2026-04-22T18:51:23.144927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:23.976040Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:27.176876Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:28.227317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:31.555085Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:32.274042Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:35.352114Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:37.306495Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=visual_change)\n2026-04-22T18:52:02.049971Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=visual_change)\n2026-04-22T18:52:09.690330Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=visual_change)\n2026-04-22T18:52:11.530065Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:52:12.090300Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:52:22.885838Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6951480031607957362, trigger=visual_change)\n2026-04-22T18:52:58.986955Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7031607293039132919, trigger=click)\n2026-04-22T18:53:47.690375Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3992755350865402319, trigger=visual_change)\n2026-04-22T18:54:25.328228Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=52 elapsed=2.277973417s\n2026-04-22T18:54:25.328316Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 52 eligible frames\n2026-04-22T18:54:26.661506Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 2.6MB → 0.2MB (11.0x), 22 JPEGs deleted\n2026-04-22T18:54:28.982139Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 4.3MB → 1.1MB (3.8x), 28 JPEGs deleted\n2026-04-22T18:54:44.142044Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3992755350865402319, trigger=visual_change)\n2026-04-22T18:55:01.465747Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2556650532703180759, trigger=click)\n2026-04-22T18:55:02.524314Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2556650532703180759, trigger=click)\n2026-04-22T18:55:35.312048Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3149441378543601087, trigger=visual_change)\n2026-04-22T18:55:55.086761Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3149441378543601087, trigger=click)\n2026-04-22T18:55:56.919853Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3149441378543601087, trigger=visual_change)\n2026-04-22T18:56:05.807170Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7595806992634662117, trigger=visual_change)\n2026-04-22T18:56:12.303927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7595806992634662117, trigger=visual_change)\n2026-04-22T18:56:58.093656Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2070714172482892625, trigger=visual_change)\n2026-04-22T18:57:00.459010Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2070714172482892625, trigger=visual_change)\n2026-04-22T18:57:03.809894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2070714172482892625, trigger=visual_change)\n2026-04-22T18:58:04.259354Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7284778144726625723, trigger=visual_change)\n2026-04-22T18:58:07.302007Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7284778144726625723, trigger=visual_change)\n2026-04-22T18:58:10.443744Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7284778144726625723, trigger=visual_change)\n2026-04-22T18:58:40.416893Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6313361147559934277, trigger=click)\n2026-04-22T18:58:59.229391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)\n2026-04-22T18:59:10.795801Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)\n2026-04-22T18:59:15.904155Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)\n2026-04-22T18:59:30.308258Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=46 elapsed=1.303054333s\n2026-04-22T18:59:30.308485Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 46 eligible frames\n2026-04-22T18:59:31.535859Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 2.4MB → 0.3MB (7.5x), 20 JPEGs deleted\n2026-04-22T18:59:33.536283Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 3.8MB → 1.3MB (3.0x), 24 JPEGs deleted\n2026-04-22T18:59:39.897203Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)\n2026-04-22T18:59:43.593017Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-71227342056343983, trigger=visual_change)\n2026-04-22T18:59:55.722135Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)\n2026-04-22T19:00:00.394304Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)\n2026-04-22T19:00:27.869871Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2710856207947507007, trigger=visual_change)\n2026-04-22T19:01:54.992910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6986338393283794423, trigger=visual_change)\n2026-04-22T19:02:13.568012Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6986338393283794423, trigger=visual_change)\n2026-04-22T19:02:16.092275Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6986338393283794423, trigger=visual_change)\n2026-04-22T19:03:04.479425Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7704375629034044835, trigger=visual_change)\n2026-04-22T19:03:35.287830Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2375149456869027114, trigger=visual_change)\n2026-04-22T19:03:41.021583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2375149456869027114, trigger=visual_change)\n2026-04-22T19:03:48.485601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6234474271212752005, trigger=visual_change)\n2026-04-22T19:04:35.737525Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=82 elapsed=2.188209209s\n2026-04-22T19:04:35.737670Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 82 eligible frames\n2026-04-22T19:04:38.209886Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3880005638520398709, trigger=click)\n2026-04-22T19:04:38.478674Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 4.8MB → 1.0MB (4.9x), 39 JPEGs deleted\n2026-04-22T19:04:42.074270Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 41 frames, 7.5MB → 3.6MB (2.1x), 41 JPEGs deleted\n2026-04-22T19:04:55.094599Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-635344842894947589, trigger=visual_change)\n2026-04-22T19:05:20.336216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)\n2026-04-22T19:05:54.388487Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)\n2026-04-22T19:05:57.299176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)\n2026-04-22T19:05:59.949506Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)\n2026-04-22T19:06:25.531964Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5957740084085463727, trigger=visual_change)\n2026-04-22T19:06:50.090567Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6422724880219484653, trigger=visual_change)\n2026-04-22T19:07:22.963169Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2531925023067266044, trigger=click)\n2026-04-22T19:07:24.045648Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2531925023067266044, trigger=click)\n2026-04-22T19:07:27.834546Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2085088366939909076, trigger=click)\n2026-04-22T19:07:28.381522Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2085088366939909076, trigger=click)\n2026-04-22T19:08:34.175493Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3061313113729352595, trigger=click)\n2026-04-22T19:09:42.454765Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 91 eligible frames\n2026-04-22T19:09:45.816541Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 5.7MB → 2.4MB (2.3x), 32 JPEGs deleted\n2026-04-22T19:09:50.140975Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 57 frames, 7.8MB → 2.3MB (3.4x), 57 JPEGs deleted\n2026-04-22T19:10:13.441594Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=click)\n2026-04-22T19:10:18.830768Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)\n2026-04-22T19:10:21.842287Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)\n2026-04-22T19:10:28.187487Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5292492680570276501, trigger=click)\n^C2026-04-22T19:10:32.957264Z INFO screenpipe: received ctrl+c, initiating shutdown\n2026-04-22T19:10:32.958125Z INFO screenpipe: stopping UI event capture\n2026-04-22T19:10:32.958201Z INFO screenpipe: received shutdown signal for VisionManager\n2026-04-22T19:10:32.958212Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker shutting down\n2026-04-22T19:10:32.958217Z INFO screenpipe_engine::meeting_detector: meeting v2: shutdown received, exiting detection loop\n2026-04-22T19:10:32.958646Z INFO screenpipe_engine::vision_manager::manager: Shutting down VisionManager\n2026-04-22T19:10:32.958661Z INFO screenpipe_engine::vision_manager::manager: Stopping VisionManager\n2026-04-22T19:10:32.958669Z INFO screenpipe_engine::vision_manager::manager: Stopping vision recording for monitor 2\n2026-04-22T19:10:32.958804Z INFO screenpipe_engine::vision_manager::manager: Stopping vision recording for monitor 1\n\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ 2026-04-22T19:10:33.158623Z INFO screenpipe_engine::ui_recorder: UI recording session ended: e7729066-2ab4-4bf0-9d48-0c9790a4ee79\n2026-04-22T19:10:33.159581Z INFO screenpipe: shutdown complete\n\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-stop\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-status\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ st-start\nzsh: command not found: st-start\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-start\ndetected hardware tier: Mid\nwarning: parakeet is not supported on this platform, using whisper-tiny instead\n2026-04-23T09:12:59.282987Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store\nchecking permissions...\n screen recording: ok\n accessibility: ok\n2026-04-23T09:12:59.350556Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6\n2026-04-23T09:13:00.537715Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor\n2026-04-23T09:13:00.539247Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)\n2026-04-23T09:13:00.539704Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)\n2026-04-23T09:13:00.580622Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true\n2026-04-23T09:13:00.580688Z INFO screenpipe: meeting detector enabled — independent of transcription mode\n2026-04-23T09:13:00.580873Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)\n2026-04-23T09:13:00.581042Z INFO screenpipe: API server listening on 127.0.0.1:3030 (localhost only)\n2026-04-23T09:13:00.581050Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key\n2026-04-23T09:13:00.580937Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)\n2026-04-23T09:13:00.581202Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager\n2026-04-23T09:13:00.599105Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-23T09:13:00.607481Z INFO screenpipe_core::pipes: loaded pipe: day-recap\n2026-04-23T09:13:00.608248Z INFO screenpipe_core::pipes: loaded pipe: standup-update\n2026-04-23T09:13:00.608416Z INFO screenpipe_core::pipes: loaded pipe: ai-habits\n2026-04-23T09:13:00.608706Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown\n2026-04-23T09:13:00.608849Z INFO screenpipe_core::pipes: loaded pipe: video-export\n2026-04-23T09:13:00.609337Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary\n2026-04-23T09:13:00.609353Z INFO screenpipe_core::pipes: loaded 6 pipes from \"/Users/lukas/.screenpipe/pipes\"\n\n\n\n _ \n __________________ ___ ____ ____ (_____ ___ \n / ___/ ___/ ___/ _ \\/ _ \\/ __ \\ / __ \\/ / __ \\/ _ \\\n (__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/\n/____/\\___/_/ \\___/\\___/_/ /_/ / .___/_/ .___/\\___/ \n /_/ /_/ \n\n\n\npower AI by everything you've seen, said or heard\nopen source | runs locally | developer friendly\n\n\n┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ true │\n│ vision disabled │ false │\n│ pause on DRM content │ false │\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n│ ignored windows │ [\"Boosteroid\"] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n│ api auth │ enabled │\n2026-04-23T09:13:00.610149Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n2026-04-23T09:13:00.614023Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n│ encrypt secrets │ disabled │\n│ retention days │ 14 │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ id: 1 │\n│ │ id: 2 │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ disabled │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-23T09:13:00.626925Z INFO screenpipe: starting UI event capture\n2026-04-23T09:13:00.644081Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-23T09:13:00.659604Z INFO screenpipe_engine::ui_recorder: UI recording session started: 64e213bd-3690-487f-90be-4e8348040416\n2026-04-23T09:13:00.659568Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-23T09:13:00.659937Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-22 06:13:00.659935 UTC to 2026-04-23 06:13:00.659935 UTC)\n2026-04-23T09:13:00.660681Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-23T09:13:00.671031Z INFO screenpipe_engine::server: Server listening on 127.0.0.1:3030\n2026-04-23T09:13:00.676357Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-23T09:13:02.822346Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-23T09:13:02.822390Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-23T09:13:02.822429Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-23T09:13:03.612915Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-23T09:13:03.612969Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-23T09:13:03.612981Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)\n2026-04-23T09:13:03.612988Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)\n2026-04-23T09:13:03.613032Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-23T09:13:04.172201Z WARN sqlx::query: summary=\"SELECT f.id, f.timestamp, f.offset_index, …\" db.statement=\"\\n\\nSELECT\\n f.id,\\n f.timestamp,\\n f.offset_index,\\n COALESCE(\\n SUBSTR(f.full_text, 1, 200),\\n SUBSTR(f.accessibility_text, 1, 200),\\n (\\n SELECT\\n SUBSTR(ot.text, 1, 200)\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as text,\\n COALESCE(\\n f.app_name,\\n (\\n SELECT\\n ot.app_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as app_name,\\n COALESCE(\\n f.window_name,\\n (\\n SELECT\\n ot.window_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as window_name,\\n COALESCE(vc.device_name, f.device_name) as screen_device,\\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\\n COALESCE(vc.fps, 0.033) as chunk_fps,\\n f.browser_url,\\n f.machine_id\\nFROM\\n frames f\\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\\nWHERE\\n f.timestamp >= ?1\\n AND f.timestamp <= ?2\\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\\nORDER BY\\n f.timestamp DESC,\\n f.offset_index DESC\\nLIMIT\\n 10000\\n\" rows_affected=0 rows_returned=4305 elapsed=3.511492208s\n2026-04-23T09:13:04.183200Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 4304 frame entries, coverage from 2026-04-22 06:13:00.659935 UTC\n2026-04-23T09:13:07.349282Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-23T09:13:07.830685Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=72776, dur=70ms\n2026-04-23T09:13:08.836958Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)","depth":4,"value":"2026-04-22T13:54:45.480269Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)\n2026-04-22T13:54:45.525295Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2\n2026-04-22T13:54:47.277567Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-22T13:54:47.557900Z WARN screenpipe_engine::event_driven_capture: skipping capture: lock screen app 'loginwindow' on monitor 2\n2026-04-22T13:54:50.517321Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)\n2026-04-22T13:54:50.531527Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2\n2026-04-22T13:54:50.539783Z INFO sck_rs::stream_manager: stopped 1 persistent stream(s)\n2026-04-22T13:54:51.633834Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-22T13:54:57.215619Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-22T13:54:57.475388Z WARN screenpipe_engine::event_driven_capture: skipping capture: lock screen app 'loginwindow' on monitor 1\n2026-04-22T13:55:00.526322Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)\n2026-04-22T13:55:00.545282Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2\n2026-04-22T13:55:01.132848Z INFO sck_rs::stream_manager: stopped 2 persistent stream(s)\n2026-04-22T13:55:02.005737Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-22T13:55:02.633821Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-22T13:55:19.838192Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3145826437395305149, trigger=click)\n2026-04-22T13:55:20.300634Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3145826437395305149, trigger=click)\n2026-04-22T13:55:21.567188Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3145826437395305149, trigger=click)\n2026-04-22T13:55:42.189258Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=38 elapsed=6.884820208s\n2026-04-22T13:55:42.189981Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 38 eligible frames\n2026-04-22T13:55:43.595617Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.1MB → 0.2MB (11.9x), 16 JPEGs deleted\n2026-04-22T13:55:46.392329Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.1MB → 1.1MB (3.6x), 20 JPEGs deleted\n2026-04-22T13:55:56.140186Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:55:57.408560Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:58:03.696726Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:58:06.390518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:58:08.300896Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:58:08.718730Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:58:09.912001Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:58:10.311583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:58:13.273546Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=visual_change)\n2026-04-22T13:58:19.346181Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=visual_change)\n2026-04-22T13:58:58.360554Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:58:58.786340Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:59:04.430986Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:59:04.893282Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:59:45.902049Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:59:46.348987Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:59:48.470706Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:59:48.898805Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:59:54.274180Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:59:56.495414Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)\n2026-04-22T14:00:02.522746Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)\n2026-04-22T14:00:35.856416Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6212304827203743747, trigger=click)\n2026-04-22T14:00:44.303637Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6212304827203743747, trigger=visual_change)\n2026-04-22T14:00:55.518274Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=9.118070709s\n2026-04-22T14:00:55.518433Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-22T14:00:57.099120Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.3MB → 0.2MB (7.7x), 10 JPEGs deleted\n2026-04-22T14:00:58.767986Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.2MB → 0.4MB (6.0x), 10 JPEGs deleted\n2026-04-22T14:04:15.220880Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3837731717837980920, trigger=visual_change)\n2026-04-22T14:05:28.069620Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1051548329161768346, trigger=click)\n2026-04-22T14:05:28.937013Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1051548329161768346, trigger=click)\n2026-04-22T14:06:00.164534Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=16 elapsed=1.199258208s\n2026-04-22T14:06:00.164673Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 16 eligible frames\n2026-04-22T14:06:02.024968Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 7 frames, 0.9MB → 0.2MB (5.3x), 7 JPEGs deleted\n2026-04-22T14:06:05.188088Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 7 frames, 1.5MB → 0.7MB (2.2x), 7 JPEGs deleted\n2026-04-22T14:06:46.071139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:06:54.570039Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:10:11.311868Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:10:11.803732Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:10:14.694406Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:10:15.147426Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:10:20.551057Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:10:21.045391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:10:22.951330Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:10:23.467707Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:10:30.780582Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:10:31.189747Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:11:11.060150Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=27 elapsed=4.548210084s\n2026-04-22T14:11:11.060281Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 27 eligible frames\n2026-04-22T14:11:12.404803Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.4MB → 0.2MB (8.3x), 11 JPEGs deleted\n2026-04-22T14:11:14.840042Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.7MB → 0.9MB (3.1x), 14 JPEGs deleted\n2026-04-22T14:13:35.976326Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4968702094796127351, trigger=click)\n2026-04-22T14:14:34.729623Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4357453572186956917, trigger=click)\n2026-04-22T14:14:35.105620Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4357453572186956917, trigger=click)\n2026-04-22T14:14:42.802189Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3105240340990619874, trigger=visual_change)\n2026-04-22T14:15:50.965557Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3105240340990619874, trigger=click)\n2026-04-22T14:16:12.161692Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6479516063853776409, trigger=click)\n2026-04-22T14:16:16.153590Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=48 elapsed=1.32668825s\n2026-04-22T14:16:16.155403Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 48 eligible frames\n2026-04-22T14:16:18.705225Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 5.0MB → 0.8MB (5.9x), 20 JPEGs deleted\n2026-04-22T14:16:23.744196Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.4MB → 1.3MB (3.4x), 26 JPEGs deleted\n2026-04-22T14:16:41.068116Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1903229694032021789, trigger=click)\n2026-04-22T14:19:15.519118Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4529195482775946524, trigger=click)\n2026-04-22T14:19:22.366746Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:19:30.208098Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:19:33.496128Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:19:38.751833Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6094503686615299639, trigger=click)\n2026-04-22T14:19:41.173256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6094503686615299639, trigger=visual_change)\n2026-04-22T14:19:42.912499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6094503686615299639, trigger=click)\n2026-04-22T14:19:46.351486Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6094503686615299639, trigger=click)\n2026-04-22T14:19:59.152409Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4952826635443255860, trigger=click)\n2026-04-22T14:20:01.518389Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4952826635443255860, trigger=click)\n2026-04-22T14:20:08.061611Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3675157249828056010, trigger=click)\n2026-04-22T14:21:28.984120Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=25 elapsed=4.855522625s\n2026-04-22T14:21:28.985458Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames\n2026-04-22T14:21:30.346636Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 2.5MB → 0.5MB (5.1x), 11 JPEGs deleted\n2026-04-22T14:21:32.359178Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.6MB → 0.6MB (4.3x), 12 JPEGs deleted\n2026-04-22T14:23:49.639071Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:24:02.782818Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:24:15.622633Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:26:10.392401Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:26:10.788712Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:26:12.799270Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:26:13.219651Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=visual_change)\n2026-04-22T14:26:38.732555Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=36 elapsed=6.323619459s\n2026-04-22T14:26:38.732888Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 36 eligible frames\n2026-04-22T14:26:39.785513Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 1.2MB → 0.1MB (9.0x), 16 JPEGs deleted\n2026-04-22T14:26:41.678236Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 4.1MB → 1.7MB (2.4x), 18 JPEGs deleted\n2026-04-22T14:26:51.433436Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:26:52.304457Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:26:54.907598Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:26:55.381293Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:27:00.185936Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:27:01.160650Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=visual_change)\n2026-04-22T14:27:24.714027Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:27:25.724851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=visual_change)\n2026-04-22T14:27:26.222818Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:27:27.755899Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:27:28.274266Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:30:08.479659Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1095112307124202838, trigger=click)\n2026-04-22T14:31:42.105262Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 38 eligible frames\n2026-04-22T14:31:43.197127Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.5MB → 1.0MB (2.5x), 15 JPEGs deleted\n2026-04-22T14:31:45.195588Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 4.3MB → 1.6MB (2.6x), 21 JPEGs deleted\n2026-04-22T14:32:02.263422Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3223987862501414590, trigger=click)\n2026-04-22T14:32:02.639431Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3223987862501414590, trigger=click)\n2026-04-22T14:32:19.705800Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1632013320203273627, trigger=click)\n2026-04-22T14:32:56.235240Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=257019738165452929, trigger=click)\n2026-04-22T14:32:59.969256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=257019738165452929, trigger=click)\n2026-04-22T14:33:03.317113Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=257019738165452929, trigger=click)\n2026-04-22T14:33:06.798109Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=257019738165452929, trigger=click)\n2026-04-22T14:33:17.093100Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3308965711270161120, trigger=click)\n2026-04-22T14:33:17.486074Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3308965711270161120, trigger=click)\n2026-04-22T14:33:22.565377Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3308965711270161120, trigger=click)\n2026-04-22T14:33:23.216523Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3308965711270161120, trigger=click)\n2026-04-22T14:33:35.842809Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=435352143489435154, trigger=click)\n2026-04-22T14:36:49.764156Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=34 elapsed=4.516637708s\n2026-04-22T14:36:49.764263Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 34 eligible frames\n2026-04-22T14:36:51.311395Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.0MB → 0.7MB (4.6x), 17 JPEGs deleted\n2026-04-22T14:36:52.531817Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 3.0MB → 1.1MB (2.6x), 15 JPEGs deleted\n2026-04-22T14:37:28.108242Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=435352143489435154, trigger=click)\n2026-04-22T14:37:28.485856Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=435352143489435154, trigger=click)\n2026-04-22T14:37:58.316339Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3668856246823891896, trigger=click)\n2026-04-22T14:38:23.725006Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3668856246823891896, trigger=visual_change)\n2026-04-22T14:38:38.826158Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3668856246823891896, trigger=click)\n2026-04-22T14:39:14.985595Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2152077026286113228, trigger=click)\n2026-04-22T14:39:41.085287Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2152077026286113228, trigger=click)\n2026-04-22T14:39:48.325144Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2152077026286113228, trigger=click)\n2026-04-22T14:39:54.042692Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2152077026286113228, trigger=click)\n2026-04-22T14:40:56.876512Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2152077026286113228, trigger=click)\n2026-04-22T14:41:03.035671Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2747516377298098397, trigger=click)\n2026-04-22T14:41:21.141064Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2710026494434395739, trigger=click)\n2026-04-22T14:41:34.026128Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2710026494434395739, trigger=click)\n2026-04-22T14:41:59.929978Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=38 elapsed=5.991404375s\n2026-04-22T14:41:59.930138Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 38 eligible frames\n2026-04-22T14:42:03.556178Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.2MB → 0.3MB (11.1x), 18 JPEGs deleted\n2026-04-22T14:42:06.257184Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.3MB → 1.1MB (2.9x), 18 JPEGs deleted\n2026-04-22T14:42:25.479048Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8568923258494843591, trigger=click)\n2026-04-22T14:42:43.658087Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1714642257969983896, trigger=click)\n2026-04-22T14:42:44.150668Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1714642257969983896, trigger=click)\n2026-04-22T14:42:46.347489Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1714642257969983896, trigger=click)\n2026-04-22T14:42:46.976364Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1714642257969983896, trigger=click)\n2026-04-22T14:42:54.146640Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8318058469467001879, trigger=click)\n2026-04-22T14:43:16.054664Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2746665666832385858, trigger=click)\n2026-04-22T14:43:27.592095Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2746665666832385858, trigger=click)\n2026-04-22T14:43:28.904486Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2746665666832385858, trigger=click)\n2026-04-22T14:43:33.115401Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2746665666832385858, trigger=click)\n2026-04-22T14:43:33.548704Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2746665666832385858, trigger=click)\n2026-04-22T14:43:34.528422Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2746665666832385858, trigger=click)\n2026-04-22T14:43:35.101040Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2746665666832385858, trigger=click)\n2026-04-22T14:43:42.182992Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2746665666832385858, trigger=click)\n2026-04-22T14:43:44.575989Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2746665666832385858, trigger=click)\n2026-04-22T14:44:46.365793Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6679194177618586363, trigger=click)\n2026-04-22T14:47:14.092894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6118025119517316583, trigger=click)\n2026-04-22T14:47:14.453307Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6118025119517316583, trigger=click)\n2026-04-22T14:47:15.216109Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=38 elapsed=7.876438917s\n2026-04-22T14:47:15.216433Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 38 eligible frames\n2026-04-22T14:47:16.019464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6118025119517316583, trigger=click)\n2026-04-22T14:47:16.544950Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6118025119517316583, trigger=click)\n2026-04-22T14:47:16.818898Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.2MB → 0.4MB (7.6x), 18 JPEGs deleted\n2026-04-22T14:47:18.385927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6118025119517316583, trigger=click)\n2026-04-22T14:47:18.475181Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.3MB → 1.2MB (2.9x), 18 JPEGs deleted\n2026-04-22T14:47:19.386449Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6118025119517316583, trigger=click)\n2026-04-22T14:47:20.087965Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6118025119517316583, trigger=click)\n2026-04-22T14:47:59.950079Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2150958068002330087, trigger=click)\n2026-04-22T14:48:01.449829Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2150958068002330087, trigger=click)\n2026-04-22T14:48:09.502190Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2150958068002330087, trigger=visual_change)\n2026-04-22T14:48:34.932290Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8599886822383806507, trigger=click)\n2026-04-22T14:48:44.486878Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3332409860485365312, trigger=click)\n2026-04-22T14:48:45.527964Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3332409860485365312, trigger=click)\n2026-04-22T14:49:38.888769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=472424603195027632, trigger=click)\n2026-04-22T14:49:45.417282Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=472424603195027632, trigger=click)\n2026-04-22T14:49:47.792067Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=472424603195027632, trigger=click)\n2026-04-22T14:50:00.945819Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4843648253222399128, trigger=click)\n2026-04-22T14:50:02.876637Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4843648253222399128, trigger=click)\n2026-04-22T14:52:21.989580Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=42 elapsed=3.480045958s\n2026-04-22T14:52:21.990045Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 42 eligible frames\n2026-04-22T14:52:23.358528Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 3.9MB → 0.4MB (8.7x), 22 JPEGs deleted\n2026-04-22T14:52:24.693261Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.5MB → 1.3MB (2.6x), 18 JPEGs deleted\n2026-04-22T14:53:02.184100Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8042719790331908666, trigger=click)\n2026-04-22T14:53:02.666973Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8042719790331908666, trigger=click)\n2026-04-22T14:53:44.356357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8042719790331908666, trigger=click)\n2026-04-22T14:53:44.849679Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8042719790331908666, trigger=click)\n2026-04-22T14:57:28.770189Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=52 elapsed=4.063771166s\n2026-04-22T14:57:28.770886Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 52 eligible frames\n2026-04-22T14:57:31.445523Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.2MB → 0.5MB (7.8x), 25 JPEGs deleted\n2026-04-22T14:57:35.130193Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.0MB → 2.4MB (2.1x), 25 JPEGs deleted\n2026-04-22T15:00:02.686939Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Slack, signals=2)\n2026-04-22T15:00:08.703872Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Slack, signals=2, browser=false)\n2026-04-22T15:00:08.707794Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=8, app=Slack, title=None)\n2026-04-22T15:00:09.697915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:00:25.820838Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:00:30.742889Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:00:35.932789Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:00:38.982205Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:00:42.607387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:00:45.252062Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:00:48.655907Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:00:54.706686Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:02:07.634898Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:02:43.352910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=click)\n2026-04-22T15:02:43.752028Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=57 elapsed=8.590900375s\n2026-04-22T15:02:43.756244Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 57 eligible frames\n2026-04-22T15:02:46.231236Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 4.8MB → 2.0MB (2.4x), 29 JPEGs deleted\n2026-04-22T15:02:46.417502Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)\n2026-04-22T15:02:49.039329Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.9MB → 1.8MB (2.8x), 26 JPEGs deleted\n2026-04-22T15:02:50.878563Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)\n2026-04-22T15:02:53.936710Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)\n2026-04-22T15:02:56.977078Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)\n2026-04-22T15:03:19.571166Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)\n2026-04-22T15:03:26.066470Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)\n2026-04-22T15:03:31.414066Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)\n2026-04-22T15:04:07.475454Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)\n2026-04-22T15:04:10.605093Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)\n2026-04-22T15:04:13.512293Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)\n2026-04-22T15:04:16.529473Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)\n2026-04-22T15:04:53.720517Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:04:55.658228Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:05:01.010633Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:05:03.051970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:05:06.145567Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:05:29.469376Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=797137072065105312, trigger=click)\n2026-04-22T15:05:55.103542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-116347373995830011, trigger=click)\n2026-04-22T15:05:55.539275Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-116347373995830011, trigger=click)\n2026-04-22T15:06:41.788384Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-116347373995830011, trigger=click)\n2026-04-22T15:06:42.204175Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-116347373995830011, trigger=click)\n2026-04-22T15:07:03.704733Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Slack, id=8, grace=30s)\n2026-04-22T15:07:39.449504Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Idle (timeout=30s, app=Slack, id=8)\n2026-04-22T15:07:39.915187Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting ended (id=8)\n2026-04-22T15:07:49.691643Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 27 eligible frames\n2026-04-22T15:07:51.650549Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.3MB → 0.3MB (7.0x), 13 JPEGs deleted\n2026-04-22T15:07:53.582709Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.6MB → 0.9MB (3.0x), 12 JPEGs deleted\n2026-04-22T15:07:53.988144Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1303595353837004202, trigger=click)\n2026-04-22T15:09:49.799139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4589403011857874475, trigger=click)\n2026-04-22T15:09:52.656133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4589403011857874475, trigger=click)\n2026-04-22T15:13:00.784316Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=44 elapsed=7.176940333s\n2026-04-22T15:13:00.784701Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 44 eligible frames\n2026-04-22T15:13:06.141480Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 3.7MB → 1.4MB (2.7x), 23 JPEGs deleted\n2026-04-22T15:13:09.087116Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 5.4MB → 1.4MB (4.0x), 19 JPEGs deleted\n2026-04-22T15:18:11.493152Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=37 elapsed=2.382042209s\n2026-04-22T15:18:11.496118Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 37 eligible frames\n2026-04-22T15:18:15.568523Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.0MB → 1.3MB (2.3x), 18 JPEGs deleted\n2026-04-22T15:18:18.268870Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 5.0MB → 1.2MB (4.0x), 17 JPEGs deleted\n2026-04-22T15:21:12.476028Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3813526692250337476, trigger=visual_change)\n2026-04-22T15:23:28.271759Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=63 elapsed=9.511646458s\n2026-04-22T15:23:28.282671Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 63 eligible frames\n2026-04-22T15:23:34.267737Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 6.8MB → 3.5MB (1.9x), 31 JPEGs deleted\n2026-04-22T15:23:38.696265Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 5.7MB → 1.2MB (4.7x), 30 JPEGs deleted\n2026-04-22T15:25:18.297937Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:25:21.238617Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:25:58.399479Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6869659017523937306, trigger=click)\n2026-04-22T15:26:00.086631Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6869659017523937306, trigger=click)\n2026-04-22T15:26:01.910963Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6869659017523937306, trigger=visual_change)\n2026-04-22T15:26:02.357258Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6869659017523937306, trigger=visual_change)\n2026-04-22T15:26:04.744325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6869659017523937306, trigger=click)\n2026-04-22T15:26:05.686404Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6869659017523937306, trigger=visual_change)\n2026-04-22T15:26:07.341872Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6869659017523937306, trigger=click)\n2026-04-22T15:26:07.841961Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6869659017523937306, trigger=click)\n2026-04-22T15:27:08.518409Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=click)\n2026-04-22T15:27:14.348556Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)\n2026-04-22T15:27:19.567077Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)\n2026-04-22T15:27:23.928137Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6983242470914211958, trigger=click)\n2026-04-22T15:27:25.430871Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=click)\n2026-04-22T15:27:32.704396Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6983242470914211958, trigger=click)\n2026-04-22T15:27:39.006433Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)\n2026-04-22T15:27:43.060533Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)\n2026-04-22T15:27:45.902424Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)\n2026-04-22T15:27:53.866025Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)\n2026-04-22T15:27:56.855542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)\n2026-04-22T15:28:06.329802Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)\n2026-04-22T15:28:16.947758Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=click)\n2026-04-22T15:28:17.639628Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6983242470914211958, trigger=click)\n2026-04-22T15:28:19.702614Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)\n2026-04-22T15:28:22.257394Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=click)\n2026-04-22T15:28:22.756941Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6983242470914211958, trigger=click)\n2026-04-22T15:28:25.405205Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=click)\n2026-04-22T15:28:26.273821Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6983242470914211958, trigger=click)\n2026-04-22T15:28:37.225888Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4416148030571332734, trigger=click)\n2026-04-22T15:28:41.503684Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4416148030571332734, trigger=visual_change)\n2026-04-22T15:28:42.412245Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4416148030571332734, trigger=click)\n2026-04-22T15:28:44.900893Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4416148030571332734, trigger=click)\n2026-04-22T15:28:45.281047Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4416148030571332734, trigger=click)\n2026-04-22T15:28:47.806415Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=61 elapsed=8.915603625s\n2026-04-22T15:28:47.808575Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 61 eligible frames\n2026-04-22T15:28:51.748955Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4416148030571332734, trigger=click)\n2026-04-22T15:28:52.058480Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 33 frames, 7.4MB → 2.7MB (2.7x), 33 JPEGs deleted\n2026-04-22T15:28:57.816868Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.8MB → 2.2MB (2.2x), 26 JPEGs deleted\n2026-04-22T15:28:59.171732Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4416148030571332734, trigger=visual_change)\n2026-04-22T15:29:19.001260Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4416148030571332734, trigger=visual_change)\n2026-04-22T15:29:26.828215Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4416148030571332734, trigger=visual_change)\n2026-04-22T15:30:54.757442Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2182844197261250370, trigger=click)\n2026-04-22T15:31:30.516711Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2182844197261250370, trigger=click)\n2026-04-22T15:31:49.431335Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4416148030571332734, trigger=visual_change)\n2026-04-22T15:31:54.155985Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4416148030571332734, trigger=visual_change)\n2026-04-22T15:31:58.427528Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4416148030571332734, trigger=visual_change)\n2026-04-22T15:32:21.666172Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7700301847216802583, trigger=click)\n2026-04-22T15:32:26.019679Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7700301847216802583, trigger=visual_change)\n2026-04-22T15:33:34.334309Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5496326212892813056, trigger=visual_change)\n2026-04-22T15:33:41.606418Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5496326212892813056, trigger=visual_change)\n2026-04-22T15:34:04.695051Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5496326212892813056, trigger=click)\n2026-04-22T15:34:06.919005Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=73 elapsed=9.073921416s\n2026-04-22T15:34:06.919292Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 73 eligible frames\n2026-04-22T15:34:11.489642Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 40 frames, 9.1MB → 3.4MB (2.6x), 40 JPEGs deleted\n2026-04-22T15:34:15.335063Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 6.0MB → 2.0MB (3.0x), 31 JPEGs deleted\n2026-04-22T15:36:46.398267Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3562390500463334923, trigger=visual_change)\n2026-04-22T15:36:49.359581Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3562390500463334923, trigger=visual_change)\n2026-04-22T15:36:56.667177Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3562390500463334923, trigger=click)\n2026-04-22T15:37:01.305805Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3562390500463334923, trigger=click)\n2026-04-22T15:37:04.552815Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3562390500463334923, trigger=click)\n2026-04-22T15:37:05.365649Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3562390500463334923, trigger=click)\n2026-04-22T15:37:06.657172Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3562390500463334923, trigger=visual_change)\n2026-04-22T15:37:20.005928Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3562390500463334923, trigger=visual_change)\n2026-04-22T15:37:22.572092Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3562390500463334923, trigger=visual_change)\n2026-04-22T15:37:28.745166Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3562390500463334923, trigger=visual_change)\n2026-04-22T15:37:32.112106Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3562390500463334923, trigger=visual_change)\n2026-04-22T15:37:40.817103Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3562390500463334923, trigger=visual_change)\n2026-04-22T15:37:44.068041Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3562390500463334923, trigger=visual_change)\n2026-04-22T15:37:49.735129Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3562390500463334923, trigger=click)\n2026-04-22T15:37:50.302210Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3562390500463334923, trigger=click)\n2026-04-22T15:38:55.433464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=666278282122949848, trigger=visual_change)\n2026-04-22T15:38:58.142835Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=666278282122949848, trigger=visual_change)\n2026-04-22T15:39:15.500379Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=666278282122949848, trigger=click)\n2026-04-22T15:39:15.987757Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=666278282122949848, trigger=click)\n2026-04-22T15:39:17.228167Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=666278282122949848, trigger=visual_change)\n2026-04-22T15:39:18.307711Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=666278282122949848, trigger=visual_change)\n2026-04-22T15:39:21.533092Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=666278282122949848, trigger=visual_change)\n2026-04-22T15:39:21.807148Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=62 elapsed=6.322537666s\n2026-04-22T15:39:21.807242Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 62 eligible frames\n2026-04-22T15:39:23.654129Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=666278282122949848, trigger=visual_change)\n2026-04-22T15:39:24.158197Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=666278282122949848, trigger=click)\n2026-04-22T15:39:24.238758Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 6.7MB → 2.4MB (2.8x), 29 JPEGs deleted\n2026-04-22T15:39:24.919127Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=666278282122949848, trigger=click)\n2026-04-22T15:39:26.522050Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 6.2MB → 2.3MB (2.7x), 31 JPEGs deleted\n2026-04-22T15:39:32.912924Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=666278282122949848, trigger=visual_change)\n2026-04-22T15:39:33.735345Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=666278282122949848, trigger=click)\n2026-04-22T15:39:35.375360Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=666278282122949848, trigger=click)\n2026-04-22T15:39:36.995841Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=666278282122949848, trigger=click)\n2026-04-22T15:39:37.467108Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=666278282122949848, trigger=click)\n2026-04-22T15:39:40.369538Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=666278282122949848, trigger=click)\n2026-04-22T15:39:43.276197Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=666278282122949848, trigger=click)\n2026-04-22T15:40:07.556081Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:40:09.930821Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:40:11.154450Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:40:19.449508Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:40:29.519581Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8135701070039948601, trigger=visual_change)\n2026-04-22T15:41:56.970803Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:42:06.118149Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:44:30.869060Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=59 elapsed=4.334722834s\n2026-04-22T15:44:30.869438Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 59 eligible frames\n2026-04-22T15:44:36.682494Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 7.0MB → 3.2MB (2.1x), 31 JPEGs deleted\n2026-04-22T15:44:41.069797Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.9MB → 1.5MB (3.3x), 26 JPEGs deleted\n2026-04-22T15:47:16.707141Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:47:26.476915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:47:30.506202Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:47:33.490610Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:47:37.439486Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:48:10.814782Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:48:49.253754Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:48:58.005092Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:49:44.222629Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=41 elapsed=2.9267015s\n2026-04-22T15:49:44.223441Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 41 eligible frames\n2026-04-22T15:49:46.632623Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:49:46.707995Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 4.3MB → 2.2MB (2.0x), 19 JPEGs deleted\n2026-04-22T15:49:48.648095Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.5MB → 2.1MB (2.2x), 20 JPEGs deleted\n2026-04-22T15:49:55.585051Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:49:58.557820Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:50:04.689651Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:50:10.744245Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:50:32.681643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:50:37.792790Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:50:40.260147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:50:46.805742Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:50:53.026194Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:50:55.961999Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:51:02.210628Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:51:04.537374Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:51:17.321401Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:51:23.393544Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:51:26.412142Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:51:32.600472Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:51:35.220938Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:51:41.194536Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:51:44.210722Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:51:50.304611Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:51:56.294115Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:51:59.321943Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:52:05.342699Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:52:17.436700Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:52:21.187208Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:52:49.374507Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:52:51.550918Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:52:53.892542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:52:59.947921Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:53:03.308386Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:53:10.465051Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:53:18.275354Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:53:19.882281Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:53:26.102339Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:53:28.677581Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:53:38.195861Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:53:40.759223Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:53:44.211689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:53:49.661798Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:53:51.254730Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:53:56.539255Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:53:58.004998Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:53:58.491246Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:54:00.207899Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:54:00.960349Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:54:06.030857Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:54:09.163227Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:54:09.608141Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:54:29.884648Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7221551953177750058, trigger=visual_change)\n2026-04-22T15:54:32.904873Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7221551953177750058, trigger=visual_change)\n2026-04-22T15:54:38.529745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7221551953177750058, trigger=visual_change)\n2026-04-22T15:54:42.030930Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7221551953177750058, trigger=visual_change)\n2026-04-22T15:54:53.757845Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=44 elapsed=5.12885025s\n2026-04-22T15:54:53.758028Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 44 eligible frames\n2026-04-22T15:54:56.216519Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.7MB → 2.2MB (2.6x), 25 JPEGs deleted\n2026-04-22T15:54:57.253500Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7221551953177750058, trigger=visual_change)\n2026-04-22T15:54:57.778380Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.8MB → 1.4MB (2.7x), 17 JPEGs deleted\n2026-04-22T15:55:14.227919Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:55:29.347981Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:55:34.911796Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:55:37.679086Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:55:55.657449Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:55:56.235238Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:55:58.080012Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:56:03.489838Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:56:19.773160Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:58:04.898631Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:58:05.507970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:58:19.974744Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7937570718597551457, trigger=visual_change)\n2026-04-22T16:00:07.397412Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=28 elapsed=9.608749083s\n2026-04-22T16:00:07.397774Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames\n2026-04-22T16:00:11.353157Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.7MB → 1.6MB (1.7x), 12 JPEGs deleted\n2026-04-22T16:00:14.732810Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 3.1MB → 1.4MB (2.2x), 14 JPEGs deleted\n2026-04-22T16:05:14.875841Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 26 eligible frames\n2026-04-22T16:05:21.176398Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.7MB → 1.5MB (1.8x), 12 JPEGs deleted\n2026-04-22T16:05:23.500634Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.7MB → 0.8MB (3.5x), 12 JPEGs deleted\n2026-04-22T16:09:43.057186Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1700548679087424896, trigger=click)\n2026-04-22T16:09:43.726339Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1700548679087424896, trigger=click)\n2026-04-22T16:10:33.202772Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=32 elapsed=8.151029333s\n2026-04-22T16:10:33.205709Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 32 eligible frames\n2026-04-22T16:10:36.241109Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.9MB → 0.8MB (3.6x), 16 JPEGs deleted\n2026-04-22T16:10:39.638416Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.4MB → 1.1MB (2.2x), 14 JPEGs deleted\n2026-04-22T16:12:57.604636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3640531240517672751, trigger=visual_change)\n2026-04-22T16:14:48.477621Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3640531240517672751, trigger=click)\n2026-04-22T16:14:49.113238Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3640531240517672751, trigger=click)\n2026-04-22T16:14:52.803148Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3640531240517672751, trigger=click)\n2026-04-22T16:15:48.370916Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=21 elapsed=8.52753825s\n2026-04-22T16:15:48.371084Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames\n2026-04-22T16:15:49.801978Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 1.6MB → 0.3MB (5.7x), 9 JPEGs deleted\n2026-04-22T16:15:51.456711Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.4MB (4.1x), 10 JPEGs deleted\n2026-04-22T16:16:39.820921Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:16:40.258041Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:16:42.604047Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4659444575687776884, trigger=visual_change)\n2026-04-22T16:16:44.729225Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:16:45.395942Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:16:48.031036Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:16:53.808716Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:16:57.947511Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:16:58.661906Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:17:00.203848Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:17:00.510442Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:17:10.932565Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:17:13.262897Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:17:16.009682Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:17:16.360136Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:17:18.987777Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:17:19.385866Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:17:22.098836Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:17:22.469613Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:17:45.084378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T16:17:45.488587Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T16:17:46.265772Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T16:17:50.794900Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T16:17:51.193853Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T16:17:56.183149Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T16:17:56.903285Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T16:18:02.302062Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2014082630808116476, trigger=click)\n2026-04-22T16:19:28.148117Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7767962928162902459, trigger=visual_change)\n2026-04-22T16:19:30.526236Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7767962928162902459, trigger=click)\n2026-04-22T16:19:31.195837Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7767962928162902459, trigger=click)\n2026-04-22T16:19:33.715299Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7767962928162902459, trigger=click)\n2026-04-22T16:19:34.357828Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7767962928162902459, trigger=click)\n2026-04-22T16:19:35.020610Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7767962928162902459, trigger=click)\n2026-04-22T16:19:35.698451Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7767962928162902459, trigger=click)\n2026-04-22T16:20:53.732098Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=2.258795792s\n2026-04-22T16:20:53.732443Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-22T16:20:54.463494Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 1.6MB → 0.3MB (5.7x), 9 JPEGs deleted\n2026-04-22T16:20:55.529460Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 2.5MB → 1.1MB (2.3x), 11 JPEGs deleted\n2026-04-22T16:24:20.510070Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2383132637107085157, trigger=click)\n2026-04-22T16:24:27.782475Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1404306881477617387, trigger=click)\n2026-04-22T16:24:44.481677Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6805760601486189718, trigger=click)\n2026-04-22T16:25:13.403567Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=666355421012968666, trigger=click)\n2026-04-22T16:26:01.606241Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=32 elapsed=6.054129542s\n2026-04-22T16:26:01.608081Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 32 eligible frames\n2026-04-22T16:26:04.408527Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.5MB → 0.3MB (8.7x), 14 JPEGs deleted\n2026-04-22T16:26:09.345870Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 3.9MB → 2.5MB (1.6x), 16 JPEGs deleted\n2026-04-22T16:31:16.523778Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=48 elapsed=6.261290959s\n2026-04-22T16:31:16.523889Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 48 eligible frames\n2026-04-22T16:31:18.062354Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 4.1MB → 0.5MB (9.1x), 23 JPEGs deleted\n2026-04-22T16:31:19.733335Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 6.0MB → 1.6MB (3.8x), 23 JPEGs deleted\n2026-04-22T16:35:14.998679Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-930197057256512338, trigger=click)\n2026-04-22T16:35:28.307910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T16:35:30.218730Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T16:35:50.703840Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4332103135047682933, trigger=visual_change)\n2026-04-22T16:35:52.711832Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4332103135047682933, trigger=click)\n2026-04-22T16:35:53.307064Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4332103135047682933, trigger=visual_change)\n2026-04-22T16:36:26.222531Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=53 elapsed=6.476373125s\n2026-04-22T16:36:26.222663Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 53 eligible frames\n2026-04-22T16:36:28.058618Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 3.4MB → 1.1MB (3.1x), 27 JPEGs deleted\n2026-04-22T16:36:29.824864Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 6.2MB → 0.7MB (8.9x), 24 JPEGs deleted\n2026-04-22T16:38:27.295549Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4399336884068833789, trigger=click)\n2026-04-22T16:38:31.082408Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4399336884068833789, trigger=click)\n2026-04-22T16:40:46.732079Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4399336884068833789, trigger=visual_change)\n2026-04-22T16:40:50.641593Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4399336884068833789, trigger=click)\n2026-04-22T16:40:51.044794Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4399336884068833789, trigger=click)\n2026-04-22T16:40:55.679492Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4399336884068833789, trigger=click)\n2026-04-22T16:40:56.491807Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4399336884068833789, trigger=click)\n2026-04-22T16:41:32.562032Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=29 elapsed=2.600218041s\n2026-04-22T16:41:32.562136Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 29 eligible frames\n2026-04-22T16:41:33.652619Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 1.3MB → 0.2MB (6.4x), 14 JPEGs deleted\n2026-04-22T16:41:35.202361Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 3.3MB → 0.5MB (7.0x), 13 JPEGs deleted\n2026-04-22T16:46:38.330333Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=32 elapsed=3.117707958s\n2026-04-22T16:46:38.330439Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 32 eligible frames\n2026-04-22T16:46:39.948332Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 1.3MB → 0.1MB (9.1x), 14 JPEGs deleted\n2026-04-22T16:46:41.506017Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 4.0MB → 1.2MB (3.3x), 16 JPEGs deleted\n2026-04-22T16:51:48.131482Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=23 elapsed=6.613640791s\n2026-04-22T16:51:48.132937Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 23 eligible frames\n2026-04-22T16:51:49.003952Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.0MB → 0.1MB (8.7x), 11 JPEGs deleted\n2026-04-22T16:51:50.053842Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.0MB → 0.7MB (2.7x), 10 JPEGs deleted\n2026-04-22T16:52:34.780923Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)\n2026-04-22T16:52:48.863893Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=app_switch, monitor=1) — DB pool may be saturated\n2026-04-22T16:52:48.863900Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=app_switch, monitor=2) — DB pool may be saturated\n2026-04-22T16:53:01.610713Z INFO sck_rs::stream_manager: recreating stream for display 1 (resolution change)\n2026-04-22T16:53:29.988978Z INFO sck_rs::stream_manager: recreating stream for display 2 (resolution change)\n2026-04-22T16:56:56.495427Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=6.425245416s\n2026-04-22T16:56:56.495542Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-22T16:56:57.336306Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.9MB → 0.1MB (7.9x), 10 JPEGs deleted\n2026-04-22T16:56:58.175049Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.9MB → 0.3MB (6.3x), 10 JPEGs deleted\n2026-04-22T17:01:58.685859Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-22T17:01:59.473339Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.9MB → 0.1MB (8.0x), 10 JPEGs deleted\n2026-04-22T17:02:00.310277Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.9MB → 0.3MB (6.3x), 10 JPEGs deleted\n2026-04-22T17:07:01.945755Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=4 elapsed=1.626160375s\n2026-04-22T17:07:01.945847Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 4 eligible frames\n2026-04-22T17:07:02.187343Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 1 frames, 0.1MB → 0.1MB (1.0x), 1 JPEGs deleted\n2026-04-22T17:07:02.450702Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 1 frames, 0.2MB → 0.2MB (0.8x), 1 JPEGs deleted\n2026-04-22T17:12:06.874189Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=2 elapsed=4.3861715s\n2026-04-22T17:12:06.874452Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-22T17:17:13.193100Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=6.294200125s\n2026-04-22T17:20:07.541995Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)\n2026-04-22T17:20:07.630953Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 1\n2026-04-22T17:20:14.084721Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-22T17:20:14.480434Z INFO screenpipe_engine::event_driven_capture: monitor 1 capture recovered after 1 consecutive errors\n2026-04-22T17:20:15.608548Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-22T17:20:16.850029Z INFO screenpipe_engine::event_driven_capture: monitor 2 capture recovered after 1 consecutive errors\n2026-04-22T17:20:59.606795Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=353611364339833193, trigger=visual_change)\n2026-04-22T17:21:05.782785Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6518006199864472489, trigger=click)\n2026-04-22T17:21:48.543394Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6518006199864472489, trigger=click)\n2026-04-22T17:21:52.452327Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6518006199864472489, trigger=click)\n2026-04-22T17:22:24.575958Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=11.371497042s\n2026-04-22T17:27:29.081900Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=4.457444667s\n2026-04-22T17:32:30.295309Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 20 eligible frames\n2026-04-22T17:32:30.964048Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 7 frames, 0.7MB → 0.1MB (5.8x), 7 JPEGs deleted\n2026-04-22T17:32:32.430798Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.9MB → 0.8MB (3.6x), 13 JPEGs deleted\n2026-04-22T17:37:36.325676Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=24 elapsed=3.882934833s\n2026-04-22T17:37:36.326088Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 24 eligible frames\n2026-04-22T17:37:37.732598Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.9MB → 0.1MB (8.1x), 10 JPEGs deleted\n2026-04-22T17:37:38.875813Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.5MB → 0.9MB (2.7x), 12 JPEGs deleted\n2026-04-22T17:42:43.122610Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=28 elapsed=4.232872583s\n2026-04-22T17:42:43.122797Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames\n2026-04-22T17:42:44.139661Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.0MB → 0.2MB (6.5x), 11 JPEGs deleted\n2026-04-22T17:42:45.850747Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 3.1MB → 1.5MB (2.1x), 15 JPEGs deleted\n2026-04-22T17:42:57.144176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5398018417063851890, trigger=click)\n2026-04-22T17:42:57.653834Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5398018417063851890, trigger=click)\n2026-04-22T17:43:28.190643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7326608657648522043, trigger=click)\n2026-04-22T17:43:30.037343Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7326608657648522043, trigger=visual_change)\n2026-04-22T17:44:17.081083Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=900127091433810136, trigger=click)\n2026-04-22T17:44:17.605660Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=900127091433810136, trigger=click)\n2026-04-22T17:45:37.216031Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=900127091433810136, trigger=visual_change)\n2026-04-22T17:47:22.339709Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=900127091433810136, trigger=visual_change)\n2026-04-22T17:47:28.305597Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=900127091433810136, trigger=click)\n2026-04-22T17:47:29.056879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=900127091433810136, trigger=click)\n2026-04-22T17:47:52.285649Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=900127091433810136, trigger=visual_change)\n2026-04-22T17:47:53.496727Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=42 elapsed=7.316425834s\n2026-04-22T17:47:53.496837Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 42 eligible frames\n2026-04-22T17:47:54.629113Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 1.5MB → 0.1MB (12.5x), 16 JPEGs deleted\n2026-04-22T17:47:56.497927Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 5.4MB → 1.6MB (3.4x), 24 JPEGs deleted\n2026-04-22T17:49:23.365540Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7724578834627729847, trigger=click)\n2026-04-22T17:53:02.690403Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=27 elapsed=6.179264s\n2026-04-22T17:53:02.690738Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 27 eligible frames\n2026-04-22T17:53:03.556672Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.2MB → 0.1MB (10.3x), 13 JPEGs deleted\n2026-04-22T17:53:05.211208Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.5MB → 0.6MB (4.0x), 12 JPEGs deleted\n2026-04-22T17:57:40.568162Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1851379926418959813, trigger=click)\n2026-04-22T17:57:41.079468Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1851379926418959813, trigger=click)\n2026-04-22T17:58:10.456601Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=45 elapsed=4.691370125s\n2026-04-22T17:58:10.457220Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 45 eligible frames\n2026-04-22T17:58:12.041940Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 2.1MB → 0.2MB (11.4x), 22 JPEGs deleted\n2026-04-22T17:58:14.351810Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.8MB → 2.2MB (1.8x), 21 JPEGs deleted\n2026-04-22T17:58:21.350110Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1851379926418959813, trigger=click)\n2026-04-22T17:58:21.948643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1851379926418959813, trigger=click)\n2026-04-22T18:03:16.198465Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=44 elapsed=1.833842375s\n2026-04-22T18:03:16.198578Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 44 eligible frames\n2026-04-22T18:03:18.139382Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 2.0MB → 0.1MB (16.1x), 21 JPEGs deleted\n2026-04-22T18:03:19.618803Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.5MB → 1.5MB (2.4x), 21 JPEGs deleted\n2026-04-22T18:06:58.395218Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7639883349033148478, trigger=click)\n2026-04-22T18:06:58.897470Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7639883349033148478, trigger=click)\n2026-04-22T18:07:42.474566Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=607162597309748765, trigger=click)\n2026-04-22T18:08:27.382204Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=28 elapsed=7.750844334s\n2026-04-22T18:08:27.382491Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames\n2026-04-22T18:08:29.032220Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.2MB → 0.1MB (10.4x), 13 JPEGs deleted\n2026-04-22T18:08:30.573314Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.7MB → 0.6MB (4.2x), 13 JPEGs deleted\n2026-04-22T18:13:38.096494Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=20 elapsed=6.760223375s\n2026-04-22T18:13:38.099584Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 20 eligible frames\n2026-04-22T18:13:38.806766Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 0.8MB → 0.1MB (7.4x), 9 JPEGs deleted\n2026-04-22T18:13:39.606462Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 1.9MB → 0.5MB (3.8x), 9 JPEGs deleted\n2026-04-22T18:18:41.943065Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=45 elapsed=2.325026709s\n2026-04-22T18:18:41.943417Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 45 eligible frames\n2026-04-22T18:18:43.289962Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 2.0MB → 0.1MB (16.7x), 21 JPEGs deleted\n2026-04-22T18:18:45.689764Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 4.4MB → 1.3MB (3.4x), 22 JPEGs deleted\n2026-04-22T18:18:54.020334Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6726632078176380015, trigger=click)\n2026-04-22T18:18:54.540347Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6726632078176380015, trigger=click)\n2026-04-22T18:18:55.737423Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6726632078176380015, trigger=click)\n2026-04-22T18:18:56.477423Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6726632078176380015, trigger=click)\n2026-04-22T18:20:28.510789Z WARN sqlx::query: summary=\"PRAGMA wal_checkpoint(TRUNCATE)\" db.statement=\"\" rows_affected=0 rows_returned=1 elapsed=5.273706125s\n2026-04-22T18:20:28.511954Z WARN screenpipe_db::db: wal checkpoint: busy (could not truncate), 3177 pages in WAL\n2026-04-22T18:20:28.562400Z WARN sqlx::query: summary=\"BEGIN IMMEDIATE\" db.statement=\"\" rows_affected=1 rows_returned=0 elapsed=2.291890708s\n2026-04-22T18:23:52.302822Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=31 elapsed=6.325649833s\n2026-04-22T18:23:52.304330Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 31 eligible frames\n2026-04-22T18:23:53.163590Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 1.1MB → 0.1MB (9.9x), 12 JPEGs deleted\n2026-04-22T18:23:55.277698Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.4MB → 1.6MB (2.2x), 17 JPEGs deleted\n2026-04-22T18:28:56.007322Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 35 eligible frames\n2026-04-22T18:28:57.403360Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.7MB → 1.5MB (1.9x), 16 JPEGs deleted\n2026-04-22T18:28:58.752838Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.9MB → 0.8MB (3.6x), 17 JPEGs deleted\n2026-04-22T18:34:01.165384Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=41 elapsed=2.400307625s\n2026-04-22T18:34:01.165480Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 41 eligible frames\n2026-04-22T18:34:02.291139Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.7MB → 0.8MB (3.5x), 15 JPEGs deleted\n2026-04-22T18:34:04.197399Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.2MB → 1.7MB (2.4x), 24 JPEGs deleted\n2026-04-22T18:35:56.027919Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5884937538005636030, trigger=visual_change)\n2026-04-22T18:37:55.284482Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-439807993867665328, trigger=visual_change)\n2026-04-22T18:39:08.660187Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=4.451587125s\n2026-04-22T18:39:08.660278Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-22T18:39:09.493828Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.5MB → 0.5MB (3.1x), 10 JPEGs deleted\n2026-04-22T18:39:10.349740Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.1MB → 0.5MB (4.3x), 10 JPEGs deleted\n2026-04-22T18:43:06.355073Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3304493437592891639, trigger=click)\n2026-04-22T18:43:23.219621Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6603898485603033537, trigger=click)\n2026-04-22T18:44:11.899645Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=21 elapsed=1.53441375s\n2026-04-22T18:44:11.900197Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames\n2026-04-22T18:44:12.802039Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 1.1MB → 0.2MB (6.3x), 9 JPEGs deleted\n2026-04-22T18:44:14.694466Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.1MB → 0.3MB (5.9x), 10 JPEGs deleted\n2026-04-22T18:45:14.778135Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6664853592767636193, trigger=click)\n2026-04-22T18:46:36.923697Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1791249548195440516, trigger=visual_change)\n2026-04-22T18:49:18.625635Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=46 elapsed=3.900838541s\n2026-04-22T18:49:18.625996Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 46 eligible frames\n2026-04-22T18:49:19.640722Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 1.8MB → 0.2MB (10.4x), 15 JPEGs deleted\n2026-04-22T18:49:23.038596Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 5.2MB → 2.1MB (2.4x), 29 JPEGs deleted\n2026-04-22T18:50:34.997361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=visual_change)\n2026-04-22T18:50:39.846829Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:50:43.731899Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:20.200945Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=visual_change)\n2026-04-22T18:51:23.144927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:23.976040Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:27.176876Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:28.227317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:31.555085Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:32.274042Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:35.352114Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:37.306495Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=visual_change)\n2026-04-22T18:52:02.049971Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=visual_change)\n2026-04-22T18:52:09.690330Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=visual_change)\n2026-04-22T18:52:11.530065Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:52:12.090300Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:52:22.885838Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6951480031607957362, trigger=visual_change)\n2026-04-22T18:52:58.986955Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7031607293039132919, trigger=click)\n2026-04-22T18:53:47.690375Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3992755350865402319, trigger=visual_change)\n2026-04-22T18:54:25.328228Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=52 elapsed=2.277973417s\n2026-04-22T18:54:25.328316Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 52 eligible frames\n2026-04-22T18:54:26.661506Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 2.6MB → 0.2MB (11.0x), 22 JPEGs deleted\n2026-04-22T18:54:28.982139Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 4.3MB → 1.1MB (3.8x), 28 JPEGs deleted\n2026-04-22T18:54:44.142044Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3992755350865402319, trigger=visual_change)\n2026-04-22T18:55:01.465747Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2556650532703180759, trigger=click)\n2026-04-22T18:55:02.524314Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2556650532703180759, trigger=click)\n2026-04-22T18:55:35.312048Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3149441378543601087, trigger=visual_change)\n2026-04-22T18:55:55.086761Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3149441378543601087, trigger=click)\n2026-04-22T18:55:56.919853Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3149441378543601087, trigger=visual_change)\n2026-04-22T18:56:05.807170Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7595806992634662117, trigger=visual_change)\n2026-04-22T18:56:12.303927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7595806992634662117, trigger=visual_change)\n2026-04-22T18:56:58.093656Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2070714172482892625, trigger=visual_change)\n2026-04-22T18:57:00.459010Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2070714172482892625, trigger=visual_change)\n2026-04-22T18:57:03.809894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2070714172482892625, trigger=visual_change)\n2026-04-22T18:58:04.259354Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7284778144726625723, trigger=visual_change)\n2026-04-22T18:58:07.302007Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7284778144726625723, trigger=visual_change)\n2026-04-22T18:58:10.443744Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7284778144726625723, trigger=visual_change)\n2026-04-22T18:58:40.416893Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6313361147559934277, trigger=click)\n2026-04-22T18:58:59.229391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)\n2026-04-22T18:59:10.795801Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)\n2026-04-22T18:59:15.904155Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)\n2026-04-22T18:59:30.308258Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=46 elapsed=1.303054333s\n2026-04-22T18:59:30.308485Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 46 eligible frames\n2026-04-22T18:59:31.535859Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 2.4MB → 0.3MB (7.5x), 20 JPEGs deleted\n2026-04-22T18:59:33.536283Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 3.8MB → 1.3MB (3.0x), 24 JPEGs deleted\n2026-04-22T18:59:39.897203Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)\n2026-04-22T18:59:43.593017Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-71227342056343983, trigger=visual_change)\n2026-04-22T18:59:55.722135Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)\n2026-04-22T19:00:00.394304Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)\n2026-04-22T19:00:27.869871Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2710856207947507007, trigger=visual_change)\n2026-04-22T19:01:54.992910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6986338393283794423, trigger=visual_change)\n2026-04-22T19:02:13.568012Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6986338393283794423, trigger=visual_change)\n2026-04-22T19:02:16.092275Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6986338393283794423, trigger=visual_change)\n2026-04-22T19:03:04.479425Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7704375629034044835, trigger=visual_change)\n2026-04-22T19:03:35.287830Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2375149456869027114, trigger=visual_change)\n2026-04-22T19:03:41.021583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2375149456869027114, trigger=visual_change)\n2026-04-22T19:03:48.485601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6234474271212752005, trigger=visual_change)\n2026-04-22T19:04:35.737525Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=82 elapsed=2.188209209s\n2026-04-22T19:04:35.737670Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 82 eligible frames\n2026-04-22T19:04:38.209886Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3880005638520398709, trigger=click)\n2026-04-22T19:04:38.478674Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 4.8MB → 1.0MB (4.9x), 39 JPEGs deleted\n2026-04-22T19:04:42.074270Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 41 frames, 7.5MB → 3.6MB (2.1x), 41 JPEGs deleted\n2026-04-22T19:04:55.094599Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-635344842894947589, trigger=visual_change)\n2026-04-22T19:05:20.336216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)\n2026-04-22T19:05:54.388487Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)\n2026-04-22T19:05:57.299176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)\n2026-04-22T19:05:59.949506Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)\n2026-04-22T19:06:25.531964Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5957740084085463727, trigger=visual_change)\n2026-04-22T19:06:50.090567Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6422724880219484653, trigger=visual_change)\n2026-04-22T19:07:22.963169Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2531925023067266044, trigger=click)\n2026-04-22T19:07:24.045648Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2531925023067266044, trigger=click)\n2026-04-22T19:07:27.834546Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2085088366939909076, trigger=click)\n2026-04-22T19:07:28.381522Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2085088366939909076, trigger=click)\n2026-04-22T19:08:34.175493Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3061313113729352595, trigger=click)\n2026-04-22T19:09:42.454765Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 91 eligible frames\n2026-04-22T19:09:45.816541Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 5.7MB → 2.4MB (2.3x), 32 JPEGs deleted\n2026-04-22T19:09:50.140975Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 57 frames, 7.8MB → 2.3MB (3.4x), 57 JPEGs deleted\n2026-04-22T19:10:13.441594Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=click)\n2026-04-22T19:10:18.830768Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)\n2026-04-22T19:10:21.842287Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)\n2026-04-22T19:10:28.187487Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5292492680570276501, trigger=click)\n^C2026-04-22T19:10:32.957264Z INFO screenpipe: received ctrl+c, initiating shutdown\n2026-04-22T19:10:32.958125Z INFO screenpipe: stopping UI event capture\n2026-04-22T19:10:32.958201Z INFO screenpipe: received shutdown signal for VisionManager\n2026-04-22T19:10:32.958212Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker shutting down\n2026-04-22T19:10:32.958217Z INFO screenpipe_engine::meeting_detector: meeting v2: shutdown received, exiting detection loop\n2026-04-22T19:10:32.958646Z INFO screenpipe_engine::vision_manager::manager: Shutting down VisionManager\n2026-04-22T19:10:32.958661Z INFO screenpipe_engine::vision_manager::manager: Stopping VisionManager\n2026-04-22T19:10:32.958669Z INFO screenpipe_engine::vision_manager::manager: Stopping vision recording for monitor 2\n2026-04-22T19:10:32.958804Z INFO screenpipe_engine::vision_manager::manager: Stopping vision recording for monitor 1\n\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ 2026-04-22T19:10:33.158623Z INFO screenpipe_engine::ui_recorder: UI recording session ended: e7729066-2ab4-4bf0-9d48-0c9790a4ee79\n2026-04-22T19:10:33.159581Z INFO screenpipe: shutdown complete\n\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-stop\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-status\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ st-start\nzsh: command not found: st-start\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-start\ndetected hardware tier: Mid\nwarning: parakeet is not supported on this platform, using whisper-tiny instead\n2026-04-23T09:12:59.282987Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store\nchecking permissions...\n screen recording: ok\n accessibility: ok\n2026-04-23T09:12:59.350556Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6\n2026-04-23T09:13:00.537715Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor\n2026-04-23T09:13:00.539247Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)\n2026-04-23T09:13:00.539704Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)\n2026-04-23T09:13:00.580622Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true\n2026-04-23T09:13:00.580688Z INFO screenpipe: meeting detector enabled — independent of transcription mode\n2026-04-23T09:13:00.580873Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)\n2026-04-23T09:13:00.581042Z INFO screenpipe: API server listening on 127.0.0.1:3030 (localhost only)\n2026-04-23T09:13:00.581050Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key\n2026-04-23T09:13:00.580937Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)\n2026-04-23T09:13:00.581202Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager\n2026-04-23T09:13:00.599105Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-23T09:13:00.607481Z INFO screenpipe_core::pipes: loaded pipe: day-recap\n2026-04-23T09:13:00.608248Z INFO screenpipe_core::pipes: loaded pipe: standup-update\n2026-04-23T09:13:00.608416Z INFO screenpipe_core::pipes: loaded pipe: ai-habits\n2026-04-23T09:13:00.608706Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown\n2026-04-23T09:13:00.608849Z INFO screenpipe_core::pipes: loaded pipe: video-export\n2026-04-23T09:13:00.609337Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary\n2026-04-23T09:13:00.609353Z INFO screenpipe_core::pipes: loaded 6 pipes from \"/Users/lukas/.screenpipe/pipes\"\n\n\n\n _ \n __________________ ___ ____ ____ (_____ ___ \n / ___/ ___/ ___/ _ \\/ _ \\/ __ \\ / __ \\/ / __ \\/ _ \\\n (__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/\n/____/\\___/_/ \\___/\\___/_/ /_/ / .___/_/ .___/\\___/ \n /_/ /_/ \n\n\n\npower AI by everything you've seen, said or heard\nopen source | runs locally | developer friendly\n\n\n┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ true │\n│ vision disabled │ false │\n│ pause on DRM content │ false │\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n│ ignored windows │ [\"Boosteroid\"] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n│ api auth │ enabled │\n2026-04-23T09:13:00.610149Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n2026-04-23T09:13:00.614023Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n│ encrypt secrets │ disabled │\n│ retention days │ 14 │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ id: 1 │\n│ │ id: 2 │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ disabled │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-23T09:13:00.626925Z INFO screenpipe: starting UI event capture\n2026-04-23T09:13:00.644081Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-23T09:13:00.659604Z INFO screenpipe_engine::ui_recorder: UI recording session started: 64e213bd-3690-487f-90be-4e8348040416\n2026-04-23T09:13:00.659568Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-23T09:13:00.659937Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-22 06:13:00.659935 UTC to 2026-04-23 06:13:00.659935 UTC)\n2026-04-23T09:13:00.660681Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-23T09:13:00.671031Z INFO screenpipe_engine::server: Server listening on 127.0.0.1:3030\n2026-04-23T09:13:00.676357Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-23T09:13:02.822346Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-23T09:13:02.822390Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-23T09:13:02.822429Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-23T09:13:03.612915Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-23T09:13:03.612969Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-23T09:13:03.612981Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)\n2026-04-23T09:13:03.612988Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)\n2026-04-23T09:13:03.613032Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-23T09:13:04.172201Z WARN sqlx::query: summary=\"SELECT f.id, f.timestamp, f.offset_index, …\" db.statement=\"\\n\\nSELECT\\n f.id,\\n f.timestamp,\\n f.offset_index,\\n COALESCE(\\n SUBSTR(f.full_text, 1, 200),\\n SUBSTR(f.accessibility_text, 1, 200),\\n (\\n SELECT\\n SUBSTR(ot.text, 1, 200)\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as text,\\n COALESCE(\\n f.app_name,\\n (\\n SELECT\\n ot.app_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as app_name,\\n COALESCE(\\n f.window_name,\\n (\\n SELECT\\n ot.window_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as window_name,\\n COALESCE(vc.device_name, f.device_name) as screen_device,\\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\\n COALESCE(vc.fps, 0.033) as chunk_fps,\\n f.browser_url,\\n f.machine_id\\nFROM\\n frames f\\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\\nWHERE\\n f.timestamp >= ?1\\n AND f.timestamp <= ?2\\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\\nORDER BY\\n f.timestamp DESC,\\n f.offset_index DESC\\nLIMIT\\n 10000\\n\" rows_affected=0 rows_returned=4305 elapsed=3.511492208s\n2026-04-23T09:13:04.183200Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 4304 frame entries, coverage from 2026-04-22 06:13:00.659935 UTC\n2026-04-23T09:13:07.349282Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-23T09:13:07.830685Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=72776, dur=70ms\n2026-04-23T09:13:08.836958Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.058843084,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.32912233,"top":1.0,"width":0.058843084,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.33111703,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.3879654,"top":1.0,"width":0.058843084,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3899601,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"✳ Build full day activity summary from Screenpipe (claude)","depth":2,"bounds":{"left":0.44680852,"top":1.0,"width":0.058843084,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.4488032,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.5056516,"top":1.0,"width":0.058843084,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.50764626,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.56449467,"top":1.0,"width":0.058843084,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.56648934,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.62333775,"top":1.0,"width":0.058843084,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6253325,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"ec2-user@ip-10-30-159-186:~ (-zsh)","depth":2,"bounds":{"left":0.6821808,"top":1.0,"width":0.058843084,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.68417555,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7273936,"top":1.0,"width":0.01861702,"height":-0.023144484},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"screenpipe\"","depth":1,"bounds":{"left":0.4956782,"top":1.0,"width":0.027925532,"height":-0.02394259},"role_description":"text"}]...
|
-2378869332330925597
|
914697014260106619
|
manual
|
accessibility
|
NULL
|
2026-04-22T13:54:45.480269Z INFO screenpipe_engin 2026-04-22T13:54:45.480269Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)
2026-04-22T13:54:45.525295Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2
2026-04-22T13:54:47.277567Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)
2026-04-22T13:54:47.557900Z WARN screenpipe_engine::event_driven_capture: skipping capture: lock screen app 'loginwindow' on monitor 2
2026-04-22T13:54:50.517321Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)
2026-04-22T13:54:50.531527Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2
2026-04-22T13:54:50.539783Z INFO sck_rs::stream_manager: stopped 1 persistent stream(s)
2026-04-22T13:54:51.633834Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)
2026-04-22T13:54:57.215619Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)
2026-04-22T13:54:57.475388Z WARN screenpipe_engine::event_driven_capture: skipping capture: lock screen app 'loginwindow' on monitor 1
2026-04-22T13:55:00.526322Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)
2026-04-22T13:55:00.545282Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2
2026-04-22T13:55:01.132848Z INFO sck_rs::stream_manager: stopped 2 persistent stream(s)
2026-04-22T13:55:02.005737Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)
2026-04-22T13:55:02.633821Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)
2026-04-22T13:55:19.838192Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3145826437395305149, trigger=click)
2026-04-22T13:55:20.300634Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3145826437395305149, trigger=click)
2026-04-22T13:55:21.567188Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3145826437395305149, trigger=click)
2026-04-22T13:55:42.189258Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=38 elapsed=6.884820208s
2026-04-22T13:55:42.189981Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 38 eligible frames
2026-04-22T13:55:43.595617Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.1MB → 0.2MB (11.9x), 16 JPEGs deleted
2026-04-22T13:55:46.392329Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.1MB → 1.1MB (3.6x), 20 JPEGs deleted
2026-04-22T13:55:56.140186Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:55:57.408560Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:58:03.696726Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:58:06.390518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:58:08.300896Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:58:08.718730Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:58:09.912001Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:58:10.311583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:58:13.273546Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=visual_change)
2026-04-22T13:58:19.346181Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=visual_change)
2026-04-22T13:58:58.360554Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:58:58.786340Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:59:04.430986Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:59:04.893282Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:59:45.902049Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:59:46.348987Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:59:48.470706Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:59:48.898805Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:59:54.274180Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:59:56.495414Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)
2026-04-22T14:00:02.522746Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)
2026-04-22T14:00:35.856416Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6212304827203743747, trigger=click)
2026-04-22T14:00:44.303637Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6212304827203743747, trigger=visual_change)
2026-04-22T14:00:55.518274Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=22 elapsed=9.118070709s
2026-04-22T14:00:55.518433Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames
2026-04-22T14:00:57.099120Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.3MB → 0.2MB (7.7x), 10 JPEGs deleted
2026-04-22T14:00:58.767986Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.2MB → 0.4MB (6.0x), 10 JPEGs deleted
2026-04-22T14:04:15.220880Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3837731717837980920, trigger=visual_change)
2026-04-22T14:05:28.069620Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1051548329161768346, trigger=click)
2026-04-22T14:05:28.937013Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1051548329161768346, trigger=click)
2026-04-22T14:06:00.164534Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=16 elapsed=1.199258208s
2026-04-22T14:06:00.164673Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 16 eligible frames
2026-04-22T14:06:02.024968Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 7 frames, 0.9MB → 0.2MB (5.3x), 7 JPEGs deleted
2026-04-22T14:06:05.188088Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 7 frames, 1.5MB → 0.7MB (2.2x), 7 JPEGs deleted
2026-04-22T14:06:46.071139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)
2026-04-22T14:06:54.570039Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)
2026-04-22T14:10:11.311868Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)
2026-04-22T14:10:11.803732Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)
2026-04-22T14:10:14.694406Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)
2026-04-22T14:10:15.147426Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)
2026-04-22T14:10:20.551057Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)
2026-04-22T14:10:21.045391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)
2026-04-22T14:10:22.951330Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)
2026-04-22T14:10:23.467707Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)
2026-04-22T14:10:30.780582Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)
2026-04-22T14:10:31.189747Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)
2026-04-22T14:11:11.060150Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=27 elapsed=4.548210084s
2026-04-22T14:11:11.060281Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 27 eligible frames
2026-04-22T14:11:12.404803Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.4MB → 0.2MB (8.3x), 11 JPEGs deleted
2026-04-22T14:11:14.840042Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.7MB → 0.9MB (3.1x), 14 JPEGs deleted
2026-04-22T14:13:35.976326Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4968702094796127351, trigger=click)
2026-04-22T14:14:34.729623Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4357453572186956917, trigger=click)
2026-04-22T14:14:35.105620Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4357453572186956917, trigger=click)
2026-04-22T14:14:42.802189Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3105240340990619874, trigger=visual_change)
2026-04-22T14:15:50.965557Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3105240340990619874, trigger=click)
2026-04-22T14:16:12.161692Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6479516063853776409, trigger=click)
2026-04-22T14:16:16.153590Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=48 elapsed=1.32668825s
2026-04-22T14:16:16.155403Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 48 eligible frames
2026-04-22T14:16:18.705225Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 5.0MB → 0.8MB (5.9x), 20 JPEGs deleted
2026-04-22T14:16:23.744196Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.4MB → 1.3MB (3.4x), 26 JPEGs deleted
2026-04-22T14:16:41.068116Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1903229694032021789, trigger=click)
2026-04-22T14:19:15.519118Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4529195482775946524, trigger=click)
2026-04-22T14:19:22.366746Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)
2026-04-22T14:19:30.208098Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)
2026-04-22T14:19:33.496128Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)
2026-04-22T14:19:38.751833Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6094503686615299639, trigger=click)
2026-04-22T14:19:41.173256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6094503686615299639, trigger=visual_change)
2026-04-22T14:19:42.912499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6094503686615299639, trigger=click)
2026-04-22T14:19:46.351486Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6094503686615299639, trigger=click)
2026-04-22T14:19:59.152409Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4952826635443255860, trigger=click)
2026-04-22T14:20:01.518389Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4952826635443255860, trigger=click)
2026-04-22T14:20:08.061611Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3675157249828056010, trigger=click)
2026-04-22T14:21:28.984120Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=25 elapsed=4.855522625s
2026-04-22T14:21:28.985458Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames
2026-04-22T14:21:30.346636Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 2.5MB → 0.5MB (5.1x), 11 JPEGs deleted
2026-04-22T14:21:32.359178Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.6MB → 0.6MB (4.3x), 12 JPEGs deleted
2026-04-22T14:23:49.639071Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=click)
2026-04-22T14:24:02.782818Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=click)
2026-04-22T14:24:15.622633Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)
2026-04-22T14:26:10.392401Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)
2026-04-22T14:26:10.788712Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=click)
2026-04-22T14:26:12.799270Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)
2026-04-22T14:26:13.219651Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=visual_change)
2026-04-22T14:26:38.732555Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=36 elapsed=6.323619459s
2026-04-22T14:26:38.732888Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 36 eligible frames
2026-04-22T14:26:39.785513Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 1.2MB → 0.1MB (9.0x), 16 JPEGs deleted
2026-04-22T14:26:41.678236Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 4.1MB → 1.7MB (2.4x), 18 JPEGs deleted
2026-04-22T14:26:51.433436Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=click)
2026-04-22T14:26:52.304457Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)
2026-04-22T14:26:54.907598Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=click)
2026-04-22T14:26:55.381293Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)
2026-04-22T14:27:00.185936Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)
2026-04-22T14:27:01.160650Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=visual_change)
2026-04-22T14:27:24.714027Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)
2026-04-22T14:27:25.724851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=visual_change)
2026-04-22T14:27:26.222818Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)
2026-04-22T14:27:27.755899Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=click)
2026-04-22T14:27:28.274266Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)
2026-04-22T14:30:08.479659Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1095112307124202838, trigger=click)
2026-04-22T14:31:42.105262Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 38 eligible frames
2026-04-22T14:31:43.197127Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.5MB → 1.0MB (2.5x), 15 JPEGs deleted
2026-04-22T14:31:45.195588Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 4.3MB → 1.6MB (2.6x), 21 JPEGs deleted
2026-04-22T14:32:02.263422Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3223987862501414590, trigger=click)
2026-04-22T14:32:02.639431Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3223987862501414590, trigger=click)
2026-04-22T14:32:19.705800Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1632013320203273627, trigger=click)
2026-04-22T14:32:56.235240Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=257019738165452929, trigger=click)
2026-04-22T14:32:59.969256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=257019738165452929, trigger=click)
2026-04-22T14:33:03.317113Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=257019738165452929, trigger=click)
2026-04-22T14:33:06.798109Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=257019738165452929, trigger=click)
2026-04-22T14:33:17.093100Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3308965711270161120, trigger=click)
2026-04-22T14:33:17.486074Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3308965711270161120, trigger=click)
2026-04-22T14:33:22.565377Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3308965711270161120, trigger=click)
2026-04-22T14:33:23.216523Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3308965711270161120, trigger=click)
2026-04-22T14:33:35.842809Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=435352143489435154, trigger=click)
2026-04-22T14:36:49.764156Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=34 elapsed=4.516637708s
2026-04-22T14:36:49.764263Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 34 eligible frames
2026-04-22T14:36:51.311395Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.0MB → 0.7MB (4.6x), 17 JPEGs deleted
2026-04-22T14:36:52.531817Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 3.0MB → 1.1MB (2.6x), 15 JPEGs deleted
2026-04-22T14:37:28.108242Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=435352143489435154, trigger=click)
2026-04-22T14:37:28.485856Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=435352143489435154, trigger=click)
2026-04-22T14:37:58.316339Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3668856246823891896, trigger=click)
2026-04-22T14:38:23.725006Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3668856246823891896, trigger=visual_change)
2026-04-22T14:38:38.826158Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3668856246823891896, trigger=click)
2026-04-22T14:39:14.985595Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2152077026286113228, trigger=click)
2026-04-22T14:39:41.085287Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2152077026286113228, trigger=click)
2026-04-22T14:39:48.325144Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2152077026286113228, trigger=click)
2026-04-22T14:39:54.042692Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2152077026286113228, trigger=click)
2026-04-22T14:40:56.876512Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2152077026286113228, trigger=click)
2026-04-22T14:41:03.035671Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2747516377298098397, trigger=click)
2026-04-22T14:41:21.141064Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2710026494434395739, trigger=click)
2026-04-22T14:41:34.026128Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2710026494434395739, trigger=click)
2026-04-22T14:41:59.929978Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=38 elapsed=5.991404375s
2026-04-22T14:41:59.930138Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 38 eligible frames
2026-04-22T14:42:03.556178Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.2MB → 0.3MB (11.1x), 18 JPEGs deleted
2026-04-22T14:42:06.257184Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.3MB → 1.1MB (2.9x), 18 JPEGs deleted
2026-04-22T14:42:25.479048Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8568923258494843591, trigger=click)
2026-04-22T14:42:43.658087Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1714642257969983896, trigger=click)
2026-04-22T14:42:44.150668Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1714642257969983896, trigger=click)
2026-04-22T14:42:46.347489Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1714642257969983896, trigger=click)
2026-04-22T14:42:46.976364Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1714642257969983896, trigger=click)
2026-04-22T14:42:54.146640Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8318058469467001879, trigger=click)
2026-04-22T14:43:16.054664Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2746665666832385858, trigger=click)
2026-04-22T14:43:27.592095Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2746665666832385858, trigger=click)
2026-04-22T14:43:28.904486Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2746665666832385858, trigger=click)
2026-04-22T14:43:33.115401Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2746665666832385858, trigger=click)
2026-04-22T14:43:33.548704Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2746665666832385858, trigger=click)
2026-04-22T14:43:34.528422Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2746665666832385858, trigger=click)
2026-04-22T14:43:35.101040Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2746665666832385858, trigger=click)
2026-04-22T14:43:42.182992Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2746665666832385858, trigger=click)
2026-04-22T14:43:44.575989Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2746665666832385858, trigger=click)
2026-04-22T14:44:46.365793Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6679194177618586363, trigger=click)
2026-04-22T14:47:14.092894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6118025119517316583, trigger=click)
2026-04-22T14:47:14.453307Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6118025119517316583, trigger=click)
2026-04-22T14:47:15.216109Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=38 elapsed=7.876438917s
2026-04-22T14:47:15.216433Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 38 eligible frames
2026-04-22T14:47:16.019464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6118025119517316583, trigger=click)
2026-04-22T14:47:16.544950Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6118025119517316583, trigger=click)
2026-04-22T14:47:16.818898Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.2MB → 0.4MB (7.6x), 18 JPEGs deleted
2026-04-22T14:47:18.385927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6118025119517316583, trigger=click)
2026-04-22T14:47:18.475181Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.3MB → 1.2MB (2.9x), 18 JPEGs deleted
2026-04-22T14:47:19.386449Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6118025119517316583, trigger=click)
2026-04-22T14:47:20.087965Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6118025119517316583, trigger=click)
2026-04-22T14:47:59.950079Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2150958068002330087, trigger=click)
2026-04-22T14:48:01.449829Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2150958068002330087, trigger=click)
2026-04-22T14:48:09.502190Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2150958068002330087, trigger=visual_change)
2026-04-22T14:48:34.932290Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8599886822383806507, trigger=click)
2026-04-22T14:48:44.486878Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3332409860485365312, trigger=click)
2026-04-22T14:48:45.527964Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3332409860485365312, trigger=click)
2026-04-22T14:49:38.888769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=472424603195027632, trigger=click)
2026-04-22T14:49:45.417282Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=472424603195027632, trigger=click)
2026-04-22T14:49:47.792067Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=472424603195027632, trigger=click)
2026-04-22T14:50:00.945819Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4843648253222399128, trigger=click)
2026-04-22T14:50:02.876637Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4843648253222399128, trigger=click)
2026-04-22T14:52:21.989580Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=42 elapsed=3.480045958s
2026-04-22T14:52:21.990045Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 42 eligible frames
2026-04-22T14:52:23.358528Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 3.9MB → 0.4MB (8.7x), 22 JPEGs deleted
2026-04-22T14:52:24.693261Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.5MB → 1.3MB (2.6x), 18 JPEGs deleted
2026-04-22T14:53:02.184100Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8042719790331908666, trigger=click)
2026-04-22T14:53:02.666973Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8042719790331908666, trigger=click)
2026-04-22T14:53:44.356357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8042719790331908666, trigger=click)
2026-04-22T14:53:44.849679Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8042719790331908666, trigger=click)
2026-04-22T14:57:28.770189Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=52 elapsed=4.063771166s
2026-04-22T14:57:28.770886Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 52 eligible frames
2026-04-22T14:57:31.445523Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.2MB → 0.5MB (7.8x), 25 JPEGs deleted
2026-04-22T14:57:35.130193Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.0MB → 2.4MB (2.1x), 25 JPEGs deleted
2026-04-22T15:00:02.686939Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Slack, signals=2)
2026-04-22T15:00:08.703872Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Slack, signals=2, browser=false)
2026-04-22T15:00:08.707794Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=8, app=Slack, title=None)
2026-04-22T15:00:09.697915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)
2026-04-22T15:00:25.820838Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)
2026-04-22T15:00:30.742889Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)
2026-04-22T15:00:35.932789Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)
2026-04-22T15:00:38.982205Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)
2026-04-22T15:00:42.607387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)
2026-04-22T15:00:45.252062Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)
2026-04-22T15:00:48.655907Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)
2026-04-22T15:00:54.706686Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)
2026-04-22T15:02:07.634898Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)
2026-04-22T15:02:43.352910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=click)
2026-04-22T15:02:43.752028Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=57 elapsed=8.590900375s
2026-04-22T15:02:43.756244Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 57 eligible frames
2026-04-22T15:02:46.231236Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 4.8MB → 2.0MB (2.4x), 29 JPEGs deleted
2026-04-22T15:02:46.417502Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)
2026-04-22T15:02:49.039329Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.9MB → 1.8MB (2.8x), 26 JPEGs deleted
2026-04-22T15:02:50.878563Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)
2026-04-22T15:02:53.936710Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)
2026-04-22T15:02:56.977078Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)
2026-04-22T15:03:19.571166Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)
2026-04-22T15:03:26.066470Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)
2026-04-22T15:03:31.414066Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)
2026-04-22T15:04:07.475454Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)
2026-04-22T15:04:10.605093Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)
2026-04-22T15:04:13.512293Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)
2026-04-22T15:04:16.529473Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)
2026-04-22T15:04:53.720517Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)
2026-04-22T15:04:55.658228Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)
2026-04-22T15:05:01.010633Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)
2026-04-22T15:05:03.051970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)
2026-04-22T15:05:06.145567Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)
2026-04-22T15:05:29.469376Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=797137072065105312, trigger=click)
2026-04-22T15:05:55.103542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-116347373995830011, trigger=click)
2026-04-22T15:05:55.539275Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-116347373995830011, trigger=click)
2026-04-22T15:06:41.788384Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-116347373995830011, trigger=click)
2026-04-22T15:06:42.204175Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-116347373995830011, trigger=click)
2026-04-22T15:07:03.704733Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Slack, id=8, grace=30s)
2026-04-22T15:07:39.449504Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Idle (timeout=30s, app=Slack, id=8)
2026-04-22T15:07:39.915187Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting ended (id=8)
2026-04-22T15:07:49.691643Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 27 eligible frames
2026-04-22T15:07:51.650549Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.3MB → 0.3MB (7.0x), 13 JPEGs deleted
2026-04-22T15:07:53.582709Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.6MB → 0.9MB (3.0x), 12 JPEGs deleted
2026-04-22T15:07:53.988144Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1303595353837004202, trigger=click)
2026-04-22T15:09:49.799139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4589403011857874475, trigger=click)
2026-04-22T15:09:52.656133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4589403011857874475, trigger=click)
2026-04-22T15:13:00.784316Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=44 elapsed=7.176940333s
2026-04-22T15:13:00.784701Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 44 eligible frames
2026-04-22T15:13:06.141480Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 3.7MB → 1.4MB (2.7x), 23 JPEGs deleted
2026-04-22T15:13:09.087116Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 5.4MB → 1.4MB (4.0x), 19 JPEGs deleted
2026-04-22T15:18:11.493152Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=37 elapsed=2.382042209s
2026-04-22T15:18:11.496118Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 37 eligible frames
2026-04-22T15:18:15.568523Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.0MB → 1.3MB (2.3x), 18 JPEGs deleted
2026-04-22T15:18:18.268870Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 5.0MB → 1.2MB (4.0x), 17 JPEGs deleted
2026-04-22T15:21:12.476028Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3813526692250337476, trigger=visual_change)
2026-04-22T15:23:28.271759Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=63 elapsed=9.511646458s
2026-04-22T15:23:28.282671Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 63 eligible frames
2026-04-22T15:23:34.267737Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 6.8MB → 3.5MB (1.9x), 31 JPEGs deleted
2026-04-22T15:23:38.696265Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 5.7MB → 1.2MB (4.7x), 30 JPEGs deleted
2026-04-22T15:25:18.297937Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)
2026-04-22T15:25:21.238617Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)
2026-04-22T15:25:58.399479Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6869659017523937306, trigger=click)
2026-04-22T15:26:00.086631Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6869659017523937306, trigger=click)
2026-04-22T15:26:01.910963Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6869659017523937306, trigger=visual_change)
2026-04-22T15:26:02.357258Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6869659017523937306, trigger=visual_change)
2026-04-22T15:26:04.744325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6869659017523937306, trigger=click)
2026-04-22T15:26:05.686404Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6869659017523937306, trigger=visual_change)
2026-04-22T15:26:07.341872Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6869659017523937306, trigger=click)
2026-04-22T15:26:07.841961Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6869659017523937306, trigger=click)
2026-04-22T15:27:08.518409Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=click)
2026-04-22T15:27:14.348556Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)
2026-04-22T15:27:19.567077Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)
2026-04-22T15:27:23.928137Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6983242470914211958, trigger=click)
2026-04-22T15:27:25.430871Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=click)
2026-04-22T15:27:32.704396Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6983242470914211958, trigger=click)
2026-04-22T15:27:39.006433Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)
2026-04-22T15:27:43.060533Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)
2026-04-22T15:27:45.902424Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)
2026-04-22T15:27:53.866025Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)
2026-04-22T15:27:56.855542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)
2026-04-22T15:28:06.329802Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)
2026-04-22T15:28:16.947758Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=click)
2026-04-22T15:28:17.639628Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6983242470914211958, trigger=click)
2026-04-22T15:28:19.702614Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)
2026-04-22T15:28:22.257394Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=click)
2026-04-22T15:28:22.756941Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6983242470914211958, trigger=click)
2026-04-22T15:28:25.405205Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=click)
2026-04-22T15:28:26.273821Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6983242470914211958, trigger=click)
2026-04-22T15:...
|
NULL
|
|
72776
|
1774
|
0
|
2026-04-23T06:13:03.323635+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-23/1776 /Users/lukas/.screenpipe/data/data/2026-04-23/1776924783323_m1.jpg...
|
iTerm2
|
screenpipe"
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
2026-04-22T13:53:01.899060Z INFO sck_rs::stream_m 2026-04-22T13:53:01.899060Z INFO sck_rs::stream_manager: recreating stream for display 2 (resolution change)
2026-04-22T13:53:24.588928Z INFO sck_rs::stream_manager: recreating stream for display 1 (resolution change)
2026-04-22T13:54:45.480269Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)
2026-04-22T13:54:45.525295Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2
2026-04-22T13:54:47.277567Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)
2026-04-22T13:54:47.557900Z WARN screenpipe_engine::event_driven_capture: skipping capture: lock screen app 'loginwindow' on monitor 2
2026-04-22T13:54:50.517321Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)
2026-04-22T13:54:50.531527Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2
2026-04-22T13:54:50.539783Z INFO sck_rs::stream_manager: stopped 1 persistent stream(s)
2026-04-22T13:54:51.633834Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)
2026-04-22T13:54:57.215619Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)
2026-04-22T13:54:57.475388Z WARN screenpipe_engine::event_driven_capture: skipping capture: lock screen app 'loginwindow' on monitor 1
2026-04-22T13:55:00.526322Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)
2026-04-22T13:55:00.545282Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2
2026-04-22T13:55:01.132848Z INFO sck_rs::stream_manager: stopped 2 persistent stream(s)
2026-04-22T13:55:02.005737Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)
2026-04-22T13:55:02.633821Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)
2026-04-22T13:55:19.838192Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3145826437395305149, trigger=click)
2026-04-22T13:55:20.300634Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3145826437395305149, trigger=click)
2026-04-22T13:55:21.567188Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3145826437395305149, trigger=click)
2026-04-22T13:55:42.189258Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=38 elapsed=6.884820208s
2026-04-22T13:55:42.189981Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 38 eligible frames
2026-04-22T13:55:43.595617Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.1MB → 0.2MB (11.9x), 16 JPEGs deleted
2026-04-22T13:55:46.392329Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.1MB → 1.1MB (3.6x), 20 JPEGs deleted
2026-04-22T13:55:56.140186Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:55:57.408560Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:58:03.696726Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:58:06.390518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:58:08.300896Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:58:08.718730Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:58:09.912001Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:58:10.311583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:58:13.273546Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=visual_change)
2026-04-22T13:58:19.346181Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=visual_change)
2026-04-22T13:58:58.360554Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:58:58.786340Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:59:04.430986Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:59:04.893282Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:59:45.902049Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:59:46.348987Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:59:48.470706Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:59:48.898805Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:59:54.274180Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:59:56.495414Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)
2026-04-22T14:00:02.522746Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)
2026-04-22T14:00:35.856416Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6212304827203743747, trigger=click)
2026-04-22T14:00:44.303637Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6212304827203743747, trigger=visual_change)
2026-04-22T14:00:55.518274Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=22 elapsed=9.118070709s
2026-04-22T14:00:55.518433Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames
2026-04-22T14:00:57.099120Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.3MB → 0.2MB (7.7x), 10 JPEGs deleted
2026-04-22T14:00:58.767986Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.2MB → 0.4MB (6.0x), 10 JPEGs deleted
2026-04-22T14:04:15.220880Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3837731717837980920, trigger=visual_change)
2026-04-22T14:05:28.069620Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1051548329161768346, trigger=click)
2026-04-22T14:05:28.937013Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1051548329161768346, trigger=click)
2026-04-22T14:06:00.164534Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=16 elapsed=1.199258208s
2026-04-22T14:06:00.164673Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 16 eligible frames
2026-04-22T14:06:02.024968Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 7 frames, 0.9MB → 0.2MB (5.3x), 7 JPEGs deleted
2026-04-22T14:06:05.188088Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 7 frames, 1.5MB → 0.7MB (2.2x), 7 JPEGs deleted
2026-04-22T14:06:46.071139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)
2026-04-22T14:06:54.570039Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)
2026-04-22T14:10:11.311868Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)
2026-04-22T14:10:11.803732Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)
2026-04-22T14:10:14.694406Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)
2026-04-22T14:10:15.147426Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)
2026-04-22T14:10:20.551057Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)
2026-04-22T14:10:21.045391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)
2026-04-22T14:10:22.951330Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)
2026-04-22T14:10:23.467707Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)
2026-04-22T14:10:30.780582Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)
2026-04-22T14:10:31.189747Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)
2026-04-22T14:11:11.060150Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=27 elapsed=4.548210084s
2026-04-22T14:11:11.060281Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 27 eligible frames
2026-04-22T14:11:12.404803Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.4MB → 0.2MB (8.3x), 11 JPEGs deleted
2026-04-22T14:11:14.840042Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.7MB → 0.9MB (3.1x), 14 JPEGs deleted
2026-04-22T14:13:35.976326Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4968702094796127351, trigger=click)
2026-04-22T14:14:34.729623Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4357453572186956917, trigger=click)
2026-04-22T14:14:35.105620Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4357453572186956917, trigger=click)
2026-04-22T14:14:42.802189Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3105240340990619874, trigger=visual_change)
2026-04-22T14:15:50.965557Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3105240340990619874, trigger=click)
2026-04-22T14:16:12.161692Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6479516063853776409, trigger=click)
2026-04-22T14:16:16.153590Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=48 elapsed=1.32668825s
2026-04-22T14:16:16.155403Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 48 eligible frames
2026-04-22T14:16:18.705225Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 5.0MB → 0.8MB (5.9x), 20 JPEGs deleted
2026-04-22T14:16:23.744196Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.4MB → 1.3MB (3.4x), 26 JPEGs deleted
2026-04-22T14:16:41.068116Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1903229694032021789, trigger=click)
2026-04-22T14:19:15.519118Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4529195482775946524, trigger=click)
2026-04-22T14:19:22.366746Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)
2026-04-22T14:19:30.208098Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)
2026-04-22T14:19:33.496128Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)
2026-04-22T14:19:38.751833Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6094503686615299639, trigger=click)
2026-04-22T14:19:41.173256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6094503686615299639, trigger=visual_change)
2026-04-22T14:19:42.912499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6094503686615299639, trigger=click)
2026-04-22T14:19:46.351486Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6094503686615299639, trigger=click)
2026-04-22T14:19:59.152409Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4952826635443255860, trigger=click)
2026-04-22T14:20:01.518389Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4952826635443255860, trigger=click)
2026-04-22T14:20:08.061611Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3675157249828056010, trigger=click)
2026-04-22T14:21:28.984120Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=25 elapsed=4.855522625s
2026-04-22T14:21:28.985458Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames
2026-04-22T14:21:30.346636Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 2.5MB → 0.5MB (5.1x), 11 JPEGs deleted
2026-04-22T14:21:32.359178Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.6MB → 0.6MB (4.3x), 12 JPEGs deleted
2026-04-22T14:23:49.639071Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=click)
2026-04-22T14:24:02.782818Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=click)
2026-04-22T14:24:15.622633Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)
2026-04-22T14:26:10.392401Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)
2026-04-22T14:26:10.788712Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=click)
2026-04-22T14:26:12.799270Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)
2026-04-22T14:26:13.219651Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=visual_change)
2026-04-22T14:26:38.732555Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=36 elapsed=6.323619459s
2026-04-22T14:26:38.732888Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 36 eligible frames
2026-04-22T14:26:39.785513Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 1.2MB → 0.1MB (9.0x), 16 JPEGs deleted
2026-04-22T14:26:41.678236Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 4.1MB → 1.7MB (2.4x), 18 JPEGs deleted
2026-04-22T14:26:51.433436Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=click)
2026-04-22T14:26:52.304457Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)
2026-04-22T14:26:54.907598Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=click)
2026-04-22T14:26:55.381293Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)
2026-04-22T14:27:00.185936Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)
2026-04-22T14:27:01.160650Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=visual_change)
2026-04-22T14:27:24.714027Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)
2026-04-22T14:27:25.724851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=visual_change)
2026-04-22T14:27:26.222818Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)
2026-04-22T14:27:27.755899Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=click)
2026-04-22T14:27:28.274266Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)
2026-04-22T14:30:08.479659Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1095112307124202838, trigger=click)
2026-04-22T14:31:42.105262Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 38 eligible frames
2026-04-22T14:31:43.197127Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.5MB → 1.0MB (2.5x), 15 JPEGs deleted
2026-04-22T14:31:45.195588Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 4.3MB → 1.6MB (2.6x), 21 JPEGs deleted
2026-04-22T14:32:02.263422Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3223987862501414590, trigger=click)
2026-04-22T14:32:02.639431Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3223987862501414590, trigger=click)
2026-04-22T14:32:19.705800Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1632013320203273627, trigger=click)
2026-04-22T14:32:56.235240Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=257019738165452929, trigger=click)
2026-04-22T14:32:59.969256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=257019738165452929, trigger=click)
2026-04-22T14:33:03.317113Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=257019738165452929, trigger=click)
2026-04-22T14:33:06.798109Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=257019738165452929, trigger=click)
2026-04-22T14:33:17.093100Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3308965711270161120, trigger=click)
2026-04-22T14:33:17.486074Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3308965711270161120, trigger=click)
2026-04-22T14:33:22.565377Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3308965711270161120, trigger=click)
2026-04-22T14:33:23.216523Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3308965711270161120, trigger=click)
2026-04-22T14:33:35.842809Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=435352143489435154, trigger=click)
2026-04-22T14:36:49.764156Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=34 elapsed=4.516637708s
2026-04-22T14:36:49.764263Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 34 eligible frames
2026-04-22T14:36:51.311395Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.0MB → 0.7MB (4.6x), 17 JPEGs deleted
2026-04-22T14:36:52.531817Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 3.0MB → 1.1MB (2.6x), 15 JPEGs deleted
2026-04-22T14:37:28.108242Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=435352143489435154, trigger=click)
2026-04-22T14:37:28.485856Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=435352143489435154, trigger=click)
2026-04-22T14:37:58.316339Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3668856246823891896, trigger=click)
2026-04-22T14:38:23.725006Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3668856246823891896, trigger=visual_change)
2026-04-22T14:38:38.826158Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3668856246823891896, trigger=click)
2026-04-22T14:39:14.985595Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2152077026286113228, trigger=click)
2026-04-22T14:39:41.085287Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2152077026286113228, trigger=click)
2026-04-22T14:39:48.325144Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2152077026286113228, trigger=click)
2026-04-22T14:39:54.042692Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2152077026286113228, trigger=click)
2026-04-22T14:40:56.876512Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2152077026286113228, trigger=click)
2026-04-22T14:41:03.035671Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2747516377298098397, trigger=click)
2026-04-22T14:41:21.141064Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2710026494434395739, trigger=click)
2026-04-22T14:41:34.026128Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2710026494434395739, trigger=click)
2026-04-22T14:41:59.929978Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=38 elapsed=5.991404375s
2026-04-22T14:41:59.930138Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 38 eligible frames
2026-04-22T14:42:03.556178Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.2MB → 0.3MB (11.1x), 18 JPEGs deleted
2026-04-22T14:42:06.257184Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.3MB → 1.1MB (2.9x), 18 JPEGs deleted
2026-04-22T14:42:25.479048Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8568923258494843591, trigger=click)
2026-04-22T14:42:43.658087Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1714642257969983896, trigger=click)
2026-04-22T14:42:44.150668Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1714642257969983896, trigger=click)
2026-04-22T14:42:46.347489Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1714642257969983896, trigger=click)
2026-04-22T14:42:46.976364Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1714642257969983896, trigger=click)
2026-04-22T14:42:54.146640Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8318058469467001879, trigger=click)
2026-04-22T14:43:16.054664Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2746665666832385858, trigger=click)
2026-04-22T14:43:27.592095Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2746665666832385858, trigger=click)
2026-04-22T14:43:28.904486Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2746665666832385858, trigger=click)
2026-04-22T14:43:33.115401Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2746665666832385858, trigger=click)
2026-04-22T14:43:33.548704Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2746665666832385858, trigger=click)
2026-04-22T14:43:34.528422Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2746665666832385858, trigger=click)
2026-04-22T14:43:35.101040Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2746665666832385858, trigger=click)
2026-04-22T14:43:42.182992Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2746665666832385858, trigger=click)
2026-04-22T14:43:44.575989Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2746665666832385858, trigger=click)
2026-04-22T14:44:46.365793Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6679194177618586363, trigger=click)
2026-04-22T14:47:14.092894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6118025119517316583, trigger=click)
2026-04-22T14:47:14.453307Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6118025119517316583, trigger=click)
2026-04-22T14:47:15.216109Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=38 elapsed=7.876438917s
2026-04-22T14:47:15.216433Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 38 eligible frames
2026-04-22T14:47:16.019464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6118025119517316583, trigger=click)
2026-04-22T14:47:16.544950Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6118025119517316583, trigger=click)
2026-04-22T14:47:16.818898Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.2MB → 0.4MB (7.6x), 18 JPEGs deleted
2026-04-22T14:47:18.385927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6118025119517316583, trigger=click)
2026-04-22T14:47:18.475181Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.3MB → 1.2MB (2.9x), 18 JPEGs deleted
2026-04-22T14:47:19.386449Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6118025119517316583, trigger=click)
2026-04-22T14:47:20.087965Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6118025119517316583, trigger=click)
2026-04-22T14:47:59.950079Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2150958068002330087, trigger=click)
2026-04-22T14:48:01.449829Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2150958068002330087, trigger=click)
2026-04-22T14:48:09.502190Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2150958068002330087, trigger=visual_change)
2026-04-22T14:48:34.932290Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8599886822383806507, trigger=click)
2026-04-22T14:48:44.486878Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3332409860485365312, trigger=click)
2026-04-22T14:48:45.527964Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3332409860485365312, trigger=click)
2026-04-22T14:49:38.888769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=472424603195027632, trigger=click)
2026-04-22T14:49:45.417282Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=472424603195027632, trigger=click)
2026-04-22T14:49:47.792067Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=472424603195027632, trigger=click)
2026-04-22T14:50:00.945819Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4843648253222399128, trigger=click)
2026-04-22T14:50:02.876637Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4843648253222399128, trigger=click)
2026-04-22T14:52:21.989580Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=42 elapsed=3.480045958s
2026-04-22T14:52:21.990045Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 42 eligible frames
2026-04-22T14:52:23.358528Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 3.9MB → 0.4MB (8.7x), 22 JPEGs deleted
2026-04-22T14:52:24.693261Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.5MB → 1.3MB (2.6x), 18 JPEGs deleted
2026-04-22T14:53:02.184100Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8042719790331908666, trigger=click)
2026-04-22T14:53:02.666973Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8042719790331908666, trigger=click)
2026-04-22T14:53:44.356357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8042719790331908666, trigger=click)
2026-04-22T14:53:44.849679Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8042719790331908666, trigger=click)
2026-04-22T14:57:28.770189Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=52 elapsed=4.063771166s
2026-04-22T14:57:28.770886Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 52 eligible frames
2026-04-22T14:57:31.445523Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.2MB → 0.5MB (7.8x), 25 JPEGs deleted
2026-04-22T14:57:35.130193Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.0MB → 2.4MB (2.1x), 25 JPEGs deleted
2026-04-22T15:00:02.686939Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Slack, signals=2)
2026-04-22T15:00:08.703872Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Slack, signals=2, browser=false)
2026-04-22T15:00:08.707794Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=8, app=Slack, title=None)
2026-04-22T15:00:09.697915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)
2026-04-22T15:00:25.820838Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)
2026-04-22T15:00:30.742889Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)
2026-04-22T15:00:35.932789Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)
2026-04-22T15:00:38.982205Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)
2026-04-22T15:00:42.607387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)
2026-04-22T15:00:45.252062Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)
2026-04-22T15:00:48.655907Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)
2026-04-22T15:00:54.706686Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)
2026-04-22T15:02:07.634898Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)
2026-04-22T15:02:43.352910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=click)
2026-04-22T15:02:43.752028Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=57 elapsed=8.590900375s
2026-04-22T15:02:43.756244Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 57 eligible frames
2026-04-22T15:02:46.231236Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 4.8MB → 2.0MB (2.4x), 29 JPEGs deleted
2026-04-22T15:02:46.417502Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)
2026-04-22T15:02:49.039329Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.9MB → 1.8MB (2.8x), 26 JPEGs deleted
2026-04-22T15:02:50.878563Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)
2026-04-22T15:02:53.936710Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)
2026-04-22T15:02:56.977078Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)
2026-04-22T15:03:19.571166Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)
2026-04-22T15:03:26.066470Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)
2026-04-22T15:03:31.414066Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)
2026-04-22T15:04:07.475454Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)
2026-04-22T15:04:10.605093Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)
2026-04-22T15:04:13.512293Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)
2026-04-22T15:04:16.529473Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)
2026-04-22T15:04:53.720517Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)
2026-04-22T15:04:55.658228Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)
2026-04-22T15:05:01.010633Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)
2026-04-22T15:05:03.051970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)
2026-04-22T15:05:06.145567Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)
2026-04-22T15:05:29.469376Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=797137072065105312, trigger=click)
2026-04-22T15:05:55.103542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-116347373995830011, trigger=click)
2026-04-22T15:05:55.539275Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-116347373995830011, trigger=click)
2026-04-22T15:06:41.788384Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-116347373995830011, trigger=click)
2026-04-22T15:06:42.204175Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-116347373995830011, trigger=click)
2026-04-22T15:07:03.704733Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Slack, id=8, grace=30s)
2026-04-22T15:07:39.449504Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Idle (timeout=30s, app=Slack, id=8)
2026-04-22T15:07:39.915187Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting ended (id=8)
2026-04-22T15:07:49.691643Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 27 eligible frames
2026-04-22T15:07:51.650549Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.3MB → 0.3MB (7.0x), 13 JPEGs deleted
2026-04-22T15:07:53.582709Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.6MB → 0.9MB (3.0x), 12 JPEGs deleted
2026-04-22T15:07:53.988144Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1303595353837004202, trigger=click)
2026-04-22T15:09:49.799139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4589403011857874475, trigger=click)
2026-04-22T15:09:52.656133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4589403011857874475, trigger=click)
2026-04-22T15:13:00.784316Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=44 elapsed=7.176940333s
2026-04-22T15:13:00.784701Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 44 eligible frames
2026-04-22T15:13:06.141480Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 3.7MB → 1.4MB (2.7x), 23 JPEGs deleted
2026-04-22T15:13:09.087116Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 5.4MB → 1.4MB (4.0x), 19 JPEGs deleted
2026-04-22T15:18:11.493152Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=37 elapsed=2.382042209s
2026-04-22T15:18:11.496118Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 37 eligible frames
2026-04-22T15:18:15.568523Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.0MB → 1.3MB (2.3x), 18 JPEGs deleted
2026-04-22T15:18:18.268870Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 5.0MB → 1.2MB (4.0x), 17 JPEGs deleted
2026-04-22T15:21:12.476028Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3813526692250337476, trigger=visual_change)
2026-04-22T15:23:28.271759Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=63 elapsed=9.511646458s
2026-04-22T15:23:28.282671Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 63 eligible frames
2026-04-22T15:23:34.267737Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 6.8MB → 3.5MB (1.9x), 31 JPEGs deleted
2026-04-22T15:23:38.696265Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 5.7MB → 1.2MB (4.7x), 30 JPEGs deleted
2026-04-22T15:25:18.297937Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)
2026-04-22T15:25:21.238617Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)
2026-04-22T15:25:58.399479Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6869659017523937306, trigger=click)
2026-04-22T15:26:00.086631Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6869659017523937306, trigger=click)
2026-04-22T15:26:01.910963Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6869659017523937306, trigger=visual_change)
2026-04-22T15:26:02.357258Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6869659017523937306, trigger=visual_change)
2026-04-22T15:26:04.744325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6869659017523937306, trigger=click)
2026-04-22T15:26:05.686404Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6869659017523937306, trigger=visual_change)
2026-04-22T15:26:07.341872Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6869659017523937306, trigger=click)
2026-04-22T15:26:07.841961Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6869659017523937306, trigger=click)
2026-04-22T15:27:08.518409Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=click)
2026-04-22T15:27:14.348556Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)
2026-04-22T15:27:19.567077Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)
2026-04-22T15:27:23.928137Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6983242470914211958, trigger=click)
2026-04-22T15:27:25.430871Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=click)
2026-04-22T15:27:32.704396Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6983242470914211958, trigger=click)
2026-04-22T15:27:39.006433Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)
2026-04-22T15:27:43.060533Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)
2026-04-22T15:27:45.902424Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)
2026-04-22T15:27:53.866025Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)
2026-04-22T15:27:56.855542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)
2026-04-22T15:28:06.329802Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)
2026-04-22T15:28:16.947758Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=click)
2026-04-22T15:28:17.639628Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6983242470914211958, trigger=click)
2026-04-22T15:28:19.702614Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)
2026-04-22T15:28:22.257394Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=click)
2026-04-22T15:28:22.756941Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6983242470914211958, trigger=click)
2026-04-22T15:28:25.405205Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"2026-04-22T13:53:01.899060Z INFO sck_rs::stream_manager: recreating stream for display 2 (resolution change)\n2026-04-22T13:53:24.588928Z INFO sck_rs::stream_manager: recreating stream for display 1 (resolution change)\n2026-04-22T13:54:45.480269Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)\n2026-04-22T13:54:45.525295Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2\n2026-04-22T13:54:47.277567Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-22T13:54:47.557900Z WARN screenpipe_engine::event_driven_capture: skipping capture: lock screen app 'loginwindow' on monitor 2\n2026-04-22T13:54:50.517321Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)\n2026-04-22T13:54:50.531527Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2\n2026-04-22T13:54:50.539783Z INFO sck_rs::stream_manager: stopped 1 persistent stream(s)\n2026-04-22T13:54:51.633834Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-22T13:54:57.215619Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-22T13:54:57.475388Z WARN screenpipe_engine::event_driven_capture: skipping capture: lock screen app 'loginwindow' on monitor 1\n2026-04-22T13:55:00.526322Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)\n2026-04-22T13:55:00.545282Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2\n2026-04-22T13:55:01.132848Z INFO sck_rs::stream_manager: stopped 2 persistent stream(s)\n2026-04-22T13:55:02.005737Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-22T13:55:02.633821Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-22T13:55:19.838192Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3145826437395305149, trigger=click)\n2026-04-22T13:55:20.300634Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3145826437395305149, trigger=click)\n2026-04-22T13:55:21.567188Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3145826437395305149, trigger=click)\n2026-04-22T13:55:42.189258Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=38 elapsed=6.884820208s\n2026-04-22T13:55:42.189981Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 38 eligible frames\n2026-04-22T13:55:43.595617Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.1MB → 0.2MB (11.9x), 16 JPEGs deleted\n2026-04-22T13:55:46.392329Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.1MB → 1.1MB (3.6x), 20 JPEGs deleted\n2026-04-22T13:55:56.140186Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:55:57.408560Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:58:03.696726Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:58:06.390518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:58:08.300896Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:58:08.718730Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:58:09.912001Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:58:10.311583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:58:13.273546Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=visual_change)\n2026-04-22T13:58:19.346181Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=visual_change)\n2026-04-22T13:58:58.360554Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:58:58.786340Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:59:04.430986Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:59:04.893282Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:59:45.902049Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:59:46.348987Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:59:48.470706Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:59:48.898805Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:59:54.274180Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:59:56.495414Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)\n2026-04-22T14:00:02.522746Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)\n2026-04-22T14:00:35.856416Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6212304827203743747, trigger=click)\n2026-04-22T14:00:44.303637Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6212304827203743747, trigger=visual_change)\n2026-04-22T14:00:55.518274Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=9.118070709s\n2026-04-22T14:00:55.518433Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-22T14:00:57.099120Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.3MB → 0.2MB (7.7x), 10 JPEGs deleted\n2026-04-22T14:00:58.767986Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.2MB → 0.4MB (6.0x), 10 JPEGs deleted\n2026-04-22T14:04:15.220880Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3837731717837980920, trigger=visual_change)\n2026-04-22T14:05:28.069620Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1051548329161768346, trigger=click)\n2026-04-22T14:05:28.937013Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1051548329161768346, trigger=click)\n2026-04-22T14:06:00.164534Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=16 elapsed=1.199258208s\n2026-04-22T14:06:00.164673Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 16 eligible frames\n2026-04-22T14:06:02.024968Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 7 frames, 0.9MB → 0.2MB (5.3x), 7 JPEGs deleted\n2026-04-22T14:06:05.188088Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 7 frames, 1.5MB → 0.7MB (2.2x), 7 JPEGs deleted\n2026-04-22T14:06:46.071139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:06:54.570039Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:10:11.311868Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:10:11.803732Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:10:14.694406Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:10:15.147426Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:10:20.551057Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:10:21.045391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:10:22.951330Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:10:23.467707Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:10:30.780582Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:10:31.189747Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:11:11.060150Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=27 elapsed=4.548210084s\n2026-04-22T14:11:11.060281Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 27 eligible frames\n2026-04-22T14:11:12.404803Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.4MB → 0.2MB (8.3x), 11 JPEGs deleted\n2026-04-22T14:11:14.840042Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.7MB → 0.9MB (3.1x), 14 JPEGs deleted\n2026-04-22T14:13:35.976326Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4968702094796127351, trigger=click)\n2026-04-22T14:14:34.729623Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4357453572186956917, trigger=click)\n2026-04-22T14:14:35.105620Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4357453572186956917, trigger=click)\n2026-04-22T14:14:42.802189Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3105240340990619874, trigger=visual_change)\n2026-04-22T14:15:50.965557Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3105240340990619874, trigger=click)\n2026-04-22T14:16:12.161692Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6479516063853776409, trigger=click)\n2026-04-22T14:16:16.153590Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=48 elapsed=1.32668825s\n2026-04-22T14:16:16.155403Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 48 eligible frames\n2026-04-22T14:16:18.705225Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 5.0MB → 0.8MB (5.9x), 20 JPEGs deleted\n2026-04-22T14:16:23.744196Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.4MB → 1.3MB (3.4x), 26 JPEGs deleted\n2026-04-22T14:16:41.068116Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1903229694032021789, trigger=click)\n2026-04-22T14:19:15.519118Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4529195482775946524, trigger=click)\n2026-04-22T14:19:22.366746Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:19:30.208098Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:19:33.496128Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:19:38.751833Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6094503686615299639, trigger=click)\n2026-04-22T14:19:41.173256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6094503686615299639, trigger=visual_change)\n2026-04-22T14:19:42.912499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6094503686615299639, trigger=click)\n2026-04-22T14:19:46.351486Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6094503686615299639, trigger=click)\n2026-04-22T14:19:59.152409Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4952826635443255860, trigger=click)\n2026-04-22T14:20:01.518389Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4952826635443255860, trigger=click)\n2026-04-22T14:20:08.061611Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3675157249828056010, trigger=click)\n2026-04-22T14:21:28.984120Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=25 elapsed=4.855522625s\n2026-04-22T14:21:28.985458Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames\n2026-04-22T14:21:30.346636Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 2.5MB → 0.5MB (5.1x), 11 JPEGs deleted\n2026-04-22T14:21:32.359178Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.6MB → 0.6MB (4.3x), 12 JPEGs deleted\n2026-04-22T14:23:49.639071Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:24:02.782818Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:24:15.622633Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:26:10.392401Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:26:10.788712Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:26:12.799270Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:26:13.219651Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=visual_change)\n2026-04-22T14:26:38.732555Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=36 elapsed=6.323619459s\n2026-04-22T14:26:38.732888Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 36 eligible frames\n2026-04-22T14:26:39.785513Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 1.2MB → 0.1MB (9.0x), 16 JPEGs deleted\n2026-04-22T14:26:41.678236Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 4.1MB → 1.7MB (2.4x), 18 JPEGs deleted\n2026-04-22T14:26:51.433436Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:26:52.304457Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:26:54.907598Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:26:55.381293Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:27:00.185936Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:27:01.160650Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=visual_change)\n2026-04-22T14:27:24.714027Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:27:25.724851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=visual_change)\n2026-04-22T14:27:26.222818Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:27:27.755899Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:27:28.274266Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:30:08.479659Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1095112307124202838, trigger=click)\n2026-04-22T14:31:42.105262Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 38 eligible frames\n2026-04-22T14:31:43.197127Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.5MB → 1.0MB (2.5x), 15 JPEGs deleted\n2026-04-22T14:31:45.195588Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 4.3MB → 1.6MB (2.6x), 21 JPEGs deleted\n2026-04-22T14:32:02.263422Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3223987862501414590, trigger=click)\n2026-04-22T14:32:02.639431Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3223987862501414590, trigger=click)\n2026-04-22T14:32:19.705800Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1632013320203273627, trigger=click)\n2026-04-22T14:32:56.235240Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=257019738165452929, trigger=click)\n2026-04-22T14:32:59.969256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=257019738165452929, trigger=click)\n2026-04-22T14:33:03.317113Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=257019738165452929, trigger=click)\n2026-04-22T14:33:06.798109Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=257019738165452929, trigger=click)\n2026-04-22T14:33:17.093100Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3308965711270161120, trigger=click)\n2026-04-22T14:33:17.486074Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3308965711270161120, trigger=click)\n2026-04-22T14:33:22.565377Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3308965711270161120, trigger=click)\n2026-04-22T14:33:23.216523Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3308965711270161120, trigger=click)\n2026-04-22T14:33:35.842809Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=435352143489435154, trigger=click)\n2026-04-22T14:36:49.764156Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=34 elapsed=4.516637708s\n2026-04-22T14:36:49.764263Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 34 eligible frames\n2026-04-22T14:36:51.311395Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.0MB → 0.7MB (4.6x), 17 JPEGs deleted\n2026-04-22T14:36:52.531817Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 3.0MB → 1.1MB (2.6x), 15 JPEGs deleted\n2026-04-22T14:37:28.108242Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=435352143489435154, trigger=click)\n2026-04-22T14:37:28.485856Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=435352143489435154, trigger=click)\n2026-04-22T14:37:58.316339Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3668856246823891896, trigger=click)\n2026-04-22T14:38:23.725006Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3668856246823891896, trigger=visual_change)\n2026-04-22T14:38:38.826158Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3668856246823891896, trigger=click)\n2026-04-22T14:39:14.985595Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2152077026286113228, trigger=click)\n2026-04-22T14:39:41.085287Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2152077026286113228, trigger=click)\n2026-04-22T14:39:48.325144Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2152077026286113228, trigger=click)\n2026-04-22T14:39:54.042692Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2152077026286113228, trigger=click)\n2026-04-22T14:40:56.876512Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2152077026286113228, trigger=click)\n2026-04-22T14:41:03.035671Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2747516377298098397, trigger=click)\n2026-04-22T14:41:21.141064Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2710026494434395739, trigger=click)\n2026-04-22T14:41:34.026128Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2710026494434395739, trigger=click)\n2026-04-22T14:41:59.929978Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=38 elapsed=5.991404375s\n2026-04-22T14:41:59.930138Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 38 eligible frames\n2026-04-22T14:42:03.556178Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.2MB → 0.3MB (11.1x), 18 JPEGs deleted\n2026-04-22T14:42:06.257184Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.3MB → 1.1MB (2.9x), 18 JPEGs deleted\n2026-04-22T14:42:25.479048Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8568923258494843591, trigger=click)\n2026-04-22T14:42:43.658087Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1714642257969983896, trigger=click)\n2026-04-22T14:42:44.150668Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1714642257969983896, trigger=click)\n2026-04-22T14:42:46.347489Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1714642257969983896, trigger=click)\n2026-04-22T14:42:46.976364Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1714642257969983896, trigger=click)\n2026-04-22T14:42:54.146640Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8318058469467001879, trigger=click)\n2026-04-22T14:43:16.054664Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2746665666832385858, trigger=click)\n2026-04-22T14:43:27.592095Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2746665666832385858, trigger=click)\n2026-04-22T14:43:28.904486Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2746665666832385858, trigger=click)\n2026-04-22T14:43:33.115401Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2746665666832385858, trigger=click)\n2026-04-22T14:43:33.548704Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2746665666832385858, trigger=click)\n2026-04-22T14:43:34.528422Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2746665666832385858, trigger=click)\n2026-04-22T14:43:35.101040Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2746665666832385858, trigger=click)\n2026-04-22T14:43:42.182992Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2746665666832385858, trigger=click)\n2026-04-22T14:43:44.575989Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2746665666832385858, trigger=click)\n2026-04-22T14:44:46.365793Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6679194177618586363, trigger=click)\n2026-04-22T14:47:14.092894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6118025119517316583, trigger=click)\n2026-04-22T14:47:14.453307Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6118025119517316583, trigger=click)\n2026-04-22T14:47:15.216109Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=38 elapsed=7.876438917s\n2026-04-22T14:47:15.216433Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 38 eligible frames\n2026-04-22T14:47:16.019464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6118025119517316583, trigger=click)\n2026-04-22T14:47:16.544950Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6118025119517316583, trigger=click)\n2026-04-22T14:47:16.818898Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.2MB → 0.4MB (7.6x), 18 JPEGs deleted\n2026-04-22T14:47:18.385927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6118025119517316583, trigger=click)\n2026-04-22T14:47:18.475181Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.3MB → 1.2MB (2.9x), 18 JPEGs deleted\n2026-04-22T14:47:19.386449Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6118025119517316583, trigger=click)\n2026-04-22T14:47:20.087965Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6118025119517316583, trigger=click)\n2026-04-22T14:47:59.950079Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2150958068002330087, trigger=click)\n2026-04-22T14:48:01.449829Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2150958068002330087, trigger=click)\n2026-04-22T14:48:09.502190Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2150958068002330087, trigger=visual_change)\n2026-04-22T14:48:34.932290Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8599886822383806507, trigger=click)\n2026-04-22T14:48:44.486878Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3332409860485365312, trigger=click)\n2026-04-22T14:48:45.527964Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3332409860485365312, trigger=click)\n2026-04-22T14:49:38.888769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=472424603195027632, trigger=click)\n2026-04-22T14:49:45.417282Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=472424603195027632, trigger=click)\n2026-04-22T14:49:47.792067Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=472424603195027632, trigger=click)\n2026-04-22T14:50:00.945819Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4843648253222399128, trigger=click)\n2026-04-22T14:50:02.876637Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4843648253222399128, trigger=click)\n2026-04-22T14:52:21.989580Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=42 elapsed=3.480045958s\n2026-04-22T14:52:21.990045Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 42 eligible frames\n2026-04-22T14:52:23.358528Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 3.9MB → 0.4MB (8.7x), 22 JPEGs deleted\n2026-04-22T14:52:24.693261Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.5MB → 1.3MB (2.6x), 18 JPEGs deleted\n2026-04-22T14:53:02.184100Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8042719790331908666, trigger=click)\n2026-04-22T14:53:02.666973Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8042719790331908666, trigger=click)\n2026-04-22T14:53:44.356357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8042719790331908666, trigger=click)\n2026-04-22T14:53:44.849679Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8042719790331908666, trigger=click)\n2026-04-22T14:57:28.770189Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=52 elapsed=4.063771166s\n2026-04-22T14:57:28.770886Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 52 eligible frames\n2026-04-22T14:57:31.445523Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.2MB → 0.5MB (7.8x), 25 JPEGs deleted\n2026-04-22T14:57:35.130193Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.0MB → 2.4MB (2.1x), 25 JPEGs deleted\n2026-04-22T15:00:02.686939Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Slack, signals=2)\n2026-04-22T15:00:08.703872Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Slack, signals=2, browser=false)\n2026-04-22T15:00:08.707794Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=8, app=Slack, title=None)\n2026-04-22T15:00:09.697915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:00:25.820838Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:00:30.742889Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:00:35.932789Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:00:38.982205Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:00:42.607387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:00:45.252062Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:00:48.655907Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:00:54.706686Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:02:07.634898Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:02:43.352910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=click)\n2026-04-22T15:02:43.752028Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=57 elapsed=8.590900375s\n2026-04-22T15:02:43.756244Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 57 eligible frames\n2026-04-22T15:02:46.231236Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 4.8MB → 2.0MB (2.4x), 29 JPEGs deleted\n2026-04-22T15:02:46.417502Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)\n2026-04-22T15:02:49.039329Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.9MB → 1.8MB (2.8x), 26 JPEGs deleted\n2026-04-22T15:02:50.878563Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)\n2026-04-22T15:02:53.936710Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)\n2026-04-22T15:02:56.977078Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)\n2026-04-22T15:03:19.571166Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)\n2026-04-22T15:03:26.066470Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)\n2026-04-22T15:03:31.414066Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)\n2026-04-22T15:04:07.475454Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)\n2026-04-22T15:04:10.605093Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)\n2026-04-22T15:04:13.512293Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)\n2026-04-22T15:04:16.529473Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)\n2026-04-22T15:04:53.720517Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:04:55.658228Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:05:01.010633Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:05:03.051970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:05:06.145567Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:05:29.469376Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=797137072065105312, trigger=click)\n2026-04-22T15:05:55.103542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-116347373995830011, trigger=click)\n2026-04-22T15:05:55.539275Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-116347373995830011, trigger=click)\n2026-04-22T15:06:41.788384Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-116347373995830011, trigger=click)\n2026-04-22T15:06:42.204175Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-116347373995830011, trigger=click)\n2026-04-22T15:07:03.704733Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Slack, id=8, grace=30s)\n2026-04-22T15:07:39.449504Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Idle (timeout=30s, app=Slack, id=8)\n2026-04-22T15:07:39.915187Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting ended (id=8)\n2026-04-22T15:07:49.691643Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 27 eligible frames\n2026-04-22T15:07:51.650549Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.3MB → 0.3MB (7.0x), 13 JPEGs deleted\n2026-04-22T15:07:53.582709Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.6MB → 0.9MB (3.0x), 12 JPEGs deleted\n2026-04-22T15:07:53.988144Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1303595353837004202, trigger=click)\n2026-04-22T15:09:49.799139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4589403011857874475, trigger=click)\n2026-04-22T15:09:52.656133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4589403011857874475, trigger=click)\n2026-04-22T15:13:00.784316Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=44 elapsed=7.176940333s\n2026-04-22T15:13:00.784701Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 44 eligible frames\n2026-04-22T15:13:06.141480Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 3.7MB → 1.4MB (2.7x), 23 JPEGs deleted\n2026-04-22T15:13:09.087116Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 5.4MB → 1.4MB (4.0x), 19 JPEGs deleted\n2026-04-22T15:18:11.493152Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=37 elapsed=2.382042209s\n2026-04-22T15:18:11.496118Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 37 eligible frames\n2026-04-22T15:18:15.568523Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.0MB → 1.3MB (2.3x), 18 JPEGs deleted\n2026-04-22T15:18:18.268870Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 5.0MB → 1.2MB (4.0x), 17 JPEGs deleted\n2026-04-22T15:21:12.476028Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3813526692250337476, trigger=visual_change)\n2026-04-22T15:23:28.271759Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=63 elapsed=9.511646458s\n2026-04-22T15:23:28.282671Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 63 eligible frames\n2026-04-22T15:23:34.267737Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 6.8MB → 3.5MB (1.9x), 31 JPEGs deleted\n2026-04-22T15:23:38.696265Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 5.7MB → 1.2MB (4.7x), 30 JPEGs deleted\n2026-04-22T15:25:18.297937Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:25:21.238617Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:25:58.399479Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6869659017523937306, trigger=click)\n2026-04-22T15:26:00.086631Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6869659017523937306, trigger=click)\n2026-04-22T15:26:01.910963Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6869659017523937306, trigger=visual_change)\n2026-04-22T15:26:02.357258Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6869659017523937306, trigger=visual_change)\n2026-04-22T15:26:04.744325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6869659017523937306, trigger=click)\n2026-04-22T15:26:05.686404Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6869659017523937306, trigger=visual_change)\n2026-04-22T15:26:07.341872Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6869659017523937306, trigger=click)\n2026-04-22T15:26:07.841961Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6869659017523937306, trigger=click)\n2026-04-22T15:27:08.518409Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=click)\n2026-04-22T15:27:14.348556Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)\n2026-04-22T15:27:19.567077Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)\n2026-04-22T15:27:23.928137Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6983242470914211958, trigger=click)\n2026-04-22T15:27:25.430871Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=click)\n2026-04-22T15:27:32.704396Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6983242470914211958, trigger=click)\n2026-04-22T15:27:39.006433Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)\n2026-04-22T15:27:43.060533Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)\n2026-04-22T15:27:45.902424Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)\n2026-04-22T15:27:53.866025Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)\n2026-04-22T15:27:56.855542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)\n2026-04-22T15:28:06.329802Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)\n2026-04-22T15:28:16.947758Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=click)\n2026-04-22T15:28:17.639628Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6983242470914211958, trigger=click)\n2026-04-22T15:28:19.702614Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)\n2026-04-22T15:28:22.257394Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=click)\n2026-04-22T15:28:22.756941Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6983242470914211958, trigger=click)\n2026-04-22T15:28:25.405205Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=click)\n2026-04-22T15:28:26.273821Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6983242470914211958, trigger=click)\n2026-04-22T15:28:37.225888Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4416148030571332734, trigger=click)\n2026-04-22T15:28:41.503684Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4416148030571332734, trigger=visual_change)\n2026-04-22T15:28:42.412245Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4416148030571332734, trigger=click)\n2026-04-22T15:28:44.900893Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4416148030571332734, trigger=click)\n2026-04-22T15:28:45.281047Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4416148030571332734, trigger=click)\n2026-04-22T15:28:47.806415Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=61 elapsed=8.915603625s\n2026-04-22T15:28:47.808575Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 61 eligible frames\n2026-04-22T15:28:51.748955Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4416148030571332734, trigger=click)\n2026-04-22T15:28:52.058480Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 33 frames, 7.4MB → 2.7MB (2.7x), 33 JPEGs deleted\n2026-04-22T15:28:57.816868Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.8MB → 2.2MB (2.2x), 26 JPEGs deleted\n2026-04-22T15:28:59.171732Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4416148030571332734, trigger=visual_change)\n2026-04-22T15:29:19.001260Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4416148030571332734, trigger=visual_change)\n2026-04-22T15:29:26.828215Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4416148030571332734, trigger=visual_change)\n2026-04-22T15:30:54.757442Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2182844197261250370, trigger=click)\n2026-04-22T15:31:30.516711Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2182844197261250370, trigger=click)\n2026-04-22T15:31:49.431335Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4416148030571332734, trigger=visual_change)\n2026-04-22T15:31:54.155985Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4416148030571332734, trigger=visual_change)\n2026-04-22T15:31:58.427528Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4416148030571332734, trigger=visual_change)\n2026-04-22T15:32:21.666172Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7700301847216802583, trigger=click)\n2026-04-22T15:32:26.019679Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7700301847216802583, trigger=visual_change)\n2026-04-22T15:33:34.334309Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5496326212892813056, trigger=visual_change)\n2026-04-22T15:33:41.606418Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5496326212892813056, trigger=visual_change)\n2026-04-22T15:34:04.695051Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5496326212892813056, trigger=click)\n2026-04-22T15:34:06.919005Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=73 elapsed=9.073921416s\n2026-04-22T15:34:06.919292Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 73 eligible frames\n2026-04-22T15:34:11.489642Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 40 frames, 9.1MB → 3.4MB (2.6x), 40 JPEGs deleted\n2026-04-22T15:34:15.335063Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 6.0MB → 2.0MB (3.0x), 31 JPEGs deleted\n2026-04-22T15:36:46.398267Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3562390500463334923, trigger=visual_change)\n2026-04-22T15:36:49.359581Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3562390500463334923, trigger=visual_change)\n2026-04-22T15:36:56.667177Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3562390500463334923, trigger=click)\n2026-04-22T15:37:01.305805Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3562390500463334923, trigger=click)\n2026-04-22T15:37:04.552815Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3562390500463334923, trigger=click)\n2026-04-22T15:37:05.365649Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3562390500463334923, trigger=click)\n2026-04-22T15:37:06.657172Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3562390500463334923, trigger=visual_change)\n2026-04-22T15:37:20.005928Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3562390500463334923, trigger=visual_change)\n2026-04-22T15:37:22.572092Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3562390500463334923, trigger=visual_change)\n2026-04-22T15:37:28.745166Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3562390500463334923, trigger=visual_change)\n2026-04-22T15:37:32.112106Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3562390500463334923, trigger=visual_change)\n2026-04-22T15:37:40.817103Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3562390500463334923, trigger=visual_change)\n2026-04-22T15:37:44.068041Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3562390500463334923, trigger=visual_change)\n2026-04-22T15:37:49.735129Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3562390500463334923, trigger=click)\n2026-04-22T15:37:50.302210Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3562390500463334923, trigger=click)\n2026-04-22T15:38:55.433464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=666278282122949848, trigger=visual_change)\n2026-04-22T15:38:58.142835Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=666278282122949848, trigger=visual_change)\n2026-04-22T15:39:15.500379Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=666278282122949848, trigger=click)\n2026-04-22T15:39:15.987757Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=666278282122949848, trigger=click)\n2026-04-22T15:39:17.228167Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=666278282122949848, trigger=visual_change)\n2026-04-22T15:39:18.307711Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=666278282122949848, trigger=visual_change)\n2026-04-22T15:39:21.533092Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=666278282122949848, trigger=visual_change)\n2026-04-22T15:39:21.807148Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=62 elapsed=6.322537666s\n2026-04-22T15:39:21.807242Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 62 eligible frames\n2026-04-22T15:39:23.654129Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=666278282122949848, trigger=visual_change)\n2026-04-22T15:39:24.158197Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=666278282122949848, trigger=click)\n2026-04-22T15:39:24.238758Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 6.7MB → 2.4MB (2.8x), 29 JPEGs deleted\n2026-04-22T15:39:24.919127Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=666278282122949848, trigger=click)\n2026-04-22T15:39:26.522050Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 6.2MB → 2.3MB (2.7x), 31 JPEGs deleted\n2026-04-22T15:39:32.912924Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=666278282122949848, trigger=visual_change)\n2026-04-22T15:39:33.735345Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=666278282122949848, trigger=click)\n2026-04-22T15:39:35.375360Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=666278282122949848, trigger=click)\n2026-04-22T15:39:36.995841Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=666278282122949848, trigger=click)\n2026-04-22T15:39:37.467108Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=666278282122949848, trigger=click)\n2026-04-22T15:39:40.369538Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=666278282122949848, trigger=click)\n2026-04-22T15:39:43.276197Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=666278282122949848, trigger=click)\n2026-04-22T15:40:07.556081Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:40:09.930821Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:40:11.154450Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:40:19.449508Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:40:29.519581Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8135701070039948601, trigger=visual_change)\n2026-04-22T15:41:56.970803Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:42:06.118149Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:44:30.869060Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=59 elapsed=4.334722834s\n2026-04-22T15:44:30.869438Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 59 eligible frames\n2026-04-22T15:44:36.682494Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 7.0MB → 3.2MB (2.1x), 31 JPEGs deleted\n2026-04-22T15:44:41.069797Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.9MB → 1.5MB (3.3x), 26 JPEGs deleted\n2026-04-22T15:47:16.707141Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:47:26.476915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:47:30.506202Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:47:33.490610Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:47:37.439486Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:48:10.814782Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:48:49.253754Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:48:58.005092Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:49:44.222629Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=41 elapsed=2.9267015s\n2026-04-22T15:49:44.223441Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 41 eligible frames\n2026-04-22T15:49:46.632623Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:49:46.707995Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 4.3MB → 2.2MB (2.0x), 19 JPEGs deleted\n2026-04-22T15:49:48.648095Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.5MB → 2.1MB (2.2x), 20 JPEGs deleted\n2026-04-22T15:49:55.585051Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:49:58.557820Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:50:04.689651Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:50:10.744245Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:50:32.681643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:50:37.792790Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:50:40.260147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:50:46.805742Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:50:53.026194Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:50:55.961999Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:51:02.210628Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:51:04.537374Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:51:17.321401Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:51:23.393544Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:51:26.412142Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:51:32.600472Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:51:35.220938Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:51:41.194536Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:51:44.210722Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:51:50.304611Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:51:56.294115Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:51:59.321943Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:52:05.342699Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:52:17.436700Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:52:21.187208Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:52:49.374507Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:52:51.550918Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:52:53.892542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:52:59.947921Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:53:03.308386Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:53:10.465051Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:53:18.275354Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:53:19.882281Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:53:26.102339Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:53:28.677581Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:53:38.195861Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:53:40.759223Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:53:44.211689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:53:49.661798Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:53:51.254730Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:53:56.539255Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:53:58.004998Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:53:58.491246Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:54:00.207899Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:54:00.960349Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:54:06.030857Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:54:09.163227Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:54:09.608141Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:54:29.884648Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7221551953177750058, trigger=visual_change)\n2026-04-22T15:54:32.904873Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7221551953177750058, trigger=visual_change)\n2026-04-22T15:54:38.529745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7221551953177750058, trigger=visual_change)\n2026-04-22T15:54:42.030930Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7221551953177750058, trigger=visual_change)\n2026-04-22T15:54:53.757845Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=44 elapsed=5.12885025s\n2026-04-22T15:54:53.758028Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 44 eligible frames\n2026-04-22T15:54:56.216519Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.7MB → 2.2MB (2.6x), 25 JPEGs deleted\n2026-04-22T15:54:57.253500Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7221551953177750058, trigger=visual_change)\n2026-04-22T15:54:57.778380Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.8MB → 1.4MB (2.7x), 17 JPEGs deleted\n2026-04-22T15:55:14.227919Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:55:29.347981Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:55:34.911796Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:55:37.679086Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:55:55.657449Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:55:56.235238Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:55:58.080012Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:56:03.489838Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:56:19.773160Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:58:04.898631Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:58:05.507970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:58:19.974744Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7937570718597551457, trigger=visual_change)\n2026-04-22T16:00:07.397412Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=28 elapsed=9.608749083s\n2026-04-22T16:00:07.397774Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames\n2026-04-22T16:00:11.353157Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.7MB → 1.6MB (1.7x), 12 JPEGs deleted\n2026-04-22T16:00:14.732810Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 3.1MB → 1.4MB (2.2x), 14 JPEGs deleted\n2026-04-22T16:05:14.875841Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 26 eligible frames\n2026-04-22T16:05:21.176398Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.7MB → 1.5MB (1.8x), 12 JPEGs deleted\n2026-04-22T16:05:23.500634Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.7MB → 0.8MB (3.5x), 12 JPEGs deleted\n2026-04-22T16:09:43.057186Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1700548679087424896, trigger=click)\n2026-04-22T16:09:43.726339Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1700548679087424896, trigger=click)\n2026-04-22T16:10:33.202772Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=32 elapsed=8.151029333s\n2026-04-22T16:10:33.205709Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 32 eligible frames\n2026-04-22T16:10:36.241109Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.9MB → 0.8MB (3.6x), 16 JPEGs deleted\n2026-04-22T16:10:39.638416Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.4MB → 1.1MB (2.2x), 14 JPEGs deleted\n2026-04-22T16:12:57.604636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3640531240517672751, trigger=visual_change)\n2026-04-22T16:14:48.477621Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3640531240517672751, trigger=click)\n2026-04-22T16:14:49.113238Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3640531240517672751, trigger=click)\n2026-04-22T16:14:52.803148Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3640531240517672751, trigger=click)\n2026-04-22T16:15:48.370916Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=21 elapsed=8.52753825s\n2026-04-22T16:15:48.371084Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames\n2026-04-22T16:15:49.801978Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 1.6MB → 0.3MB (5.7x), 9 JPEGs deleted\n2026-04-22T16:15:51.456711Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.4MB (4.1x), 10 JPEGs deleted\n2026-04-22T16:16:39.820921Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:16:40.258041Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:16:42.604047Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4659444575687776884, trigger=visual_change)\n2026-04-22T16:16:44.729225Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:16:45.395942Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:16:48.031036Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:16:53.808716Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:16:57.947511Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:16:58.661906Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:17:00.203848Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:17:00.510442Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:17:10.932565Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:17:13.262897Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:17:16.009682Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:17:16.360136Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:17:18.987777Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:17:19.385866Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:17:22.098836Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:17:22.469613Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:17:45.084378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T16:17:45.488587Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T16:17:46.265772Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T16:17:50.794900Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T16:17:51.193853Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T16:17:56.183149Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T16:17:56.903285Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T16:18:02.302062Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2014082630808116476, trigger=click)\n2026-04-22T16:19:28.148117Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7767962928162902459, trigger=visual_change)\n2026-04-22T16:19:30.526236Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7767962928162902459, trigger=click)\n2026-04-22T16:19:31.195837Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7767962928162902459, trigger=click)\n2026-04-22T16:19:33.715299Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7767962928162902459, trigger=click)\n2026-04-22T16:19:34.357828Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7767962928162902459, trigger=click)\n2026-04-22T16:19:35.020610Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7767962928162902459, trigger=click)\n2026-04-22T16:19:35.698451Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7767962928162902459, trigger=click)\n2026-04-22T16:20:53.732098Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=2.258795792s\n2026-04-22T16:20:53.732443Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-22T16:20:54.463494Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 1.6MB → 0.3MB (5.7x), 9 JPEGs deleted\n2026-04-22T16:20:55.529460Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 2.5MB → 1.1MB (2.3x), 11 JPEGs deleted\n2026-04-22T16:24:20.510070Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2383132637107085157, trigger=click)\n2026-04-22T16:24:27.782475Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1404306881477617387, trigger=click)\n2026-04-22T16:24:44.481677Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6805760601486189718, trigger=click)\n2026-04-22T16:25:13.403567Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=666355421012968666, trigger=click)\n2026-04-22T16:26:01.606241Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=32 elapsed=6.054129542s\n2026-04-22T16:26:01.608081Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 32 eligible frames\n2026-04-22T16:26:04.408527Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.5MB → 0.3MB (8.7x), 14 JPEGs deleted\n2026-04-22T16:26:09.345870Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 3.9MB → 2.5MB (1.6x), 16 JPEGs deleted\n2026-04-22T16:31:16.523778Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=48 elapsed=6.261290959s\n2026-04-22T16:31:16.523889Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 48 eligible frames\n2026-04-22T16:31:18.062354Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 4.1MB → 0.5MB (9.1x), 23 JPEGs deleted\n2026-04-22T16:31:19.733335Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 6.0MB → 1.6MB (3.8x), 23 JPEGs deleted\n2026-04-22T16:35:14.998679Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-930197057256512338, trigger=click)\n2026-04-22T16:35:28.307910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T16:35:30.218730Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T16:35:50.703840Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4332103135047682933, trigger=visual_change)\n2026-04-22T16:35:52.711832Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4332103135047682933, trigger=click)\n2026-04-22T16:35:53.307064Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4332103135047682933, trigger=visual_change)\n2026-04-22T16:36:26.222531Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=53 elapsed=6.476373125s\n2026-04-22T16:36:26.222663Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 53 eligible frames\n2026-04-22T16:36:28.058618Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 3.4MB → 1.1MB (3.1x), 27 JPEGs deleted\n2026-04-22T16:36:29.824864Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 6.2MB → 0.7MB (8.9x), 24 JPEGs deleted\n2026-04-22T16:38:27.295549Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4399336884068833789, trigger=click)\n2026-04-22T16:38:31.082408Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4399336884068833789, trigger=click)\n2026-04-22T16:40:46.732079Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4399336884068833789, trigger=visual_change)\n2026-04-22T16:40:50.641593Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4399336884068833789, trigger=click)\n2026-04-22T16:40:51.044794Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4399336884068833789, trigger=click)\n2026-04-22T16:40:55.679492Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4399336884068833789, trigger=click)\n2026-04-22T16:40:56.491807Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4399336884068833789, trigger=click)\n2026-04-22T16:41:32.562032Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=29 elapsed=2.600218041s\n2026-04-22T16:41:32.562136Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 29 eligible frames\n2026-04-22T16:41:33.652619Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 1.3MB → 0.2MB (6.4x), 14 JPEGs deleted\n2026-04-22T16:41:35.202361Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 3.3MB → 0.5MB (7.0x), 13 JPEGs deleted\n2026-04-22T16:46:38.330333Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=32 elapsed=3.117707958s\n2026-04-22T16:46:38.330439Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 32 eligible frames\n2026-04-22T16:46:39.948332Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 1.3MB → 0.1MB (9.1x), 14 JPEGs deleted\n2026-04-22T16:46:41.506017Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 4.0MB → 1.2MB (3.3x), 16 JPEGs deleted\n2026-04-22T16:51:48.131482Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=23 elapsed=6.613640791s\n2026-04-22T16:51:48.132937Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 23 eligible frames\n2026-04-22T16:51:49.003952Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.0MB → 0.1MB (8.7x), 11 JPEGs deleted\n2026-04-22T16:51:50.053842Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.0MB → 0.7MB (2.7x), 10 JPEGs deleted\n2026-04-22T16:52:34.780923Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)\n2026-04-22T16:52:48.863893Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=app_switch, monitor=1) — DB pool may be saturated\n2026-04-22T16:52:48.863900Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=app_switch, monitor=2) — DB pool may be saturated\n2026-04-22T16:53:01.610713Z INFO sck_rs::stream_manager: recreating stream for display 1 (resolution change)\n2026-04-22T16:53:29.988978Z INFO sck_rs::stream_manager: recreating stream for display 2 (resolution change)\n2026-04-22T16:56:56.495427Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=6.425245416s\n2026-04-22T16:56:56.495542Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-22T16:56:57.336306Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.9MB → 0.1MB (7.9x), 10 JPEGs deleted\n2026-04-22T16:56:58.175049Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.9MB → 0.3MB (6.3x), 10 JPEGs deleted\n2026-04-22T17:01:58.685859Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-22T17:01:59.473339Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.9MB → 0.1MB (8.0x), 10 JPEGs deleted\n2026-04-22T17:02:00.310277Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.9MB → 0.3MB (6.3x), 10 JPEGs deleted\n2026-04-22T17:07:01.945755Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=4 elapsed=1.626160375s\n2026-04-22T17:07:01.945847Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 4 eligible frames\n2026-04-22T17:07:02.187343Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 1 frames, 0.1MB → 0.1MB (1.0x), 1 JPEGs deleted\n2026-04-22T17:07:02.450702Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 1 frames, 0.2MB → 0.2MB (0.8x), 1 JPEGs deleted\n2026-04-22T17:12:06.874189Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=2 elapsed=4.3861715s\n2026-04-22T17:12:06.874452Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-22T17:17:13.193100Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=6.294200125s\n2026-04-22T17:20:07.541995Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)\n2026-04-22T17:20:07.630953Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 1\n2026-04-22T17:20:14.084721Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-22T17:20:14.480434Z INFO screenpipe_engine::event_driven_capture: monitor 1 capture recovered after 1 consecutive errors\n2026-04-22T17:20:15.608548Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-22T17:20:16.850029Z INFO screenpipe_engine::event_driven_capture: monitor 2 capture recovered after 1 consecutive errors\n2026-04-22T17:20:59.606795Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=353611364339833193, trigger=visual_change)\n2026-04-22T17:21:05.782785Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6518006199864472489, trigger=click)\n2026-04-22T17:21:48.543394Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6518006199864472489, trigger=click)\n2026-04-22T17:21:52.452327Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6518006199864472489, trigger=click)\n2026-04-22T17:22:24.575958Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=11.371497042s\n2026-04-22T17:27:29.081900Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=4.457444667s\n2026-04-22T17:32:30.295309Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 20 eligible frames\n2026-04-22T17:32:30.964048Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 7 frames, 0.7MB → 0.1MB (5.8x), 7 JPEGs deleted\n2026-04-22T17:32:32.430798Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.9MB → 0.8MB (3.6x), 13 JPEGs deleted\n2026-04-22T17:37:36.325676Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=24 elapsed=3.882934833s\n2026-04-22T17:37:36.326088Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 24 eligible frames\n2026-04-22T17:37:37.732598Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.9MB → 0.1MB (8.1x), 10 JPEGs deleted\n2026-04-22T17:37:38.875813Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.5MB → 0.9MB (2.7x), 12 JPEGs deleted\n2026-04-22T17:42:43.122610Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=28 elapsed=4.232872583s\n2026-04-22T17:42:43.122797Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames\n2026-04-22T17:42:44.139661Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.0MB → 0.2MB (6.5x), 11 JPEGs deleted\n2026-04-22T17:42:45.850747Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 3.1MB → 1.5MB (2.1x), 15 JPEGs deleted\n2026-04-22T17:42:57.144176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5398018417063851890, trigger=click)\n2026-04-22T17:42:57.653834Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5398018417063851890, trigger=click)\n2026-04-22T17:43:28.190643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7326608657648522043, trigger=click)\n2026-04-22T17:43:30.037343Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7326608657648522043, trigger=visual_change)\n2026-04-22T17:44:17.081083Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=900127091433810136, trigger=click)\n2026-04-22T17:44:17.605660Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=900127091433810136, trigger=click)\n2026-04-22T17:45:37.216031Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=900127091433810136, trigger=visual_change)\n2026-04-22T17:47:22.339709Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=900127091433810136, trigger=visual_change)\n2026-04-22T17:47:28.305597Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=900127091433810136, trigger=click)\n2026-04-22T17:47:29.056879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=900127091433810136, trigger=click)\n2026-04-22T17:47:52.285649Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=900127091433810136, trigger=visual_change)\n2026-04-22T17:47:53.496727Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=42 elapsed=7.316425834s\n2026-04-22T17:47:53.496837Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 42 eligible frames\n2026-04-22T17:47:54.629113Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 1.5MB → 0.1MB (12.5x), 16 JPEGs deleted\n2026-04-22T17:47:56.497927Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 5.4MB → 1.6MB (3.4x), 24 JPEGs deleted\n2026-04-22T17:49:23.365540Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7724578834627729847, trigger=click)\n2026-04-22T17:53:02.690403Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=27 elapsed=6.179264s\n2026-04-22T17:53:02.690738Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 27 eligible frames\n2026-04-22T17:53:03.556672Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.2MB → 0.1MB (10.3x), 13 JPEGs deleted\n2026-04-22T17:53:05.211208Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.5MB → 0.6MB (4.0x), 12 JPEGs deleted\n2026-04-22T17:57:40.568162Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1851379926418959813, trigger=click)\n2026-04-22T17:57:41.079468Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1851379926418959813, trigger=click)\n2026-04-22T17:58:10.456601Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=45 elapsed=4.691370125s\n2026-04-22T17:58:10.457220Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 45 eligible frames\n2026-04-22T17:58:12.041940Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 2.1MB → 0.2MB (11.4x), 22 JPEGs deleted\n2026-04-22T17:58:14.351810Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.8MB → 2.2MB (1.8x), 21 JPEGs deleted\n2026-04-22T17:58:21.350110Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1851379926418959813, trigger=click)\n2026-04-22T17:58:21.948643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1851379926418959813, trigger=click)\n2026-04-22T18:03:16.198465Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=44 elapsed=1.833842375s\n2026-04-22T18:03:16.198578Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 44 eligible frames\n2026-04-22T18:03:18.139382Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 2.0MB → 0.1MB (16.1x), 21 JPEGs deleted\n2026-04-22T18:03:19.618803Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.5MB → 1.5MB (2.4x), 21 JPEGs deleted\n2026-04-22T18:06:58.395218Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7639883349033148478, trigger=click)\n2026-04-22T18:06:58.897470Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7639883349033148478, trigger=click)\n2026-04-22T18:07:42.474566Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=607162597309748765, trigger=click)\n2026-04-22T18:08:27.382204Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=28 elapsed=7.750844334s\n2026-04-22T18:08:27.382491Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames\n2026-04-22T18:08:29.032220Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.2MB → 0.1MB (10.4x), 13 JPEGs deleted\n2026-04-22T18:08:30.573314Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.7MB → 0.6MB (4.2x), 13 JPEGs deleted\n2026-04-22T18:13:38.096494Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=20 elapsed=6.760223375s\n2026-04-22T18:13:38.099584Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 20 eligible frames\n2026-04-22T18:13:38.806766Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 0.8MB → 0.1MB (7.4x), 9 JPEGs deleted\n2026-04-22T18:13:39.606462Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 1.9MB → 0.5MB (3.8x), 9 JPEGs deleted\n2026-04-22T18:18:41.943065Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=45 elapsed=2.325026709s\n2026-04-22T18:18:41.943417Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 45 eligible frames\n2026-04-22T18:18:43.289962Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 2.0MB → 0.1MB (16.7x), 21 JPEGs deleted\n2026-04-22T18:18:45.689764Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 4.4MB → 1.3MB (3.4x), 22 JPEGs deleted\n2026-04-22T18:18:54.020334Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6726632078176380015, trigger=click)\n2026-04-22T18:18:54.540347Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6726632078176380015, trigger=click)\n2026-04-22T18:18:55.737423Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6726632078176380015, trigger=click)\n2026-04-22T18:18:56.477423Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6726632078176380015, trigger=click)\n2026-04-22T18:20:28.510789Z WARN sqlx::query: summary=\"PRAGMA wal_checkpoint(TRUNCATE)\" db.statement=\"\" rows_affected=0 rows_returned=1 elapsed=5.273706125s\n2026-04-22T18:20:28.511954Z WARN screenpipe_db::db: wal checkpoint: busy (could not truncate), 3177 pages in WAL\n2026-04-22T18:20:28.562400Z WARN sqlx::query: summary=\"BEGIN IMMEDIATE\" db.statement=\"\" rows_affected=1 rows_returned=0 elapsed=2.291890708s\n2026-04-22T18:23:52.302822Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=31 elapsed=6.325649833s\n2026-04-22T18:23:52.304330Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 31 eligible frames\n2026-04-22T18:23:53.163590Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 1.1MB → 0.1MB (9.9x), 12 JPEGs deleted\n2026-04-22T18:23:55.277698Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.4MB → 1.6MB (2.2x), 17 JPEGs deleted\n2026-04-22T18:28:56.007322Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 35 eligible frames\n2026-04-22T18:28:57.403360Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.7MB → 1.5MB (1.9x), 16 JPEGs deleted\n2026-04-22T18:28:58.752838Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.9MB → 0.8MB (3.6x), 17 JPEGs deleted\n2026-04-22T18:34:01.165384Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=41 elapsed=2.400307625s\n2026-04-22T18:34:01.165480Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 41 eligible frames\n2026-04-22T18:34:02.291139Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.7MB → 0.8MB (3.5x), 15 JPEGs deleted\n2026-04-22T18:34:04.197399Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.2MB → 1.7MB (2.4x), 24 JPEGs deleted\n2026-04-22T18:35:56.027919Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5884937538005636030, trigger=visual_change)\n2026-04-22T18:37:55.284482Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-439807993867665328, trigger=visual_change)\n2026-04-22T18:39:08.660187Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=4.451587125s\n2026-04-22T18:39:08.660278Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-22T18:39:09.493828Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.5MB → 0.5MB (3.1x), 10 JPEGs deleted\n2026-04-22T18:39:10.349740Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.1MB → 0.5MB (4.3x), 10 JPEGs deleted\n2026-04-22T18:43:06.355073Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3304493437592891639, trigger=click)\n2026-04-22T18:43:23.219621Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6603898485603033537, trigger=click)\n2026-04-22T18:44:11.899645Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=21 elapsed=1.53441375s\n2026-04-22T18:44:11.900197Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames\n2026-04-22T18:44:12.802039Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 1.1MB → 0.2MB (6.3x), 9 JPEGs deleted\n2026-04-22T18:44:14.694466Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.1MB → 0.3MB (5.9x), 10 JPEGs deleted\n2026-04-22T18:45:14.778135Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6664853592767636193, trigger=click)\n2026-04-22T18:46:36.923697Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1791249548195440516, trigger=visual_change)\n2026-04-22T18:49:18.625635Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=46 elapsed=3.900838541s\n2026-04-22T18:49:18.625996Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 46 eligible frames\n2026-04-22T18:49:19.640722Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 1.8MB → 0.2MB (10.4x), 15 JPEGs deleted\n2026-04-22T18:49:23.038596Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 5.2MB → 2.1MB (2.4x), 29 JPEGs deleted\n2026-04-22T18:50:34.997361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=visual_change)\n2026-04-22T18:50:39.846829Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:50:43.731899Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:20.200945Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=visual_change)\n2026-04-22T18:51:23.144927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:23.976040Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:27.176876Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:28.227317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:31.555085Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:32.274042Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:35.352114Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:37.306495Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=visual_change)\n2026-04-22T18:52:02.049971Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=visual_change)\n2026-04-22T18:52:09.690330Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=visual_change)\n2026-04-22T18:52:11.530065Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:52:12.090300Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:52:22.885838Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6951480031607957362, trigger=visual_change)\n2026-04-22T18:52:58.986955Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7031607293039132919, trigger=click)\n2026-04-22T18:53:47.690375Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3992755350865402319, trigger=visual_change)\n2026-04-22T18:54:25.328228Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=52 elapsed=2.277973417s\n2026-04-22T18:54:25.328316Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 52 eligible frames\n2026-04-22T18:54:26.661506Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 2.6MB → 0.2MB (11.0x), 22 JPEGs deleted\n2026-04-22T18:54:28.982139Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 4.3MB → 1.1MB (3.8x), 28 JPEGs deleted\n2026-04-22T18:54:44.142044Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3992755350865402319, trigger=visual_change)\n2026-04-22T18:55:01.465747Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2556650532703180759, trigger=click)\n2026-04-22T18:55:02.524314Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2556650532703180759, trigger=click)\n2026-04-22T18:55:35.312048Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3149441378543601087, trigger=visual_change)\n2026-04-22T18:55:55.086761Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3149441378543601087, trigger=click)\n2026-04-22T18:55:56.919853Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3149441378543601087, trigger=visual_change)\n2026-04-22T18:56:05.807170Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7595806992634662117, trigger=visual_change)\n2026-04-22T18:56:12.303927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7595806992634662117, trigger=visual_change)\n2026-04-22T18:56:58.093656Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2070714172482892625, trigger=visual_change)\n2026-04-22T18:57:00.459010Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2070714172482892625, trigger=visual_change)\n2026-04-22T18:57:03.809894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2070714172482892625, trigger=visual_change)\n2026-04-22T18:58:04.259354Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7284778144726625723, trigger=visual_change)\n2026-04-22T18:58:07.302007Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7284778144726625723, trigger=visual_change)\n2026-04-22T18:58:10.443744Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7284778144726625723, trigger=visual_change)\n2026-04-22T18:58:40.416893Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6313361147559934277, trigger=click)\n2026-04-22T18:58:59.229391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)\n2026-04-22T18:59:10.795801Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)\n2026-04-22T18:59:15.904155Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)\n2026-04-22T18:59:30.308258Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=46 elapsed=1.303054333s\n2026-04-22T18:59:30.308485Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 46 eligible frames\n2026-04-22T18:59:31.535859Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 2.4MB → 0.3MB (7.5x), 20 JPEGs deleted\n2026-04-22T18:59:33.536283Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 3.8MB → 1.3MB (3.0x), 24 JPEGs deleted\n2026-04-22T18:59:39.897203Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)\n2026-04-22T18:59:43.593017Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-71227342056343983, trigger=visual_change)\n2026-04-22T18:59:55.722135Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)\n2026-04-22T19:00:00.394304Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)\n2026-04-22T19:00:27.869871Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2710856207947507007, trigger=visual_change)\n2026-04-22T19:01:54.992910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6986338393283794423, trigger=visual_change)\n2026-04-22T19:02:13.568012Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6986338393283794423, trigger=visual_change)\n2026-04-22T19:02:16.092275Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6986338393283794423, trigger=visual_change)\n2026-04-22T19:03:04.479425Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7704375629034044835, trigger=visual_change)\n2026-04-22T19:03:35.287830Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2375149456869027114, trigger=visual_change)\n2026-04-22T19:03:41.021583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2375149456869027114, trigger=visual_change)\n2026-04-22T19:03:48.485601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6234474271212752005, trigger=visual_change)\n2026-04-22T19:04:35.737525Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=82 elapsed=2.188209209s\n2026-04-22T19:04:35.737670Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 82 eligible frames\n2026-04-22T19:04:38.209886Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3880005638520398709, trigger=click)\n2026-04-22T19:04:38.478674Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 4.8MB → 1.0MB (4.9x), 39 JPEGs deleted\n2026-04-22T19:04:42.074270Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 41 frames, 7.5MB → 3.6MB (2.1x), 41 JPEGs deleted\n2026-04-22T19:04:55.094599Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-635344842894947589, trigger=visual_change)\n2026-04-22T19:05:20.336216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)\n2026-04-22T19:05:54.388487Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)\n2026-04-22T19:05:57.299176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)\n2026-04-22T19:05:59.949506Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)\n2026-04-22T19:06:25.531964Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5957740084085463727, trigger=visual_change)\n2026-04-22T19:06:50.090567Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6422724880219484653, trigger=visual_change)\n2026-04-22T19:07:22.963169Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2531925023067266044, trigger=click)\n2026-04-22T19:07:24.045648Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2531925023067266044, trigger=click)\n2026-04-22T19:07:27.834546Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2085088366939909076, trigger=click)\n2026-04-22T19:07:28.381522Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2085088366939909076, trigger=click)\n2026-04-22T19:08:34.175493Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3061313113729352595, trigger=click)\n2026-04-22T19:09:42.454765Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 91 eligible frames\n2026-04-22T19:09:45.816541Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 5.7MB → 2.4MB (2.3x), 32 JPEGs deleted\n2026-04-22T19:09:50.140975Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 57 frames, 7.8MB → 2.3MB (3.4x), 57 JPEGs deleted\n2026-04-22T19:10:13.441594Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=click)\n2026-04-22T19:10:18.830768Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)\n2026-04-22T19:10:21.842287Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)\n2026-04-22T19:10:28.187487Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5292492680570276501, trigger=click)\n^C2026-04-22T19:10:32.957264Z INFO screenpipe: received ctrl+c, initiating shutdown\n2026-04-22T19:10:32.958125Z INFO screenpipe: stopping UI event capture\n2026-04-22T19:10:32.958201Z INFO screenpipe: received shutdown signal for VisionManager\n2026-04-22T19:10:32.958212Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker shutting down\n2026-04-22T19:10:32.958217Z INFO screenpipe_engine::meeting_detector: meeting v2: shutdown received, exiting detection loop\n2026-04-22T19:10:32.958646Z INFO screenpipe_engine::vision_manager::manager: Shutting down VisionManager\n2026-04-22T19:10:32.958661Z INFO screenpipe_engine::vision_manager::manager: Stopping VisionManager\n2026-04-22T19:10:32.958669Z INFO screenpipe_engine::vision_manager::manager: Stopping vision recording for monitor 2\n2026-04-22T19:10:32.958804Z INFO screenpipe_engine::vision_manager::manager: Stopping vision recording for monitor 1\n\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ 2026-04-22T19:10:33.158623Z INFO screenpipe_engine::ui_recorder: UI recording session ended: e7729066-2ab4-4bf0-9d48-0c9790a4ee79\n2026-04-22T19:10:33.159581Z INFO screenpipe: shutdown complete\n\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-stop\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-status\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ st-start\nzsh: command not found: st-start\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-start\ndetected hardware tier: Mid\nwarning: parakeet is not supported on this platform, using whisper-tiny instead\n2026-04-23T09:12:59.282987Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store\nchecking permissions...\n screen recording: ok\n accessibility: ok\n2026-04-23T09:12:59.350556Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6\n2026-04-23T09:13:00.537715Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor\n2026-04-23T09:13:00.539247Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)\n2026-04-23T09:13:00.539704Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)\n2026-04-23T09:13:00.580622Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true\n2026-04-23T09:13:00.580688Z INFO screenpipe: meeting detector enabled — independent of transcription mode\n2026-04-23T09:13:00.580873Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)\n2026-04-23T09:13:00.581042Z INFO screenpipe: API server listening on 127.0.0.1:3030 (localhost only)\n2026-04-23T09:13:00.581050Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key\n2026-04-23T09:13:00.580937Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)\n2026-04-23T09:13:00.581202Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager\n2026-04-23T09:13:00.599105Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-23T09:13:00.607481Z INFO screenpipe_core::pipes: loaded pipe: day-recap\n2026-04-23T09:13:00.608248Z INFO screenpipe_core::pipes: loaded pipe: standup-update\n2026-04-23T09:13:00.608416Z INFO screenpipe_core::pipes: loaded pipe: ai-habits\n2026-04-23T09:13:00.608706Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown\n2026-04-23T09:13:00.608849Z INFO screenpipe_core::pipes: loaded pipe: video-export\n2026-04-23T09:13:00.609337Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary\n2026-04-23T09:13:00.609353Z INFO screenpipe_core::pipes: loaded 6 pipes from \"/Users/lukas/.screenpipe/pipes\"\n\n\n\n _ \n __________________ ___ ____ ____ (_____ ___ \n / ___/ ___/ ___/ _ \\/ _ \\/ __ \\ / __ \\/ / __ \\/ _ \\\n (__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/\n/____/\\___/_/ \\___/\\___/_/ /_/ / .___/_/ .___/\\___/ \n /_/ /_/ \n\n\n\npower AI by everything you've seen, said or heard\nopen source | runs locally | developer friendly\n\n\n┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ true │\n│ vision disabled │ false │\n│ pause on DRM content │ false │\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n│ ignored windows │ [\"Boosteroid\"] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n│ api auth │ enabled │\n2026-04-23T09:13:00.610149Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n2026-04-23T09:13:00.614023Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n│ encrypt secrets │ disabled │\n│ retention days │ 14 │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ id: 1 │\n│ │ id: 2 │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ disabled │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-23T09:13:00.626925Z INFO screenpipe: starting UI event capture\n2026-04-23T09:13:00.644081Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-23T09:13:00.659604Z INFO screenpipe_engine::ui_recorder: UI recording session started: 64e213bd-3690-487f-90be-4e8348040416\n2026-04-23T09:13:00.659568Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-23T09:13:00.659937Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-22 06:13:00.659935 UTC to 2026-04-23 06:13:00.659935 UTC)\n2026-04-23T09:13:00.660681Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-23T09:13:00.671031Z INFO screenpipe_engine::server: Server listening on 127.0.0.1:3030\n2026-04-23T09:13:00.676357Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-23T09:13:02.822346Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-23T09:13:02.822390Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-23T09:13:02.822429Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-23T09:13:03.612915Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-23T09:13:03.612969Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-23T09:13:03.612981Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)\n2026-04-23T09:13:03.612988Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)\n2026-04-23T09:13:03.613032Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-23T09:13:04.172201Z WARN sqlx::query: summary=\"SELECT f.id, f.timestamp, f.offset_index, …\" db.statement=\"\\n\\nSELECT\\n f.id,\\n f.timestamp,\\n f.offset_index,\\n COALESCE(\\n SUBSTR(f.full_text, 1, 200),\\n SUBSTR(f.accessibility_text, 1, 200),\\n (\\n SELECT\\n SUBSTR(ot.text, 1, 200)\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as text,\\n COALESCE(\\n f.app_name,\\n (\\n SELECT\\n ot.app_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as app_name,\\n COALESCE(\\n f.window_name,\\n (\\n SELECT\\n ot.window_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as window_name,\\n COALESCE(vc.device_name, f.device_name) as screen_device,\\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\\n COALESCE(vc.fps, 0.033) as chunk_fps,\\n f.browser_url,\\n f.machine_id\\nFROM\\n frames f\\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\\nWHERE\\n f.timestamp >= ?1\\n AND f.timestamp <= ?2\\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\\nORDER BY\\n f.timestamp DESC,\\n f.offset_index DESC\\nLIMIT\\n 10000\\n\" rows_affected=0 rows_returned=4305 elapsed=3.511492208s\n2026-04-23T09:13:04.183200Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 4304 frame entries, coverage from 2026-04-22 06:13:00.659935 UTC\n2026-04-23T09:13:07.349282Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)","depth":4,"value":"2026-04-22T13:53:01.899060Z INFO sck_rs::stream_manager: recreating stream for display 2 (resolution change)\n2026-04-22T13:53:24.588928Z INFO sck_rs::stream_manager: recreating stream for display 1 (resolution change)\n2026-04-22T13:54:45.480269Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)\n2026-04-22T13:54:45.525295Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2\n2026-04-22T13:54:47.277567Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-22T13:54:47.557900Z WARN screenpipe_engine::event_driven_capture: skipping capture: lock screen app 'loginwindow' on monitor 2\n2026-04-22T13:54:50.517321Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)\n2026-04-22T13:54:50.531527Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2\n2026-04-22T13:54:50.539783Z INFO sck_rs::stream_manager: stopped 1 persistent stream(s)\n2026-04-22T13:54:51.633834Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-22T13:54:57.215619Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-22T13:54:57.475388Z WARN screenpipe_engine::event_driven_capture: skipping capture: lock screen app 'loginwindow' on monitor 1\n2026-04-22T13:55:00.526322Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)\n2026-04-22T13:55:00.545282Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2\n2026-04-22T13:55:01.132848Z INFO sck_rs::stream_manager: stopped 2 persistent stream(s)\n2026-04-22T13:55:02.005737Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-22T13:55:02.633821Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-22T13:55:19.838192Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3145826437395305149, trigger=click)\n2026-04-22T13:55:20.300634Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3145826437395305149, trigger=click)\n2026-04-22T13:55:21.567188Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3145826437395305149, trigger=click)\n2026-04-22T13:55:42.189258Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=38 elapsed=6.884820208s\n2026-04-22T13:55:42.189981Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 38 eligible frames\n2026-04-22T13:55:43.595617Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.1MB → 0.2MB (11.9x), 16 JPEGs deleted\n2026-04-22T13:55:46.392329Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.1MB → 1.1MB (3.6x), 20 JPEGs deleted\n2026-04-22T13:55:56.140186Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:55:57.408560Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:58:03.696726Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:58:06.390518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:58:08.300896Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:58:08.718730Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:58:09.912001Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:58:10.311583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:58:13.273546Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=visual_change)\n2026-04-22T13:58:19.346181Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=visual_change)\n2026-04-22T13:58:58.360554Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:58:58.786340Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:59:04.430986Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:59:04.893282Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:59:45.902049Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:59:46.348987Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:59:48.470706Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:59:48.898805Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:59:54.274180Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:59:56.495414Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)\n2026-04-22T14:00:02.522746Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)\n2026-04-22T14:00:35.856416Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6212304827203743747, trigger=click)\n2026-04-22T14:00:44.303637Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6212304827203743747, trigger=visual_change)\n2026-04-22T14:00:55.518274Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=9.118070709s\n2026-04-22T14:00:55.518433Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-22T14:00:57.099120Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.3MB → 0.2MB (7.7x), 10 JPEGs deleted\n2026-04-22T14:00:58.767986Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.2MB → 0.4MB (6.0x), 10 JPEGs deleted\n2026-04-22T14:04:15.220880Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3837731717837980920, trigger=visual_change)\n2026-04-22T14:05:28.069620Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1051548329161768346, trigger=click)\n2026-04-22T14:05:28.937013Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1051548329161768346, trigger=click)\n2026-04-22T14:06:00.164534Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=16 elapsed=1.199258208s\n2026-04-22T14:06:00.164673Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 16 eligible frames\n2026-04-22T14:06:02.024968Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 7 frames, 0.9MB → 0.2MB (5.3x), 7 JPEGs deleted\n2026-04-22T14:06:05.188088Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 7 frames, 1.5MB → 0.7MB (2.2x), 7 JPEGs deleted\n2026-04-22T14:06:46.071139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:06:54.570039Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:10:11.311868Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:10:11.803732Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:10:14.694406Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:10:15.147426Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:10:20.551057Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:10:21.045391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:10:22.951330Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:10:23.467707Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:10:30.780582Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:10:31.189747Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:11:11.060150Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=27 elapsed=4.548210084s\n2026-04-22T14:11:11.060281Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 27 eligible frames\n2026-04-22T14:11:12.404803Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.4MB → 0.2MB (8.3x), 11 JPEGs deleted\n2026-04-22T14:11:14.840042Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.7MB → 0.9MB (3.1x), 14 JPEGs deleted\n2026-04-22T14:13:35.976326Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4968702094796127351, trigger=click)\n2026-04-22T14:14:34.729623Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4357453572186956917, trigger=click)\n2026-04-22T14:14:35.105620Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4357453572186956917, trigger=click)\n2026-04-22T14:14:42.802189Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3105240340990619874, trigger=visual_change)\n2026-04-22T14:15:50.965557Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3105240340990619874, trigger=click)\n2026-04-22T14:16:12.161692Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6479516063853776409, trigger=click)\n2026-04-22T14:16:16.153590Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=48 elapsed=1.32668825s\n2026-04-22T14:16:16.155403Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 48 eligible frames\n2026-04-22T14:16:18.705225Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 5.0MB → 0.8MB (5.9x), 20 JPEGs deleted\n2026-04-22T14:16:23.744196Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.4MB → 1.3MB (3.4x), 26 JPEGs deleted\n2026-04-22T14:16:41.068116Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1903229694032021789, trigger=click)\n2026-04-22T14:19:15.519118Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4529195482775946524, trigger=click)\n2026-04-22T14:19:22.366746Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:19:30.208098Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:19:33.496128Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:19:38.751833Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6094503686615299639, trigger=click)\n2026-04-22T14:19:41.173256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6094503686615299639, trigger=visual_change)\n2026-04-22T14:19:42.912499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6094503686615299639, trigger=click)\n2026-04-22T14:19:46.351486Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6094503686615299639, trigger=click)\n2026-04-22T14:19:59.152409Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4952826635443255860, trigger=click)\n2026-04-22T14:20:01.518389Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4952826635443255860, trigger=click)\n2026-04-22T14:20:08.061611Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3675157249828056010, trigger=click)\n2026-04-22T14:21:28.984120Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=25 elapsed=4.855522625s\n2026-04-22T14:21:28.985458Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames\n2026-04-22T14:21:30.346636Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 2.5MB → 0.5MB (5.1x), 11 JPEGs deleted\n2026-04-22T14:21:32.359178Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.6MB → 0.6MB (4.3x), 12 JPEGs deleted\n2026-04-22T14:23:49.639071Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:24:02.782818Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:24:15.622633Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:26:10.392401Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:26:10.788712Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:26:12.799270Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:26:13.219651Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=visual_change)\n2026-04-22T14:26:38.732555Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=36 elapsed=6.323619459s\n2026-04-22T14:26:38.732888Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 36 eligible frames\n2026-04-22T14:26:39.785513Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 1.2MB → 0.1MB (9.0x), 16 JPEGs deleted\n2026-04-22T14:26:41.678236Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 4.1MB → 1.7MB (2.4x), 18 JPEGs deleted\n2026-04-22T14:26:51.433436Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:26:52.304457Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:26:54.907598Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:26:55.381293Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:27:00.185936Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:27:01.160650Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=visual_change)\n2026-04-22T14:27:24.714027Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:27:25.724851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=visual_change)\n2026-04-22T14:27:26.222818Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:27:27.755899Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:27:28.274266Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:30:08.479659Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1095112307124202838, trigger=click)\n2026-04-22T14:31:42.105262Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 38 eligible frames\n2026-04-22T14:31:43.197127Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.5MB → 1.0MB (2.5x), 15 JPEGs deleted\n2026-04-22T14:31:45.195588Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 4.3MB → 1.6MB (2.6x), 21 JPEGs deleted\n2026-04-22T14:32:02.263422Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3223987862501414590, trigger=click)\n2026-04-22T14:32:02.639431Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3223987862501414590, trigger=click)\n2026-04-22T14:32:19.705800Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1632013320203273627, trigger=click)\n2026-04-22T14:32:56.235240Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=257019738165452929, trigger=click)\n2026-04-22T14:32:59.969256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=257019738165452929, trigger=click)\n2026-04-22T14:33:03.317113Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=257019738165452929, trigger=click)\n2026-04-22T14:33:06.798109Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=257019738165452929, trigger=click)\n2026-04-22T14:33:17.093100Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3308965711270161120, trigger=click)\n2026-04-22T14:33:17.486074Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3308965711270161120, trigger=click)\n2026-04-22T14:33:22.565377Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3308965711270161120, trigger=click)\n2026-04-22T14:33:23.216523Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3308965711270161120, trigger=click)\n2026-04-22T14:33:35.842809Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=435352143489435154, trigger=click)\n2026-04-22T14:36:49.764156Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=34 elapsed=4.516637708s\n2026-04-22T14:36:49.764263Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 34 eligible frames\n2026-04-22T14:36:51.311395Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.0MB → 0.7MB (4.6x), 17 JPEGs deleted\n2026-04-22T14:36:52.531817Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 3.0MB → 1.1MB (2.6x), 15 JPEGs deleted\n2026-04-22T14:37:28.108242Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=435352143489435154, trigger=click)\n2026-04-22T14:37:28.485856Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=435352143489435154, trigger=click)\n2026-04-22T14:37:58.316339Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3668856246823891896, trigger=click)\n2026-04-22T14:38:23.725006Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3668856246823891896, trigger=visual_change)\n2026-04-22T14:38:38.826158Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3668856246823891896, trigger=click)\n2026-04-22T14:39:14.985595Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2152077026286113228, trigger=click)\n2026-04-22T14:39:41.085287Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2152077026286113228, trigger=click)\n2026-04-22T14:39:48.325144Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2152077026286113228, trigger=click)\n2026-04-22T14:39:54.042692Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2152077026286113228, trigger=click)\n2026-04-22T14:40:56.876512Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2152077026286113228, trigger=click)\n2026-04-22T14:41:03.035671Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2747516377298098397, trigger=click)\n2026-04-22T14:41:21.141064Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2710026494434395739, trigger=click)\n2026-04-22T14:41:34.026128Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2710026494434395739, trigger=click)\n2026-04-22T14:41:59.929978Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=38 elapsed=5.991404375s\n2026-04-22T14:41:59.930138Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 38 eligible frames\n2026-04-22T14:42:03.556178Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.2MB → 0.3MB (11.1x), 18 JPEGs deleted\n2026-04-22T14:42:06.257184Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.3MB → 1.1MB (2.9x), 18 JPEGs deleted\n2026-04-22T14:42:25.479048Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8568923258494843591, trigger=click)\n2026-04-22T14:42:43.658087Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1714642257969983896, trigger=click)\n2026-04-22T14:42:44.150668Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1714642257969983896, trigger=click)\n2026-04-22T14:42:46.347489Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1714642257969983896, trigger=click)\n2026-04-22T14:42:46.976364Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1714642257969983896, trigger=click)\n2026-04-22T14:42:54.146640Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8318058469467001879, trigger=click)\n2026-04-22T14:43:16.054664Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2746665666832385858, trigger=click)\n2026-04-22T14:43:27.592095Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2746665666832385858, trigger=click)\n2026-04-22T14:43:28.904486Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2746665666832385858, trigger=click)\n2026-04-22T14:43:33.115401Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2746665666832385858, trigger=click)\n2026-04-22T14:43:33.548704Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2746665666832385858, trigger=click)\n2026-04-22T14:43:34.528422Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2746665666832385858, trigger=click)\n2026-04-22T14:43:35.101040Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2746665666832385858, trigger=click)\n2026-04-22T14:43:42.182992Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2746665666832385858, trigger=click)\n2026-04-22T14:43:44.575989Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2746665666832385858, trigger=click)\n2026-04-22T14:44:46.365793Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6679194177618586363, trigger=click)\n2026-04-22T14:47:14.092894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6118025119517316583, trigger=click)\n2026-04-22T14:47:14.453307Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6118025119517316583, trigger=click)\n2026-04-22T14:47:15.216109Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=38 elapsed=7.876438917s\n2026-04-22T14:47:15.216433Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 38 eligible frames\n2026-04-22T14:47:16.019464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6118025119517316583, trigger=click)\n2026-04-22T14:47:16.544950Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6118025119517316583, trigger=click)\n2026-04-22T14:47:16.818898Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.2MB → 0.4MB (7.6x), 18 JPEGs deleted\n2026-04-22T14:47:18.385927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6118025119517316583, trigger=click)\n2026-04-22T14:47:18.475181Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.3MB → 1.2MB (2.9x), 18 JPEGs deleted\n2026-04-22T14:47:19.386449Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6118025119517316583, trigger=click)\n2026-04-22T14:47:20.087965Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6118025119517316583, trigger=click)\n2026-04-22T14:47:59.950079Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2150958068002330087, trigger=click)\n2026-04-22T14:48:01.449829Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2150958068002330087, trigger=click)\n2026-04-22T14:48:09.502190Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2150958068002330087, trigger=visual_change)\n2026-04-22T14:48:34.932290Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8599886822383806507, trigger=click)\n2026-04-22T14:48:44.486878Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3332409860485365312, trigger=click)\n2026-04-22T14:48:45.527964Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3332409860485365312, trigger=click)\n2026-04-22T14:49:38.888769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=472424603195027632, trigger=click)\n2026-04-22T14:49:45.417282Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=472424603195027632, trigger=click)\n2026-04-22T14:49:47.792067Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=472424603195027632, trigger=click)\n2026-04-22T14:50:00.945819Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4843648253222399128, trigger=click)\n2026-04-22T14:50:02.876637Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4843648253222399128, trigger=click)\n2026-04-22T14:52:21.989580Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=42 elapsed=3.480045958s\n2026-04-22T14:52:21.990045Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 42 eligible frames\n2026-04-22T14:52:23.358528Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 3.9MB → 0.4MB (8.7x), 22 JPEGs deleted\n2026-04-22T14:52:24.693261Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.5MB → 1.3MB (2.6x), 18 JPEGs deleted\n2026-04-22T14:53:02.184100Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8042719790331908666, trigger=click)\n2026-04-22T14:53:02.666973Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8042719790331908666, trigger=click)\n2026-04-22T14:53:44.356357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8042719790331908666, trigger=click)\n2026-04-22T14:53:44.849679Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8042719790331908666, trigger=click)\n2026-04-22T14:57:28.770189Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=52 elapsed=4.063771166s\n2026-04-22T14:57:28.770886Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 52 eligible frames\n2026-04-22T14:57:31.445523Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.2MB → 0.5MB (7.8x), 25 JPEGs deleted\n2026-04-22T14:57:35.130193Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.0MB → 2.4MB (2.1x), 25 JPEGs deleted\n2026-04-22T15:00:02.686939Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Slack, signals=2)\n2026-04-22T15:00:08.703872Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Slack, signals=2, browser=false)\n2026-04-22T15:00:08.707794Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=8, app=Slack, title=None)\n2026-04-22T15:00:09.697915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:00:25.820838Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:00:30.742889Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:00:35.932789Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:00:38.982205Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:00:42.607387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:00:45.252062Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:00:48.655907Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:00:54.706686Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:02:07.634898Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:02:43.352910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=click)\n2026-04-22T15:02:43.752028Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=57 elapsed=8.590900375s\n2026-04-22T15:02:43.756244Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 57 eligible frames\n2026-04-22T15:02:46.231236Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 4.8MB → 2.0MB (2.4x), 29 JPEGs deleted\n2026-04-22T15:02:46.417502Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)\n2026-04-22T15:02:49.039329Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.9MB → 1.8MB (2.8x), 26 JPEGs deleted\n2026-04-22T15:02:50.878563Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)\n2026-04-22T15:02:53.936710Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)\n2026-04-22T15:02:56.977078Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)\n2026-04-22T15:03:19.571166Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)\n2026-04-22T15:03:26.066470Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)\n2026-04-22T15:03:31.414066Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)\n2026-04-22T15:04:07.475454Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)\n2026-04-22T15:04:10.605093Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)\n2026-04-22T15:04:13.512293Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)\n2026-04-22T15:04:16.529473Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)\n2026-04-22T15:04:53.720517Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:04:55.658228Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:05:01.010633Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:05:03.051970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:05:06.145567Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:05:29.469376Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=797137072065105312, trigger=click)\n2026-04-22T15:05:55.103542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-116347373995830011, trigger=click)\n2026-04-22T15:05:55.539275Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-116347373995830011, trigger=click)\n2026-04-22T15:06:41.788384Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-116347373995830011, trigger=click)\n2026-04-22T15:06:42.204175Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-116347373995830011, trigger=click)\n2026-04-22T15:07:03.704733Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Slack, id=8, grace=30s)\n2026-04-22T15:07:39.449504Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Idle (timeout=30s, app=Slack, id=8)\n2026-04-22T15:07:39.915187Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting ended (id=8)\n2026-04-22T15:07:49.691643Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 27 eligible frames\n2026-04-22T15:07:51.650549Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.3MB → 0.3MB (7.0x), 13 JPEGs deleted\n2026-04-22T15:07:53.582709Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.6MB → 0.9MB (3.0x), 12 JPEGs deleted\n2026-04-22T15:07:53.988144Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1303595353837004202, trigger=click)\n2026-04-22T15:09:49.799139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4589403011857874475, trigger=click)\n2026-04-22T15:09:52.656133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4589403011857874475, trigger=click)\n2026-04-22T15:13:00.784316Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=44 elapsed=7.176940333s\n2026-04-22T15:13:00.784701Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 44 eligible frames\n2026-04-22T15:13:06.141480Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 3.7MB → 1.4MB (2.7x), 23 JPEGs deleted\n2026-04-22T15:13:09.087116Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 5.4MB → 1.4MB (4.0x), 19 JPEGs deleted\n2026-04-22T15:18:11.493152Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=37 elapsed=2.382042209s\n2026-04-22T15:18:11.496118Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 37 eligible frames\n2026-04-22T15:18:15.568523Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.0MB → 1.3MB (2.3x), 18 JPEGs deleted\n2026-04-22T15:18:18.268870Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 5.0MB → 1.2MB (4.0x), 17 JPEGs deleted\n2026-04-22T15:21:12.476028Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3813526692250337476, trigger=visual_change)\n2026-04-22T15:23:28.271759Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=63 elapsed=9.511646458s\n2026-04-22T15:23:28.282671Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 63 eligible frames\n2026-04-22T15:23:34.267737Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 6.8MB → 3.5MB (1.9x), 31 JPEGs deleted\n2026-04-22T15:23:38.696265Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 5.7MB → 1.2MB (4.7x), 30 JPEGs deleted\n2026-04-22T15:25:18.297937Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:25:21.238617Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:25:58.399479Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6869659017523937306, trigger=click)\n2026-04-22T15:26:00.086631Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6869659017523937306, trigger=click)\n2026-04-22T15:26:01.910963Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6869659017523937306, trigger=visual_change)\n2026-04-22T15:26:02.357258Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6869659017523937306, trigger=visual_change)\n2026-04-22T15:26:04.744325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6869659017523937306, trigger=click)\n2026-04-22T15:26:05.686404Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6869659017523937306, trigger=visual_change)\n2026-04-22T15:26:07.341872Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6869659017523937306, trigger=click)\n2026-04-22T15:26:07.841961Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6869659017523937306, trigger=click)\n2026-04-22T15:27:08.518409Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=click)\n2026-04-22T15:27:14.348556Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)\n2026-04-22T15:27:19.567077Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)\n2026-04-22T15:27:23.928137Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6983242470914211958, trigger=click)\n2026-04-22T15:27:25.430871Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=click)\n2026-04-22T15:27:32.704396Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6983242470914211958, trigger=click)\n2026-04-22T15:27:39.006433Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)\n2026-04-22T15:27:43.060533Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)\n2026-04-22T15:27:45.902424Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)\n2026-04-22T15:27:53.866025Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)\n2026-04-22T15:27:56.855542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)\n2026-04-22T15:28:06.329802Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)\n2026-04-22T15:28:16.947758Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=click)\n2026-04-22T15:28:17.639628Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6983242470914211958, trigger=click)\n2026-04-22T15:28:19.702614Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)\n2026-04-22T15:28:22.257394Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=click)\n2026-04-22T15:28:22.756941Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6983242470914211958, trigger=click)\n2026-04-22T15:28:25.405205Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=click)\n2026-04-22T15:28:26.273821Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6983242470914211958, trigger=click)\n2026-04-22T15:28:37.225888Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4416148030571332734, trigger=click)\n2026-04-22T15:28:41.503684Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4416148030571332734, trigger=visual_change)\n2026-04-22T15:28:42.412245Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4416148030571332734, trigger=click)\n2026-04-22T15:28:44.900893Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4416148030571332734, trigger=click)\n2026-04-22T15:28:45.281047Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4416148030571332734, trigger=click)\n2026-04-22T15:28:47.806415Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=61 elapsed=8.915603625s\n2026-04-22T15:28:47.808575Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 61 eligible frames\n2026-04-22T15:28:51.748955Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4416148030571332734, trigger=click)\n2026-04-22T15:28:52.058480Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 33 frames, 7.4MB → 2.7MB (2.7x), 33 JPEGs deleted\n2026-04-22T15:28:57.816868Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.8MB → 2.2MB (2.2x), 26 JPEGs deleted\n2026-04-22T15:28:59.171732Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4416148030571332734, trigger=visual_change)\n2026-04-22T15:29:19.001260Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4416148030571332734, trigger=visual_change)\n2026-04-22T15:29:26.828215Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4416148030571332734, trigger=visual_change)\n2026-04-22T15:30:54.757442Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2182844197261250370, trigger=click)\n2026-04-22T15:31:30.516711Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2182844197261250370, trigger=click)\n2026-04-22T15:31:49.431335Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4416148030571332734, trigger=visual_change)\n2026-04-22T15:31:54.155985Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4416148030571332734, trigger=visual_change)\n2026-04-22T15:31:58.427528Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4416148030571332734, trigger=visual_change)\n2026-04-22T15:32:21.666172Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7700301847216802583, trigger=click)\n2026-04-22T15:32:26.019679Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7700301847216802583, trigger=visual_change)\n2026-04-22T15:33:34.334309Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5496326212892813056, trigger=visual_change)\n2026-04-22T15:33:41.606418Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5496326212892813056, trigger=visual_change)\n2026-04-22T15:34:04.695051Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5496326212892813056, trigger=click)\n2026-04-22T15:34:06.919005Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=73 elapsed=9.073921416s\n2026-04-22T15:34:06.919292Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 73 eligible frames\n2026-04-22T15:34:11.489642Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 40 frames, 9.1MB → 3.4MB (2.6x), 40 JPEGs deleted\n2026-04-22T15:34:15.335063Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 6.0MB → 2.0MB (3.0x), 31 JPEGs deleted\n2026-04-22T15:36:46.398267Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3562390500463334923, trigger=visual_change)\n2026-04-22T15:36:49.359581Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3562390500463334923, trigger=visual_change)\n2026-04-22T15:36:56.667177Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3562390500463334923, trigger=click)\n2026-04-22T15:37:01.305805Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3562390500463334923, trigger=click)\n2026-04-22T15:37:04.552815Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3562390500463334923, trigger=click)\n2026-04-22T15:37:05.365649Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3562390500463334923, trigger=click)\n2026-04-22T15:37:06.657172Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3562390500463334923, trigger=visual_change)\n2026-04-22T15:37:20.005928Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3562390500463334923, trigger=visual_change)\n2026-04-22T15:37:22.572092Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3562390500463334923, trigger=visual_change)\n2026-04-22T15:37:28.745166Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3562390500463334923, trigger=visual_change)\n2026-04-22T15:37:32.112106Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3562390500463334923, trigger=visual_change)\n2026-04-22T15:37:40.817103Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3562390500463334923, trigger=visual_change)\n2026-04-22T15:37:44.068041Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3562390500463334923, trigger=visual_change)\n2026-04-22T15:37:49.735129Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3562390500463334923, trigger=click)\n2026-04-22T15:37:50.302210Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3562390500463334923, trigger=click)\n2026-04-22T15:38:55.433464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=666278282122949848, trigger=visual_change)\n2026-04-22T15:38:58.142835Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=666278282122949848, trigger=visual_change)\n2026-04-22T15:39:15.500379Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=666278282122949848, trigger=click)\n2026-04-22T15:39:15.987757Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=666278282122949848, trigger=click)\n2026-04-22T15:39:17.228167Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=666278282122949848, trigger=visual_change)\n2026-04-22T15:39:18.307711Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=666278282122949848, trigger=visual_change)\n2026-04-22T15:39:21.533092Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=666278282122949848, trigger=visual_change)\n2026-04-22T15:39:21.807148Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=62 elapsed=6.322537666s\n2026-04-22T15:39:21.807242Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 62 eligible frames\n2026-04-22T15:39:23.654129Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=666278282122949848, trigger=visual_change)\n2026-04-22T15:39:24.158197Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=666278282122949848, trigger=click)\n2026-04-22T15:39:24.238758Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 6.7MB → 2.4MB (2.8x), 29 JPEGs deleted\n2026-04-22T15:39:24.919127Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=666278282122949848, trigger=click)\n2026-04-22T15:39:26.522050Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 6.2MB → 2.3MB (2.7x), 31 JPEGs deleted\n2026-04-22T15:39:32.912924Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=666278282122949848, trigger=visual_change)\n2026-04-22T15:39:33.735345Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=666278282122949848, trigger=click)\n2026-04-22T15:39:35.375360Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=666278282122949848, trigger=click)\n2026-04-22T15:39:36.995841Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=666278282122949848, trigger=click)\n2026-04-22T15:39:37.467108Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=666278282122949848, trigger=click)\n2026-04-22T15:39:40.369538Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=666278282122949848, trigger=click)\n2026-04-22T15:39:43.276197Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=666278282122949848, trigger=click)\n2026-04-22T15:40:07.556081Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:40:09.930821Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:40:11.154450Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:40:19.449508Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:40:29.519581Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8135701070039948601, trigger=visual_change)\n2026-04-22T15:41:56.970803Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:42:06.118149Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:44:30.869060Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=59 elapsed=4.334722834s\n2026-04-22T15:44:30.869438Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 59 eligible frames\n2026-04-22T15:44:36.682494Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 7.0MB → 3.2MB (2.1x), 31 JPEGs deleted\n2026-04-22T15:44:41.069797Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.9MB → 1.5MB (3.3x), 26 JPEGs deleted\n2026-04-22T15:47:16.707141Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:47:26.476915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:47:30.506202Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:47:33.490610Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:47:37.439486Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:48:10.814782Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:48:49.253754Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:48:58.005092Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:49:44.222629Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=41 elapsed=2.9267015s\n2026-04-22T15:49:44.223441Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 41 eligible frames\n2026-04-22T15:49:46.632623Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:49:46.707995Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 4.3MB → 2.2MB (2.0x), 19 JPEGs deleted\n2026-04-22T15:49:48.648095Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.5MB → 2.1MB (2.2x), 20 JPEGs deleted\n2026-04-22T15:49:55.585051Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:49:58.557820Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:50:04.689651Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:50:10.744245Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:50:32.681643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:50:37.792790Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:50:40.260147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:50:46.805742Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:50:53.026194Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:50:55.961999Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:51:02.210628Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:51:04.537374Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:51:17.321401Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:51:23.393544Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:51:26.412142Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:51:32.600472Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:51:35.220938Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:51:41.194536Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:51:44.210722Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:51:50.304611Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:51:56.294115Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:51:59.321943Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:52:05.342699Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:52:17.436700Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:52:21.187208Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:52:49.374507Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:52:51.550918Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:52:53.892542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:52:59.947921Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:53:03.308386Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:53:10.465051Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:53:18.275354Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:53:19.882281Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:53:26.102339Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:53:28.677581Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:53:38.195861Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:53:40.759223Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:53:44.211689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:53:49.661798Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:53:51.254730Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:53:56.539255Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:53:58.004998Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:53:58.491246Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:54:00.207899Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:54:00.960349Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:54:06.030857Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:54:09.163227Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:54:09.608141Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:54:29.884648Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7221551953177750058, trigger=visual_change)\n2026-04-22T15:54:32.904873Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7221551953177750058, trigger=visual_change)\n2026-04-22T15:54:38.529745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7221551953177750058, trigger=visual_change)\n2026-04-22T15:54:42.030930Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7221551953177750058, trigger=visual_change)\n2026-04-22T15:54:53.757845Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=44 elapsed=5.12885025s\n2026-04-22T15:54:53.758028Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 44 eligible frames\n2026-04-22T15:54:56.216519Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.7MB → 2.2MB (2.6x), 25 JPEGs deleted\n2026-04-22T15:54:57.253500Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7221551953177750058, trigger=visual_change)\n2026-04-22T15:54:57.778380Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.8MB → 1.4MB (2.7x), 17 JPEGs deleted\n2026-04-22T15:55:14.227919Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:55:29.347981Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:55:34.911796Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:55:37.679086Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:55:55.657449Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:55:56.235238Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:55:58.080012Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:56:03.489838Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:56:19.773160Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:58:04.898631Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:58:05.507970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:58:19.974744Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7937570718597551457, trigger=visual_change)\n2026-04-22T16:00:07.397412Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=28 elapsed=9.608749083s\n2026-04-22T16:00:07.397774Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames\n2026-04-22T16:00:11.353157Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.7MB → 1.6MB (1.7x), 12 JPEGs deleted\n2026-04-22T16:00:14.732810Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 3.1MB → 1.4MB (2.2x), 14 JPEGs deleted\n2026-04-22T16:05:14.875841Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 26 eligible frames\n2026-04-22T16:05:21.176398Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.7MB → 1.5MB (1.8x), 12 JPEGs deleted\n2026-04-22T16:05:23.500634Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.7MB → 0.8MB (3.5x), 12 JPEGs deleted\n2026-04-22T16:09:43.057186Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1700548679087424896, trigger=click)\n2026-04-22T16:09:43.726339Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1700548679087424896, trigger=click)\n2026-04-22T16:10:33.202772Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=32 elapsed=8.151029333s\n2026-04-22T16:10:33.205709Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 32 eligible frames\n2026-04-22T16:10:36.241109Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.9MB → 0.8MB (3.6x), 16 JPEGs deleted\n2026-04-22T16:10:39.638416Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.4MB → 1.1MB (2.2x), 14 JPEGs deleted\n2026-04-22T16:12:57.604636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3640531240517672751, trigger=visual_change)\n2026-04-22T16:14:48.477621Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3640531240517672751, trigger=click)\n2026-04-22T16:14:49.113238Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3640531240517672751, trigger=click)\n2026-04-22T16:14:52.803148Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3640531240517672751, trigger=click)\n2026-04-22T16:15:48.370916Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=21 elapsed=8.52753825s\n2026-04-22T16:15:48.371084Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames\n2026-04-22T16:15:49.801978Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 1.6MB → 0.3MB (5.7x), 9 JPEGs deleted\n2026-04-22T16:15:51.456711Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.4MB (4.1x), 10 JPEGs deleted\n2026-04-22T16:16:39.820921Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:16:40.258041Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:16:42.604047Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4659444575687776884, trigger=visual_change)\n2026-04-22T16:16:44.729225Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:16:45.395942Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:16:48.031036Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:16:53.808716Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:16:57.947511Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:16:58.661906Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:17:00.203848Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:17:00.510442Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:17:10.932565Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:17:13.262897Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:17:16.009682Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:17:16.360136Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:17:18.987777Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:17:19.385866Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:17:22.098836Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:17:22.469613Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:17:45.084378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T16:17:45.488587Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T16:17:46.265772Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T16:17:50.794900Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T16:17:51.193853Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T16:17:56.183149Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T16:17:56.903285Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T16:18:02.302062Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2014082630808116476, trigger=click)\n2026-04-22T16:19:28.148117Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7767962928162902459, trigger=visual_change)\n2026-04-22T16:19:30.526236Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7767962928162902459, trigger=click)\n2026-04-22T16:19:31.195837Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7767962928162902459, trigger=click)\n2026-04-22T16:19:33.715299Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7767962928162902459, trigger=click)\n2026-04-22T16:19:34.357828Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7767962928162902459, trigger=click)\n2026-04-22T16:19:35.020610Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7767962928162902459, trigger=click)\n2026-04-22T16:19:35.698451Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7767962928162902459, trigger=click)\n2026-04-22T16:20:53.732098Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=2.258795792s\n2026-04-22T16:20:53.732443Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-22T16:20:54.463494Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 1.6MB → 0.3MB (5.7x), 9 JPEGs deleted\n2026-04-22T16:20:55.529460Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 2.5MB → 1.1MB (2.3x), 11 JPEGs deleted\n2026-04-22T16:24:20.510070Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2383132637107085157, trigger=click)\n2026-04-22T16:24:27.782475Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1404306881477617387, trigger=click)\n2026-04-22T16:24:44.481677Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6805760601486189718, trigger=click)\n2026-04-22T16:25:13.403567Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=666355421012968666, trigger=click)\n2026-04-22T16:26:01.606241Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=32 elapsed=6.054129542s\n2026-04-22T16:26:01.608081Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 32 eligible frames\n2026-04-22T16:26:04.408527Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.5MB → 0.3MB (8.7x), 14 JPEGs deleted\n2026-04-22T16:26:09.345870Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 3.9MB → 2.5MB (1.6x), 16 JPEGs deleted\n2026-04-22T16:31:16.523778Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=48 elapsed=6.261290959s\n2026-04-22T16:31:16.523889Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 48 eligible frames\n2026-04-22T16:31:18.062354Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 4.1MB → 0.5MB (9.1x), 23 JPEGs deleted\n2026-04-22T16:31:19.733335Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 6.0MB → 1.6MB (3.8x), 23 JPEGs deleted\n2026-04-22T16:35:14.998679Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-930197057256512338, trigger=click)\n2026-04-22T16:35:28.307910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T16:35:30.218730Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T16:35:50.703840Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4332103135047682933, trigger=visual_change)\n2026-04-22T16:35:52.711832Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4332103135047682933, trigger=click)\n2026-04-22T16:35:53.307064Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4332103135047682933, trigger=visual_change)\n2026-04-22T16:36:26.222531Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=53 elapsed=6.476373125s\n2026-04-22T16:36:26.222663Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 53 eligible frames\n2026-04-22T16:36:28.058618Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 3.4MB → 1.1MB (3.1x), 27 JPEGs deleted\n2026-04-22T16:36:29.824864Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 6.2MB → 0.7MB (8.9x), 24 JPEGs deleted\n2026-04-22T16:38:27.295549Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4399336884068833789, trigger=click)\n2026-04-22T16:38:31.082408Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4399336884068833789, trigger=click)\n2026-04-22T16:40:46.732079Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4399336884068833789, trigger=visual_change)\n2026-04-22T16:40:50.641593Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4399336884068833789, trigger=click)\n2026-04-22T16:40:51.044794Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4399336884068833789, trigger=click)\n2026-04-22T16:40:55.679492Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4399336884068833789, trigger=click)\n2026-04-22T16:40:56.491807Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4399336884068833789, trigger=click)\n2026-04-22T16:41:32.562032Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=29 elapsed=2.600218041s\n2026-04-22T16:41:32.562136Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 29 eligible frames\n2026-04-22T16:41:33.652619Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 1.3MB → 0.2MB (6.4x), 14 JPEGs deleted\n2026-04-22T16:41:35.202361Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 3.3MB → 0.5MB (7.0x), 13 JPEGs deleted\n2026-04-22T16:46:38.330333Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=32 elapsed=3.117707958s\n2026-04-22T16:46:38.330439Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 32 eligible frames\n2026-04-22T16:46:39.948332Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 1.3MB → 0.1MB (9.1x), 14 JPEGs deleted\n2026-04-22T16:46:41.506017Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 4.0MB → 1.2MB (3.3x), 16 JPEGs deleted\n2026-04-22T16:51:48.131482Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=23 elapsed=6.613640791s\n2026-04-22T16:51:48.132937Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 23 eligible frames\n2026-04-22T16:51:49.003952Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.0MB → 0.1MB (8.7x), 11 JPEGs deleted\n2026-04-22T16:51:50.053842Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.0MB → 0.7MB (2.7x), 10 JPEGs deleted\n2026-04-22T16:52:34.780923Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)\n2026-04-22T16:52:48.863893Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=app_switch, monitor=1) — DB pool may be saturated\n2026-04-22T16:52:48.863900Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=app_switch, monitor=2) — DB pool may be saturated\n2026-04-22T16:53:01.610713Z INFO sck_rs::stream_manager: recreating stream for display 1 (resolution change)\n2026-04-22T16:53:29.988978Z INFO sck_rs::stream_manager: recreating stream for display 2 (resolution change)\n2026-04-22T16:56:56.495427Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=6.425245416s\n2026-04-22T16:56:56.495542Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-22T16:56:57.336306Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.9MB → 0.1MB (7.9x), 10 JPEGs deleted\n2026-04-22T16:56:58.175049Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.9MB → 0.3MB (6.3x), 10 JPEGs deleted\n2026-04-22T17:01:58.685859Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-22T17:01:59.473339Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.9MB → 0.1MB (8.0x), 10 JPEGs deleted\n2026-04-22T17:02:00.310277Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.9MB → 0.3MB (6.3x), 10 JPEGs deleted\n2026-04-22T17:07:01.945755Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=4 elapsed=1.626160375s\n2026-04-22T17:07:01.945847Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 4 eligible frames\n2026-04-22T17:07:02.187343Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 1 frames, 0.1MB → 0.1MB (1.0x), 1 JPEGs deleted\n2026-04-22T17:07:02.450702Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 1 frames, 0.2MB → 0.2MB (0.8x), 1 JPEGs deleted\n2026-04-22T17:12:06.874189Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=2 elapsed=4.3861715s\n2026-04-22T17:12:06.874452Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-22T17:17:13.193100Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=6.294200125s\n2026-04-22T17:20:07.541995Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)\n2026-04-22T17:20:07.630953Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 1\n2026-04-22T17:20:14.084721Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-22T17:20:14.480434Z INFO screenpipe_engine::event_driven_capture: monitor 1 capture recovered after 1 consecutive errors\n2026-04-22T17:20:15.608548Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-22T17:20:16.850029Z INFO screenpipe_engine::event_driven_capture: monitor 2 capture recovered after 1 consecutive errors\n2026-04-22T17:20:59.606795Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=353611364339833193, trigger=visual_change)\n2026-04-22T17:21:05.782785Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6518006199864472489, trigger=click)\n2026-04-22T17:21:48.543394Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6518006199864472489, trigger=click)\n2026-04-22T17:21:52.452327Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6518006199864472489, trigger=click)\n2026-04-22T17:22:24.575958Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=11.371497042s\n2026-04-22T17:27:29.081900Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=4.457444667s\n2026-04-22T17:32:30.295309Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 20 eligible frames\n2026-04-22T17:32:30.964048Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 7 frames, 0.7MB → 0.1MB (5.8x), 7 JPEGs deleted\n2026-04-22T17:32:32.430798Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.9MB → 0.8MB (3.6x), 13 JPEGs deleted\n2026-04-22T17:37:36.325676Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=24 elapsed=3.882934833s\n2026-04-22T17:37:36.326088Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 24 eligible frames\n2026-04-22T17:37:37.732598Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.9MB → 0.1MB (8.1x), 10 JPEGs deleted\n2026-04-22T17:37:38.875813Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.5MB → 0.9MB (2.7x), 12 JPEGs deleted\n2026-04-22T17:42:43.122610Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=28 elapsed=4.232872583s\n2026-04-22T17:42:43.122797Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames\n2026-04-22T17:42:44.139661Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.0MB → 0.2MB (6.5x), 11 JPEGs deleted\n2026-04-22T17:42:45.850747Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 3.1MB → 1.5MB (2.1x), 15 JPEGs deleted\n2026-04-22T17:42:57.144176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5398018417063851890, trigger=click)\n2026-04-22T17:42:57.653834Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5398018417063851890, trigger=click)\n2026-04-22T17:43:28.190643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7326608657648522043, trigger=click)\n2026-04-22T17:43:30.037343Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7326608657648522043, trigger=visual_change)\n2026-04-22T17:44:17.081083Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=900127091433810136, trigger=click)\n2026-04-22T17:44:17.605660Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=900127091433810136, trigger=click)\n2026-04-22T17:45:37.216031Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=900127091433810136, trigger=visual_change)\n2026-04-22T17:47:22.339709Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=900127091433810136, trigger=visual_change)\n2026-04-22T17:47:28.305597Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=900127091433810136, trigger=click)\n2026-04-22T17:47:29.056879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=900127091433810136, trigger=click)\n2026-04-22T17:47:52.285649Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=900127091433810136, trigger=visual_change)\n2026-04-22T17:47:53.496727Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=42 elapsed=7.316425834s\n2026-04-22T17:47:53.496837Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 42 eligible frames\n2026-04-22T17:47:54.629113Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 1.5MB → 0.1MB (12.5x), 16 JPEGs deleted\n2026-04-22T17:47:56.497927Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 5.4MB → 1.6MB (3.4x), 24 JPEGs deleted\n2026-04-22T17:49:23.365540Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7724578834627729847, trigger=click)\n2026-04-22T17:53:02.690403Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=27 elapsed=6.179264s\n2026-04-22T17:53:02.690738Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 27 eligible frames\n2026-04-22T17:53:03.556672Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.2MB → 0.1MB (10.3x), 13 JPEGs deleted\n2026-04-22T17:53:05.211208Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.5MB → 0.6MB (4.0x), 12 JPEGs deleted\n2026-04-22T17:57:40.568162Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1851379926418959813, trigger=click)\n2026-04-22T17:57:41.079468Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1851379926418959813, trigger=click)\n2026-04-22T17:58:10.456601Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=45 elapsed=4.691370125s\n2026-04-22T17:58:10.457220Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 45 eligible frames\n2026-04-22T17:58:12.041940Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 2.1MB → 0.2MB (11.4x), 22 JPEGs deleted\n2026-04-22T17:58:14.351810Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.8MB → 2.2MB (1.8x), 21 JPEGs deleted\n2026-04-22T17:58:21.350110Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1851379926418959813, trigger=click)\n2026-04-22T17:58:21.948643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1851379926418959813, trigger=click)\n2026-04-22T18:03:16.198465Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=44 elapsed=1.833842375s\n2026-04-22T18:03:16.198578Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 44 eligible frames\n2026-04-22T18:03:18.139382Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 2.0MB → 0.1MB (16.1x), 21 JPEGs deleted\n2026-04-22T18:03:19.618803Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.5MB → 1.5MB (2.4x), 21 JPEGs deleted\n2026-04-22T18:06:58.395218Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7639883349033148478, trigger=click)\n2026-04-22T18:06:58.897470Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7639883349033148478, trigger=click)\n2026-04-22T18:07:42.474566Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=607162597309748765, trigger=click)\n2026-04-22T18:08:27.382204Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=28 elapsed=7.750844334s\n2026-04-22T18:08:27.382491Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames\n2026-04-22T18:08:29.032220Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.2MB → 0.1MB (10.4x), 13 JPEGs deleted\n2026-04-22T18:08:30.573314Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.7MB → 0.6MB (4.2x), 13 JPEGs deleted\n2026-04-22T18:13:38.096494Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=20 elapsed=6.760223375s\n2026-04-22T18:13:38.099584Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 20 eligible frames\n2026-04-22T18:13:38.806766Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 0.8MB → 0.1MB (7.4x), 9 JPEGs deleted\n2026-04-22T18:13:39.606462Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 1.9MB → 0.5MB (3.8x), 9 JPEGs deleted\n2026-04-22T18:18:41.943065Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=45 elapsed=2.325026709s\n2026-04-22T18:18:41.943417Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 45 eligible frames\n2026-04-22T18:18:43.289962Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 2.0MB → 0.1MB (16.7x), 21 JPEGs deleted\n2026-04-22T18:18:45.689764Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 4.4MB → 1.3MB (3.4x), 22 JPEGs deleted\n2026-04-22T18:18:54.020334Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6726632078176380015, trigger=click)\n2026-04-22T18:18:54.540347Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6726632078176380015, trigger=click)\n2026-04-22T18:18:55.737423Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6726632078176380015, trigger=click)\n2026-04-22T18:18:56.477423Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6726632078176380015, trigger=click)\n2026-04-22T18:20:28.510789Z WARN sqlx::query: summary=\"PRAGMA wal_checkpoint(TRUNCATE)\" db.statement=\"\" rows_affected=0 rows_returned=1 elapsed=5.273706125s\n2026-04-22T18:20:28.511954Z WARN screenpipe_db::db: wal checkpoint: busy (could not truncate), 3177 pages in WAL\n2026-04-22T18:20:28.562400Z WARN sqlx::query: summary=\"BEGIN IMMEDIATE\" db.statement=\"\" rows_affected=1 rows_returned=0 elapsed=2.291890708s\n2026-04-22T18:23:52.302822Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=31 elapsed=6.325649833s\n2026-04-22T18:23:52.304330Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 31 eligible frames\n2026-04-22T18:23:53.163590Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 1.1MB → 0.1MB (9.9x), 12 JPEGs deleted\n2026-04-22T18:23:55.277698Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.4MB → 1.6MB (2.2x), 17 JPEGs deleted\n2026-04-22T18:28:56.007322Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 35 eligible frames\n2026-04-22T18:28:57.403360Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.7MB → 1.5MB (1.9x), 16 JPEGs deleted\n2026-04-22T18:28:58.752838Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.9MB → 0.8MB (3.6x), 17 JPEGs deleted\n2026-04-22T18:34:01.165384Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=41 elapsed=2.400307625s\n2026-04-22T18:34:01.165480Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 41 eligible frames\n2026-04-22T18:34:02.291139Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.7MB → 0.8MB (3.5x), 15 JPEGs deleted\n2026-04-22T18:34:04.197399Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.2MB → 1.7MB (2.4x), 24 JPEGs deleted\n2026-04-22T18:35:56.027919Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5884937538005636030, trigger=visual_change)\n2026-04-22T18:37:55.284482Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-439807993867665328, trigger=visual_change)\n2026-04-22T18:39:08.660187Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=4.451587125s\n2026-04-22T18:39:08.660278Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-22T18:39:09.493828Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.5MB → 0.5MB (3.1x), 10 JPEGs deleted\n2026-04-22T18:39:10.349740Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.1MB → 0.5MB (4.3x), 10 JPEGs deleted\n2026-04-22T18:43:06.355073Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3304493437592891639, trigger=click)\n2026-04-22T18:43:23.219621Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6603898485603033537, trigger=click)\n2026-04-22T18:44:11.899645Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=21 elapsed=1.53441375s\n2026-04-22T18:44:11.900197Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames\n2026-04-22T18:44:12.802039Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 1.1MB → 0.2MB (6.3x), 9 JPEGs deleted\n2026-04-22T18:44:14.694466Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.1MB → 0.3MB (5.9x), 10 JPEGs deleted\n2026-04-22T18:45:14.778135Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6664853592767636193, trigger=click)\n2026-04-22T18:46:36.923697Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1791249548195440516, trigger=visual_change)\n2026-04-22T18:49:18.625635Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=46 elapsed=3.900838541s\n2026-04-22T18:49:18.625996Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 46 eligible frames\n2026-04-22T18:49:19.640722Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 1.8MB → 0.2MB (10.4x), 15 JPEGs deleted\n2026-04-22T18:49:23.038596Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 5.2MB → 2.1MB (2.4x), 29 JPEGs deleted\n2026-04-22T18:50:34.997361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=visual_change)\n2026-04-22T18:50:39.846829Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:50:43.731899Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:20.200945Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=visual_change)\n2026-04-22T18:51:23.144927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:23.976040Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:27.176876Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:28.227317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:31.555085Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:32.274042Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:35.352114Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:37.306495Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=visual_change)\n2026-04-22T18:52:02.049971Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=visual_change)\n2026-04-22T18:52:09.690330Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=visual_change)\n2026-04-22T18:52:11.530065Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:52:12.090300Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:52:22.885838Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6951480031607957362, trigger=visual_change)\n2026-04-22T18:52:58.986955Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7031607293039132919, trigger=click)\n2026-04-22T18:53:47.690375Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3992755350865402319, trigger=visual_change)\n2026-04-22T18:54:25.328228Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=52 elapsed=2.277973417s\n2026-04-22T18:54:25.328316Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 52 eligible frames\n2026-04-22T18:54:26.661506Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 2.6MB → 0.2MB (11.0x), 22 JPEGs deleted\n2026-04-22T18:54:28.982139Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 4.3MB → 1.1MB (3.8x), 28 JPEGs deleted\n2026-04-22T18:54:44.142044Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3992755350865402319, trigger=visual_change)\n2026-04-22T18:55:01.465747Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2556650532703180759, trigger=click)\n2026-04-22T18:55:02.524314Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2556650532703180759, trigger=click)\n2026-04-22T18:55:35.312048Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3149441378543601087, trigger=visual_change)\n2026-04-22T18:55:55.086761Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3149441378543601087, trigger=click)\n2026-04-22T18:55:56.919853Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3149441378543601087, trigger=visual_change)\n2026-04-22T18:56:05.807170Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7595806992634662117, trigger=visual_change)\n2026-04-22T18:56:12.303927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7595806992634662117, trigger=visual_change)\n2026-04-22T18:56:58.093656Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2070714172482892625, trigger=visual_change)\n2026-04-22T18:57:00.459010Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2070714172482892625, trigger=visual_change)\n2026-04-22T18:57:03.809894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2070714172482892625, trigger=visual_change)\n2026-04-22T18:58:04.259354Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7284778144726625723, trigger=visual_change)\n2026-04-22T18:58:07.302007Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7284778144726625723, trigger=visual_change)\n2026-04-22T18:58:10.443744Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7284778144726625723, trigger=visual_change)\n2026-04-22T18:58:40.416893Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6313361147559934277, trigger=click)\n2026-04-22T18:58:59.229391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)\n2026-04-22T18:59:10.795801Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)\n2026-04-22T18:59:15.904155Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)\n2026-04-22T18:59:30.308258Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=46 elapsed=1.303054333s\n2026-04-22T18:59:30.308485Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 46 eligible frames\n2026-04-22T18:59:31.535859Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 2.4MB → 0.3MB (7.5x), 20 JPEGs deleted\n2026-04-22T18:59:33.536283Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 3.8MB → 1.3MB (3.0x), 24 JPEGs deleted\n2026-04-22T18:59:39.897203Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)\n2026-04-22T18:59:43.593017Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-71227342056343983, trigger=visual_change)\n2026-04-22T18:59:55.722135Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)\n2026-04-22T19:00:00.394304Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)\n2026-04-22T19:00:27.869871Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2710856207947507007, trigger=visual_change)\n2026-04-22T19:01:54.992910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6986338393283794423, trigger=visual_change)\n2026-04-22T19:02:13.568012Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6986338393283794423, trigger=visual_change)\n2026-04-22T19:02:16.092275Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6986338393283794423, trigger=visual_change)\n2026-04-22T19:03:04.479425Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7704375629034044835, trigger=visual_change)\n2026-04-22T19:03:35.287830Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2375149456869027114, trigger=visual_change)\n2026-04-22T19:03:41.021583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2375149456869027114, trigger=visual_change)\n2026-04-22T19:03:48.485601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6234474271212752005, trigger=visual_change)\n2026-04-22T19:04:35.737525Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=82 elapsed=2.188209209s\n2026-04-22T19:04:35.737670Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 82 eligible frames\n2026-04-22T19:04:38.209886Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3880005638520398709, trigger=click)\n2026-04-22T19:04:38.478674Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 4.8MB → 1.0MB (4.9x), 39 JPEGs deleted\n2026-04-22T19:04:42.074270Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 41 frames, 7.5MB → 3.6MB (2.1x), 41 JPEGs deleted\n2026-04-22T19:04:55.094599Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-635344842894947589, trigger=visual_change)\n2026-04-22T19:05:20.336216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)\n2026-04-22T19:05:54.388487Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)\n2026-04-22T19:05:57.299176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)\n2026-04-22T19:05:59.949506Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)\n2026-04-22T19:06:25.531964Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5957740084085463727, trigger=visual_change)\n2026-04-22T19:06:50.090567Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6422724880219484653, trigger=visual_change)\n2026-04-22T19:07:22.963169Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2531925023067266044, trigger=click)\n2026-04-22T19:07:24.045648Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2531925023067266044, trigger=click)\n2026-04-22T19:07:27.834546Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2085088366939909076, trigger=click)\n2026-04-22T19:07:28.381522Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2085088366939909076, trigger=click)\n2026-04-22T19:08:34.175493Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3061313113729352595, trigger=click)\n2026-04-22T19:09:42.454765Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 91 eligible frames\n2026-04-22T19:09:45.816541Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 5.7MB → 2.4MB (2.3x), 32 JPEGs deleted\n2026-04-22T19:09:50.140975Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 57 frames, 7.8MB → 2.3MB (3.4x), 57 JPEGs deleted\n2026-04-22T19:10:13.441594Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=click)\n2026-04-22T19:10:18.830768Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)\n2026-04-22T19:10:21.842287Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)\n2026-04-22T19:10:28.187487Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5292492680570276501, trigger=click)\n^C2026-04-22T19:10:32.957264Z INFO screenpipe: received ctrl+c, initiating shutdown\n2026-04-22T19:10:32.958125Z INFO screenpipe: stopping UI event capture\n2026-04-22T19:10:32.958201Z INFO screenpipe: received shutdown signal for VisionManager\n2026-04-22T19:10:32.958212Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker shutting down\n2026-04-22T19:10:32.958217Z INFO screenpipe_engine::meeting_detector: meeting v2: shutdown received, exiting detection loop\n2026-04-22T19:10:32.958646Z INFO screenpipe_engine::vision_manager::manager: Shutting down VisionManager\n2026-04-22T19:10:32.958661Z INFO screenpipe_engine::vision_manager::manager: Stopping VisionManager\n2026-04-22T19:10:32.958669Z INFO screenpipe_engine::vision_manager::manager: Stopping vision recording for monitor 2\n2026-04-22T19:10:32.958804Z INFO screenpipe_engine::vision_manager::manager: Stopping vision recording for monitor 1\n\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ 2026-04-22T19:10:33.158623Z INFO screenpipe_engine::ui_recorder: UI recording session ended: e7729066-2ab4-4bf0-9d48-0c9790a4ee79\n2026-04-22T19:10:33.159581Z INFO screenpipe: shutdown complete\n\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-stop\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-status\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ st-start\nzsh: command not found: st-start\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-start\ndetected hardware tier: Mid\nwarning: parakeet is not supported on this platform, using whisper-tiny instead\n2026-04-23T09:12:59.282987Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store\nchecking permissions...\n screen recording: ok\n accessibility: ok\n2026-04-23T09:12:59.350556Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6\n2026-04-23T09:13:00.537715Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor\n2026-04-23T09:13:00.539247Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)\n2026-04-23T09:13:00.539704Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)\n2026-04-23T09:13:00.580622Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true\n2026-04-23T09:13:00.580688Z INFO screenpipe: meeting detector enabled — independent of transcription mode\n2026-04-23T09:13:00.580873Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)\n2026-04-23T09:13:00.581042Z INFO screenpipe: API server listening on 127.0.0.1:3030 (localhost only)\n2026-04-23T09:13:00.581050Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key\n2026-04-23T09:13:00.580937Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)\n2026-04-23T09:13:00.581202Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager\n2026-04-23T09:13:00.599105Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-23T09:13:00.607481Z INFO screenpipe_core::pipes: loaded pipe: day-recap\n2026-04-23T09:13:00.608248Z INFO screenpipe_core::pipes: loaded pipe: standup-update\n2026-04-23T09:13:00.608416Z INFO screenpipe_core::pipes: loaded pipe: ai-habits\n2026-04-23T09:13:00.608706Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown\n2026-04-23T09:13:00.608849Z INFO screenpipe_core::pipes: loaded pipe: video-export\n2026-04-23T09:13:00.609337Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary\n2026-04-23T09:13:00.609353Z INFO screenpipe_core::pipes: loaded 6 pipes from \"/Users/lukas/.screenpipe/pipes\"\n\n\n\n _ \n __________________ ___ ____ ____ (_____ ___ \n / ___/ ___/ ___/ _ \\/ _ \\/ __ \\ / __ \\/ / __ \\/ _ \\\n (__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/\n/____/\\___/_/ \\___/\\___/_/ /_/ / .___/_/ .___/\\___/ \n /_/ /_/ \n\n\n\npower AI by everything you've seen, said or heard\nopen source | runs locally | developer friendly\n\n\n┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ true │\n│ vision disabled │ false │\n│ pause on DRM content │ false │\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n│ ignored windows │ [\"Boosteroid\"] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n│ api auth │ enabled │\n2026-04-23T09:13:00.610149Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n2026-04-23T09:13:00.614023Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n│ encrypt secrets │ disabled │\n│ retention days │ 14 │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ id: 1 │\n│ │ id: 2 │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ disabled │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-23T09:13:00.626925Z INFO screenpipe: starting UI event capture\n2026-04-23T09:13:00.644081Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-23T09:13:00.659604Z INFO screenpipe_engine::ui_recorder: UI recording session started: 64e213bd-3690-487f-90be-4e8348040416\n2026-04-23T09:13:00.659568Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-23T09:13:00.659937Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-22 06:13:00.659935 UTC to 2026-04-23 06:13:00.659935 UTC)\n2026-04-23T09:13:00.660681Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-23T09:13:00.671031Z INFO screenpipe_engine::server: Server listening on 127.0.0.1:3030\n2026-04-23T09:13:00.676357Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-23T09:13:02.822346Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-23T09:13:02.822390Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-23T09:13:02.822429Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-23T09:13:03.612915Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-23T09:13:03.612969Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-23T09:13:03.612981Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)\n2026-04-23T09:13:03.612988Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)\n2026-04-23T09:13:03.613032Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-23T09:13:04.172201Z WARN sqlx::query: summary=\"SELECT f.id, f.timestamp, f.offset_index, …\" db.statement=\"\\n\\nSELECT\\n f.id,\\n f.timestamp,\\n f.offset_index,\\n COALESCE(\\n SUBSTR(f.full_text, 1, 200),\\n SUBSTR(f.accessibility_text, 1, 200),\\n (\\n SELECT\\n SUBSTR(ot.text, 1, 200)\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as text,\\n COALESCE(\\n f.app_name,\\n (\\n SELECT\\n ot.app_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as app_name,\\n COALESCE(\\n f.window_name,\\n (\\n SELECT\\n ot.window_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as window_name,\\n COALESCE(vc.device_name, f.device_name) as screen_device,\\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\\n COALESCE(vc.fps, 0.033) as chunk_fps,\\n f.browser_url,\\n f.machine_id\\nFROM\\n frames f\\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\\nWHERE\\n f.timestamp >= ?1\\n AND f.timestamp <= ?2\\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\\nORDER BY\\n f.timestamp DESC,\\n f.offset_index DESC\\nLIMIT\\n 10000\\n\" rows_affected=0 rows_returned=4305 elapsed=3.511492208s\n2026-04-23T09:13:04.183200Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 4304 frame entries, coverage from 2026-04-22 06:13:00.659935 UTC\n2026-04-23T09:13:07.349282Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.12291667,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.12708333,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.24583334,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.25,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"✳ Build full day activity summary from Screenpipe (claude)","depth":2,"bounds":{"left":0.36875,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.37291667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.49166667,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.49583334,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.6145833,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.61875,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.7375,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.7416667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"ec2-user@ip-10-30-159-186:~ (-zsh)","depth":2,"bounds":{"left":0.86041665,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.8645833,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.9548611,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"screenpipe\"","depth":1,"bounds":{"left":0.47083333,"top":0.033333335,"width":0.058333334,"height":0.017777778},"role_description":"text"}]...
|
-3135016752489222522
|
914697014260106619
|
manual
|
accessibility
|
NULL
|
2026-04-22T13:53:01.899060Z INFO sck_rs::stream_m 2026-04-22T13:53:01.899060Z INFO sck_rs::stream_manager: recreating stream for display 2 (resolution change)
2026-04-22T13:53:24.588928Z INFO sck_rs::stream_manager: recreating stream for display 1 (resolution change)
2026-04-22T13:54:45.480269Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)
2026-04-22T13:54:45.525295Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2
2026-04-22T13:54:47.277567Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)
2026-04-22T13:54:47.557900Z WARN screenpipe_engine::event_driven_capture: skipping capture: lock screen app 'loginwindow' on monitor 2
2026-04-22T13:54:50.517321Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)
2026-04-22T13:54:50.531527Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2
2026-04-22T13:54:50.539783Z INFO sck_rs::stream_manager: stopped 1 persistent stream(s)
2026-04-22T13:54:51.633834Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)
2026-04-22T13:54:57.215619Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)
2026-04-22T13:54:57.475388Z WARN screenpipe_engine::event_driven_capture: skipping capture: lock screen app 'loginwindow' on monitor 1
2026-04-22T13:55:00.526322Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)
2026-04-22T13:55:00.545282Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2
2026-04-22T13:55:01.132848Z INFO sck_rs::stream_manager: stopped 2 persistent stream(s)
2026-04-22T13:55:02.005737Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)
2026-04-22T13:55:02.633821Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)
2026-04-22T13:55:19.838192Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3145826437395305149, trigger=click)
2026-04-22T13:55:20.300634Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3145826437395305149, trigger=click)
2026-04-22T13:55:21.567188Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3145826437395305149, trigger=click)
2026-04-22T13:55:42.189258Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=38 elapsed=6.884820208s
2026-04-22T13:55:42.189981Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 38 eligible frames
2026-04-22T13:55:43.595617Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.1MB → 0.2MB (11.9x), 16 JPEGs deleted
2026-04-22T13:55:46.392329Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.1MB → 1.1MB (3.6x), 20 JPEGs deleted
2026-04-22T13:55:56.140186Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:55:57.408560Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:58:03.696726Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:58:06.390518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:58:08.300896Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:58:08.718730Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:58:09.912001Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:58:10.311583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:58:13.273546Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=visual_change)
2026-04-22T13:58:19.346181Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=visual_change)
2026-04-22T13:58:58.360554Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:58:58.786340Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:59:04.430986Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:59:04.893282Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:59:45.902049Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:59:46.348987Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:59:48.470706Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:59:48.898805Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:59:54.274180Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:59:56.495414Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)
2026-04-22T14:00:02.522746Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)
2026-04-22T14:00:35.856416Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6212304827203743747, trigger=click)
2026-04-22T14:00:44.303637Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6212304827203743747, trigger=visual_change)
2026-04-22T14:00:55.518274Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=22 elapsed=9.118070709s
2026-04-22T14:00:55.518433Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames
2026-04-22T14:00:57.099120Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.3MB → 0.2MB (7.7x), 10 JPEGs deleted
2026-04-22T14:00:58.767986Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.2MB → 0.4MB (6.0x), 10 JPEGs deleted
2026-04-22T14:04:15.220880Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3837731717837980920, trigger=visual_change)
2026-04-22T14:05:28.069620Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1051548329161768346, trigger=click)
2026-04-22T14:05:28.937013Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1051548329161768346, trigger=click)
2026-04-22T14:06:00.164534Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=16 elapsed=1.199258208s
2026-04-22T14:06:00.164673Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 16 eligible frames
2026-04-22T14:06:02.024968Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 7 frames, 0.9MB → 0.2MB (5.3x), 7 JPEGs deleted
2026-04-22T14:06:05.188088Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 7 frames, 1.5MB → 0.7MB (2.2x), 7 JPEGs deleted
2026-04-22T14:06:46.071139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)
2026-04-22T14:06:54.570039Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)
2026-04-22T14:10:11.311868Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)
2026-04-22T14:10:11.803732Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)
2026-04-22T14:10:14.694406Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)
2026-04-22T14:10:15.147426Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)
2026-04-22T14:10:20.551057Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)
2026-04-22T14:10:21.045391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)
2026-04-22T14:10:22.951330Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)
2026-04-22T14:10:23.467707Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)
2026-04-22T14:10:30.780582Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)
2026-04-22T14:10:31.189747Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)
2026-04-22T14:11:11.060150Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=27 elapsed=4.548210084s
2026-04-22T14:11:11.060281Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 27 eligible frames
2026-04-22T14:11:12.404803Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.4MB → 0.2MB (8.3x), 11 JPEGs deleted
2026-04-22T14:11:14.840042Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.7MB → 0.9MB (3.1x), 14 JPEGs deleted
2026-04-22T14:13:35.976326Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4968702094796127351, trigger=click)
2026-04-22T14:14:34.729623Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4357453572186956917, trigger=click)
2026-04-22T14:14:35.105620Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4357453572186956917, trigger=click)
2026-04-22T14:14:42.802189Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3105240340990619874, trigger=visual_change)
2026-04-22T14:15:50.965557Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3105240340990619874, trigger=click)
2026-04-22T14:16:12.161692Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6479516063853776409, trigger=click)
2026-04-22T14:16:16.153590Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=48 elapsed=1.32668825s
2026-04-22T14:16:16.155403Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 48 eligible frames
2026-04-22T14:16:18.705225Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 5.0MB → 0.8MB (5.9x), 20 JPEGs deleted
2026-04-22T14:16:23.744196Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.4MB → 1.3MB (3.4x), 26 JPEGs deleted
2026-04-22T14:16:41.068116Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1903229694032021789, trigger=click)
2026-04-22T14:19:15.519118Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4529195482775946524, trigger=click)
2026-04-22T14:19:22.366746Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)
2026-04-22T14:19:30.208098Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)
2026-04-22T14:19:33.496128Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)
2026-04-22T14:19:38.751833Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6094503686615299639, trigger=click)
2026-04-22T14:19:41.173256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6094503686615299639, trigger=visual_change)
2026-04-22T14:19:42.912499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6094503686615299639, trigger=click)
2026-04-22T14:19:46.351486Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6094503686615299639, trigger=click)
2026-04-22T14:19:59.152409Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4952826635443255860, trigger=click)
2026-04-22T14:20:01.518389Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4952826635443255860, trigger=click)
2026-04-22T14:20:08.061611Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3675157249828056010, trigger=click)
2026-04-22T14:21:28.984120Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=25 elapsed=4.855522625s
2026-04-22T14:21:28.985458Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames
2026-04-22T14:21:30.346636Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 2.5MB → 0.5MB (5.1x), 11 JPEGs deleted
2026-04-22T14:21:32.359178Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.6MB → 0.6MB (4.3x), 12 JPEGs deleted
2026-04-22T14:23:49.639071Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=click)
2026-04-22T14:24:02.782818Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=click)
2026-04-22T14:24:15.622633Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)
2026-04-22T14:26:10.392401Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)
2026-04-22T14:26:10.788712Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=click)
2026-04-22T14:26:12.799270Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)
2026-04-22T14:26:13.219651Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=visual_change)
2026-04-22T14:26:38.732555Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=36 elapsed=6.323619459s
2026-04-22T14:26:38.732888Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 36 eligible frames
2026-04-22T14:26:39.785513Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 1.2MB → 0.1MB (9.0x), 16 JPEGs deleted
2026-04-22T14:26:41.678236Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 4.1MB → 1.7MB (2.4x), 18 JPEGs deleted
2026-04-22T14:26:51.433436Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=click)
2026-04-22T14:26:52.304457Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)
2026-04-22T14:26:54.907598Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=click)
2026-04-22T14:26:55.381293Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)
2026-04-22T14:27:00.185936Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)
2026-04-22T14:27:01.160650Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=visual_change)
2026-04-22T14:27:24.714027Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)
2026-04-22T14:27:25.724851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=visual_change)
2026-04-22T14:27:26.222818Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)
2026-04-22T14:27:27.755899Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=click)
2026-04-22T14:27:28.274266Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)
2026-04-22T14:30:08.479659Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1095112307124202838, trigger=click)
2026-04-22T14:31:42.105262Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 38 eligible frames
2026-04-22T14:31:43.197127Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.5MB → 1.0MB (2.5x), 15 JPEGs deleted
2026-04-22T14:31:45.195588Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 4.3MB → 1.6MB (2.6x), 21 JPEGs deleted
2026-04-22T14:32:02.263422Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3223987862501414590, trigger=click)
2026-04-22T14:32:02.639431Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3223987862501414590, trigger=click)
2026-04-22T14:32:19.705800Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1632013320203273627, trigger=click)
2026-04-22T14:32:56.235240Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=257019738165452929, trigger=click)
2026-04-22T14:32:59.969256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=257019738165452929, trigger=click)
2026-04-22T14:33:03.317113Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=257019738165452929, trigger=click)
2026-04-22T14:33:06.798109Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=257019738165452929, trigger=click)
2026-04-22T14:33:17.093100Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3308965711270161120, trigger=click)
2026-04-22T14:33:17.486074Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3308965711270161120, trigger=click)
2026-04-22T14:33:22.565377Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3308965711270161120, trigger=click)
2026-04-22T14:33:23.216523Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3308965711270161120, trigger=click)
2026-04-22T14:33:35.842809Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=435352143489435154, trigger=click)
2026-04-22T14:36:49.764156Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=34 elapsed=4.516637708s
2026-04-22T14:36:49.764263Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 34 eligible frames
2026-04-22T14:36:51.311395Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.0MB → 0.7MB (4.6x), 17 JPEGs deleted
2026-04-22T14:36:52.531817Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 3.0MB → 1.1MB (2.6x), 15 JPEGs deleted
2026-04-22T14:37:28.108242Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=435352143489435154, trigger=click)
2026-04-22T14:37:28.485856Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=435352143489435154, trigger=click)
2026-04-22T14:37:58.316339Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3668856246823891896, trigger=click)
2026-04-22T14:38:23.725006Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3668856246823891896, trigger=visual_change)
2026-04-22T14:38:38.826158Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3668856246823891896, trigger=click)
2026-04-22T14:39:14.985595Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2152077026286113228, trigger=click)
2026-04-22T14:39:41.085287Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2152077026286113228, trigger=click)
2026-04-22T14:39:48.325144Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2152077026286113228, trigger=click)
2026-04-22T14:39:54.042692Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2152077026286113228, trigger=click)
2026-04-22T14:40:56.876512Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2152077026286113228, trigger=click)
2026-04-22T14:41:03.035671Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2747516377298098397, trigger=click)
2026-04-22T14:41:21.141064Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2710026494434395739, trigger=click)
2026-04-22T14:41:34.026128Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2710026494434395739, trigger=click)
2026-04-22T14:41:59.929978Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=38 elapsed=5.991404375s
2026-04-22T14:41:59.930138Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 38 eligible frames
2026-04-22T14:42:03.556178Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.2MB → 0.3MB (11.1x), 18 JPEGs deleted
2026-04-22T14:42:06.257184Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.3MB → 1.1MB (2.9x), 18 JPEGs deleted
2026-04-22T14:42:25.479048Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8568923258494843591, trigger=click)
2026-04-22T14:42:43.658087Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1714642257969983896, trigger=click)
2026-04-22T14:42:44.150668Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1714642257969983896, trigger=click)
2026-04-22T14:42:46.347489Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1714642257969983896, trigger=click)
2026-04-22T14:42:46.976364Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1714642257969983896, trigger=click)
2026-04-22T14:42:54.146640Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8318058469467001879, trigger=click)
2026-04-22T14:43:16.054664Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2746665666832385858, trigger=click)
2026-04-22T14:43:27.592095Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2746665666832385858, trigger=click)
2026-04-22T14:43:28.904486Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2746665666832385858, trigger=click)
2026-04-22T14:43:33.115401Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2746665666832385858, trigger=click)
2026-04-22T14:43:33.548704Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2746665666832385858, trigger=click)
2026-04-22T14:43:34.528422Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2746665666832385858, trigger=click)
2026-04-22T14:43:35.101040Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2746665666832385858, trigger=click)
2026-04-22T14:43:42.182992Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2746665666832385858, trigger=click)
2026-04-22T14:43:44.575989Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2746665666832385858, trigger=click)
2026-04-22T14:44:46.365793Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6679194177618586363, trigger=click)
2026-04-22T14:47:14.092894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6118025119517316583, trigger=click)
2026-04-22T14:47:14.453307Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6118025119517316583, trigger=click)
2026-04-22T14:47:15.216109Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=38 elapsed=7.876438917s
2026-04-22T14:47:15.216433Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 38 eligible frames
2026-04-22T14:47:16.019464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6118025119517316583, trigger=click)
2026-04-22T14:47:16.544950Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6118025119517316583, trigger=click)
2026-04-22T14:47:16.818898Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.2MB → 0.4MB (7.6x), 18 JPEGs deleted
2026-04-22T14:47:18.385927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6118025119517316583, trigger=click)
2026-04-22T14:47:18.475181Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.3MB → 1.2MB (2.9x), 18 JPEGs deleted
2026-04-22T14:47:19.386449Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6118025119517316583, trigger=click)
2026-04-22T14:47:20.087965Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6118025119517316583, trigger=click)
2026-04-22T14:47:59.950079Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2150958068002330087, trigger=click)
2026-04-22T14:48:01.449829Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2150958068002330087, trigger=click)
2026-04-22T14:48:09.502190Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2150958068002330087, trigger=visual_change)
2026-04-22T14:48:34.932290Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8599886822383806507, trigger=click)
2026-04-22T14:48:44.486878Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3332409860485365312, trigger=click)
2026-04-22T14:48:45.527964Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3332409860485365312, trigger=click)
2026-04-22T14:49:38.888769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=472424603195027632, trigger=click)
2026-04-22T14:49:45.417282Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=472424603195027632, trigger=click)
2026-04-22T14:49:47.792067Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=472424603195027632, trigger=click)
2026-04-22T14:50:00.945819Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4843648253222399128, trigger=click)
2026-04-22T14:50:02.876637Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4843648253222399128, trigger=click)
2026-04-22T14:52:21.989580Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=42 elapsed=3.480045958s
2026-04-22T14:52:21.990045Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 42 eligible frames
2026-04-22T14:52:23.358528Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 3.9MB → 0.4MB (8.7x), 22 JPEGs deleted
2026-04-22T14:52:24.693261Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.5MB → 1.3MB (2.6x), 18 JPEGs deleted
2026-04-22T14:53:02.184100Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8042719790331908666, trigger=click)
2026-04-22T14:53:02.666973Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8042719790331908666, trigger=click)
2026-04-22T14:53:44.356357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8042719790331908666, trigger=click)
2026-04-22T14:53:44.849679Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8042719790331908666, trigger=click)
2026-04-22T14:57:28.770189Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=52 elapsed=4.063771166s
2026-04-22T14:57:28.770886Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 52 eligible frames
2026-04-22T14:57:31.445523Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.2MB → 0.5MB (7.8x), 25 JPEGs deleted
2026-04-22T14:57:35.130193Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.0MB → 2.4MB (2.1x), 25 JPEGs deleted
2026-04-22T15:00:02.686939Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Slack, signals=2)
2026-04-22T15:00:08.703872Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Slack, signals=2, browser=false)
2026-04-22T15:00:08.707794Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=8, app=Slack, title=None)
2026-04-22T15:00:09.697915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)
2026-04-22T15:00:25.820838Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)
2026-04-22T15:00:30.742889Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)
2026-04-22T15:00:35.932789Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)
2026-04-22T15:00:38.982205Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)
2026-04-22T15:00:42.607387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)
2026-04-22T15:00:45.252062Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)
2026-04-22T15:00:48.655907Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)
2026-04-22T15:00:54.706686Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)
2026-04-22T15:02:07.634898Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)
2026-04-22T15:02:43.352910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=click)
2026-04-22T15:02:43.752028Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=57 elapsed=8.590900375s
2026-04-22T15:02:43.756244Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 57 eligible frames
2026-04-22T15:02:46.231236Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 4.8MB → 2.0MB (2.4x), 29 JPEGs deleted
2026-04-22T15:02:46.417502Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)
2026-04-22T15:02:49.039329Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.9MB → 1.8MB (2.8x), 26 JPEGs deleted
2026-04-22T15:02:50.878563Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)
2026-04-22T15:02:53.936710Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)
2026-04-22T15:02:56.977078Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)
2026-04-22T15:03:19.571166Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)
2026-04-22T15:03:26.066470Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)
2026-04-22T15:03:31.414066Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)
2026-04-22T15:04:07.475454Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)
2026-04-22T15:04:10.605093Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)
2026-04-22T15:04:13.512293Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)
2026-04-22T15:04:16.529473Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)
2026-04-22T15:04:53.720517Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)
2026-04-22T15:04:55.658228Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)
2026-04-22T15:05:01.010633Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)
2026-04-22T15:05:03.051970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)
2026-04-22T15:05:06.145567Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)
2026-04-22T15:05:29.469376Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=797137072065105312, trigger=click)
2026-04-22T15:05:55.103542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-116347373995830011, trigger=click)
2026-04-22T15:05:55.539275Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-116347373995830011, trigger=click)
2026-04-22T15:06:41.788384Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-116347373995830011, trigger=click)
2026-04-22T15:06:42.204175Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-116347373995830011, trigger=click)
2026-04-22T15:07:03.704733Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Slack, id=8, grace=30s)
2026-04-22T15:07:39.449504Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Idle (timeout=30s, app=Slack, id=8)
2026-04-22T15:07:39.915187Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting ended (id=8)
2026-04-22T15:07:49.691643Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 27 eligible frames
2026-04-22T15:07:51.650549Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.3MB → 0.3MB (7.0x), 13 JPEGs deleted
2026-04-22T15:07:53.582709Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.6MB → 0.9MB (3.0x), 12 JPEGs deleted
2026-04-22T15:07:53.988144Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1303595353837004202, trigger=click)
2026-04-22T15:09:49.799139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4589403011857874475, trigger=click)
2026-04-22T15:09:52.656133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4589403011857874475, trigger=click)
2026-04-22T15:13:00.784316Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=44 elapsed=7.176940333s
2026-04-22T15:13:00.784701Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 44 eligible frames
2026-04-22T15:13:06.141480Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 3.7MB → 1.4MB (2.7x), 23 JPEGs deleted
2026-04-22T15:13:09.087116Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 5.4MB → 1.4MB (4.0x), 19 JPEGs deleted
2026-04-22T15:18:11.493152Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=37 elapsed=2.382042209s
2026-04-22T15:18:11.496118Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 37 eligible frames
2026-04-22T15:18:15.568523Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.0MB → 1.3MB (2.3x), 18 JPEGs deleted
2026-04-22T15:18:18.268870Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 5.0MB → 1.2MB (4.0x), 17 JPEGs deleted
2026-04-22T15:21:12.476028Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3813526692250337476, trigger=visual_change)
2026-04-22T15:23:28.271759Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=63 elapsed=9.511646458s
2026-04-22T15:23:28.282671Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 63 eligible frames
2026-04-22T15:23:34.267737Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 6.8MB → 3.5MB (1.9x), 31 JPEGs deleted
2026-04-22T15:23:38.696265Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 5.7MB → 1.2MB (4.7x), 30 JPEGs deleted
2026-04-22T15:25:18.297937Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)
2026-04-22T15:25:21.238617Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)
2026-04-22T15:25:58.399479Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6869659017523937306, trigger=click)
2026-04-22T15:26:00.086631Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6869659017523937306, trigger=click)
2026-04-22T15:26:01.910963Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6869659017523937306, trigger=visual_change)
2026-04-22T15:26:02.357258Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6869659017523937306, trigger=visual_change)
2026-04-22T15:26:04.744325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6869659017523937306, trigger=click)
2026-04-22T15:26:05.686404Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6869659017523937306, trigger=visual_change)
2026-04-22T15:26:07.341872Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6869659017523937306, trigger=click)
2026-04-22T15:26:07.841961Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6869659017523937306, trigger=click)
2026-04-22T15:27:08.518409Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=click)
2026-04-22T15:27:14.348556Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)
2026-04-22T15:27:19.567077Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)
2026-04-22T15:27:23.928137Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6983242470914211958, trigger=click)
2026-04-22T15:27:25.430871Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=click)
2026-04-22T15:27:32.704396Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6983242470914211958, trigger=click)
2026-04-22T15:27:39.006433Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)
2026-04-22T15:27:43.060533Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)
2026-04-22T15:27:45.902424Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)
2026-04-22T15:27:53.866025Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)
2026-04-22T15:27:56.855542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)
2026-04-22T15:28:06.329802Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)
2026-04-22T15:28:16.947758Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=click)
2026-04-22T15:28:17.639628Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6983242470914211958, trigger=click)
2026-04-22T15:28:19.702614Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)
2026-04-22T15:28:22.257394Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=click)
2026-04-22T15:28:22.756941Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6983242470914211958, trigger=click)
2026-04-22T15:28:25.405205Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1...
|
NULL
|
|
72775
|
NULL
|
0
|
2026-04-22T16:10:31.524876+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-22/1776 /Users/lukas/.screenpipe/data/data/2026-04-22/1776874231524_m1.jpg...
|
iTerm2
|
screenpipe"
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
/Users/lukas/.screenpipe/data/data/2026-04-22/1776 /Users/lukas/.screenpipe/data/data/2026-04-22/1776874231524_m1.jpg...
|
2026-04-22T13:19:55.671519Z WARN sqlx::query: sum 2026-04-22T13:19:55.671519Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=39 elapsed=3.08657075s
2026-04-22T13:19:55.671902Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 39 eligible frames
2026-04-22T13:19:57.020448Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 1.8MB → 0.1MB (13.4x), 17 JPEGs deleted
2026-04-22T13:19:58.458501Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.1MB → 1.3MB (3.2x), 20 JPEGs deleted
2026-04-22T13:20:08.378551Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=222404244777562774, trigger=click)
2026-04-22T13:20:08.861155Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=222404244777562774, trigger=click)
2026-04-22T13:20:10.352247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=222404244777562774, trigger=click)
2026-04-22T13:20:10.803201Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=222404244777562774, trigger=click)
2026-04-22T13:20:11.855309Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=222404244777562774, trigger=click)
2026-04-22T13:20:12.281855Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=222404244777562774, trigger=click)
2026-04-22T13:20:13.355000Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=222404244777562774, trigger=click)
2026-04-22T13:20:13.804941Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=222404244777562774, trigger=click)
2026-04-22T13:20:15.301012Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=222404244777562774, trigger=click)
2026-04-22T13:20:20.197413Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=222404244777562774, trigger=click)
2026-04-22T13:20:20.712382Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=222404244777562774, trigger=click)
2026-04-22T13:20:22.303881Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=222404244777562774, trigger=click)
2026-04-22T13:20:22.884710Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=222404244777562774, trigger=click)
2026-04-22T13:20:43.644742Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=222404244777562774, trigger=click)
2026-04-22T13:20:44.679647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=222404244777562774, trigger=click)
2026-04-22T13:20:45.622427Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=222404244777562774, trigger=click)
2026-04-22T13:20:47.002982Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=222404244777562774, trigger=click)
2026-04-22T13:20:47.417225Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=222404244777562774, trigger=click)
2026-04-22T13:20:49.161921Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=222404244777562774, trigger=click)
2026-04-22T13:20:49.582273Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=222404244777562774, trigger=click)
2026-04-22T13:20:52.197321Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=222404244777562774, trigger=click)
2026-04-22T13:20:52.639161Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=222404244777562774, trigger=click)
2026-04-22T13:20:53.994198Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=222404244777562774, trigger=click)
2026-04-22T13:20:54.437303Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=222404244777562774, trigger=click)
2026-04-22T13:20:55.293311Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=222404244777562774, trigger=click)
2026-04-22T13:24:09.469601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7830271896102614867, trigger=visual_change)
2026-04-22T13:25:01.128691Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=29 elapsed=2.659465833s
2026-04-22T13:25:01.128905Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 29 eligible frames
2026-04-22T13:25:02.338181Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.9MB → 1.3MB (2.3x), 14 JPEGs deleted
2026-04-22T13:25:03.917779Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.6MB → 0.7MB (4.0x), 13 JPEGs deleted
2026-04-22T13:25:25.711086Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7830271896102614867, trigger=click)
2026-04-22T13:25:38.501428Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7830271896102614867, trigger=click)
2026-04-22T13:25:39.325116Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7830271896102614867, trigger=click)
2026-04-22T13:25:40.695499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7830271896102614867, trigger=visual_change)
2026-04-22T13:25:41.684971Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7830271896102614867, trigger=click)
2026-04-22T13:27:07.409923Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=145943473150562318, trigger=click)
2026-04-22T13:29:09.989451Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6490322878595129417, trigger=click)
2026-04-22T13:29:10.403227Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6490322878595129417, trigger=click)
2026-04-22T13:29:11.440509Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6490322878595129417, trigger=click)
2026-04-22T13:29:11.832029Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6490322878595129417, trigger=click)
2026-04-22T13:29:14.479339Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6490322878595129417, trigger=click)
2026-04-22T13:29:14.877899Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6490322878595129417, trigger=click)
2026-04-22T13:29:18.456279Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6490322878595129417, trigger=click)
2026-04-22T13:29:18.853811Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6490322878595129417, trigger=click)
2026-04-22T13:29:22.452889Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6490322878595129417, trigger=click)
2026-04-22T13:29:22.844666Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6490322878595129417, trigger=click)
2026-04-22T13:29:26.423665Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6490322878595129417, trigger=click)
2026-04-22T13:29:26.833837Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6490322878595129417, trigger=click)
2026-04-22T13:30:07.840247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6490322878595129417, trigger=click)
2026-04-22T13:30:07.940843Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=29 elapsed=3.783649958s
2026-04-22T13:30:07.941532Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 29 eligible frames
2026-04-22T13:30:09.855355Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 3.2MB → 0.5MB (6.5x), 12 JPEGs deleted
2026-04-22T13:30:12.349250Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 3.1MB → 1.0MB (3.2x), 15 JPEGs deleted
2026-04-22T13:31:05.798294Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6490322878595129417, trigger=click)
2026-04-22T13:31:10.385195Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6490322878595129417, trigger=click)
2026-04-22T13:31:13.596372Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6490322878595129417, trigger=click)
2026-04-22T13:31:31.481734Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5391652991859791910, trigger=click)
2026-04-22T13:31:31.915675Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5391652991859791910, trigger=click)
2026-04-22T13:31:33.707391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5391652991859791910, trigger=click)
2026-04-22T13:31:34.117666Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5391652991859791910, trigger=click)
2026-04-22T13:31:46.023684Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=145943473150562318, trigger=click)
2026-04-22T13:31:59.210705Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7507356825848564524, trigger=click)
2026-04-22T13:32:24.674518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=145943473150562318, trigger=click)
2026-04-22T13:32:29.888930Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=145943473150562318, trigger=click)
2026-04-22T13:32:34.487353Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7507356825848564524, trigger=click)
2026-04-22T13:32:35.015232Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7507356825848564524, trigger=click)
2026-04-22T13:32:37.665435Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7507356825848564524, trigger=click)
2026-04-22T13:32:38.057156Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7507356825848564524, trigger=click)
2026-04-22T13:33:05.332928Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4953570497443904268, trigger=click)
2026-04-22T13:33:05.738911Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4953570497443904268, trigger=click)
2026-04-22T13:33:07.188550Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4953570497443904268, trigger=click)
2026-04-22T13:33:07.697205Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4953570497443904268, trigger=click)
2026-04-22T13:33:09.258757Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4953570497443904268, trigger=click)
2026-04-22T13:33:09.686230Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4953570497443904268, trigger=click)
2026-04-22T13:33:10.892071Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4953570497443904268, trigger=click)
2026-04-22T13:33:11.409971Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4953570497443904268, trigger=click)
2026-04-22T13:35:14.758402Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=25 elapsed=2.341405708s
2026-04-22T13:35:14.758534Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames
2026-04-22T13:35:15.700348Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 2.9MB → 0.4MB (6.6x), 11 JPEGs deleted
2026-04-22T13:35:16.746240Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.4MB → 0.8MB (3.1x), 12 JPEGs deleted
2026-04-22T13:35:59.046373Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4953570497443904268, trigger=click)
2026-04-22T13:35:59.522844Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4953570497443904268, trigger=click)
2026-04-22T13:36:23.593886Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=145943473150562318, trigger=click)
2026-04-22T13:36:30.043441Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=145943473150562318, trigger=click)
2026-04-22T13:37:10.935180Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=145943473150562318, trigger=click)
2026-04-22T13:37:15.205481Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=145943473150562318, trigger=click)
2026-04-22T13:37:15.615311Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=145943473150562318, trigger=click)
2026-04-22T13:37:16.671476Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=145943473150562318, trigger=click)
2026-04-22T13:37:17.130125Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=145943473150562318, trigger=click)
2026-04-22T13:37:31.765784Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7624650583167905543, trigger=click)
2026-04-22T13:37:32.277572Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7624650583167905543, trigger=click)
2026-04-22T13:37:55.000582Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3854152757192935136, trigger=click)
2026-04-22T13:37:55.579842Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3854152757192935136, trigger=click)
2026-04-22T13:40:19.993679Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=52 elapsed=3.236573834s
2026-04-22T13:40:19.993781Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 52 eligible frames
2026-04-22T13:40:21.547011Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 3.3MB → 0.3MB (12.9x), 25 JPEGs deleted
2026-04-22T13:40:24.246314Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.0MB → 1.9MB (2.6x), 25 JPEGs deleted
2026-04-22T13:40:49.345857Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3420346335485635575, trigger=click)
2026-04-22T13:40:49.761464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3420346335485635575, trigger=click)
2026-04-22T13:40:58.483984Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2699137710669661720, trigger=click)
2026-04-22T13:41:18.585300Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1051548329161768346, trigger=click)
2026-04-22T13:41:49.631129Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=visual_change)
2026-04-22T13:42:09.336358Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:42:22.318303Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5651691911195313325, trigger=click)
2026-04-22T13:45:24.809909Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 52 eligible frames
2026-04-22T13:45:26.334982Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 3.2MB → 0.2MB (18.4x), 25 JPEGs deleted
2026-04-22T13:45:28.494791Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.2MB → 1.8MB (2.9x), 25 JPEGs deleted
2026-04-22T13:50:32.678587Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=33 elapsed=4.217422542s
2026-04-22T13:50:32.678957Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 33 eligible frames
2026-04-22T13:50:33.731344Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.1MB → 0.2MB (12.1x), 16 JPEGs deleted
2026-04-22T13:50:35.297399Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 3.2MB → 0.9MB (3.6x), 15 JPEGs deleted
2026-04-22T13:52:40.144788Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)
2026-04-22T13:53:01.899060Z INFO sck_rs::stream_manager: recreating stream for display 2 (resolution change)
2026-04-22T13:53:24.588928Z INFO sck_rs::stream_manager: recreating stream for display 1 (resolution change)
2026-04-22T13:54:45.480269Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)
2026-04-22T13:54:45.525295Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2
2026-04-22T13:54:47.277567Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)
2026-04-22T13:54:47.557900Z WARN screenpipe_engine::event_driven_capture: skipping capture: lock screen app 'loginwindow' on monitor 2
2026-04-22T13:54:50.517321Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)
2026-04-22T13:54:50.531527Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2
2026-04-22T13:54:50.539783Z INFO sck_rs::stream_manager: stopped 1 persistent stream(s)
2026-04-22T13:54:51.633834Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)
2026-04-22T13:54:57.215619Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)
2026-04-22T13:54:57.475388Z WARN screenpipe_engine::event_driven_capture: skipping capture: lock screen app 'loginwindow' on monitor 1
2026-04-22T13:55:00.526322Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)
2026-04-22T13:55:00.545282Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2
2026-04-22T13:55:01.132848Z INFO sck_rs::stream_manager: stopped 2 persistent stream(s)
2026-04-22T13:55:02.005737Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)
2026-04-22T13:55:02.633821Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)
2026-04-22T13:55:19.838192Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3145826437395305149, trigger=click)
2026-04-22T13:55:20.300634Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3145826437395305149, trigger=click)
2026-04-22T13:55:21.567188Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3145826437395305149, trigger=click)
2026-04-22T13:55:42.189258Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=38 elapsed=6.884820208s
2026-04-22T13:55:42.189981Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 38 eligible frames
2026-04-22T13:55:43.595617Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.1MB → 0.2MB (11.9x), 16 JPEGs deleted
2026-04-22T13:55:46.392329Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.1MB → 1.1MB (3.6x), 20 JPEGs deleted
2026-04-22T13:55:56.140186Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:55:57.408560Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:58:03.696726Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:58:06.390518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:58:08.300896Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:58:08.718730Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:58:09.912001Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:58:10.311583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:58:13.273546Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=visual_change)
2026-04-22T13:58:19.346181Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=visual_change)
2026-04-22T13:58:58.360554Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:58:58.786340Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:59:04.430986Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:59:04.893282Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:59:45.902049Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:59:46.348987Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:59:48.470706Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:59:48.898805Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:59:54.274180Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:59:56.495414Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)
2026-04-22T14:00:02.522746Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)
2026-04-22T14:00:35.856416Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6212304827203743747, trigger=click)
2026-04-22T14:00:44.303637Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6212304827203743747, trigger=visual_change)
2026-04-22T14:00:55.518274Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=22 elapsed=9.118070709s
2026-04-22T14:00:55.518433Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames
2026-04-22T14:00:57.099120Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.3MB → 0.2MB (7.7x), 10 JPEGs deleted
2026-04-22T14:00:58.767986Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.2MB → 0.4MB (6.0x), 10 JPEGs deleted
2026-04-22T14:04:15.220880Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3837731717837980920, trigger=visual_change)
2026-04-22T14:05:28.069620Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1051548329161768346, trigger=click)
2026-04-22T14:05:28.937013Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1051548329161768346, trigger=click)
2026-04-22T14:06:00.164534Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=16 elapsed=1.199258208s
2026-04-22T14:06:00.164673Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 16 eligible frames
2026-04-22T14:06:02.024968Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 7 frames, 0.9MB → 0.2MB (5.3x), 7 JPEGs deleted
2026-04-22T14:06:05.188088Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 7 frames, 1.5MB → 0.7MB (2.2x), 7 JPEGs deleted
2026-04-22T14:06:46.071139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)
2026-04-22T14:06:54.570039Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)
2026-04-22T14:10:11.311868Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)
2026-04-22T14:10:11.803732Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)
2026-04-22T14:10:14.694406Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)
2026-04-22T14:10:15.147426Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)
2026-04-22T14:10:20.551057Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)
2026-04-22T14:10:21.045391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)
2026-04-22T14:10:22.951330Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)
2026-04-22T14:10:23.467707Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)
2026-04-22T14:10:30.780582Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)
2026-04-22T14:10:31.189747Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)
2026-04-22T14:11:11.060150Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=27 elapsed=4.548210084s
2026-04-22T14:11:11.060281Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 27 eligible frames
2026-04-22T14:11:12.404803Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.4MB → 0.2MB (8.3x), 11 JPEGs deleted
2026-04-22T14:11:14.840042Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.7MB → 0.9MB (3.1x), 14 JPEGs deleted
2026-04-22T14:13:35.976326Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4968702094796127351, trigger=click)
2026-04-22T14:14:34.729623Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4357453572186956917, trigger=click)
2026-04-22T14:14:35.105620Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4357453572186956917, trigger=click)
2026-04-22T14:14:42.802189Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3105240340990619874, trigger=visual_change)
2026-04-22T14:15:50.965557Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3105240340990619874, trigger=click)
2026-04-22T14:16:12.161692Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6479516063853776409, trigger=click)
2026-04-22T14:16:16.153590Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=48 elapsed=1.32668825s
2026-04-22T14:16:16.155403Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 48 eligible frames
2026-04-22T14:16:18.705225Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 5.0MB → 0.8MB (5.9x), 20 JPEGs deleted
2026-04-22T14:16:23.744196Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.4MB → 1.3MB (3.4x), 26 JPEGs deleted
2026-04-22T14:16:41.068116Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1903229694032021789, trigger=click)
2026-04-22T14:19:15.519118Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4529195482775946524, trigger=click)
2026-04-22T14:19:22.366746Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)
2026-04-22T14:19:30.208098Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)
2026-04-22T14:19:33.496128Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)
2026-04-22T14:19:38.751833Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6094503686615299639, trigger=click)
2026-04-22T14:19:41.173256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6094503686615299639, trigger=visual_change)
2026-04-22T14:19:42.912499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6094503686615299639, trigger=click)
2026-04-22T14:19:46.351486Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6094503686615299639, trigger=click)
2026-04-22T14:19:59.152409Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4952826635443255860, trigger=click)
2026-04-22T14:20:01.518389Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4952826635443255860, trigger=click)
2026-04-22T14:20:08.061611Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3675157249828056010, trigger=click)
2026-04-22T14:21:28.984120Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=25 elapsed=4.855522625s
2026-04-22T14:21:28.985458Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames
2026-04-22T14:21:30.346636Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 2.5MB → 0.5MB (5.1x), 11 JPEGs deleted
2026-04-22T14:21:32.359178Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.6MB → 0.6MB (4.3x), 12 JPEGs deleted
2026-04-22T14:23:49.639071Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=click)
2026-04-22T14:24:02.782818Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=click)
2026-04-22T14:24:15.622633Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)
2026-04-22T14:26:10.392401Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)
2026-04-22T14:26:10.788712Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=click)
2026-04-22T14:26:12.799270Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)
2026-04-22T14:26:13.219651Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=visual_change)
2026-04-22T14:26:38.732555Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=36 elapsed=6.323619459s
2026-04-22T14:26:38.732888Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 36 eligible frames
2026-04-22T14:26:39.785513Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 1.2MB → 0.1MB (9.0x), 16 JPEGs deleted
2026-04-22T14:26:41.678236Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 4.1MB → 1.7MB (2.4x), 18 JPEGs deleted
2026-04-22T14:26:51.433436Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=click)
2026-04-22T14:26:52.304457Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)
2026-04-22T14:26:54.907598Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=click)
2026-04-22T14:26:55.381293Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)
2026-04-22T14:27:00.185936Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)
2026-04-22T14:27:01.160650Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=visual_change)
2026-04-22T14:27:24.714027Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)
2026-04-22T14:27:25.724851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=visual_change)
2026-04-22T14:27:26.222818Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)
2026-04-22T14:27:27.755899Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=click)
2026-04-22T14:27:28.274266Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)
2026-04-22T14:30:08.479659Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1095112307124202838, trigger=click)
2026-04-22T14:31:42.105262Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 38 eligible frames
2026-04-22T14:31:43.197127Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.5MB → 1.0MB (2.5x), 15 JPEGs deleted
2026-04-22T14:31:45.195588Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 4.3MB → 1.6MB (2.6x), 21 JPEGs deleted
2026-04-22T14:32:02.263422Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3223987862501414590, trigger=click)
2026-04-22T14:32:02.639431Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3223987862501414590, trigger=click)
2026-04-22T14:32:19.705800Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1632013320203273627, trigger=click)
2026-04-22T14:32:56.235240Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=257019738165452929, trigger=click)
2026-04-22T14:32:59.969256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=257019738165452929, trigger=click)
2026-04-22T14:33:03.317113Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=257019738165452929, trigger=click)
2026-04-22T14:33:06.798109Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=257019738165452929, trigger=click)
2026-04-22T14:33:17.093100Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3308965711270161120, trigger=click)
2026-04-22T14:33:17.486074Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3308965711270161120, trigger=click)
2026-04-22T14:33:22.565377Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3308965711270161120, trigger=click)
2026-04-22T14:33:23.216523Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3308965711270161120, trigger=click)
2026-04-22T14:33:35.842809Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=435352143489435154, trigger=click)
2026-04-22T14:36:49.764156Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=34 elapsed=4.516637708s
2026-04-22T14:36:49.764263Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 34 eligible frames
2026-04-22T14:36:51.311395Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.0MB → 0.7MB (4.6x), 17 JPEGs deleted
2026-04-22T14:36:52.531817Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 3.0MB → 1.1MB (2.6x), 15 JPEGs deleted
2026-04-22T14:37:28.108242Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=435352143489435154, trigger=click)
2026-04-22T14:37:28.485856Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=435352143489435154, trigger=click)
2026-04-22T14:37:58.316339Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3668856246823891896, trigger=click)
2026-04-22T14:38:23.725006Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3668856246823891896, trigger=visual_change)
2026-04-22T14:38:38.826158Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3668856246823891896, trigger=click)
2026-04-22T14:39:14.985595Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2152077026286113228, trigger=click)
2026-04-22T14:39:41.085287Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2152077026286113228, trigger=click)
2026-04-22T14:39:48.325144Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2152077026286113228, trigger=click)
2026-04-22T14:39:54.042692Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2152077026286113228, trigger=click)
2026-04-22T14:40:56.876512Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2152077026286113228, trigger=click)
2026-04-22T14:41:03.035671Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2747516377298098397, trigger=click)
2026-04-22T14:41:21.141064Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2710026494434395739, trigger=click)
2026-04-22T14:41:34.026128Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2710026494434395739, trigger=click)
2026-04-22T14:41:59.929978Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=38 elapsed=5.991404375s
2026-04-22T14:41:59.930138Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 38 eligible frames
2026-04-22T14:42:03.556178Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.2MB → 0.3MB (11.1x), 18 JPEGs deleted
2026-04-22T14:42:06.257184Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.3MB → 1.1MB (2.9x), 18 JPEGs deleted
2026-04-22T14:42:25.479048Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8568923258494843591, trigger=click)
2026-04-22T14:42:43.658087Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1714642257969983896, trigger=click)
2026-04-22T14:42:44.150668Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1714642257969983896, trigger=click)
2026-04-22T14:42:46.347489Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1714642257969983896, trigger=click)
2026-04-22T14:42:46.976364Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1714642257969983896, trigger=click)
2026-04-22T14:42:54.146640Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8318058469467001879, trigger=click)
2026-04-22T14:43:16.054664Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2746665666832385858, trigger=click)
2026-04-22T14:43:27.592095Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2746665666832385858, trigger=click)
2026-04-22T14:43:28.904486Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2746665666832385858, trigger=click)
2026-04-22T14:43:33.115401Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2746665666832385858, trigger=click)
2026-04-22T14:43:33.548704Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2746665666832385858, trigger=click)
2026-04-22T14:43:34.528422Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2746665666832385858, trigger=click)
2026-04-22T14:43:35.101040Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2746665666832385858, trigger=click)
2026-04-22T14:43:42.182992Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2746665666832385858, trigger=click)
2026-04-22T14:43:44.575989Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2746665666832385858, trigger=click)
2026-04-22T14:44:46.365793Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6679194177618586363, trigger=click)
2026-04-22T14:47:14.092894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6118025119517316583, trigger=click)
2026-04-22T14:47:14.453307Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6118025119517316583, trigger=click)
2026-04-22T14:47:15.216109Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=38 elapsed=7.876438917s
2026-04-22T14:47:15.216433Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 38 eligible frames
2026-04-22T14:47:16.019464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6118025119517316583, trigger=click)
2026-04-22T14:47:16.544950Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6118025119517316583, trigger=click)
2026-04-22T14:47:16.818898Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.2MB → 0.4MB (7.6x), 18 JPEGs deleted
2026-04-22T14:47:18.385927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipp...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"2026-04-22T13:19:55.671519Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=39 elapsed=3.08657075s\n2026-04-22T13:19:55.671902Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 39 eligible frames\n2026-04-22T13:19:57.020448Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 1.8MB → 0.1MB (13.4x), 17 JPEGs deleted\n2026-04-22T13:19:58.458501Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.1MB → 1.3MB (3.2x), 20 JPEGs deleted\n2026-04-22T13:20:08.378551Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=222404244777562774, trigger=click)\n2026-04-22T13:20:08.861155Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=222404244777562774, trigger=click)\n2026-04-22T13:20:10.352247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=222404244777562774, trigger=click)\n2026-04-22T13:20:10.803201Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=222404244777562774, trigger=click)\n2026-04-22T13:20:11.855309Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=222404244777562774, trigger=click)\n2026-04-22T13:20:12.281855Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=222404244777562774, trigger=click)\n2026-04-22T13:20:13.355000Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=222404244777562774, trigger=click)\n2026-04-22T13:20:13.804941Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=222404244777562774, trigger=click)\n2026-04-22T13:20:15.301012Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=222404244777562774, trigger=click)\n2026-04-22T13:20:20.197413Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=222404244777562774, trigger=click)\n2026-04-22T13:20:20.712382Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=222404244777562774, trigger=click)\n2026-04-22T13:20:22.303881Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=222404244777562774, trigger=click)\n2026-04-22T13:20:22.884710Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=222404244777562774, trigger=click)\n2026-04-22T13:20:43.644742Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=222404244777562774, trigger=click)\n2026-04-22T13:20:44.679647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=222404244777562774, trigger=click)\n2026-04-22T13:20:45.622427Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=222404244777562774, trigger=click)\n2026-04-22T13:20:47.002982Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=222404244777562774, trigger=click)\n2026-04-22T13:20:47.417225Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=222404244777562774, trigger=click)\n2026-04-22T13:20:49.161921Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=222404244777562774, trigger=click)\n2026-04-22T13:20:49.582273Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=222404244777562774, trigger=click)\n2026-04-22T13:20:52.197321Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=222404244777562774, trigger=click)\n2026-04-22T13:20:52.639161Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=222404244777562774, trigger=click)\n2026-04-22T13:20:53.994198Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=222404244777562774, trigger=click)\n2026-04-22T13:20:54.437303Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=222404244777562774, trigger=click)\n2026-04-22T13:20:55.293311Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=222404244777562774, trigger=click)\n2026-04-22T13:24:09.469601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7830271896102614867, trigger=visual_change)\n2026-04-22T13:25:01.128691Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=29 elapsed=2.659465833s\n2026-04-22T13:25:01.128905Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 29 eligible frames\n2026-04-22T13:25:02.338181Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.9MB → 1.3MB (2.3x), 14 JPEGs deleted\n2026-04-22T13:25:03.917779Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.6MB → 0.7MB (4.0x), 13 JPEGs deleted\n2026-04-22T13:25:25.711086Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7830271896102614867, trigger=click)\n2026-04-22T13:25:38.501428Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7830271896102614867, trigger=click)\n2026-04-22T13:25:39.325116Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7830271896102614867, trigger=click)\n2026-04-22T13:25:40.695499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7830271896102614867, trigger=visual_change)\n2026-04-22T13:25:41.684971Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7830271896102614867, trigger=click)\n2026-04-22T13:27:07.409923Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=145943473150562318, trigger=click)\n2026-04-22T13:29:09.989451Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6490322878595129417, trigger=click)\n2026-04-22T13:29:10.403227Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6490322878595129417, trigger=click)\n2026-04-22T13:29:11.440509Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6490322878595129417, trigger=click)\n2026-04-22T13:29:11.832029Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6490322878595129417, trigger=click)\n2026-04-22T13:29:14.479339Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6490322878595129417, trigger=click)\n2026-04-22T13:29:14.877899Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6490322878595129417, trigger=click)\n2026-04-22T13:29:18.456279Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6490322878595129417, trigger=click)\n2026-04-22T13:29:18.853811Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6490322878595129417, trigger=click)\n2026-04-22T13:29:22.452889Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6490322878595129417, trigger=click)\n2026-04-22T13:29:22.844666Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6490322878595129417, trigger=click)\n2026-04-22T13:29:26.423665Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6490322878595129417, trigger=click)\n2026-04-22T13:29:26.833837Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6490322878595129417, trigger=click)\n2026-04-22T13:30:07.840247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6490322878595129417, trigger=click)\n2026-04-22T13:30:07.940843Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=29 elapsed=3.783649958s\n2026-04-22T13:30:07.941532Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 29 eligible frames\n2026-04-22T13:30:09.855355Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 3.2MB → 0.5MB (6.5x), 12 JPEGs deleted\n2026-04-22T13:30:12.349250Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 3.1MB → 1.0MB (3.2x), 15 JPEGs deleted\n2026-04-22T13:31:05.798294Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6490322878595129417, trigger=click)\n2026-04-22T13:31:10.385195Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6490322878595129417, trigger=click)\n2026-04-22T13:31:13.596372Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6490322878595129417, trigger=click)\n2026-04-22T13:31:31.481734Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5391652991859791910, trigger=click)\n2026-04-22T13:31:31.915675Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5391652991859791910, trigger=click)\n2026-04-22T13:31:33.707391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5391652991859791910, trigger=click)\n2026-04-22T13:31:34.117666Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5391652991859791910, trigger=click)\n2026-04-22T13:31:46.023684Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=145943473150562318, trigger=click)\n2026-04-22T13:31:59.210705Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7507356825848564524, trigger=click)\n2026-04-22T13:32:24.674518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=145943473150562318, trigger=click)\n2026-04-22T13:32:29.888930Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=145943473150562318, trigger=click)\n2026-04-22T13:32:34.487353Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7507356825848564524, trigger=click)\n2026-04-22T13:32:35.015232Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7507356825848564524, trigger=click)\n2026-04-22T13:32:37.665435Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7507356825848564524, trigger=click)\n2026-04-22T13:32:38.057156Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7507356825848564524, trigger=click)\n2026-04-22T13:33:05.332928Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4953570497443904268, trigger=click)\n2026-04-22T13:33:05.738911Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4953570497443904268, trigger=click)\n2026-04-22T13:33:07.188550Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4953570497443904268, trigger=click)\n2026-04-22T13:33:07.697205Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4953570497443904268, trigger=click)\n2026-04-22T13:33:09.258757Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4953570497443904268, trigger=click)\n2026-04-22T13:33:09.686230Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4953570497443904268, trigger=click)\n2026-04-22T13:33:10.892071Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4953570497443904268, trigger=click)\n2026-04-22T13:33:11.409971Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4953570497443904268, trigger=click)\n2026-04-22T13:35:14.758402Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=25 elapsed=2.341405708s\n2026-04-22T13:35:14.758534Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames\n2026-04-22T13:35:15.700348Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 2.9MB → 0.4MB (6.6x), 11 JPEGs deleted\n2026-04-22T13:35:16.746240Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.4MB → 0.8MB (3.1x), 12 JPEGs deleted\n2026-04-22T13:35:59.046373Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4953570497443904268, trigger=click)\n2026-04-22T13:35:59.522844Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4953570497443904268, trigger=click)\n2026-04-22T13:36:23.593886Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=145943473150562318, trigger=click)\n2026-04-22T13:36:30.043441Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=145943473150562318, trigger=click)\n2026-04-22T13:37:10.935180Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=145943473150562318, trigger=click)\n2026-04-22T13:37:15.205481Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=145943473150562318, trigger=click)\n2026-04-22T13:37:15.615311Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=145943473150562318, trigger=click)\n2026-04-22T13:37:16.671476Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=145943473150562318, trigger=click)\n2026-04-22T13:37:17.130125Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=145943473150562318, trigger=click)\n2026-04-22T13:37:31.765784Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7624650583167905543, trigger=click)\n2026-04-22T13:37:32.277572Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7624650583167905543, trigger=click)\n2026-04-22T13:37:55.000582Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3854152757192935136, trigger=click)\n2026-04-22T13:37:55.579842Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3854152757192935136, trigger=click)\n2026-04-22T13:40:19.993679Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=52 elapsed=3.236573834s\n2026-04-22T13:40:19.993781Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 52 eligible frames\n2026-04-22T13:40:21.547011Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 3.3MB → 0.3MB (12.9x), 25 JPEGs deleted\n2026-04-22T13:40:24.246314Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.0MB → 1.9MB (2.6x), 25 JPEGs deleted\n2026-04-22T13:40:49.345857Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3420346335485635575, trigger=click)\n2026-04-22T13:40:49.761464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3420346335485635575, trigger=click)\n2026-04-22T13:40:58.483984Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2699137710669661720, trigger=click)\n2026-04-22T13:41:18.585300Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1051548329161768346, trigger=click)\n2026-04-22T13:41:49.631129Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=visual_change)\n2026-04-22T13:42:09.336358Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:42:22.318303Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5651691911195313325, trigger=click)\n2026-04-22T13:45:24.809909Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 52 eligible frames\n2026-04-22T13:45:26.334982Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 3.2MB → 0.2MB (18.4x), 25 JPEGs deleted\n2026-04-22T13:45:28.494791Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.2MB → 1.8MB (2.9x), 25 JPEGs deleted\n2026-04-22T13:50:32.678587Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=33 elapsed=4.217422542s\n2026-04-22T13:50:32.678957Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 33 eligible frames\n2026-04-22T13:50:33.731344Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.1MB → 0.2MB (12.1x), 16 JPEGs deleted\n2026-04-22T13:50:35.297399Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 3.2MB → 0.9MB (3.6x), 15 JPEGs deleted\n2026-04-22T13:52:40.144788Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)\n2026-04-22T13:53:01.899060Z INFO sck_rs::stream_manager: recreating stream for display 2 (resolution change)\n2026-04-22T13:53:24.588928Z INFO sck_rs::stream_manager: recreating stream for display 1 (resolution change)\n2026-04-22T13:54:45.480269Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)\n2026-04-22T13:54:45.525295Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2\n2026-04-22T13:54:47.277567Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-22T13:54:47.557900Z WARN screenpipe_engine::event_driven_capture: skipping capture: lock screen app 'loginwindow' on monitor 2\n2026-04-22T13:54:50.517321Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)\n2026-04-22T13:54:50.531527Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2\n2026-04-22T13:54:50.539783Z INFO sck_rs::stream_manager: stopped 1 persistent stream(s)\n2026-04-22T13:54:51.633834Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-22T13:54:57.215619Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-22T13:54:57.475388Z WARN screenpipe_engine::event_driven_capture: skipping capture: lock screen app 'loginwindow' on monitor 1\n2026-04-22T13:55:00.526322Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)\n2026-04-22T13:55:00.545282Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2\n2026-04-22T13:55:01.132848Z INFO sck_rs::stream_manager: stopped 2 persistent stream(s)\n2026-04-22T13:55:02.005737Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-22T13:55:02.633821Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-22T13:55:19.838192Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3145826437395305149, trigger=click)\n2026-04-22T13:55:20.300634Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3145826437395305149, trigger=click)\n2026-04-22T13:55:21.567188Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3145826437395305149, trigger=click)\n2026-04-22T13:55:42.189258Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=38 elapsed=6.884820208s\n2026-04-22T13:55:42.189981Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 38 eligible frames\n2026-04-22T13:55:43.595617Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.1MB → 0.2MB (11.9x), 16 JPEGs deleted\n2026-04-22T13:55:46.392329Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.1MB → 1.1MB (3.6x), 20 JPEGs deleted\n2026-04-22T13:55:56.140186Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:55:57.408560Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:58:03.696726Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:58:06.390518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:58:08.300896Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:58:08.718730Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:58:09.912001Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:58:10.311583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:58:13.273546Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=visual_change)\n2026-04-22T13:58:19.346181Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=visual_change)\n2026-04-22T13:58:58.360554Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:58:58.786340Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:59:04.430986Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:59:04.893282Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:59:45.902049Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:59:46.348987Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:59:48.470706Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:59:48.898805Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:59:54.274180Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:59:56.495414Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)\n2026-04-22T14:00:02.522746Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)\n2026-04-22T14:00:35.856416Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6212304827203743747, trigger=click)\n2026-04-22T14:00:44.303637Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6212304827203743747, trigger=visual_change)\n2026-04-22T14:00:55.518274Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=9.118070709s\n2026-04-22T14:00:55.518433Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-22T14:00:57.099120Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.3MB → 0.2MB (7.7x), 10 JPEGs deleted\n2026-04-22T14:00:58.767986Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.2MB → 0.4MB (6.0x), 10 JPEGs deleted\n2026-04-22T14:04:15.220880Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3837731717837980920, trigger=visual_change)\n2026-04-22T14:05:28.069620Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1051548329161768346, trigger=click)\n2026-04-22T14:05:28.937013Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1051548329161768346, trigger=click)\n2026-04-22T14:06:00.164534Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=16 elapsed=1.199258208s\n2026-04-22T14:06:00.164673Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 16 eligible frames\n2026-04-22T14:06:02.024968Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 7 frames, 0.9MB → 0.2MB (5.3x), 7 JPEGs deleted\n2026-04-22T14:06:05.188088Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 7 frames, 1.5MB → 0.7MB (2.2x), 7 JPEGs deleted\n2026-04-22T14:06:46.071139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:06:54.570039Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:10:11.311868Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:10:11.803732Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:10:14.694406Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:10:15.147426Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:10:20.551057Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:10:21.045391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:10:22.951330Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:10:23.467707Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:10:30.780582Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:10:31.189747Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:11:11.060150Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=27 elapsed=4.548210084s\n2026-04-22T14:11:11.060281Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 27 eligible frames\n2026-04-22T14:11:12.404803Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.4MB → 0.2MB (8.3x), 11 JPEGs deleted\n2026-04-22T14:11:14.840042Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.7MB → 0.9MB (3.1x), 14 JPEGs deleted\n2026-04-22T14:13:35.976326Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4968702094796127351, trigger=click)\n2026-04-22T14:14:34.729623Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4357453572186956917, trigger=click)\n2026-04-22T14:14:35.105620Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4357453572186956917, trigger=click)\n2026-04-22T14:14:42.802189Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3105240340990619874, trigger=visual_change)\n2026-04-22T14:15:50.965557Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3105240340990619874, trigger=click)\n2026-04-22T14:16:12.161692Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6479516063853776409, trigger=click)\n2026-04-22T14:16:16.153590Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=48 elapsed=1.32668825s\n2026-04-22T14:16:16.155403Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 48 eligible frames\n2026-04-22T14:16:18.705225Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 5.0MB → 0.8MB (5.9x), 20 JPEGs deleted\n2026-04-22T14:16:23.744196Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.4MB → 1.3MB (3.4x), 26 JPEGs deleted\n2026-04-22T14:16:41.068116Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1903229694032021789, trigger=click)\n2026-04-22T14:19:15.519118Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4529195482775946524, trigger=click)\n2026-04-22T14:19:22.366746Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:19:30.208098Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:19:33.496128Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:19:38.751833Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6094503686615299639, trigger=click)\n2026-04-22T14:19:41.173256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6094503686615299639, trigger=visual_change)\n2026-04-22T14:19:42.912499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6094503686615299639, trigger=click)\n2026-04-22T14:19:46.351486Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6094503686615299639, trigger=click)\n2026-04-22T14:19:59.152409Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4952826635443255860, trigger=click)\n2026-04-22T14:20:01.518389Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4952826635443255860, trigger=click)\n2026-04-22T14:20:08.061611Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3675157249828056010, trigger=click)\n2026-04-22T14:21:28.984120Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=25 elapsed=4.855522625s\n2026-04-22T14:21:28.985458Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames\n2026-04-22T14:21:30.346636Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 2.5MB → 0.5MB (5.1x), 11 JPEGs deleted\n2026-04-22T14:21:32.359178Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.6MB → 0.6MB (4.3x), 12 JPEGs deleted\n2026-04-22T14:23:49.639071Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:24:02.782818Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:24:15.622633Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:26:10.392401Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:26:10.788712Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:26:12.799270Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:26:13.219651Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=visual_change)\n2026-04-22T14:26:38.732555Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=36 elapsed=6.323619459s\n2026-04-22T14:26:38.732888Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 36 eligible frames\n2026-04-22T14:26:39.785513Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 1.2MB → 0.1MB (9.0x), 16 JPEGs deleted\n2026-04-22T14:26:41.678236Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 4.1MB → 1.7MB (2.4x), 18 JPEGs deleted\n2026-04-22T14:26:51.433436Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:26:52.304457Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:26:54.907598Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:26:55.381293Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:27:00.185936Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:27:01.160650Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=visual_change)\n2026-04-22T14:27:24.714027Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:27:25.724851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=visual_change)\n2026-04-22T14:27:26.222818Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:27:27.755899Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:27:28.274266Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:30:08.479659Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1095112307124202838, trigger=click)\n2026-04-22T14:31:42.105262Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 38 eligible frames\n2026-04-22T14:31:43.197127Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.5MB → 1.0MB (2.5x), 15 JPEGs deleted\n2026-04-22T14:31:45.195588Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 4.3MB → 1.6MB (2.6x), 21 JPEGs deleted\n2026-04-22T14:32:02.263422Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3223987862501414590, trigger=click)\n2026-04-22T14:32:02.639431Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3223987862501414590, trigger=click)\n2026-04-22T14:32:19.705800Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1632013320203273627, trigger=click)\n2026-04-22T14:32:56.235240Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=257019738165452929, trigger=click)\n2026-04-22T14:32:59.969256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=257019738165452929, trigger=click)\n2026-04-22T14:33:03.317113Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=257019738165452929, trigger=click)\n2026-04-22T14:33:06.798109Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=257019738165452929, trigger=click)\n2026-04-22T14:33:17.093100Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3308965711270161120, trigger=click)\n2026-04-22T14:33:17.486074Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3308965711270161120, trigger=click)\n2026-04-22T14:33:22.565377Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3308965711270161120, trigger=click)\n2026-04-22T14:33:23.216523Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3308965711270161120, trigger=click)\n2026-04-22T14:33:35.842809Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=435352143489435154, trigger=click)\n2026-04-22T14:36:49.764156Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=34 elapsed=4.516637708s\n2026-04-22T14:36:49.764263Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 34 eligible frames\n2026-04-22T14:36:51.311395Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.0MB → 0.7MB (4.6x), 17 JPEGs deleted\n2026-04-22T14:36:52.531817Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 3.0MB → 1.1MB (2.6x), 15 JPEGs deleted\n2026-04-22T14:37:28.108242Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=435352143489435154, trigger=click)\n2026-04-22T14:37:28.485856Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=435352143489435154, trigger=click)\n2026-04-22T14:37:58.316339Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3668856246823891896, trigger=click)\n2026-04-22T14:38:23.725006Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3668856246823891896, trigger=visual_change)\n2026-04-22T14:38:38.826158Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3668856246823891896, trigger=click)\n2026-04-22T14:39:14.985595Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2152077026286113228, trigger=click)\n2026-04-22T14:39:41.085287Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2152077026286113228, trigger=click)\n2026-04-22T14:39:48.325144Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2152077026286113228, trigger=click)\n2026-04-22T14:39:54.042692Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2152077026286113228, trigger=click)\n2026-04-22T14:40:56.876512Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2152077026286113228, trigger=click)\n2026-04-22T14:41:03.035671Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2747516377298098397, trigger=click)\n2026-04-22T14:41:21.141064Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2710026494434395739, trigger=click)\n2026-04-22T14:41:34.026128Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2710026494434395739, trigger=click)\n2026-04-22T14:41:59.929978Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=38 elapsed=5.991404375s\n2026-04-22T14:41:59.930138Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 38 eligible frames\n2026-04-22T14:42:03.556178Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.2MB → 0.3MB (11.1x), 18 JPEGs deleted\n2026-04-22T14:42:06.257184Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.3MB → 1.1MB (2.9x), 18 JPEGs deleted\n2026-04-22T14:42:25.479048Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8568923258494843591, trigger=click)\n2026-04-22T14:42:43.658087Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1714642257969983896, trigger=click)\n2026-04-22T14:42:44.150668Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1714642257969983896, trigger=click)\n2026-04-22T14:42:46.347489Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1714642257969983896, trigger=click)\n2026-04-22T14:42:46.976364Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1714642257969983896, trigger=click)\n2026-04-22T14:42:54.146640Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8318058469467001879, trigger=click)\n2026-04-22T14:43:16.054664Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2746665666832385858, trigger=click)\n2026-04-22T14:43:27.592095Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2746665666832385858, trigger=click)\n2026-04-22T14:43:28.904486Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2746665666832385858, trigger=click)\n2026-04-22T14:43:33.115401Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2746665666832385858, trigger=click)\n2026-04-22T14:43:33.548704Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2746665666832385858, trigger=click)\n2026-04-22T14:43:34.528422Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2746665666832385858, trigger=click)\n2026-04-22T14:43:35.101040Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2746665666832385858, trigger=click)\n2026-04-22T14:43:42.182992Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2746665666832385858, trigger=click)\n2026-04-22T14:43:44.575989Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2746665666832385858, trigger=click)\n2026-04-22T14:44:46.365793Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6679194177618586363, trigger=click)\n2026-04-22T14:47:14.092894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6118025119517316583, trigger=click)\n2026-04-22T14:47:14.453307Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6118025119517316583, trigger=click)\n2026-04-22T14:47:15.216109Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=38 elapsed=7.876438917s\n2026-04-22T14:47:15.216433Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 38 eligible frames\n2026-04-22T14:47:16.019464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6118025119517316583, trigger=click)\n2026-04-22T14:47:16.544950Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6118025119517316583, trigger=click)\n2026-04-22T14:47:16.818898Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.2MB → 0.4MB (7.6x), 18 JPEGs deleted\n2026-04-22T14:47:18.385927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6118025119517316583, trigger=click)\n2026-04-22T14:47:18.475181Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.3MB → 1.2MB (2.9x), 18 JPEGs deleted\n2026-04-22T14:47:19.386449Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6118025119517316583, trigger=click)\n2026-04-22T14:47:20.087965Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6118025119517316583, trigger=click)\n2026-04-22T14:47:59.950079Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2150958068002330087, trigger=click)\n2026-04-22T14:48:01.449829Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2150958068002330087, trigger=click)\n2026-04-22T14:48:09.502190Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2150958068002330087, trigger=visual_change)\n2026-04-22T14:48:34.932290Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8599886822383806507, trigger=click)\n2026-04-22T14:48:44.486878Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3332409860485365312, trigger=click)\n2026-04-22T14:48:45.527964Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3332409860485365312, trigger=click)\n2026-04-22T14:49:38.888769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=472424603195027632, trigger=click)\n2026-04-22T14:49:45.417282Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=472424603195027632, trigger=click)\n2026-04-22T14:49:47.792067Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=472424603195027632, trigger=click)\n2026-04-22T14:50:00.945819Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4843648253222399128, trigger=click)\n2026-04-22T14:50:02.876637Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4843648253222399128, trigger=click)\n2026-04-22T14:52:21.989580Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=42 elapsed=3.480045958s\n2026-04-22T14:52:21.990045Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 42 eligible frames\n2026-04-22T14:52:23.358528Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 3.9MB → 0.4MB (8.7x), 22 JPEGs deleted\n2026-04-22T14:52:24.693261Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.5MB → 1.3MB (2.6x), 18 JPEGs deleted\n2026-04-22T14:53:02.184100Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8042719790331908666, trigger=click)\n2026-04-22T14:53:02.666973Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8042719790331908666, trigger=click)\n2026-04-22T14:53:44.356357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8042719790331908666, trigger=click)\n2026-04-22T14:53:44.849679Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8042719790331908666, trigger=click)\n2026-04-22T14:57:28.770189Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=52 elapsed=4.063771166s\n2026-04-22T14:57:28.770886Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 52 eligible frames\n2026-04-22T14:57:31.445523Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.2MB → 0.5MB (7.8x), 25 JPEGs deleted\n2026-04-22T14:57:35.130193Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.0MB → 2.4MB (2.1x), 25 JPEGs deleted\n2026-04-22T15:00:02.686939Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Slack, signals=2)\n2026-04-22T15:00:08.703872Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Slack, signals=2, browser=false)\n2026-04-22T15:00:08.707794Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=8, app=Slack, title=None)\n2026-04-22T15:00:09.697915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:00:25.820838Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:00:30.742889Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:00:35.932789Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:00:38.982205Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:00:42.607387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:00:45.252062Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:00:48.655907Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:00:54.706686Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:02:07.634898Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:02:43.352910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=click)\n2026-04-22T15:02:43.752028Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=57 elapsed=8.590900375s\n2026-04-22T15:02:43.756244Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 57 eligible frames\n2026-04-22T15:02:46.231236Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 4.8MB → 2.0MB (2.4x), 29 JPEGs deleted\n2026-04-22T15:02:46.417502Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)\n2026-04-22T15:02:49.039329Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.9MB → 1.8MB (2.8x), 26 JPEGs deleted\n2026-04-22T15:02:50.878563Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)\n2026-04-22T15:02:53.936710Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)\n2026-04-22T15:02:56.977078Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)\n2026-04-22T15:03:19.571166Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)\n2026-04-22T15:03:26.066470Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)\n2026-04-22T15:03:31.414066Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)\n2026-04-22T15:04:07.475454Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)\n2026-04-22T15:04:10.605093Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)\n2026-04-22T15:04:13.512293Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)\n2026-04-22T15:04:16.529473Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)\n2026-04-22T15:04:53.720517Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:04:55.658228Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:05:01.010633Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:05:03.051970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:05:06.145567Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:05:29.469376Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=797137072065105312, trigger=click)\n2026-04-22T15:05:55.103542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-116347373995830011, trigger=click)\n2026-04-22T15:05:55.539275Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-116347373995830011, trigger=click)\n2026-04-22T15:06:41.788384Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-116347373995830011, trigger=click)\n2026-04-22T15:06:42.204175Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-116347373995830011, trigger=click)\n2026-04-22T15:07:03.704733Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Slack, id=8, grace=30s)\n2026-04-22T15:07:39.449504Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Idle (timeout=30s, app=Slack, id=8)\n2026-04-22T15:07:39.915187Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting ended (id=8)\n2026-04-22T15:07:49.691643Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 27 eligible frames\n2026-04-22T15:07:51.650549Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.3MB → 0.3MB (7.0x), 13 JPEGs deleted\n2026-04-22T15:07:53.582709Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.6MB → 0.9MB (3.0x), 12 JPEGs deleted\n2026-04-22T15:07:53.988144Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1303595353837004202, trigger=click)\n2026-04-22T15:09:49.799139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4589403011857874475, trigger=click)\n2026-04-22T15:09:52.656133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4589403011857874475, trigger=click)\n2026-04-22T15:13:00.784316Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=44 elapsed=7.176940333s\n2026-04-22T15:13:00.784701Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 44 eligible frames\n2026-04-22T15:13:06.141480Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 3.7MB → 1.4MB (2.7x), 23 JPEGs deleted\n2026-04-22T15:13:09.087116Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 5.4MB → 1.4MB (4.0x), 19 JPEGs deleted\n2026-04-22T15:18:11.493152Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=37 elapsed=2.382042209s\n2026-04-22T15:18:11.496118Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 37 eligible frames\n2026-04-22T15:18:15.568523Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.0MB → 1.3MB (2.3x), 18 JPEGs deleted\n2026-04-22T15:18:18.268870Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 5.0MB → 1.2MB (4.0x), 17 JPEGs deleted\n2026-04-22T15:21:12.476028Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3813526692250337476, trigger=visual_change)\n2026-04-22T15:23:28.271759Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=63 elapsed=9.511646458s\n2026-04-22T15:23:28.282671Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 63 eligible frames\n2026-04-22T15:23:34.267737Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 6.8MB → 3.5MB (1.9x), 31 JPEGs deleted\n2026-04-22T15:23:38.696265Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 5.7MB → 1.2MB (4.7x), 30 JPEGs deleted\n2026-04-22T15:25:18.297937Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:25:21.238617Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:25:58.399479Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6869659017523937306, trigger=click)\n2026-04-22T15:26:00.086631Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6869659017523937306, trigger=click)\n2026-04-22T15:26:01.910963Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6869659017523937306, trigger=visual_change)\n2026-04-22T15:26:02.357258Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6869659017523937306, trigger=visual_change)\n2026-04-22T15:26:04.744325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6869659017523937306, trigger=click)\n2026-04-22T15:26:05.686404Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6869659017523937306, trigger=visual_change)\n2026-04-22T15:26:07.341872Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6869659017523937306, trigger=click)\n2026-04-22T15:26:07.841961Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6869659017523937306, trigger=click)\n2026-04-22T15:27:08.518409Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=click)\n2026-04-22T15:27:14.348556Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)\n2026-04-22T15:27:19.567077Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)\n2026-04-22T15:27:23.928137Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6983242470914211958, trigger=click)\n2026-04-22T15:27:25.430871Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=click)\n2026-04-22T15:27:32.704396Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6983242470914211958, trigger=click)\n2026-04-22T15:27:39.006433Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)\n2026-04-22T15:27:43.060533Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)\n2026-04-22T15:27:45.902424Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)\n2026-04-22T15:27:53.866025Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)\n2026-04-22T15:27:56.855542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)\n2026-04-22T15:28:06.329802Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)\n2026-04-22T15:28:16.947758Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=click)\n2026-04-22T15:28:17.639628Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6983242470914211958, trigger=click)\n2026-04-22T15:28:19.702614Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)\n2026-04-22T15:28:22.257394Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=click)\n2026-04-22T15:28:22.756941Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6983242470914211958, trigger=click)\n2026-04-22T15:28:25.405205Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=click)\n2026-04-22T15:28:26.273821Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6983242470914211958, trigger=click)\n2026-04-22T15:28:37.225888Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4416148030571332734, trigger=click)\n2026-04-22T15:28:41.503684Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4416148030571332734, trigger=visual_change)\n2026-04-22T15:28:42.412245Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4416148030571332734, trigger=click)\n2026-04-22T15:28:44.900893Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4416148030571332734, trigger=click)\n2026-04-22T15:28:45.281047Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4416148030571332734, trigger=click)\n2026-04-22T15:28:47.806415Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=61 elapsed=8.915603625s\n2026-04-22T15:28:47.808575Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 61 eligible frames\n2026-04-22T15:28:51.748955Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4416148030571332734, trigger=click)\n2026-04-22T15:28:52.058480Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 33 frames, 7.4MB → 2.7MB (2.7x), 33 JPEGs deleted\n2026-04-22T15:28:57.816868Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.8MB → 2.2MB (2.2x), 26 JPEGs deleted\n2026-04-22T15:28:59.171732Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4416148030571332734, trigger=visual_change)\n2026-04-22T15:29:19.001260Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4416148030571332734, trigger=visual_change)\n2026-04-22T15:29:26.828215Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4416148030571332734, trigger=visual_change)\n2026-04-22T15:30:54.757442Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2182844197261250370, trigger=click)\n2026-04-22T15:31:30.516711Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2182844197261250370, trigger=click)\n2026-04-22T15:31:49.431335Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4416148030571332734, trigger=visual_change)\n2026-04-22T15:31:54.155985Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4416148030571332734, trigger=visual_change)\n2026-04-22T15:31:58.427528Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4416148030571332734, trigger=visual_change)\n2026-04-22T15:32:21.666172Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7700301847216802583, trigger=click)\n2026-04-22T15:32:26.019679Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7700301847216802583, trigger=visual_change)\n2026-04-22T15:33:34.334309Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5496326212892813056, trigger=visual_change)\n2026-04-22T15:33:41.606418Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5496326212892813056, trigger=visual_change)\n2026-04-22T15:34:04.695051Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5496326212892813056, trigger=click)\n2026-04-22T15:34:06.919005Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=73 elapsed=9.073921416s\n2026-04-22T15:34:06.919292Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 73 eligible frames\n2026-04-22T15:34:11.489642Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 40 frames, 9.1MB → 3.4MB (2.6x), 40 JPEGs deleted\n2026-04-22T15:34:15.335063Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 6.0MB → 2.0MB (3.0x), 31 JPEGs deleted\n2026-04-22T15:36:46.398267Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3562390500463334923, trigger=visual_change)\n2026-04-22T15:36:49.359581Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3562390500463334923, trigger=visual_change)\n2026-04-22T15:36:56.667177Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3562390500463334923, trigger=click)\n2026-04-22T15:37:01.305805Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3562390500463334923, trigger=click)\n2026-04-22T15:37:04.552815Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3562390500463334923, trigger=click)\n2026-04-22T15:37:05.365649Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3562390500463334923, trigger=click)\n2026-04-22T15:37:06.657172Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3562390500463334923, trigger=visual_change)\n2026-04-22T15:37:20.005928Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3562390500463334923, trigger=visual_change)\n2026-04-22T15:37:22.572092Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3562390500463334923, trigger=visual_change)\n2026-04-22T15:37:28.745166Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3562390500463334923, trigger=visual_change)\n2026-04-22T15:37:32.112106Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3562390500463334923, trigger=visual_change)\n2026-04-22T15:37:40.817103Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3562390500463334923, trigger=visual_change)\n2026-04-22T15:37:44.068041Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3562390500463334923, trigger=visual_change)\n2026-04-22T15:37:49.735129Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3562390500463334923, trigger=click)\n2026-04-22T15:37:50.302210Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3562390500463334923, trigger=click)\n2026-04-22T15:38:55.433464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=666278282122949848, trigger=visual_change)\n2026-04-22T15:38:58.142835Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=666278282122949848, trigger=visual_change)\n2026-04-22T15:39:15.500379Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=666278282122949848, trigger=click)\n2026-04-22T15:39:15.987757Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=666278282122949848, trigger=click)\n2026-04-22T15:39:17.228167Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=666278282122949848, trigger=visual_change)\n2026-04-22T15:39:18.307711Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=666278282122949848, trigger=visual_change)\n2026-04-22T15:39:21.533092Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=666278282122949848, trigger=visual_change)\n2026-04-22T15:39:21.807148Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=62 elapsed=6.322537666s\n2026-04-22T15:39:21.807242Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 62 eligible frames\n2026-04-22T15:39:23.654129Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=666278282122949848, trigger=visual_change)\n2026-04-22T15:39:24.158197Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=666278282122949848, trigger=click)\n2026-04-22T15:39:24.238758Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 6.7MB → 2.4MB (2.8x), 29 JPEGs deleted\n2026-04-22T15:39:24.919127Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=666278282122949848, trigger=click)\n2026-04-22T15:39:26.522050Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 6.2MB → 2.3MB (2.7x), 31 JPEGs deleted\n2026-04-22T15:39:32.912924Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=666278282122949848, trigger=visual_change)\n2026-04-22T15:39:33.735345Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=666278282122949848, trigger=click)\n2026-04-22T15:39:35.375360Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=666278282122949848, trigger=click)\n2026-04-22T15:39:36.995841Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=666278282122949848, trigger=click)\n2026-04-22T15:39:37.467108Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=666278282122949848, trigger=click)\n2026-04-22T15:39:40.369538Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=666278282122949848, trigger=click)\n2026-04-22T15:39:43.276197Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=666278282122949848, trigger=click)\n2026-04-22T15:40:07.556081Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:40:09.930821Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:40:11.154450Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:40:19.449508Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:40:29.519581Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8135701070039948601, trigger=visual_change)\n2026-04-22T15:41:56.970803Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:42:06.118149Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:44:30.869060Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=59 elapsed=4.334722834s\n2026-04-22T15:44:30.869438Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 59 eligible frames\n2026-04-22T15:44:36.682494Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 7.0MB → 3.2MB (2.1x), 31 JPEGs deleted\n2026-04-22T15:44:41.069797Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.9MB → 1.5MB (3.3x), 26 JPEGs deleted\n2026-04-22T15:47:16.707141Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:47:26.476915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:47:30.506202Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:47:33.490610Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:47:37.439486Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:48:10.814782Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:48:49.253754Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:48:58.005092Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:49:44.222629Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=41 elapsed=2.9267015s\n2026-04-22T15:49:44.223441Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 41 eligible frames\n2026-04-22T15:49:46.632623Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:49:46.707995Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 4.3MB → 2.2MB (2.0x), 19 JPEGs deleted\n2026-04-22T15:49:48.648095Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.5MB → 2.1MB (2.2x), 20 JPEGs deleted\n2026-04-22T15:49:55.585051Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:49:58.557820Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:50:04.689651Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:50:10.744245Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:50:32.681643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:50:37.792790Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:50:40.260147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:50:46.805742Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:50:53.026194Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:50:55.961999Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:51:02.210628Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:51:04.537374Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:51:17.321401Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:51:23.393544Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:51:26.412142Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:51:32.600472Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:51:35.220938Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:51:41.194536Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:51:44.210722Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:51:50.304611Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:51:56.294115Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:51:59.321943Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:52:05.342699Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:52:17.436700Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:52:21.187208Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:52:49.374507Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:52:51.550918Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:52:53.892542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:52:59.947921Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:53:03.308386Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:53:10.465051Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:53:18.275354Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:53:19.882281Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:53:26.102339Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:53:28.677581Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:53:38.195861Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:53:40.759223Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:53:44.211689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:53:49.661798Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:53:51.254730Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:53:56.539255Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:53:58.004998Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:53:58.491246Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:54:00.207899Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:54:00.960349Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:54:06.030857Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:54:09.163227Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:54:09.608141Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:54:29.884648Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7221551953177750058, trigger=visual_change)\n2026-04-22T15:54:32.904873Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7221551953177750058, trigger=visual_change)\n2026-04-22T15:54:38.529745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7221551953177750058, trigger=visual_change)\n2026-04-22T15:54:42.030930Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7221551953177750058, trigger=visual_change)\n2026-04-22T15:54:53.757845Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=44 elapsed=5.12885025s\n2026-04-22T15:54:53.758028Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 44 eligible frames\n2026-04-22T15:54:56.216519Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.7MB → 2.2MB (2.6x), 25 JPEGs deleted\n2026-04-22T15:54:57.253500Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7221551953177750058, trigger=visual_change)\n2026-04-22T15:54:57.778380Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.8MB → 1.4MB (2.7x), 17 JPEGs deleted\n2026-04-22T15:55:14.227919Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:55:29.347981Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:55:34.911796Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:55:37.679086Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:55:55.657449Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:55:56.235238Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:55:58.080012Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:56:03.489838Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:56:19.773160Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:58:04.898631Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:58:05.507970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:58:19.974744Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7937570718597551457, trigger=visual_change)\n2026-04-22T16:00:07.397412Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=28 elapsed=9.608749083s\n2026-04-22T16:00:07.397774Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames\n2026-04-22T16:00:11.353157Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.7MB → 1.6MB (1.7x), 12 JPEGs deleted\n2026-04-22T16:00:14.732810Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 3.1MB → 1.4MB (2.2x), 14 JPEGs deleted\n2026-04-22T16:05:14.875841Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 26 eligible frames\n2026-04-22T16:05:21.176398Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.7MB → 1.5MB (1.8x), 12 JPEGs deleted\n2026-04-22T16:05:23.500634Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.7MB → 0.8MB (3.5x), 12 JPEGs deleted\n2026-04-22T16:09:43.057186Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1700548679087424896, trigger=click)\n2026-04-22T16:09:43.726339Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1700548679087424896, trigger=click)\n2026-04-22T16:10:33.202772Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=32 elapsed=8.151029333s\n2026-04-22T16:10:33.205709Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 32 eligible frames\n2026-04-22T16:10:36.241109Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.9MB → 0.8MB (3.6x), 16 JPEGs deleted\n2026-04-22T16:10:39.638416Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.4MB → 1.1MB (2.2x), 14 JPEGs deleted\n2026-04-22T16:12:57.604636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3640531240517672751, trigger=visual_change)\n2026-04-22T16:14:48.477621Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3640531240517672751, trigger=click)\n2026-04-22T16:14:49.113238Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3640531240517672751, trigger=click)\n2026-04-22T16:14:52.803148Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3640531240517672751, trigger=click)\n2026-04-22T16:15:48.370916Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=21 elapsed=8.52753825s\n2026-04-22T16:15:48.371084Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames\n2026-04-22T16:15:49.801978Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 1.6MB → 0.3MB (5.7x), 9 JPEGs deleted\n2026-04-22T16:15:51.456711Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.4MB (4.1x), 10 JPEGs deleted\n2026-04-22T16:16:39.820921Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:16:40.258041Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:16:42.604047Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4659444575687776884, trigger=visual_change)\n2026-04-22T16:16:44.729225Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:16:45.395942Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:16:48.031036Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:16:53.808716Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:16:57.947511Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:16:58.661906Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:17:00.203848Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:17:00.510442Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:17:10.932565Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:17:13.262897Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:17:16.009682Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:17:16.360136Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:17:18.987777Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:17:19.385866Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:17:22.098836Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:17:22.469613Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:17:45.084378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T16:17:45.488587Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T16:17:46.265772Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T16:17:50.794900Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T16:17:51.193853Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T16:17:56.183149Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T16:17:56.903285Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T16:18:02.302062Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2014082630808116476, trigger=click)\n2026-04-22T16:19:28.148117Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7767962928162902459, trigger=visual_change)\n2026-04-22T16:19:30.526236Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7767962928162902459, trigger=click)\n2026-04-22T16:19:31.195837Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7767962928162902459, trigger=click)\n2026-04-22T16:19:33.715299Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7767962928162902459, trigger=click)\n2026-04-22T16:19:34.357828Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7767962928162902459, trigger=click)\n2026-04-22T16:19:35.020610Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7767962928162902459, trigger=click)\n2026-04-22T16:19:35.698451Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7767962928162902459, trigger=click)\n2026-04-22T16:20:53.732098Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=2.258795792s\n2026-04-22T16:20:53.732443Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-22T16:20:54.463494Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 1.6MB → 0.3MB (5.7x), 9 JPEGs deleted\n2026-04-22T16:20:55.529460Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 2.5MB → 1.1MB (2.3x), 11 JPEGs deleted\n2026-04-22T16:24:20.510070Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2383132637107085157, trigger=click)\n2026-04-22T16:24:27.782475Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1404306881477617387, trigger=click)\n2026-04-22T16:24:44.481677Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6805760601486189718, trigger=click)\n2026-04-22T16:25:13.403567Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=666355421012968666, trigger=click)\n2026-04-22T16:26:01.606241Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=32 elapsed=6.054129542s\n2026-04-22T16:26:01.608081Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 32 eligible frames\n2026-04-22T16:26:04.408527Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.5MB → 0.3MB (8.7x), 14 JPEGs deleted\n2026-04-22T16:26:09.345870Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 3.9MB → 2.5MB (1.6x), 16 JPEGs deleted\n2026-04-22T16:31:16.523778Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=48 elapsed=6.261290959s\n2026-04-22T16:31:16.523889Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 48 eligible frames\n2026-04-22T16:31:18.062354Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 4.1MB → 0.5MB (9.1x), 23 JPEGs deleted\n2026-04-22T16:31:19.733335Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 6.0MB → 1.6MB (3.8x), 23 JPEGs deleted\n2026-04-22T16:35:14.998679Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-930197057256512338, trigger=click)\n2026-04-22T16:35:28.307910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T16:35:30.218730Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T16:35:50.703840Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4332103135047682933, trigger=visual_change)\n2026-04-22T16:35:52.711832Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4332103135047682933, trigger=click)\n2026-04-22T16:35:53.307064Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4332103135047682933, trigger=visual_change)\n2026-04-22T16:36:26.222531Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=53 elapsed=6.476373125s\n2026-04-22T16:36:26.222663Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 53 eligible frames\n2026-04-22T16:36:28.058618Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 3.4MB → 1.1MB (3.1x), 27 JPEGs deleted\n2026-04-22T16:36:29.824864Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 6.2MB → 0.7MB (8.9x), 24 JPEGs deleted\n2026-04-22T16:38:27.295549Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4399336884068833789, trigger=click)\n2026-04-22T16:38:31.082408Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4399336884068833789, trigger=click)\n2026-04-22T16:40:46.732079Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4399336884068833789, trigger=visual_change)\n2026-04-22T16:40:50.641593Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4399336884068833789, trigger=click)\n2026-04-22T16:40:51.044794Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4399336884068833789, trigger=click)\n2026-04-22T16:40:55.679492Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4399336884068833789, trigger=click)\n2026-04-22T16:40:56.491807Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4399336884068833789, trigger=click)\n2026-04-22T16:41:32.562032Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=29 elapsed=2.600218041s\n2026-04-22T16:41:32.562136Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 29 eligible frames\n2026-04-22T16:41:33.652619Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 1.3MB → 0.2MB (6.4x), 14 JPEGs deleted\n2026-04-22T16:41:35.202361Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 3.3MB → 0.5MB (7.0x), 13 JPEGs deleted\n2026-04-22T16:46:38.330333Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=32 elapsed=3.117707958s\n2026-04-22T16:46:38.330439Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 32 eligible frames\n2026-04-22T16:46:39.948332Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 1.3MB → 0.1MB (9.1x), 14 JPEGs deleted\n2026-04-22T16:46:41.506017Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 4.0MB → 1.2MB (3.3x), 16 JPEGs deleted\n2026-04-22T16:51:48.131482Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=23 elapsed=6.613640791s\n2026-04-22T16:51:48.132937Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 23 eligible frames\n2026-04-22T16:51:49.003952Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.0MB → 0.1MB (8.7x), 11 JPEGs deleted\n2026-04-22T16:51:50.053842Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.0MB → 0.7MB (2.7x), 10 JPEGs deleted\n2026-04-22T16:52:34.780923Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)\n2026-04-22T16:52:48.863893Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=app_switch, monitor=1) — DB pool may be saturated\n2026-04-22T16:52:48.863900Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=app_switch, monitor=2) — DB pool may be saturated\n2026-04-22T16:53:01.610713Z INFO sck_rs::stream_manager: recreating stream for display 1 (resolution change)\n2026-04-22T16:53:29.988978Z INFO sck_rs::stream_manager: recreating stream for display 2 (resolution change)\n2026-04-22T16:56:56.495427Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=6.425245416s\n2026-04-22T16:56:56.495542Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-22T16:56:57.336306Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.9MB → 0.1MB (7.9x), 10 JPEGs deleted\n2026-04-22T16:56:58.175049Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.9MB → 0.3MB (6.3x), 10 JPEGs deleted\n2026-04-22T17:01:58.685859Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-22T17:01:59.473339Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.9MB → 0.1MB (8.0x), 10 JPEGs deleted\n2026-04-22T17:02:00.310277Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.9MB → 0.3MB (6.3x), 10 JPEGs deleted\n2026-04-22T17:07:01.945755Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=4 elapsed=1.626160375s\n2026-04-22T17:07:01.945847Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 4 eligible frames\n2026-04-22T17:07:02.187343Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 1 frames, 0.1MB → 0.1MB (1.0x), 1 JPEGs deleted\n2026-04-22T17:07:02.450702Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 1 frames, 0.2MB → 0.2MB (0.8x), 1 JPEGs deleted\n2026-04-22T17:12:06.874189Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=2 elapsed=4.3861715s\n2026-04-22T17:12:06.874452Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-22T17:17:13.193100Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=6.294200125s\n2026-04-22T17:20:07.541995Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)\n2026-04-22T17:20:07.630953Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 1\n2026-04-22T17:20:14.084721Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-22T17:20:14.480434Z INFO screenpipe_engine::event_driven_capture: monitor 1 capture recovered after 1 consecutive errors\n2026-04-22T17:20:15.608548Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-22T17:20:16.850029Z INFO screenpipe_engine::event_driven_capture: monitor 2 capture recovered after 1 consecutive errors\n2026-04-22T17:20:59.606795Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=353611364339833193, trigger=visual_change)\n2026-04-22T17:21:05.782785Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6518006199864472489, trigger=click)\n2026-04-22T17:21:48.543394Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6518006199864472489, trigger=click)\n2026-04-22T17:21:52.452327Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6518006199864472489, trigger=click)\n2026-04-22T17:22:24.575958Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=11.371497042s\n2026-04-22T17:27:29.081900Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=4.457444667s\n2026-04-22T17:32:30.295309Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 20 eligible frames\n2026-04-22T17:32:30.964048Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 7 frames, 0.7MB → 0.1MB (5.8x), 7 JPEGs deleted\n2026-04-22T17:32:32.430798Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.9MB → 0.8MB (3.6x), 13 JPEGs deleted\n2026-04-22T17:37:36.325676Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=24 elapsed=3.882934833s\n2026-04-22T17:37:36.326088Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 24 eligible frames\n2026-04-22T17:37:37.732598Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.9MB → 0.1MB (8.1x), 10 JPEGs deleted\n2026-04-22T17:37:38.875813Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.5MB → 0.9MB (2.7x), 12 JPEGs deleted\n2026-04-22T17:42:43.122610Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=28 elapsed=4.232872583s\n2026-04-22T17:42:43.122797Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames\n2026-04-22T17:42:44.139661Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.0MB → 0.2MB (6.5x), 11 JPEGs deleted\n2026-04-22T17:42:45.850747Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 3.1MB → 1.5MB (2.1x), 15 JPEGs deleted\n2026-04-22T17:42:57.144176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5398018417063851890, trigger=click)\n2026-04-22T17:42:57.653834Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5398018417063851890, trigger=click)\n2026-04-22T17:43:28.190643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7326608657648522043, trigger=click)\n2026-04-22T17:43:30.037343Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7326608657648522043, trigger=visual_change)\n2026-04-22T17:44:17.081083Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=900127091433810136, trigger=click)\n2026-04-22T17:44:17.605660Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=900127091433810136, trigger=click)\n2026-04-22T17:45:37.216031Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=900127091433810136, trigger=visual_change)\n2026-04-22T17:47:22.339709Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=900127091433810136, trigger=visual_change)\n2026-04-22T17:47:28.305597Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=900127091433810136, trigger=click)\n2026-04-22T17:47:29.056879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=900127091433810136, trigger=click)\n2026-04-22T17:47:52.285649Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=900127091433810136, trigger=visual_change)\n2026-04-22T17:47:53.496727Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=42 elapsed=7.316425834s\n2026-04-22T17:47:53.496837Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 42 eligible frames\n2026-04-22T17:47:54.629113Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 1.5MB → 0.1MB (12.5x), 16 JPEGs deleted\n2026-04-22T17:47:56.497927Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 5.4MB → 1.6MB (3.4x), 24 JPEGs deleted\n2026-04-22T17:49:23.365540Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7724578834627729847, trigger=click)\n2026-04-22T17:53:02.690403Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=27 elapsed=6.179264s\n2026-04-22T17:53:02.690738Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 27 eligible frames\n2026-04-22T17:53:03.556672Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.2MB → 0.1MB (10.3x), 13 JPEGs deleted\n2026-04-22T17:53:05.211208Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.5MB → 0.6MB (4.0x), 12 JPEGs deleted\n2026-04-22T17:57:40.568162Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1851379926418959813, trigger=click)\n2026-04-22T17:57:41.079468Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1851379926418959813, trigger=click)\n2026-04-22T17:58:10.456601Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=45 elapsed=4.691370125s\n2026-04-22T17:58:10.457220Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 45 eligible frames\n2026-04-22T17:58:12.041940Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 2.1MB → 0.2MB (11.4x), 22 JPEGs deleted\n2026-04-22T17:58:14.351810Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.8MB → 2.2MB (1.8x), 21 JPEGs deleted\n2026-04-22T17:58:21.350110Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1851379926418959813, trigger=click)\n2026-04-22T17:58:21.948643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1851379926418959813, trigger=click)\n2026-04-22T18:03:16.198465Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=44 elapsed=1.833842375s\n2026-04-22T18:03:16.198578Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 44 eligible frames\n2026-04-22T18:03:18.139382Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 2.0MB → 0.1MB (16.1x), 21 JPEGs deleted\n2026-04-22T18:03:19.618803Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.5MB → 1.5MB (2.4x), 21 JPEGs deleted\n2026-04-22T18:06:58.395218Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7639883349033148478, trigger=click)\n2026-04-22T18:06:58.897470Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7639883349033148478, trigger=click)\n2026-04-22T18:07:42.474566Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=607162597309748765, trigger=click)\n2026-04-22T18:08:27.382204Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=28 elapsed=7.750844334s\n2026-04-22T18:08:27.382491Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames\n2026-04-22T18:08:29.032220Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.2MB → 0.1MB (10.4x), 13 JPEGs deleted\n2026-04-22T18:08:30.573314Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.7MB → 0.6MB (4.2x), 13 JPEGs deleted\n2026-04-22T18:13:38.096494Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=20 elapsed=6.760223375s\n2026-04-22T18:13:38.099584Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 20 eligible frames\n2026-04-22T18:13:38.806766Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 0.8MB → 0.1MB (7.4x), 9 JPEGs deleted\n2026-04-22T18:13:39.606462Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 1.9MB → 0.5MB (3.8x), 9 JPEGs deleted\n2026-04-22T18:18:41.943065Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=45 elapsed=2.325026709s\n2026-04-22T18:18:41.943417Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 45 eligible frames\n2026-04-22T18:18:43.289962Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 2.0MB → 0.1MB (16.7x), 21 JPEGs deleted\n2026-04-22T18:18:45.689764Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 4.4MB → 1.3MB (3.4x), 22 JPEGs deleted\n2026-04-22T18:18:54.020334Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6726632078176380015, trigger=click)\n2026-04-22T18:18:54.540347Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6726632078176380015, trigger=click)\n2026-04-22T18:18:55.737423Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6726632078176380015, trigger=click)\n2026-04-22T18:18:56.477423Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6726632078176380015, trigger=click)\n2026-04-22T18:20:28.510789Z WARN sqlx::query: summary=\"PRAGMA wal_checkpoint(TRUNCATE)\" db.statement=\"\" rows_affected=0 rows_returned=1 elapsed=5.273706125s\n2026-04-22T18:20:28.511954Z WARN screenpipe_db::db: wal checkpoint: busy (could not truncate), 3177 pages in WAL\n2026-04-22T18:20:28.562400Z WARN sqlx::query: summary=\"BEGIN IMMEDIATE\" db.statement=\"\" rows_affected=1 rows_returned=0 elapsed=2.291890708s\n2026-04-22T18:23:52.302822Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=31 elapsed=6.325649833s\n2026-04-22T18:23:52.304330Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 31 eligible frames\n2026-04-22T18:23:53.163590Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 1.1MB → 0.1MB (9.9x), 12 JPEGs deleted\n2026-04-22T18:23:55.277698Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.4MB → 1.6MB (2.2x), 17 JPEGs deleted\n2026-04-22T18:28:56.007322Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 35 eligible frames\n2026-04-22T18:28:57.403360Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.7MB → 1.5MB (1.9x), 16 JPEGs deleted\n2026-04-22T18:28:58.752838Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.9MB → 0.8MB (3.6x), 17 JPEGs deleted\n2026-04-22T18:34:01.165384Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=41 elapsed=2.400307625s\n2026-04-22T18:34:01.165480Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 41 eligible frames\n2026-04-22T18:34:02.291139Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.7MB → 0.8MB (3.5x), 15 JPEGs deleted\n2026-04-22T18:34:04.197399Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.2MB → 1.7MB (2.4x), 24 JPEGs deleted\n2026-04-22T18:35:56.027919Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5884937538005636030, trigger=visual_change)\n2026-04-22T18:37:55.284482Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-439807993867665328, trigger=visual_change)\n2026-04-22T18:39:08.660187Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=4.451587125s\n2026-04-22T18:39:08.660278Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-22T18:39:09.493828Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.5MB → 0.5MB (3.1x), 10 JPEGs deleted\n2026-04-22T18:39:10.349740Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.1MB → 0.5MB (4.3x), 10 JPEGs deleted\n2026-04-22T18:43:06.355073Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3304493437592891639, trigger=click)\n2026-04-22T18:43:23.219621Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6603898485603033537, trigger=click)\n2026-04-22T18:44:11.899645Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=21 elapsed=1.53441375s\n2026-04-22T18:44:11.900197Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames\n2026-04-22T18:44:12.802039Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 1.1MB → 0.2MB (6.3x), 9 JPEGs deleted\n2026-04-22T18:44:14.694466Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.1MB → 0.3MB (5.9x), 10 JPEGs deleted\n2026-04-22T18:45:14.778135Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6664853592767636193, trigger=click)\n2026-04-22T18:46:36.923697Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1791249548195440516, trigger=visual_change)\n2026-04-22T18:49:18.625635Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=46 elapsed=3.900838541s\n2026-04-22T18:49:18.625996Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 46 eligible frames\n2026-04-22T18:49:19.640722Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 1.8MB → 0.2MB (10.4x), 15 JPEGs deleted\n2026-04-22T18:49:23.038596Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 5.2MB → 2.1MB (2.4x), 29 JPEGs deleted\n2026-04-22T18:50:34.997361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=visual_change)\n2026-04-22T18:50:39.846829Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:50:43.731899Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:20.200945Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=visual_change)\n2026-04-22T18:51:23.144927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:23.976040Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:27.176876Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:28.227317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:31.555085Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:32.274042Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:35.352114Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:37.306495Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=visual_change)\n2026-04-22T18:52:02.049971Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=visual_change)\n2026-04-22T18:52:09.690330Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=visual_change)\n2026-04-22T18:52:11.530065Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:52:12.090300Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:52:22.885838Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6951480031607957362, trigger=visual_change)\n2026-04-22T18:52:58.986955Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7031607293039132919, trigger=click)\n2026-04-22T18:53:47.690375Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3992755350865402319, trigger=visual_change)\n2026-04-22T18:54:25.328228Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=52 elapsed=2.277973417s\n2026-04-22T18:54:25.328316Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 52 eligible frames\n2026-04-22T18:54:26.661506Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 2.6MB → 0.2MB (11.0x), 22 JPEGs deleted\n2026-04-22T18:54:28.982139Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 4.3MB → 1.1MB (3.8x), 28 JPEGs deleted\n2026-04-22T18:54:44.142044Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3992755350865402319, trigger=visual_change)\n2026-04-22T18:55:01.465747Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2556650532703180759, trigger=click)\n2026-04-22T18:55:02.524314Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2556650532703180759, trigger=click)\n2026-04-22T18:55:35.312048Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3149441378543601087, trigger=visual_change)\n2026-04-22T18:55:55.086761Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3149441378543601087, trigger=click)\n2026-04-22T18:55:56.919853Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3149441378543601087, trigger=visual_change)\n2026-04-22T18:56:05.807170Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7595806992634662117, trigger=visual_change)\n2026-04-22T18:56:12.303927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7595806992634662117, trigger=visual_change)\n2026-04-22T18:56:58.093656Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2070714172482892625, trigger=visual_change)\n2026-04-22T18:57:00.459010Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2070714172482892625, trigger=visual_change)\n2026-04-22T18:57:03.809894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2070714172482892625, trigger=visual_change)\n2026-04-22T18:58:04.259354Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7284778144726625723, trigger=visual_change)\n2026-04-22T18:58:07.302007Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7284778144726625723, trigger=visual_change)\n2026-04-22T18:58:10.443744Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7284778144726625723, trigger=visual_change)\n2026-04-22T18:58:40.416893Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6313361147559934277, trigger=click)\n2026-04-22T18:58:59.229391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)\n2026-04-22T18:59:10.795801Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)\n2026-04-22T18:59:15.904155Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)\n2026-04-22T18:59:30.308258Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=46 elapsed=1.303054333s\n2026-04-22T18:59:30.308485Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 46 eligible frames\n2026-04-22T18:59:31.535859Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 2.4MB → 0.3MB (7.5x), 20 JPEGs deleted\n2026-04-22T18:59:33.536283Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 3.8MB → 1.3MB (3.0x), 24 JPEGs deleted\n2026-04-22T18:59:39.897203Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)\n2026-04-22T18:59:43.593017Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-71227342056343983, trigger=visual_change)\n2026-04-22T18:59:55.722135Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)\n2026-04-22T19:00:00.394304Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)\n2026-04-22T19:00:27.869871Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2710856207947507007, trigger=visual_change)\n2026-04-22T19:01:54.992910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6986338393283794423, trigger=visual_change)\n2026-04-22T19:02:13.568012Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6986338393283794423, trigger=visual_change)\n2026-04-22T19:02:16.092275Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6986338393283794423, trigger=visual_change)\n2026-04-22T19:03:04.479425Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7704375629034044835, trigger=visual_change)\n2026-04-22T19:03:35.287830Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2375149456869027114, trigger=visual_change)\n2026-04-22T19:03:41.021583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2375149456869027114, trigger=visual_change)\n2026-04-22T19:03:48.485601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6234474271212752005, trigger=visual_change)\n2026-04-22T19:04:35.737525Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=82 elapsed=2.188209209s\n2026-04-22T19:04:35.737670Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 82 eligible frames\n2026-04-22T19:04:38.209886Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3880005638520398709, trigger=click)\n2026-04-22T19:04:38.478674Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 4.8MB → 1.0MB (4.9x), 39 JPEGs deleted\n2026-04-22T19:04:42.074270Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 41 frames, 7.5MB → 3.6MB (2.1x), 41 JPEGs deleted\n2026-04-22T19:04:55.094599Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-635344842894947589, trigger=visual_change)\n2026-04-22T19:05:20.336216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)\n2026-04-22T19:05:54.388487Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)\n2026-04-22T19:05:57.299176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)\n2026-04-22T19:05:59.949506Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)\n2026-04-22T19:06:25.531964Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5957740084085463727, trigger=visual_change)\n2026-04-22T19:06:50.090567Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6422724880219484653, trigger=visual_change)\n2026-04-22T19:07:22.963169Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2531925023067266044, trigger=click)\n2026-04-22T19:07:24.045648Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2531925023067266044, trigger=click)\n2026-04-22T19:07:27.834546Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2085088366939909076, trigger=click)\n2026-04-22T19:07:28.381522Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2085088366939909076, trigger=click)\n2026-04-22T19:08:34.175493Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3061313113729352595, trigger=click)\n2026-04-22T19:09:42.454765Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 91 eligible frames\n2026-04-22T19:09:45.816541Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 5.7MB → 2.4MB (2.3x), 32 JPEGs deleted\n2026-04-22T19:09:50.140975Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 57 frames, 7.8MB → 2.3MB (3.4x), 57 JPEGs deleted\n2026-04-22T19:10:13.441594Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=click)\n2026-04-22T19:10:18.830768Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)\n2026-04-22T19:10:21.842287Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)\n2026-04-22T19:10:28.187487Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5292492680570276501, trigger=click)","depth":4,"value":"2026-04-22T13:19:55.671519Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=39 elapsed=3.08657075s\n2026-04-22T13:19:55.671902Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 39 eligible frames\n2026-04-22T13:19:57.020448Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 1.8MB → 0.1MB (13.4x), 17 JPEGs deleted\n2026-04-22T13:19:58.458501Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.1MB → 1.3MB (3.2x), 20 JPEGs deleted\n2026-04-22T13:20:08.378551Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=222404244777562774, trigger=click)\n2026-04-22T13:20:08.861155Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=222404244777562774, trigger=click)\n2026-04-22T13:20:10.352247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=222404244777562774, trigger=click)\n2026-04-22T13:20:10.803201Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=222404244777562774, trigger=click)\n2026-04-22T13:20:11.855309Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=222404244777562774, trigger=click)\n2026-04-22T13:20:12.281855Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=222404244777562774, trigger=click)\n2026-04-22T13:20:13.355000Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=222404244777562774, trigger=click)\n2026-04-22T13:20:13.804941Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=222404244777562774, trigger=click)\n2026-04-22T13:20:15.301012Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=222404244777562774, trigger=click)\n2026-04-22T13:20:20.197413Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=222404244777562774, trigger=click)\n2026-04-22T13:20:20.712382Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=222404244777562774, trigger=click)\n2026-04-22T13:20:22.303881Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=222404244777562774, trigger=click)\n2026-04-22T13:20:22.884710Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=222404244777562774, trigger=click)\n2026-04-22T13:20:43.644742Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=222404244777562774, trigger=click)\n2026-04-22T13:20:44.679647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=222404244777562774, trigger=click)\n2026-04-22T13:20:45.622427Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=222404244777562774, trigger=click)\n2026-04-22T13:20:47.002982Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=222404244777562774, trigger=click)\n2026-04-22T13:20:47.417225Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=222404244777562774, trigger=click)\n2026-04-22T13:20:49.161921Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=222404244777562774, trigger=click)\n2026-04-22T13:20:49.582273Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=222404244777562774, trigger=click)\n2026-04-22T13:20:52.197321Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=222404244777562774, trigger=click)\n2026-04-22T13:20:52.639161Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=222404244777562774, trigger=click)\n2026-04-22T13:20:53.994198Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=222404244777562774, trigger=click)\n2026-04-22T13:20:54.437303Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=222404244777562774, trigger=click)\n2026-04-22T13:20:55.293311Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=222404244777562774, trigger=click)\n2026-04-22T13:24:09.469601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7830271896102614867, trigger=visual_change)\n2026-04-22T13:25:01.128691Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=29 elapsed=2.659465833s\n2026-04-22T13:25:01.128905Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 29 eligible frames\n2026-04-22T13:25:02.338181Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.9MB → 1.3MB (2.3x), 14 JPEGs deleted\n2026-04-22T13:25:03.917779Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.6MB → 0.7MB (4.0x), 13 JPEGs deleted\n2026-04-22T13:25:25.711086Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7830271896102614867, trigger=click)\n2026-04-22T13:25:38.501428Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7830271896102614867, trigger=click)\n2026-04-22T13:25:39.325116Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7830271896102614867, trigger=click)\n2026-04-22T13:25:40.695499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7830271896102614867, trigger=visual_change)\n2026-04-22T13:25:41.684971Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7830271896102614867, trigger=click)\n2026-04-22T13:27:07.409923Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=145943473150562318, trigger=click)\n2026-04-22T13:29:09.989451Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6490322878595129417, trigger=click)\n2026-04-22T13:29:10.403227Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6490322878595129417, trigger=click)\n2026-04-22T13:29:11.440509Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6490322878595129417, trigger=click)\n2026-04-22T13:29:11.832029Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6490322878595129417, trigger=click)\n2026-04-22T13:29:14.479339Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6490322878595129417, trigger=click)\n2026-04-22T13:29:14.877899Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6490322878595129417, trigger=click)\n2026-04-22T13:29:18.456279Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6490322878595129417, trigger=click)\n2026-04-22T13:29:18.853811Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6490322878595129417, trigger=click)\n2026-04-22T13:29:22.452889Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6490322878595129417, trigger=click)\n2026-04-22T13:29:22.844666Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6490322878595129417, trigger=click)\n2026-04-22T13:29:26.423665Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6490322878595129417, trigger=click)\n2026-04-22T13:29:26.833837Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6490322878595129417, trigger=click)\n2026-04-22T13:30:07.840247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6490322878595129417, trigger=click)\n2026-04-22T13:30:07.940843Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=29 elapsed=3.783649958s\n2026-04-22T13:30:07.941532Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 29 eligible frames\n2026-04-22T13:30:09.855355Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 3.2MB → 0.5MB (6.5x), 12 JPEGs deleted\n2026-04-22T13:30:12.349250Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 3.1MB → 1.0MB (3.2x), 15 JPEGs deleted\n2026-04-22T13:31:05.798294Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6490322878595129417, trigger=click)\n2026-04-22T13:31:10.385195Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6490322878595129417, trigger=click)\n2026-04-22T13:31:13.596372Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6490322878595129417, trigger=click)\n2026-04-22T13:31:31.481734Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5391652991859791910, trigger=click)\n2026-04-22T13:31:31.915675Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5391652991859791910, trigger=click)\n2026-04-22T13:31:33.707391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5391652991859791910, trigger=click)\n2026-04-22T13:31:34.117666Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5391652991859791910, trigger=click)\n2026-04-22T13:31:46.023684Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=145943473150562318, trigger=click)\n2026-04-22T13:31:59.210705Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7507356825848564524, trigger=click)\n2026-04-22T13:32:24.674518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=145943473150562318, trigger=click)\n2026-04-22T13:32:29.888930Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=145943473150562318, trigger=click)\n2026-04-22T13:32:34.487353Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7507356825848564524, trigger=click)\n2026-04-22T13:32:35.015232Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7507356825848564524, trigger=click)\n2026-04-22T13:32:37.665435Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7507356825848564524, trigger=click)\n2026-04-22T13:32:38.057156Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7507356825848564524, trigger=click)\n2026-04-22T13:33:05.332928Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4953570497443904268, trigger=click)\n2026-04-22T13:33:05.738911Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4953570497443904268, trigger=click)\n2026-04-22T13:33:07.188550Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4953570497443904268, trigger=click)\n2026-04-22T13:33:07.697205Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4953570497443904268, trigger=click)\n2026-04-22T13:33:09.258757Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4953570497443904268, trigger=click)\n2026-04-22T13:33:09.686230Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4953570497443904268, trigger=click)\n2026-04-22T13:33:10.892071Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4953570497443904268, trigger=click)\n2026-04-22T13:33:11.409971Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4953570497443904268, trigger=click)\n2026-04-22T13:35:14.758402Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=25 elapsed=2.341405708s\n2026-04-22T13:35:14.758534Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames\n2026-04-22T13:35:15.700348Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 2.9MB → 0.4MB (6.6x), 11 JPEGs deleted\n2026-04-22T13:35:16.746240Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.4MB → 0.8MB (3.1x), 12 JPEGs deleted\n2026-04-22T13:35:59.046373Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4953570497443904268, trigger=click)\n2026-04-22T13:35:59.522844Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4953570497443904268, trigger=click)\n2026-04-22T13:36:23.593886Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=145943473150562318, trigger=click)\n2026-04-22T13:36:30.043441Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=145943473150562318, trigger=click)\n2026-04-22T13:37:10.935180Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=145943473150562318, trigger=click)\n2026-04-22T13:37:15.205481Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=145943473150562318, trigger=click)\n2026-04-22T13:37:15.615311Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=145943473150562318, trigger=click)\n2026-04-22T13:37:16.671476Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=145943473150562318, trigger=click)\n2026-04-22T13:37:17.130125Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=145943473150562318, trigger=click)\n2026-04-22T13:37:31.765784Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7624650583167905543, trigger=click)\n2026-04-22T13:37:32.277572Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7624650583167905543, trigger=click)\n2026-04-22T13:37:55.000582Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3854152757192935136, trigger=click)\n2026-04-22T13:37:55.579842Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3854152757192935136, trigger=click)\n2026-04-22T13:40:19.993679Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=52 elapsed=3.236573834s\n2026-04-22T13:40:19.993781Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 52 eligible frames\n2026-04-22T13:40:21.547011Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 3.3MB → 0.3MB (12.9x), 25 JPEGs deleted\n2026-04-22T13:40:24.246314Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.0MB → 1.9MB (2.6x), 25 JPEGs deleted\n2026-04-22T13:40:49.345857Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3420346335485635575, trigger=click)\n2026-04-22T13:40:49.761464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3420346335485635575, trigger=click)\n2026-04-22T13:40:58.483984Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2699137710669661720, trigger=click)\n2026-04-22T13:41:18.585300Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1051548329161768346, trigger=click)\n2026-04-22T13:41:49.631129Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=visual_change)\n2026-04-22T13:42:09.336358Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:42:22.318303Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5651691911195313325, trigger=click)\n2026-04-22T13:45:24.809909Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 52 eligible frames\n2026-04-22T13:45:26.334982Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 3.2MB → 0.2MB (18.4x), 25 JPEGs deleted\n2026-04-22T13:45:28.494791Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.2MB → 1.8MB (2.9x), 25 JPEGs deleted\n2026-04-22T13:50:32.678587Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=33 elapsed=4.217422542s\n2026-04-22T13:50:32.678957Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 33 eligible frames\n2026-04-22T13:50:33.731344Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.1MB → 0.2MB (12.1x), 16 JPEGs deleted\n2026-04-22T13:50:35.297399Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 3.2MB → 0.9MB (3.6x), 15 JPEGs deleted\n2026-04-22T13:52:40.144788Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)\n2026-04-22T13:53:01.899060Z INFO sck_rs::stream_manager: recreating stream for display 2 (resolution change)\n2026-04-22T13:53:24.588928Z INFO sck_rs::stream_manager: recreating stream for display 1 (resolution change)\n2026-04-22T13:54:45.480269Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)\n2026-04-22T13:54:45.525295Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2\n2026-04-22T13:54:47.277567Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-22T13:54:47.557900Z WARN screenpipe_engine::event_driven_capture: skipping capture: lock screen app 'loginwindow' on monitor 2\n2026-04-22T13:54:50.517321Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)\n2026-04-22T13:54:50.531527Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2\n2026-04-22T13:54:50.539783Z INFO sck_rs::stream_manager: stopped 1 persistent stream(s)\n2026-04-22T13:54:51.633834Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-22T13:54:57.215619Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-22T13:54:57.475388Z WARN screenpipe_engine::event_driven_capture: skipping capture: lock screen app 'loginwindow' on monitor 1\n2026-04-22T13:55:00.526322Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)\n2026-04-22T13:55:00.545282Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2\n2026-04-22T13:55:01.132848Z INFO sck_rs::stream_manager: stopped 2 persistent stream(s)\n2026-04-22T13:55:02.005737Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-22T13:55:02.633821Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-22T13:55:19.838192Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3145826437395305149, trigger=click)\n2026-04-22T13:55:20.300634Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3145826437395305149, trigger=click)\n2026-04-22T13:55:21.567188Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3145826437395305149, trigger=click)\n2026-04-22T13:55:42.189258Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=38 elapsed=6.884820208s\n2026-04-22T13:55:42.189981Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 38 eligible frames\n2026-04-22T13:55:43.595617Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.1MB → 0.2MB (11.9x), 16 JPEGs deleted\n2026-04-22T13:55:46.392329Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.1MB → 1.1MB (3.6x), 20 JPEGs deleted\n2026-04-22T13:55:56.140186Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:55:57.408560Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:58:03.696726Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:58:06.390518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:58:08.300896Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:58:08.718730Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:58:09.912001Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:58:10.311583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:58:13.273546Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=visual_change)\n2026-04-22T13:58:19.346181Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=visual_change)\n2026-04-22T13:58:58.360554Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:58:58.786340Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:59:04.430986Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:59:04.893282Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:59:45.902049Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:59:46.348987Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:59:48.470706Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:59:48.898805Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:59:54.274180Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)\n2026-04-22T13:59:56.495414Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)\n2026-04-22T14:00:02.522746Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)\n2026-04-22T14:00:35.856416Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6212304827203743747, trigger=click)\n2026-04-22T14:00:44.303637Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6212304827203743747, trigger=visual_change)\n2026-04-22T14:00:55.518274Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=9.118070709s\n2026-04-22T14:00:55.518433Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-22T14:00:57.099120Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.3MB → 0.2MB (7.7x), 10 JPEGs deleted\n2026-04-22T14:00:58.767986Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.2MB → 0.4MB (6.0x), 10 JPEGs deleted\n2026-04-22T14:04:15.220880Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3837731717837980920, trigger=visual_change)\n2026-04-22T14:05:28.069620Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1051548329161768346, trigger=click)\n2026-04-22T14:05:28.937013Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1051548329161768346, trigger=click)\n2026-04-22T14:06:00.164534Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=16 elapsed=1.199258208s\n2026-04-22T14:06:00.164673Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 16 eligible frames\n2026-04-22T14:06:02.024968Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 7 frames, 0.9MB → 0.2MB (5.3x), 7 JPEGs deleted\n2026-04-22T14:06:05.188088Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 7 frames, 1.5MB → 0.7MB (2.2x), 7 JPEGs deleted\n2026-04-22T14:06:46.071139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:06:54.570039Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:10:11.311868Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:10:11.803732Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:10:14.694406Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:10:15.147426Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:10:20.551057Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:10:21.045391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:10:22.951330Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:10:23.467707Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:10:30.780582Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:10:31.189747Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:11:11.060150Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=27 elapsed=4.548210084s\n2026-04-22T14:11:11.060281Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 27 eligible frames\n2026-04-22T14:11:12.404803Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.4MB → 0.2MB (8.3x), 11 JPEGs deleted\n2026-04-22T14:11:14.840042Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.7MB → 0.9MB (3.1x), 14 JPEGs deleted\n2026-04-22T14:13:35.976326Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4968702094796127351, trigger=click)\n2026-04-22T14:14:34.729623Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4357453572186956917, trigger=click)\n2026-04-22T14:14:35.105620Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4357453572186956917, trigger=click)\n2026-04-22T14:14:42.802189Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3105240340990619874, trigger=visual_change)\n2026-04-22T14:15:50.965557Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3105240340990619874, trigger=click)\n2026-04-22T14:16:12.161692Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6479516063853776409, trigger=click)\n2026-04-22T14:16:16.153590Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=48 elapsed=1.32668825s\n2026-04-22T14:16:16.155403Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 48 eligible frames\n2026-04-22T14:16:18.705225Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 5.0MB → 0.8MB (5.9x), 20 JPEGs deleted\n2026-04-22T14:16:23.744196Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.4MB → 1.3MB (3.4x), 26 JPEGs deleted\n2026-04-22T14:16:41.068116Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1903229694032021789, trigger=click)\n2026-04-22T14:19:15.519118Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4529195482775946524, trigger=click)\n2026-04-22T14:19:22.366746Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:19:30.208098Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:19:33.496128Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)\n2026-04-22T14:19:38.751833Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6094503686615299639, trigger=click)\n2026-04-22T14:19:41.173256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6094503686615299639, trigger=visual_change)\n2026-04-22T14:19:42.912499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6094503686615299639, trigger=click)\n2026-04-22T14:19:46.351486Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6094503686615299639, trigger=click)\n2026-04-22T14:19:59.152409Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4952826635443255860, trigger=click)\n2026-04-22T14:20:01.518389Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4952826635443255860, trigger=click)\n2026-04-22T14:20:08.061611Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3675157249828056010, trigger=click)\n2026-04-22T14:21:28.984120Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=25 elapsed=4.855522625s\n2026-04-22T14:21:28.985458Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames\n2026-04-22T14:21:30.346636Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 2.5MB → 0.5MB (5.1x), 11 JPEGs deleted\n2026-04-22T14:21:32.359178Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.6MB → 0.6MB (4.3x), 12 JPEGs deleted\n2026-04-22T14:23:49.639071Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:24:02.782818Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:24:15.622633Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:26:10.392401Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:26:10.788712Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:26:12.799270Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:26:13.219651Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=visual_change)\n2026-04-22T14:26:38.732555Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=36 elapsed=6.323619459s\n2026-04-22T14:26:38.732888Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 36 eligible frames\n2026-04-22T14:26:39.785513Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 1.2MB → 0.1MB (9.0x), 16 JPEGs deleted\n2026-04-22T14:26:41.678236Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 4.1MB → 1.7MB (2.4x), 18 JPEGs deleted\n2026-04-22T14:26:51.433436Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:26:52.304457Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:26:54.907598Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:26:55.381293Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:27:00.185936Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:27:01.160650Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=visual_change)\n2026-04-22T14:27:24.714027Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:27:25.724851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=visual_change)\n2026-04-22T14:27:26.222818Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:27:27.755899Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:27:28.274266Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)\n2026-04-22T14:30:08.479659Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1095112307124202838, trigger=click)\n2026-04-22T14:31:42.105262Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 38 eligible frames\n2026-04-22T14:31:43.197127Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.5MB → 1.0MB (2.5x), 15 JPEGs deleted\n2026-04-22T14:31:45.195588Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 4.3MB → 1.6MB (2.6x), 21 JPEGs deleted\n2026-04-22T14:32:02.263422Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3223987862501414590, trigger=click)\n2026-04-22T14:32:02.639431Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3223987862501414590, trigger=click)\n2026-04-22T14:32:19.705800Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1632013320203273627, trigger=click)\n2026-04-22T14:32:56.235240Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=257019738165452929, trigger=click)\n2026-04-22T14:32:59.969256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=257019738165452929, trigger=click)\n2026-04-22T14:33:03.317113Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=257019738165452929, trigger=click)\n2026-04-22T14:33:06.798109Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=257019738165452929, trigger=click)\n2026-04-22T14:33:17.093100Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3308965711270161120, trigger=click)\n2026-04-22T14:33:17.486074Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3308965711270161120, trigger=click)\n2026-04-22T14:33:22.565377Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3308965711270161120, trigger=click)\n2026-04-22T14:33:23.216523Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3308965711270161120, trigger=click)\n2026-04-22T14:33:35.842809Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=435352143489435154, trigger=click)\n2026-04-22T14:36:49.764156Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=34 elapsed=4.516637708s\n2026-04-22T14:36:49.764263Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 34 eligible frames\n2026-04-22T14:36:51.311395Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.0MB → 0.7MB (4.6x), 17 JPEGs deleted\n2026-04-22T14:36:52.531817Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 3.0MB → 1.1MB (2.6x), 15 JPEGs deleted\n2026-04-22T14:37:28.108242Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=435352143489435154, trigger=click)\n2026-04-22T14:37:28.485856Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=435352143489435154, trigger=click)\n2026-04-22T14:37:58.316339Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3668856246823891896, trigger=click)\n2026-04-22T14:38:23.725006Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3668856246823891896, trigger=visual_change)\n2026-04-22T14:38:38.826158Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3668856246823891896, trigger=click)\n2026-04-22T14:39:14.985595Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2152077026286113228, trigger=click)\n2026-04-22T14:39:41.085287Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2152077026286113228, trigger=click)\n2026-04-22T14:39:48.325144Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2152077026286113228, trigger=click)\n2026-04-22T14:39:54.042692Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2152077026286113228, trigger=click)\n2026-04-22T14:40:56.876512Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2152077026286113228, trigger=click)\n2026-04-22T14:41:03.035671Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2747516377298098397, trigger=click)\n2026-04-22T14:41:21.141064Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2710026494434395739, trigger=click)\n2026-04-22T14:41:34.026128Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2710026494434395739, trigger=click)\n2026-04-22T14:41:59.929978Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=38 elapsed=5.991404375s\n2026-04-22T14:41:59.930138Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 38 eligible frames\n2026-04-22T14:42:03.556178Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.2MB → 0.3MB (11.1x), 18 JPEGs deleted\n2026-04-22T14:42:06.257184Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.3MB → 1.1MB (2.9x), 18 JPEGs deleted\n2026-04-22T14:42:25.479048Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8568923258494843591, trigger=click)\n2026-04-22T14:42:43.658087Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1714642257969983896, trigger=click)\n2026-04-22T14:42:44.150668Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1714642257969983896, trigger=click)\n2026-04-22T14:42:46.347489Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1714642257969983896, trigger=click)\n2026-04-22T14:42:46.976364Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1714642257969983896, trigger=click)\n2026-04-22T14:42:54.146640Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8318058469467001879, trigger=click)\n2026-04-22T14:43:16.054664Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2746665666832385858, trigger=click)\n2026-04-22T14:43:27.592095Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2746665666832385858, trigger=click)\n2026-04-22T14:43:28.904486Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2746665666832385858, trigger=click)\n2026-04-22T14:43:33.115401Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2746665666832385858, trigger=click)\n2026-04-22T14:43:33.548704Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2746665666832385858, trigger=click)\n2026-04-22T14:43:34.528422Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2746665666832385858, trigger=click)\n2026-04-22T14:43:35.101040Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2746665666832385858, trigger=click)\n2026-04-22T14:43:42.182992Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2746665666832385858, trigger=click)\n2026-04-22T14:43:44.575989Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2746665666832385858, trigger=click)\n2026-04-22T14:44:46.365793Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6679194177618586363, trigger=click)\n2026-04-22T14:47:14.092894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6118025119517316583, trigger=click)\n2026-04-22T14:47:14.453307Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6118025119517316583, trigger=click)\n2026-04-22T14:47:15.216109Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=38 elapsed=7.876438917s\n2026-04-22T14:47:15.216433Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 38 eligible frames\n2026-04-22T14:47:16.019464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6118025119517316583, trigger=click)\n2026-04-22T14:47:16.544950Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6118025119517316583, trigger=click)\n2026-04-22T14:47:16.818898Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.2MB → 0.4MB (7.6x), 18 JPEGs deleted\n2026-04-22T14:47:18.385927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6118025119517316583, trigger=click)\n2026-04-22T14:47:18.475181Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.3MB → 1.2MB (2.9x), 18 JPEGs deleted\n2026-04-22T14:47:19.386449Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6118025119517316583, trigger=click)\n2026-04-22T14:47:20.087965Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6118025119517316583, trigger=click)\n2026-04-22T14:47:59.950079Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2150958068002330087, trigger=click)\n2026-04-22T14:48:01.449829Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2150958068002330087, trigger=click)\n2026-04-22T14:48:09.502190Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2150958068002330087, trigger=visual_change)\n2026-04-22T14:48:34.932290Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8599886822383806507, trigger=click)\n2026-04-22T14:48:44.486878Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3332409860485365312, trigger=click)\n2026-04-22T14:48:45.527964Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3332409860485365312, trigger=click)\n2026-04-22T14:49:38.888769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=472424603195027632, trigger=click)\n2026-04-22T14:49:45.417282Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=472424603195027632, trigger=click)\n2026-04-22T14:49:47.792067Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=472424603195027632, trigger=click)\n2026-04-22T14:50:00.945819Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4843648253222399128, trigger=click)\n2026-04-22T14:50:02.876637Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4843648253222399128, trigger=click)\n2026-04-22T14:52:21.989580Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=42 elapsed=3.480045958s\n2026-04-22T14:52:21.990045Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 42 eligible frames\n2026-04-22T14:52:23.358528Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 3.9MB → 0.4MB (8.7x), 22 JPEGs deleted\n2026-04-22T14:52:24.693261Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.5MB → 1.3MB (2.6x), 18 JPEGs deleted\n2026-04-22T14:53:02.184100Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8042719790331908666, trigger=click)\n2026-04-22T14:53:02.666973Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8042719790331908666, trigger=click)\n2026-04-22T14:53:44.356357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8042719790331908666, trigger=click)\n2026-04-22T14:53:44.849679Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8042719790331908666, trigger=click)\n2026-04-22T14:57:28.770189Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=52 elapsed=4.063771166s\n2026-04-22T14:57:28.770886Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 52 eligible frames\n2026-04-22T14:57:31.445523Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.2MB → 0.5MB (7.8x), 25 JPEGs deleted\n2026-04-22T14:57:35.130193Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.0MB → 2.4MB (2.1x), 25 JPEGs deleted\n2026-04-22T15:00:02.686939Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Slack, signals=2)\n2026-04-22T15:00:08.703872Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Slack, signals=2, browser=false)\n2026-04-22T15:00:08.707794Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=8, app=Slack, title=None)\n2026-04-22T15:00:09.697915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:00:25.820838Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:00:30.742889Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:00:35.932789Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:00:38.982205Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:00:42.607387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:00:45.252062Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:00:48.655907Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:00:54.706686Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:02:07.634898Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:02:43.352910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=click)\n2026-04-22T15:02:43.752028Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=57 elapsed=8.590900375s\n2026-04-22T15:02:43.756244Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 57 eligible frames\n2026-04-22T15:02:46.231236Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 4.8MB → 2.0MB (2.4x), 29 JPEGs deleted\n2026-04-22T15:02:46.417502Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)\n2026-04-22T15:02:49.039329Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.9MB → 1.8MB (2.8x), 26 JPEGs deleted\n2026-04-22T15:02:50.878563Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)\n2026-04-22T15:02:53.936710Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)\n2026-04-22T15:02:56.977078Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)\n2026-04-22T15:03:19.571166Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)\n2026-04-22T15:03:26.066470Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)\n2026-04-22T15:03:31.414066Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)\n2026-04-22T15:04:07.475454Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)\n2026-04-22T15:04:10.605093Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)\n2026-04-22T15:04:13.512293Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)\n2026-04-22T15:04:16.529473Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1201680249620521289, trigger=visual_change)\n2026-04-22T15:04:53.720517Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:04:55.658228Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:05:01.010633Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:05:03.051970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:05:06.145567Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:05:29.469376Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=797137072065105312, trigger=click)\n2026-04-22T15:05:55.103542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-116347373995830011, trigger=click)\n2026-04-22T15:05:55.539275Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-116347373995830011, trigger=click)\n2026-04-22T15:06:41.788384Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-116347373995830011, trigger=click)\n2026-04-22T15:06:42.204175Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-116347373995830011, trigger=click)\n2026-04-22T15:07:03.704733Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Slack, id=8, grace=30s)\n2026-04-22T15:07:39.449504Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Idle (timeout=30s, app=Slack, id=8)\n2026-04-22T15:07:39.915187Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting ended (id=8)\n2026-04-22T15:07:49.691643Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 27 eligible frames\n2026-04-22T15:07:51.650549Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.3MB → 0.3MB (7.0x), 13 JPEGs deleted\n2026-04-22T15:07:53.582709Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.6MB → 0.9MB (3.0x), 12 JPEGs deleted\n2026-04-22T15:07:53.988144Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1303595353837004202, trigger=click)\n2026-04-22T15:09:49.799139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4589403011857874475, trigger=click)\n2026-04-22T15:09:52.656133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4589403011857874475, trigger=click)\n2026-04-22T15:13:00.784316Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=44 elapsed=7.176940333s\n2026-04-22T15:13:00.784701Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 44 eligible frames\n2026-04-22T15:13:06.141480Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 3.7MB → 1.4MB (2.7x), 23 JPEGs deleted\n2026-04-22T15:13:09.087116Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 5.4MB → 1.4MB (4.0x), 19 JPEGs deleted\n2026-04-22T15:18:11.493152Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=37 elapsed=2.382042209s\n2026-04-22T15:18:11.496118Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 37 eligible frames\n2026-04-22T15:18:15.568523Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.0MB → 1.3MB (2.3x), 18 JPEGs deleted\n2026-04-22T15:18:18.268870Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 5.0MB → 1.2MB (4.0x), 17 JPEGs deleted\n2026-04-22T15:21:12.476028Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3813526692250337476, trigger=visual_change)\n2026-04-22T15:23:28.271759Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=63 elapsed=9.511646458s\n2026-04-22T15:23:28.282671Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 63 eligible frames\n2026-04-22T15:23:34.267737Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 6.8MB → 3.5MB (1.9x), 31 JPEGs deleted\n2026-04-22T15:23:38.696265Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 5.7MB → 1.2MB (4.7x), 30 JPEGs deleted\n2026-04-22T15:25:18.297937Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:25:21.238617Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:25:58.399479Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6869659017523937306, trigger=click)\n2026-04-22T15:26:00.086631Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6869659017523937306, trigger=click)\n2026-04-22T15:26:01.910963Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6869659017523937306, trigger=visual_change)\n2026-04-22T15:26:02.357258Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6869659017523937306, trigger=visual_change)\n2026-04-22T15:26:04.744325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6869659017523937306, trigger=click)\n2026-04-22T15:26:05.686404Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6869659017523937306, trigger=visual_change)\n2026-04-22T15:26:07.341872Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6869659017523937306, trigger=click)\n2026-04-22T15:26:07.841961Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6869659017523937306, trigger=click)\n2026-04-22T15:27:08.518409Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=click)\n2026-04-22T15:27:14.348556Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)\n2026-04-22T15:27:19.567077Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)\n2026-04-22T15:27:23.928137Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6983242470914211958, trigger=click)\n2026-04-22T15:27:25.430871Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=click)\n2026-04-22T15:27:32.704396Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6983242470914211958, trigger=click)\n2026-04-22T15:27:39.006433Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)\n2026-04-22T15:27:43.060533Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)\n2026-04-22T15:27:45.902424Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)\n2026-04-22T15:27:53.866025Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)\n2026-04-22T15:27:56.855542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)\n2026-04-22T15:28:06.329802Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)\n2026-04-22T15:28:16.947758Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=click)\n2026-04-22T15:28:17.639628Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6983242470914211958, trigger=click)\n2026-04-22T15:28:19.702614Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=visual_change)\n2026-04-22T15:28:22.257394Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=click)\n2026-04-22T15:28:22.756941Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6983242470914211958, trigger=click)\n2026-04-22T15:28:25.405205Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6983242470914211958, trigger=click)\n2026-04-22T15:28:26.273821Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6983242470914211958, trigger=click)\n2026-04-22T15:28:37.225888Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4416148030571332734, trigger=click)\n2026-04-22T15:28:41.503684Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4416148030571332734, trigger=visual_change)\n2026-04-22T15:28:42.412245Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4416148030571332734, trigger=click)\n2026-04-22T15:28:44.900893Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4416148030571332734, trigger=click)\n2026-04-22T15:28:45.281047Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4416148030571332734, trigger=click)\n2026-04-22T15:28:47.806415Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=61 elapsed=8.915603625s\n2026-04-22T15:28:47.808575Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 61 eligible frames\n2026-04-22T15:28:51.748955Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4416148030571332734, trigger=click)\n2026-04-22T15:28:52.058480Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 33 frames, 7.4MB → 2.7MB (2.7x), 33 JPEGs deleted\n2026-04-22T15:28:57.816868Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.8MB → 2.2MB (2.2x), 26 JPEGs deleted\n2026-04-22T15:28:59.171732Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4416148030571332734, trigger=visual_change)\n2026-04-22T15:29:19.001260Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4416148030571332734, trigger=visual_change)\n2026-04-22T15:29:26.828215Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4416148030571332734, trigger=visual_change)\n2026-04-22T15:30:54.757442Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2182844197261250370, trigger=click)\n2026-04-22T15:31:30.516711Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2182844197261250370, trigger=click)\n2026-04-22T15:31:49.431335Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4416148030571332734, trigger=visual_change)\n2026-04-22T15:31:54.155985Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4416148030571332734, trigger=visual_change)\n2026-04-22T15:31:58.427528Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4416148030571332734, trigger=visual_change)\n2026-04-22T15:32:21.666172Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7700301847216802583, trigger=click)\n2026-04-22T15:32:26.019679Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7700301847216802583, trigger=visual_change)\n2026-04-22T15:33:34.334309Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5496326212892813056, trigger=visual_change)\n2026-04-22T15:33:41.606418Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5496326212892813056, trigger=visual_change)\n2026-04-22T15:34:04.695051Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5496326212892813056, trigger=click)\n2026-04-22T15:34:06.919005Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=73 elapsed=9.073921416s\n2026-04-22T15:34:06.919292Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 73 eligible frames\n2026-04-22T15:34:11.489642Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 40 frames, 9.1MB → 3.4MB (2.6x), 40 JPEGs deleted\n2026-04-22T15:34:15.335063Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 6.0MB → 2.0MB (3.0x), 31 JPEGs deleted\n2026-04-22T15:36:46.398267Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3562390500463334923, trigger=visual_change)\n2026-04-22T15:36:49.359581Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3562390500463334923, trigger=visual_change)\n2026-04-22T15:36:56.667177Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3562390500463334923, trigger=click)\n2026-04-22T15:37:01.305805Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3562390500463334923, trigger=click)\n2026-04-22T15:37:04.552815Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3562390500463334923, trigger=click)\n2026-04-22T15:37:05.365649Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3562390500463334923, trigger=click)\n2026-04-22T15:37:06.657172Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3562390500463334923, trigger=visual_change)\n2026-04-22T15:37:20.005928Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3562390500463334923, trigger=visual_change)\n2026-04-22T15:37:22.572092Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3562390500463334923, trigger=visual_change)\n2026-04-22T15:37:28.745166Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3562390500463334923, trigger=visual_change)\n2026-04-22T15:37:32.112106Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3562390500463334923, trigger=visual_change)\n2026-04-22T15:37:40.817103Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3562390500463334923, trigger=visual_change)\n2026-04-22T15:37:44.068041Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3562390500463334923, trigger=visual_change)\n2026-04-22T15:37:49.735129Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3562390500463334923, trigger=click)\n2026-04-22T15:37:50.302210Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3562390500463334923, trigger=click)\n2026-04-22T15:38:55.433464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=666278282122949848, trigger=visual_change)\n2026-04-22T15:38:58.142835Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=666278282122949848, trigger=visual_change)\n2026-04-22T15:39:15.500379Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=666278282122949848, trigger=click)\n2026-04-22T15:39:15.987757Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=666278282122949848, trigger=click)\n2026-04-22T15:39:17.228167Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=666278282122949848, trigger=visual_change)\n2026-04-22T15:39:18.307711Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=666278282122949848, trigger=visual_change)\n2026-04-22T15:39:21.533092Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=666278282122949848, trigger=visual_change)\n2026-04-22T15:39:21.807148Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=62 elapsed=6.322537666s\n2026-04-22T15:39:21.807242Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 62 eligible frames\n2026-04-22T15:39:23.654129Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=666278282122949848, trigger=visual_change)\n2026-04-22T15:39:24.158197Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=666278282122949848, trigger=click)\n2026-04-22T15:39:24.238758Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 6.7MB → 2.4MB (2.8x), 29 JPEGs deleted\n2026-04-22T15:39:24.919127Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=666278282122949848, trigger=click)\n2026-04-22T15:39:26.522050Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 6.2MB → 2.3MB (2.7x), 31 JPEGs deleted\n2026-04-22T15:39:32.912924Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=666278282122949848, trigger=visual_change)\n2026-04-22T15:39:33.735345Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=666278282122949848, trigger=click)\n2026-04-22T15:39:35.375360Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=666278282122949848, trigger=click)\n2026-04-22T15:39:36.995841Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=666278282122949848, trigger=click)\n2026-04-22T15:39:37.467108Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=666278282122949848, trigger=click)\n2026-04-22T15:39:40.369538Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=666278282122949848, trigger=click)\n2026-04-22T15:39:43.276197Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=666278282122949848, trigger=click)\n2026-04-22T15:40:07.556081Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:40:09.930821Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:40:11.154450Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:40:19.449508Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:40:29.519581Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8135701070039948601, trigger=visual_change)\n2026-04-22T15:41:56.970803Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:42:06.118149Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:44:30.869060Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=59 elapsed=4.334722834s\n2026-04-22T15:44:30.869438Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 59 eligible frames\n2026-04-22T15:44:36.682494Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 7.0MB → 3.2MB (2.1x), 31 JPEGs deleted\n2026-04-22T15:44:41.069797Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.9MB → 1.5MB (3.3x), 26 JPEGs deleted\n2026-04-22T15:47:16.707141Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:47:26.476915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:47:30.506202Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:47:33.490610Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:47:37.439486Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:48:10.814782Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:48:49.253754Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:48:58.005092Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:49:44.222629Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=41 elapsed=2.9267015s\n2026-04-22T15:49:44.223441Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 41 eligible frames\n2026-04-22T15:49:46.632623Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:49:46.707995Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 4.3MB → 2.2MB (2.0x), 19 JPEGs deleted\n2026-04-22T15:49:48.648095Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.5MB → 2.1MB (2.2x), 20 JPEGs deleted\n2026-04-22T15:49:55.585051Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:49:58.557820Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:50:04.689651Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:50:10.744245Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:50:32.681643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:50:37.792790Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:50:40.260147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:50:46.805742Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:50:53.026194Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:50:55.961999Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:51:02.210628Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:51:04.537374Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:51:17.321401Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:51:23.393544Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:51:26.412142Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:51:32.600472Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:51:35.220938Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:51:41.194536Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:51:44.210722Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:51:50.304611Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:51:56.294115Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:51:59.321943Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:52:05.342699Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:52:17.436700Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:52:21.187208Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:52:49.374507Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:52:51.550918Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:52:53.892542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:52:59.947921Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:53:03.308386Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:53:10.465051Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:53:18.275354Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:53:19.882281Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:53:26.102339Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:53:28.677581Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:53:38.195861Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:53:40.759223Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:53:44.211689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:53:49.661798Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:53:51.254730Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:53:56.539255Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:53:58.004998Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:53:58.491246Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:54:00.207899Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:54:00.960349Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:54:06.030857Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:54:09.163227Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:54:09.608141Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:54:29.884648Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7221551953177750058, trigger=visual_change)\n2026-04-22T15:54:32.904873Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7221551953177750058, trigger=visual_change)\n2026-04-22T15:54:38.529745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7221551953177750058, trigger=visual_change)\n2026-04-22T15:54:42.030930Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7221551953177750058, trigger=visual_change)\n2026-04-22T15:54:53.757845Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=44 elapsed=5.12885025s\n2026-04-22T15:54:53.758028Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 44 eligible frames\n2026-04-22T15:54:56.216519Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.7MB → 2.2MB (2.6x), 25 JPEGs deleted\n2026-04-22T15:54:57.253500Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7221551953177750058, trigger=visual_change)\n2026-04-22T15:54:57.778380Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.8MB → 1.4MB (2.7x), 17 JPEGs deleted\n2026-04-22T15:55:14.227919Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:55:29.347981Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:55:34.911796Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:55:37.679086Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:55:55.657449Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:55:56.235238Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:55:58.080012Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:56:03.489838Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:56:19.773160Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T15:58:04.898631Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:58:05.507970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T15:58:19.974744Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7937570718597551457, trigger=visual_change)\n2026-04-22T16:00:07.397412Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=28 elapsed=9.608749083s\n2026-04-22T16:00:07.397774Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames\n2026-04-22T16:00:11.353157Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.7MB → 1.6MB (1.7x), 12 JPEGs deleted\n2026-04-22T16:00:14.732810Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 3.1MB → 1.4MB (2.2x), 14 JPEGs deleted\n2026-04-22T16:05:14.875841Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 26 eligible frames\n2026-04-22T16:05:21.176398Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.7MB → 1.5MB (1.8x), 12 JPEGs deleted\n2026-04-22T16:05:23.500634Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.7MB → 0.8MB (3.5x), 12 JPEGs deleted\n2026-04-22T16:09:43.057186Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1700548679087424896, trigger=click)\n2026-04-22T16:09:43.726339Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1700548679087424896, trigger=click)\n2026-04-22T16:10:33.202772Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=32 elapsed=8.151029333s\n2026-04-22T16:10:33.205709Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 32 eligible frames\n2026-04-22T16:10:36.241109Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.9MB → 0.8MB (3.6x), 16 JPEGs deleted\n2026-04-22T16:10:39.638416Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.4MB → 1.1MB (2.2x), 14 JPEGs deleted\n2026-04-22T16:12:57.604636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3640531240517672751, trigger=visual_change)\n2026-04-22T16:14:48.477621Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3640531240517672751, trigger=click)\n2026-04-22T16:14:49.113238Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3640531240517672751, trigger=click)\n2026-04-22T16:14:52.803148Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3640531240517672751, trigger=click)\n2026-04-22T16:15:48.370916Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=21 elapsed=8.52753825s\n2026-04-22T16:15:48.371084Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames\n2026-04-22T16:15:49.801978Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 1.6MB → 0.3MB (5.7x), 9 JPEGs deleted\n2026-04-22T16:15:51.456711Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.6MB → 0.4MB (4.1x), 10 JPEGs deleted\n2026-04-22T16:16:39.820921Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:16:40.258041Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:16:42.604047Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4659444575687776884, trigger=visual_change)\n2026-04-22T16:16:44.729225Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:16:45.395942Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:16:48.031036Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:16:53.808716Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:16:57.947511Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:16:58.661906Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:17:00.203848Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:17:00.510442Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:17:10.932565Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:17:13.262897Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:17:16.009682Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:17:16.360136Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:17:18.987777Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:17:19.385866Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:17:22.098836Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:17:22.469613Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4659444575687776884, trigger=click)\n2026-04-22T16:17:45.084378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T16:17:45.488587Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=visual_change)\n2026-04-22T16:17:46.265772Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T16:17:50.794900Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T16:17:51.193853Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T16:17:56.183149Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T16:17:56.903285Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T16:18:02.302062Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2014082630808116476, trigger=click)\n2026-04-22T16:19:28.148117Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7767962928162902459, trigger=visual_change)\n2026-04-22T16:19:30.526236Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7767962928162902459, trigger=click)\n2026-04-22T16:19:31.195837Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7767962928162902459, trigger=click)\n2026-04-22T16:19:33.715299Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7767962928162902459, trigger=click)\n2026-04-22T16:19:34.357828Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7767962928162902459, trigger=click)\n2026-04-22T16:19:35.020610Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7767962928162902459, trigger=click)\n2026-04-22T16:19:35.698451Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7767962928162902459, trigger=click)\n2026-04-22T16:20:53.732098Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=2.258795792s\n2026-04-22T16:20:53.732443Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-22T16:20:54.463494Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 1.6MB → 0.3MB (5.7x), 9 JPEGs deleted\n2026-04-22T16:20:55.529460Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 2.5MB → 1.1MB (2.3x), 11 JPEGs deleted\n2026-04-22T16:24:20.510070Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2383132637107085157, trigger=click)\n2026-04-22T16:24:27.782475Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1404306881477617387, trigger=click)\n2026-04-22T16:24:44.481677Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6805760601486189718, trigger=click)\n2026-04-22T16:25:13.403567Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=666355421012968666, trigger=click)\n2026-04-22T16:26:01.606241Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=32 elapsed=6.054129542s\n2026-04-22T16:26:01.608081Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 32 eligible frames\n2026-04-22T16:26:04.408527Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.5MB → 0.3MB (8.7x), 14 JPEGs deleted\n2026-04-22T16:26:09.345870Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 3.9MB → 2.5MB (1.6x), 16 JPEGs deleted\n2026-04-22T16:31:16.523778Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=48 elapsed=6.261290959s\n2026-04-22T16:31:16.523889Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 48 eligible frames\n2026-04-22T16:31:18.062354Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 4.1MB → 0.5MB (9.1x), 23 JPEGs deleted\n2026-04-22T16:31:19.733335Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 6.0MB → 1.6MB (3.8x), 23 JPEGs deleted\n2026-04-22T16:35:14.998679Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-930197057256512338, trigger=click)\n2026-04-22T16:35:28.307910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2176696510142482118, trigger=click)\n2026-04-22T16:35:30.218730Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2176696510142482118, trigger=click)\n2026-04-22T16:35:50.703840Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4332103135047682933, trigger=visual_change)\n2026-04-22T16:35:52.711832Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4332103135047682933, trigger=click)\n2026-04-22T16:35:53.307064Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4332103135047682933, trigger=visual_change)\n2026-04-22T16:36:26.222531Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=53 elapsed=6.476373125s\n2026-04-22T16:36:26.222663Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 53 eligible frames\n2026-04-22T16:36:28.058618Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 3.4MB → 1.1MB (3.1x), 27 JPEGs deleted\n2026-04-22T16:36:29.824864Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 6.2MB → 0.7MB (8.9x), 24 JPEGs deleted\n2026-04-22T16:38:27.295549Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4399336884068833789, trigger=click)\n2026-04-22T16:38:31.082408Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4399336884068833789, trigger=click)\n2026-04-22T16:40:46.732079Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4399336884068833789, trigger=visual_change)\n2026-04-22T16:40:50.641593Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4399336884068833789, trigger=click)\n2026-04-22T16:40:51.044794Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4399336884068833789, trigger=click)\n2026-04-22T16:40:55.679492Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4399336884068833789, trigger=click)\n2026-04-22T16:40:56.491807Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4399336884068833789, trigger=click)\n2026-04-22T16:41:32.562032Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=29 elapsed=2.600218041s\n2026-04-22T16:41:32.562136Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 29 eligible frames\n2026-04-22T16:41:33.652619Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 1.3MB → 0.2MB (6.4x), 14 JPEGs deleted\n2026-04-22T16:41:35.202361Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 3.3MB → 0.5MB (7.0x), 13 JPEGs deleted\n2026-04-22T16:46:38.330333Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=32 elapsed=3.117707958s\n2026-04-22T16:46:38.330439Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 32 eligible frames\n2026-04-22T16:46:39.948332Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 1.3MB → 0.1MB (9.1x), 14 JPEGs deleted\n2026-04-22T16:46:41.506017Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 4.0MB → 1.2MB (3.3x), 16 JPEGs deleted\n2026-04-22T16:51:48.131482Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=23 elapsed=6.613640791s\n2026-04-22T16:51:48.132937Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 23 eligible frames\n2026-04-22T16:51:49.003952Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.0MB → 0.1MB (8.7x), 11 JPEGs deleted\n2026-04-22T16:51:50.053842Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.0MB → 0.7MB (2.7x), 10 JPEGs deleted\n2026-04-22T16:52:34.780923Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)\n2026-04-22T16:52:48.863893Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=app_switch, monitor=1) — DB pool may be saturated\n2026-04-22T16:52:48.863900Z WARN screenpipe_engine::event_driven_capture: event capture timed out (trigger=app_switch, monitor=2) — DB pool may be saturated\n2026-04-22T16:53:01.610713Z INFO sck_rs::stream_manager: recreating stream for display 1 (resolution change)\n2026-04-22T16:53:29.988978Z INFO sck_rs::stream_manager: recreating stream for display 2 (resolution change)\n2026-04-22T16:56:56.495427Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=6.425245416s\n2026-04-22T16:56:56.495542Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-22T16:56:57.336306Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.9MB → 0.1MB (7.9x), 10 JPEGs deleted\n2026-04-22T16:56:58.175049Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.9MB → 0.3MB (6.3x), 10 JPEGs deleted\n2026-04-22T17:01:58.685859Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-22T17:01:59.473339Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.9MB → 0.1MB (8.0x), 10 JPEGs deleted\n2026-04-22T17:02:00.310277Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.9MB → 0.3MB (6.3x), 10 JPEGs deleted\n2026-04-22T17:07:01.945755Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=4 elapsed=1.626160375s\n2026-04-22T17:07:01.945847Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 4 eligible frames\n2026-04-22T17:07:02.187343Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 1 frames, 0.1MB → 0.1MB (1.0x), 1 JPEGs deleted\n2026-04-22T17:07:02.450702Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 1 frames, 0.2MB → 0.2MB (0.8x), 1 JPEGs deleted\n2026-04-22T17:12:06.874189Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=2 elapsed=4.3861715s\n2026-04-22T17:12:06.874452Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-22T17:17:13.193100Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=6.294200125s\n2026-04-22T17:20:07.541995Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)\n2026-04-22T17:20:07.630953Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 1\n2026-04-22T17:20:14.084721Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-22T17:20:14.480434Z INFO screenpipe_engine::event_driven_capture: monitor 1 capture recovered after 1 consecutive errors\n2026-04-22T17:20:15.608548Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-22T17:20:16.850029Z INFO screenpipe_engine::event_driven_capture: monitor 2 capture recovered after 1 consecutive errors\n2026-04-22T17:20:59.606795Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=353611364339833193, trigger=visual_change)\n2026-04-22T17:21:05.782785Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6518006199864472489, trigger=click)\n2026-04-22T17:21:48.543394Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6518006199864472489, trigger=click)\n2026-04-22T17:21:52.452327Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6518006199864472489, trigger=click)\n2026-04-22T17:22:24.575958Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=11.371497042s\n2026-04-22T17:27:29.081900Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=0 elapsed=4.457444667s\n2026-04-22T17:32:30.295309Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 20 eligible frames\n2026-04-22T17:32:30.964048Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 7 frames, 0.7MB → 0.1MB (5.8x), 7 JPEGs deleted\n2026-04-22T17:32:32.430798Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.9MB → 0.8MB (3.6x), 13 JPEGs deleted\n2026-04-22T17:37:36.325676Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=24 elapsed=3.882934833s\n2026-04-22T17:37:36.326088Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 24 eligible frames\n2026-04-22T17:37:37.732598Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 0.9MB → 0.1MB (8.1x), 10 JPEGs deleted\n2026-04-22T17:37:38.875813Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.5MB → 0.9MB (2.7x), 12 JPEGs deleted\n2026-04-22T17:42:43.122610Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=28 elapsed=4.232872583s\n2026-04-22T17:42:43.122797Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames\n2026-04-22T17:42:44.139661Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.0MB → 0.2MB (6.5x), 11 JPEGs deleted\n2026-04-22T17:42:45.850747Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 3.1MB → 1.5MB (2.1x), 15 JPEGs deleted\n2026-04-22T17:42:57.144176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5398018417063851890, trigger=click)\n2026-04-22T17:42:57.653834Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5398018417063851890, trigger=click)\n2026-04-22T17:43:28.190643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7326608657648522043, trigger=click)\n2026-04-22T17:43:30.037343Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7326608657648522043, trigger=visual_change)\n2026-04-22T17:44:17.081083Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=900127091433810136, trigger=click)\n2026-04-22T17:44:17.605660Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=900127091433810136, trigger=click)\n2026-04-22T17:45:37.216031Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=900127091433810136, trigger=visual_change)\n2026-04-22T17:47:22.339709Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=900127091433810136, trigger=visual_change)\n2026-04-22T17:47:28.305597Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=900127091433810136, trigger=click)\n2026-04-22T17:47:29.056879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=900127091433810136, trigger=click)\n2026-04-22T17:47:52.285649Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=900127091433810136, trigger=visual_change)\n2026-04-22T17:47:53.496727Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=42 elapsed=7.316425834s\n2026-04-22T17:47:53.496837Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 42 eligible frames\n2026-04-22T17:47:54.629113Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 1.5MB → 0.1MB (12.5x), 16 JPEGs deleted\n2026-04-22T17:47:56.497927Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 5.4MB → 1.6MB (3.4x), 24 JPEGs deleted\n2026-04-22T17:49:23.365540Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7724578834627729847, trigger=click)\n2026-04-22T17:53:02.690403Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=27 elapsed=6.179264s\n2026-04-22T17:53:02.690738Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 27 eligible frames\n2026-04-22T17:53:03.556672Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.2MB → 0.1MB (10.3x), 13 JPEGs deleted\n2026-04-22T17:53:05.211208Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.5MB → 0.6MB (4.0x), 12 JPEGs deleted\n2026-04-22T17:57:40.568162Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1851379926418959813, trigger=click)\n2026-04-22T17:57:41.079468Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1851379926418959813, trigger=click)\n2026-04-22T17:58:10.456601Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=45 elapsed=4.691370125s\n2026-04-22T17:58:10.457220Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 45 eligible frames\n2026-04-22T17:58:12.041940Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 2.1MB → 0.2MB (11.4x), 22 JPEGs deleted\n2026-04-22T17:58:14.351810Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.8MB → 2.2MB (1.8x), 21 JPEGs deleted\n2026-04-22T17:58:21.350110Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1851379926418959813, trigger=click)\n2026-04-22T17:58:21.948643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1851379926418959813, trigger=click)\n2026-04-22T18:03:16.198465Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=44 elapsed=1.833842375s\n2026-04-22T18:03:16.198578Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 44 eligible frames\n2026-04-22T18:03:18.139382Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 2.0MB → 0.1MB (16.1x), 21 JPEGs deleted\n2026-04-22T18:03:19.618803Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.5MB → 1.5MB (2.4x), 21 JPEGs deleted\n2026-04-22T18:06:58.395218Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7639883349033148478, trigger=click)\n2026-04-22T18:06:58.897470Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7639883349033148478, trigger=click)\n2026-04-22T18:07:42.474566Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=607162597309748765, trigger=click)\n2026-04-22T18:08:27.382204Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=28 elapsed=7.750844334s\n2026-04-22T18:08:27.382491Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames\n2026-04-22T18:08:29.032220Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.2MB → 0.1MB (10.4x), 13 JPEGs deleted\n2026-04-22T18:08:30.573314Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.7MB → 0.6MB (4.2x), 13 JPEGs deleted\n2026-04-22T18:13:38.096494Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=20 elapsed=6.760223375s\n2026-04-22T18:13:38.099584Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 20 eligible frames\n2026-04-22T18:13:38.806766Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 0.8MB → 0.1MB (7.4x), 9 JPEGs deleted\n2026-04-22T18:13:39.606462Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 1.9MB → 0.5MB (3.8x), 9 JPEGs deleted\n2026-04-22T18:18:41.943065Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=45 elapsed=2.325026709s\n2026-04-22T18:18:41.943417Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 45 eligible frames\n2026-04-22T18:18:43.289962Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 2.0MB → 0.1MB (16.7x), 21 JPEGs deleted\n2026-04-22T18:18:45.689764Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 4.4MB → 1.3MB (3.4x), 22 JPEGs deleted\n2026-04-22T18:18:54.020334Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6726632078176380015, trigger=click)\n2026-04-22T18:18:54.540347Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6726632078176380015, trigger=click)\n2026-04-22T18:18:55.737423Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6726632078176380015, trigger=click)\n2026-04-22T18:18:56.477423Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6726632078176380015, trigger=click)\n2026-04-22T18:20:28.510789Z WARN sqlx::query: summary=\"PRAGMA wal_checkpoint(TRUNCATE)\" db.statement=\"\" rows_affected=0 rows_returned=1 elapsed=5.273706125s\n2026-04-22T18:20:28.511954Z WARN screenpipe_db::db: wal checkpoint: busy (could not truncate), 3177 pages in WAL\n2026-04-22T18:20:28.562400Z WARN sqlx::query: summary=\"BEGIN IMMEDIATE\" db.statement=\"\" rows_affected=1 rows_returned=0 elapsed=2.291890708s\n2026-04-22T18:23:52.302822Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=31 elapsed=6.325649833s\n2026-04-22T18:23:52.304330Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 31 eligible frames\n2026-04-22T18:23:53.163590Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 1.1MB → 0.1MB (9.9x), 12 JPEGs deleted\n2026-04-22T18:23:55.277698Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.4MB → 1.6MB (2.2x), 17 JPEGs deleted\n2026-04-22T18:28:56.007322Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 35 eligible frames\n2026-04-22T18:28:57.403360Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.7MB → 1.5MB (1.9x), 16 JPEGs deleted\n2026-04-22T18:28:58.752838Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.9MB → 0.8MB (3.6x), 17 JPEGs deleted\n2026-04-22T18:34:01.165384Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=41 elapsed=2.400307625s\n2026-04-22T18:34:01.165480Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 41 eligible frames\n2026-04-22T18:34:02.291139Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.7MB → 0.8MB (3.5x), 15 JPEGs deleted\n2026-04-22T18:34:04.197399Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.2MB → 1.7MB (2.4x), 24 JPEGs deleted\n2026-04-22T18:35:56.027919Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5884937538005636030, trigger=visual_change)\n2026-04-22T18:37:55.284482Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-439807993867665328, trigger=visual_change)\n2026-04-22T18:39:08.660187Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=22 elapsed=4.451587125s\n2026-04-22T18:39:08.660278Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames\n2026-04-22T18:39:09.493828Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.5MB → 0.5MB (3.1x), 10 JPEGs deleted\n2026-04-22T18:39:10.349740Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.1MB → 0.5MB (4.3x), 10 JPEGs deleted\n2026-04-22T18:43:06.355073Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3304493437592891639, trigger=click)\n2026-04-22T18:43:23.219621Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6603898485603033537, trigger=click)\n2026-04-22T18:44:11.899645Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=21 elapsed=1.53441375s\n2026-04-22T18:44:11.900197Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 21 eligible frames\n2026-04-22T18:44:12.802039Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 1.1MB → 0.2MB (6.3x), 9 JPEGs deleted\n2026-04-22T18:44:14.694466Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.1MB → 0.3MB (5.9x), 10 JPEGs deleted\n2026-04-22T18:45:14.778135Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6664853592767636193, trigger=click)\n2026-04-22T18:46:36.923697Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1791249548195440516, trigger=visual_change)\n2026-04-22T18:49:18.625635Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=46 elapsed=3.900838541s\n2026-04-22T18:49:18.625996Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 46 eligible frames\n2026-04-22T18:49:19.640722Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 1.8MB → 0.2MB (10.4x), 15 JPEGs deleted\n2026-04-22T18:49:23.038596Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 5.2MB → 2.1MB (2.4x), 29 JPEGs deleted\n2026-04-22T18:50:34.997361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=visual_change)\n2026-04-22T18:50:39.846829Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:50:43.731899Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:20.200945Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=visual_change)\n2026-04-22T18:51:23.144927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:23.976040Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:27.176876Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:28.227317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:31.555085Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:32.274042Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:35.352114Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:51:37.306495Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=visual_change)\n2026-04-22T18:52:02.049971Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=visual_change)\n2026-04-22T18:52:09.690330Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=visual_change)\n2026-04-22T18:52:11.530065Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:52:12.090300Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4223581327363288736, trigger=click)\n2026-04-22T18:52:22.885838Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6951480031607957362, trigger=visual_change)\n2026-04-22T18:52:58.986955Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7031607293039132919, trigger=click)\n2026-04-22T18:53:47.690375Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3992755350865402319, trigger=visual_change)\n2026-04-22T18:54:25.328228Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=52 elapsed=2.277973417s\n2026-04-22T18:54:25.328316Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 52 eligible frames\n2026-04-22T18:54:26.661506Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 2.6MB → 0.2MB (11.0x), 22 JPEGs deleted\n2026-04-22T18:54:28.982139Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 4.3MB → 1.1MB (3.8x), 28 JPEGs deleted\n2026-04-22T18:54:44.142044Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3992755350865402319, trigger=visual_change)\n2026-04-22T18:55:01.465747Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2556650532703180759, trigger=click)\n2026-04-22T18:55:02.524314Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2556650532703180759, trigger=click)\n2026-04-22T18:55:35.312048Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3149441378543601087, trigger=visual_change)\n2026-04-22T18:55:55.086761Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3149441378543601087, trigger=click)\n2026-04-22T18:55:56.919853Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3149441378543601087, trigger=visual_change)\n2026-04-22T18:56:05.807170Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7595806992634662117, trigger=visual_change)\n2026-04-22T18:56:12.303927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7595806992634662117, trigger=visual_change)\n2026-04-22T18:56:58.093656Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2070714172482892625, trigger=visual_change)\n2026-04-22T18:57:00.459010Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2070714172482892625, trigger=visual_change)\n2026-04-22T18:57:03.809894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2070714172482892625, trigger=visual_change)\n2026-04-22T18:58:04.259354Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7284778144726625723, trigger=visual_change)\n2026-04-22T18:58:07.302007Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7284778144726625723, trigger=visual_change)\n2026-04-22T18:58:10.443744Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7284778144726625723, trigger=visual_change)\n2026-04-22T18:58:40.416893Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6313361147559934277, trigger=click)\n2026-04-22T18:58:59.229391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)\n2026-04-22T18:59:10.795801Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)\n2026-04-22T18:59:15.904155Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)\n2026-04-22T18:59:30.308258Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=46 elapsed=1.303054333s\n2026-04-22T18:59:30.308485Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 46 eligible frames\n2026-04-22T18:59:31.535859Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 2.4MB → 0.3MB (7.5x), 20 JPEGs deleted\n2026-04-22T18:59:33.536283Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 3.8MB → 1.3MB (3.0x), 24 JPEGs deleted\n2026-04-22T18:59:39.897203Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)\n2026-04-22T18:59:43.593017Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-71227342056343983, trigger=visual_change)\n2026-04-22T18:59:55.722135Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)\n2026-04-22T19:00:00.394304Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-71227342056343983, trigger=visual_change)\n2026-04-22T19:00:27.869871Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2710856207947507007, trigger=visual_change)\n2026-04-22T19:01:54.992910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6986338393283794423, trigger=visual_change)\n2026-04-22T19:02:13.568012Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6986338393283794423, trigger=visual_change)\n2026-04-22T19:02:16.092275Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6986338393283794423, trigger=visual_change)\n2026-04-22T19:03:04.479425Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7704375629034044835, trigger=visual_change)\n2026-04-22T19:03:35.287830Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2375149456869027114, trigger=visual_change)\n2026-04-22T19:03:41.021583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2375149456869027114, trigger=visual_change)\n2026-04-22T19:03:48.485601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6234474271212752005, trigger=visual_change)\n2026-04-22T19:04:35.737525Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=82 elapsed=2.188209209s\n2026-04-22T19:04:35.737670Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 82 eligible frames\n2026-04-22T19:04:38.209886Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3880005638520398709, trigger=click)\n2026-04-22T19:04:38.478674Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 4.8MB → 1.0MB (4.9x), 39 JPEGs deleted\n2026-04-22T19:04:42.074270Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 41 frames, 7.5MB → 3.6MB (2.1x), 41 JPEGs deleted\n2026-04-22T19:04:55.094599Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-635344842894947589, trigger=visual_change)\n2026-04-22T19:05:20.336216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)\n2026-04-22T19:05:54.388487Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)\n2026-04-22T19:05:57.299176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)\n2026-04-22T19:05:59.949506Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)\n2026-04-22T19:06:25.531964Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5957740084085463727, trigger=visual_change)\n2026-04-22T19:06:50.090567Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6422724880219484653, trigger=visual_change)\n2026-04-22T19:07:22.963169Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2531925023067266044, trigger=click)\n2026-04-22T19:07:24.045648Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2531925023067266044, trigger=click)\n2026-04-22T19:07:27.834546Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2085088366939909076, trigger=click)\n2026-04-22T19:07:28.381522Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2085088366939909076, trigger=click)\n2026-04-22T19:08:34.175493Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3061313113729352595, trigger=click)\n2026-04-22T19:09:42.454765Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 91 eligible frames\n2026-04-22T19:09:45.816541Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 5.7MB → 2.4MB (2.3x), 32 JPEGs deleted\n2026-04-22T19:09:50.140975Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 57 frames, 7.8MB → 2.3MB (3.4x), 57 JPEGs deleted\n2026-04-22T19:10:13.441594Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=click)\n2026-04-22T19:10:18.830768Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)\n2026-04-22T19:10:21.842287Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5292492680570276501, trigger=visual_change)\n2026-04-22T19:10:28.187487Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5292492680570276501, trigger=click)","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.12291667,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.12708333,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"✳ Build full day activity summary from Screenpipe (claude)","depth":2,"bounds":{"left":0.24583334,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.25,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.36875,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.37291667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.49166667,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.49583334,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.6145833,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.61875,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.7375,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.7416667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"ec2-user@ip-10-30-159-186:~ (-zsh)","depth":2,"bounds":{"left":0.86041665,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.8645833,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.9548611,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"screenpipe\"","depth":1,"bounds":{"left":0.47083333,"top":0.033333335,"width":0.058333334,"height":0.017777778},"role_description":"text"}]...
|
-2988821374964268186
|
986754608298034555
|
click
|
accessibility
|
NULL
|
2026-04-22T13:19:55.671519Z WARN sqlx::query: sum 2026-04-22T13:19:55.671519Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=39 elapsed=3.08657075s
2026-04-22T13:19:55.671902Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 39 eligible frames
2026-04-22T13:19:57.020448Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 1.8MB → 0.1MB (13.4x), 17 JPEGs deleted
2026-04-22T13:19:58.458501Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.1MB → 1.3MB (3.2x), 20 JPEGs deleted
2026-04-22T13:20:08.378551Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=222404244777562774, trigger=click)
2026-04-22T13:20:08.861155Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=222404244777562774, trigger=click)
2026-04-22T13:20:10.352247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=222404244777562774, trigger=click)
2026-04-22T13:20:10.803201Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=222404244777562774, trigger=click)
2026-04-22T13:20:11.855309Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=222404244777562774, trigger=click)
2026-04-22T13:20:12.281855Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=222404244777562774, trigger=click)
2026-04-22T13:20:13.355000Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=222404244777562774, trigger=click)
2026-04-22T13:20:13.804941Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=222404244777562774, trigger=click)
2026-04-22T13:20:15.301012Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=222404244777562774, trigger=click)
2026-04-22T13:20:20.197413Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=222404244777562774, trigger=click)
2026-04-22T13:20:20.712382Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=222404244777562774, trigger=click)
2026-04-22T13:20:22.303881Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=222404244777562774, trigger=click)
2026-04-22T13:20:22.884710Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=222404244777562774, trigger=click)
2026-04-22T13:20:43.644742Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=222404244777562774, trigger=click)
2026-04-22T13:20:44.679647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=222404244777562774, trigger=click)
2026-04-22T13:20:45.622427Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=222404244777562774, trigger=click)
2026-04-22T13:20:47.002982Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=222404244777562774, trigger=click)
2026-04-22T13:20:47.417225Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=222404244777562774, trigger=click)
2026-04-22T13:20:49.161921Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=222404244777562774, trigger=click)
2026-04-22T13:20:49.582273Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=222404244777562774, trigger=click)
2026-04-22T13:20:52.197321Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=222404244777562774, trigger=click)
2026-04-22T13:20:52.639161Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=222404244777562774, trigger=click)
2026-04-22T13:20:53.994198Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=222404244777562774, trigger=click)
2026-04-22T13:20:54.437303Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=222404244777562774, trigger=click)
2026-04-22T13:20:55.293311Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=222404244777562774, trigger=click)
2026-04-22T13:24:09.469601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7830271896102614867, trigger=visual_change)
2026-04-22T13:25:01.128691Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=29 elapsed=2.659465833s
2026-04-22T13:25:01.128905Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 29 eligible frames
2026-04-22T13:25:02.338181Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.9MB → 1.3MB (2.3x), 14 JPEGs deleted
2026-04-22T13:25:03.917779Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.6MB → 0.7MB (4.0x), 13 JPEGs deleted
2026-04-22T13:25:25.711086Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7830271896102614867, trigger=click)
2026-04-22T13:25:38.501428Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7830271896102614867, trigger=click)
2026-04-22T13:25:39.325116Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7830271896102614867, trigger=click)
2026-04-22T13:25:40.695499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7830271896102614867, trigger=visual_change)
2026-04-22T13:25:41.684971Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7830271896102614867, trigger=click)
2026-04-22T13:27:07.409923Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=145943473150562318, trigger=click)
2026-04-22T13:29:09.989451Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6490322878595129417, trigger=click)
2026-04-22T13:29:10.403227Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6490322878595129417, trigger=click)
2026-04-22T13:29:11.440509Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6490322878595129417, trigger=click)
2026-04-22T13:29:11.832029Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6490322878595129417, trigger=click)
2026-04-22T13:29:14.479339Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6490322878595129417, trigger=click)
2026-04-22T13:29:14.877899Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6490322878595129417, trigger=click)
2026-04-22T13:29:18.456279Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6490322878595129417, trigger=click)
2026-04-22T13:29:18.853811Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6490322878595129417, trigger=click)
2026-04-22T13:29:22.452889Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6490322878595129417, trigger=click)
2026-04-22T13:29:22.844666Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6490322878595129417, trigger=click)
2026-04-22T13:29:26.423665Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6490322878595129417, trigger=click)
2026-04-22T13:29:26.833837Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6490322878595129417, trigger=click)
2026-04-22T13:30:07.840247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6490322878595129417, trigger=click)
2026-04-22T13:30:07.940843Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=29 elapsed=3.783649958s
2026-04-22T13:30:07.941532Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 29 eligible frames
2026-04-22T13:30:09.855355Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 3.2MB → 0.5MB (6.5x), 12 JPEGs deleted
2026-04-22T13:30:12.349250Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 3.1MB → 1.0MB (3.2x), 15 JPEGs deleted
2026-04-22T13:31:05.798294Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6490322878595129417, trigger=click)
2026-04-22T13:31:10.385195Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6490322878595129417, trigger=click)
2026-04-22T13:31:13.596372Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6490322878595129417, trigger=click)
2026-04-22T13:31:31.481734Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5391652991859791910, trigger=click)
2026-04-22T13:31:31.915675Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5391652991859791910, trigger=click)
2026-04-22T13:31:33.707391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5391652991859791910, trigger=click)
2026-04-22T13:31:34.117666Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5391652991859791910, trigger=click)
2026-04-22T13:31:46.023684Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=145943473150562318, trigger=click)
2026-04-22T13:31:59.210705Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7507356825848564524, trigger=click)
2026-04-22T13:32:24.674518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=145943473150562318, trigger=click)
2026-04-22T13:32:29.888930Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=145943473150562318, trigger=click)
2026-04-22T13:32:34.487353Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7507356825848564524, trigger=click)
2026-04-22T13:32:35.015232Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7507356825848564524, trigger=click)
2026-04-22T13:32:37.665435Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7507356825848564524, trigger=click)
2026-04-22T13:32:38.057156Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7507356825848564524, trigger=click)
2026-04-22T13:33:05.332928Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4953570497443904268, trigger=click)
2026-04-22T13:33:05.738911Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4953570497443904268, trigger=click)
2026-04-22T13:33:07.188550Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4953570497443904268, trigger=click)
2026-04-22T13:33:07.697205Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4953570497443904268, trigger=click)
2026-04-22T13:33:09.258757Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4953570497443904268, trigger=click)
2026-04-22T13:33:09.686230Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4953570497443904268, trigger=click)
2026-04-22T13:33:10.892071Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4953570497443904268, trigger=click)
2026-04-22T13:33:11.409971Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4953570497443904268, trigger=click)
2026-04-22T13:35:14.758402Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=25 elapsed=2.341405708s
2026-04-22T13:35:14.758534Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames
2026-04-22T13:35:15.700348Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 2.9MB → 0.4MB (6.6x), 11 JPEGs deleted
2026-04-22T13:35:16.746240Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.4MB → 0.8MB (3.1x), 12 JPEGs deleted
2026-04-22T13:35:59.046373Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4953570497443904268, trigger=click)
2026-04-22T13:35:59.522844Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4953570497443904268, trigger=click)
2026-04-22T13:36:23.593886Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=145943473150562318, trigger=click)
2026-04-22T13:36:30.043441Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=145943473150562318, trigger=click)
2026-04-22T13:37:10.935180Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=145943473150562318, trigger=click)
2026-04-22T13:37:15.205481Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=145943473150562318, trigger=click)
2026-04-22T13:37:15.615311Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=145943473150562318, trigger=click)
2026-04-22T13:37:16.671476Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=145943473150562318, trigger=click)
2026-04-22T13:37:17.130125Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=145943473150562318, trigger=click)
2026-04-22T13:37:31.765784Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7624650583167905543, trigger=click)
2026-04-22T13:37:32.277572Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7624650583167905543, trigger=click)
2026-04-22T13:37:55.000582Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3854152757192935136, trigger=click)
2026-04-22T13:37:55.579842Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3854152757192935136, trigger=click)
2026-04-22T13:40:19.993679Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=52 elapsed=3.236573834s
2026-04-22T13:40:19.993781Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 52 eligible frames
2026-04-22T13:40:21.547011Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 3.3MB → 0.3MB (12.9x), 25 JPEGs deleted
2026-04-22T13:40:24.246314Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.0MB → 1.9MB (2.6x), 25 JPEGs deleted
2026-04-22T13:40:49.345857Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3420346335485635575, trigger=click)
2026-04-22T13:40:49.761464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3420346335485635575, trigger=click)
2026-04-22T13:40:58.483984Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2699137710669661720, trigger=click)
2026-04-22T13:41:18.585300Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1051548329161768346, trigger=click)
2026-04-22T13:41:49.631129Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=visual_change)
2026-04-22T13:42:09.336358Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:42:22.318303Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5651691911195313325, trigger=click)
2026-04-22T13:45:24.809909Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 52 eligible frames
2026-04-22T13:45:26.334982Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 3.2MB → 0.2MB (18.4x), 25 JPEGs deleted
2026-04-22T13:45:28.494791Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.2MB → 1.8MB (2.9x), 25 JPEGs deleted
2026-04-22T13:50:32.678587Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=33 elapsed=4.217422542s
2026-04-22T13:50:32.678957Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 33 eligible frames
2026-04-22T13:50:33.731344Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.1MB → 0.2MB (12.1x), 16 JPEGs deleted
2026-04-22T13:50:35.297399Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 3.2MB → 0.9MB (3.6x), 15 JPEGs deleted
2026-04-22T13:52:40.144788Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)
2026-04-22T13:53:01.899060Z INFO sck_rs::stream_manager: recreating stream for display 2 (resolution change)
2026-04-22T13:53:24.588928Z INFO sck_rs::stream_manager: recreating stream for display 1 (resolution change)
2026-04-22T13:54:45.480269Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)
2026-04-22T13:54:45.525295Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2
2026-04-22T13:54:47.277567Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)
2026-04-22T13:54:47.557900Z WARN screenpipe_engine::event_driven_capture: skipping capture: lock screen app 'loginwindow' on monitor 2
2026-04-22T13:54:50.517321Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)
2026-04-22T13:54:50.531527Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2
2026-04-22T13:54:50.539783Z INFO sck_rs::stream_manager: stopped 1 persistent stream(s)
2026-04-22T13:54:51.633834Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)
2026-04-22T13:54:57.215619Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)
2026-04-22T13:54:57.475388Z WARN screenpipe_engine::event_driven_capture: skipping capture: lock screen app 'loginwindow' on monitor 1
2026-04-22T13:55:00.526322Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)
2026-04-22T13:55:00.545282Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2
2026-04-22T13:55:01.132848Z INFO sck_rs::stream_manager: stopped 2 persistent stream(s)
2026-04-22T13:55:02.005737Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)
2026-04-22T13:55:02.633821Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)
2026-04-22T13:55:19.838192Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3145826437395305149, trigger=click)
2026-04-22T13:55:20.300634Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3145826437395305149, trigger=click)
2026-04-22T13:55:21.567188Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3145826437395305149, trigger=click)
2026-04-22T13:55:42.189258Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=38 elapsed=6.884820208s
2026-04-22T13:55:42.189981Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 38 eligible frames
2026-04-22T13:55:43.595617Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.1MB → 0.2MB (11.9x), 16 JPEGs deleted
2026-04-22T13:55:46.392329Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.1MB → 1.1MB (3.6x), 20 JPEGs deleted
2026-04-22T13:55:56.140186Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:55:57.408560Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:58:03.696726Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:58:06.390518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:58:08.300896Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:58:08.718730Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:58:09.912001Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:58:10.311583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:58:13.273546Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=visual_change)
2026-04-22T13:58:19.346181Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=visual_change)
2026-04-22T13:58:58.360554Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:58:58.786340Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:59:04.430986Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:59:04.893282Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:59:45.902049Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:59:46.348987Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:59:48.470706Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:59:48.898805Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:59:54.274180Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)
2026-04-22T13:59:56.495414Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)
2026-04-22T14:00:02.522746Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9000098260144748274, trigger=click)
2026-04-22T14:00:35.856416Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6212304827203743747, trigger=click)
2026-04-22T14:00:44.303637Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6212304827203743747, trigger=visual_change)
2026-04-22T14:00:55.518274Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=22 elapsed=9.118070709s
2026-04-22T14:00:55.518433Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames
2026-04-22T14:00:57.099120Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.3MB → 0.2MB (7.7x), 10 JPEGs deleted
2026-04-22T14:00:58.767986Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.2MB → 0.4MB (6.0x), 10 JPEGs deleted
2026-04-22T14:04:15.220880Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3837731717837980920, trigger=visual_change)
2026-04-22T14:05:28.069620Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1051548329161768346, trigger=click)
2026-04-22T14:05:28.937013Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1051548329161768346, trigger=click)
2026-04-22T14:06:00.164534Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=16 elapsed=1.199258208s
2026-04-22T14:06:00.164673Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 16 eligible frames
2026-04-22T14:06:02.024968Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 7 frames, 0.9MB → 0.2MB (5.3x), 7 JPEGs deleted
2026-04-22T14:06:05.188088Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 7 frames, 1.5MB → 0.7MB (2.2x), 7 JPEGs deleted
2026-04-22T14:06:46.071139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)
2026-04-22T14:06:54.570039Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)
2026-04-22T14:10:11.311868Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)
2026-04-22T14:10:11.803732Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)
2026-04-22T14:10:14.694406Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)
2026-04-22T14:10:15.147426Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)
2026-04-22T14:10:20.551057Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)
2026-04-22T14:10:21.045391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)
2026-04-22T14:10:22.951330Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)
2026-04-22T14:10:23.467707Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)
2026-04-22T14:10:30.780582Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)
2026-04-22T14:10:31.189747Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)
2026-04-22T14:11:11.060150Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=27 elapsed=4.548210084s
2026-04-22T14:11:11.060281Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 27 eligible frames
2026-04-22T14:11:12.404803Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.4MB → 0.2MB (8.3x), 11 JPEGs deleted
2026-04-22T14:11:14.840042Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.7MB → 0.9MB (3.1x), 14 JPEGs deleted
2026-04-22T14:13:35.976326Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4968702094796127351, trigger=click)
2026-04-22T14:14:34.729623Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4357453572186956917, trigger=click)
2026-04-22T14:14:35.105620Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4357453572186956917, trigger=click)
2026-04-22T14:14:42.802189Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3105240340990619874, trigger=visual_change)
2026-04-22T14:15:50.965557Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3105240340990619874, trigger=click)
2026-04-22T14:16:12.161692Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6479516063853776409, trigger=click)
2026-04-22T14:16:16.153590Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=48 elapsed=1.32668825s
2026-04-22T14:16:16.155403Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 48 eligible frames
2026-04-22T14:16:18.705225Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 5.0MB → 0.8MB (5.9x), 20 JPEGs deleted
2026-04-22T14:16:23.744196Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.4MB → 1.3MB (3.4x), 26 JPEGs deleted
2026-04-22T14:16:41.068116Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1903229694032021789, trigger=click)
2026-04-22T14:19:15.519118Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4529195482775946524, trigger=click)
2026-04-22T14:19:22.366746Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2794207028653299985, trigger=click)
2026-04-22T14:19:30.208098Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)
2026-04-22T14:19:33.496128Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2794207028653299985, trigger=click)
2026-04-22T14:19:38.751833Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6094503686615299639, trigger=click)
2026-04-22T14:19:41.173256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6094503686615299639, trigger=visual_change)
2026-04-22T14:19:42.912499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6094503686615299639, trigger=click)
2026-04-22T14:19:46.351486Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6094503686615299639, trigger=click)
2026-04-22T14:19:59.152409Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4952826635443255860, trigger=click)
2026-04-22T14:20:01.518389Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4952826635443255860, trigger=click)
2026-04-22T14:20:08.061611Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3675157249828056010, trigger=click)
2026-04-22T14:21:28.984120Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=25 elapsed=4.855522625s
2026-04-22T14:21:28.985458Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames
2026-04-22T14:21:30.346636Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 2.5MB → 0.5MB (5.1x), 11 JPEGs deleted
2026-04-22T14:21:32.359178Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.6MB → 0.6MB (4.3x), 12 JPEGs deleted
2026-04-22T14:23:49.639071Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=click)
2026-04-22T14:24:02.782818Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=click)
2026-04-22T14:24:15.622633Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)
2026-04-22T14:26:10.392401Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)
2026-04-22T14:26:10.788712Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=click)
2026-04-22T14:26:12.799270Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)
2026-04-22T14:26:13.219651Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=visual_change)
2026-04-22T14:26:38.732555Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=36 elapsed=6.323619459s
2026-04-22T14:26:38.732888Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 36 eligible frames
2026-04-22T14:26:39.785513Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 1.2MB → 0.1MB (9.0x), 16 JPEGs deleted
2026-04-22T14:26:41.678236Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 4.1MB → 1.7MB (2.4x), 18 JPEGs deleted
2026-04-22T14:26:51.433436Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=click)
2026-04-22T14:26:52.304457Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)
2026-04-22T14:26:54.907598Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=click)
2026-04-22T14:26:55.381293Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)
2026-04-22T14:27:00.185936Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)
2026-04-22T14:27:01.160650Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=visual_change)
2026-04-22T14:27:24.714027Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)
2026-04-22T14:27:25.724851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=visual_change)
2026-04-22T14:27:26.222818Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)
2026-04-22T14:27:27.755899Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6642599356750673950, trigger=click)
2026-04-22T14:27:28.274266Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6642599356750673950, trigger=click)
2026-04-22T14:30:08.479659Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1095112307124202838, trigger=click)
2026-04-22T14:31:42.105262Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 38 eligible frames
2026-04-22T14:31:43.197127Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.5MB → 1.0MB (2.5x), 15 JPEGs deleted
2026-04-22T14:31:45.195588Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 4.3MB → 1.6MB (2.6x), 21 JPEGs deleted
2026-04-22T14:32:02.263422Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3223987862501414590, trigger=click)
2026-04-22T14:32:02.639431Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3223987862501414590, trigger=click)
2026-04-22T14:32:19.705800Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1632013320203273627, trigger=click)
2026-04-22T14:32:56.235240Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=257019738165452929, trigger=click)
2026-04-22T14:32:59.969256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=257019738165452929, trigger=click)
2026-04-22T14:33:03.317113Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=257019738165452929, trigger=click)
2026-04-22T14:33:06.798109Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=257019738165452929, trigger=click)
2026-04-22T14:33:17.093100Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3308965711270161120, trigger=click)
2026-04-22T14:33:17.486074Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3308965711270161120, trigger=click)
2026-04-22T14:33:22.565377Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3308965711270161120, trigger=click)
2026-04-22T14:33:23.216523Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3308965711270161120, trigger=click)
2026-04-22T14:33:35.842809Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=435352143489435154, trigger=click)
2026-04-22T14:36:49.764156Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=34 elapsed=4.516637708s
2026-04-22T14:36:49.764263Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 34 eligible frames
2026-04-22T14:36:51.311395Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.0MB → 0.7MB (4.6x), 17 JPEGs deleted
2026-04-22T14:36:52.531817Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 3.0MB → 1.1MB (2.6x), 15 JPEGs deleted
2026-04-22T14:37:28.108242Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=435352143489435154, trigger=click)
2026-04-22T14:37:28.485856Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=435352143489435154, trigger=click)
2026-04-22T14:37:58.316339Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3668856246823891896, trigger=click)
2026-04-22T14:38:23.725006Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3668856246823891896, trigger=visual_change)
2026-04-22T14:38:38.826158Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3668856246823891896, trigger=click)
2026-04-22T14:39:14.985595Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2152077026286113228, trigger=click)
2026-04-22T14:39:41.085287Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2152077026286113228, trigger=click)
2026-04-22T14:39:48.325144Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2152077026286113228, trigger=click)
2026-04-22T14:39:54.042692Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2152077026286113228, trigger=click)
2026-04-22T14:40:56.876512Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2152077026286113228, trigger=click)
2026-04-22T14:41:03.035671Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2747516377298098397, trigger=click)
2026-04-22T14:41:21.141064Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2710026494434395739, trigger=click)
2026-04-22T14:41:34.026128Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2710026494434395739, trigger=click)
2026-04-22T14:41:59.929978Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=38 elapsed=5.991404375s
2026-04-22T14:41:59.930138Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 38 eligible frames
2026-04-22T14:42:03.556178Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.2MB → 0.3MB (11.1x), 18 JPEGs deleted
2026-04-22T14:42:06.257184Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.3MB → 1.1MB (2.9x), 18 JPEGs deleted
2026-04-22T14:42:25.479048Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8568923258494843591, trigger=click)
2026-04-22T14:42:43.658087Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1714642257969983896, trigger=click)
2026-04-22T14:42:44.150668Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1714642257969983896, trigger=click)
2026-04-22T14:42:46.347489Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1714642257969983896, trigger=click)
2026-04-22T14:42:46.976364Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1714642257969983896, trigger=click)
2026-04-22T14:42:54.146640Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8318058469467001879, trigger=click)
2026-04-22T14:43:16.054664Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2746665666832385858, trigger=click)
2026-04-22T14:43:27.592095Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2746665666832385858, trigger=click)
2026-04-22T14:43:28.904486Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2746665666832385858, trigger=click)
2026-04-22T14:43:33.115401Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2746665666832385858, trigger=click)
2026-04-22T14:43:33.548704Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2746665666832385858, trigger=click)
2026-04-22T14:43:34.528422Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2746665666832385858, trigger=click)
2026-04-22T14:43:35.101040Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2746665666832385858, trigger=click)
2026-04-22T14:43:42.182992Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2746665666832385858, trigger=click)
2026-04-22T14:43:44.575989Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2746665666832385858, trigger=click)
2026-04-22T14:44:46.365793Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6679194177618586363, trigger=click)
2026-04-22T14:47:14.092894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6118025119517316583, trigger=click)
2026-04-22T14:47:14.453307Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6118025119517316583, trigger=click)
2026-04-22T14:47:15.216109Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=38 elapsed=7.876438917s
2026-04-22T14:47:15.216433Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 38 eligible frames
2026-04-22T14:47:16.019464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6118025119517316583, trigger=click)
2026-04-22T14:47:16.544950Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6118025119517316583, trigger=click)
2026-04-22T14:47:16.818898Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.2MB → 0.4MB (7.6x), 18 JPEGs deleted
2026-04-22T14:47:18.385927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipp...
|
NULL
|
|
69771
|
1614
|
16
|
2026-04-22T08:56:56.846295+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-22/1776 /Users/lukas/.screenpipe/data/data/2026-04-22/1776848216846_m1.jpg...
|
iTerm2
|
screenpipe"
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
2026-04-21T18:01:10.189484Z INFO screenpipe_engin 2026-04-21T18:01:10.189484Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)
2026-04-21T18:01:11.594292Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=visual_change)
2026-04-21T18:01:12.844254Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)
2026-04-21T18:01:13.095866Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)
2026-04-21T18:01:49.712611Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5610420548393517496, trigger=click)
2026-04-21T18:01:49.878502Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5610420548393517496, trigger=click)
2026-04-21T18:01:54.385999Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4075180225844497251, trigger=click)
2026-04-21T18:02:03.320721Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)
2026-04-21T18:02:04.589973Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2385966524984094377, trigger=visual_change)
2026-04-21T18:02:06.402101Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)
2026-04-21T18:02:08.459207Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)
2026-04-21T18:02:17.915785Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)
2026-04-21T18:02:20.289378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)
2026-04-21T18:02:53.363091Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)
2026-04-21T18:02:59.854804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6485088808083200508, trigger=visual_change)
2026-04-21T18:03:23.692602Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2923142241079919801, trigger=visual_change)
2026-04-21T18:03:38.383745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)
2026-04-21T18:03:38.666324Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)
2026-04-21T18:03:40.611795Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)
2026-04-21T18:03:46.691879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)
2026-04-21T18:03:49.696169Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)
2026-04-21T18:03:58.796193Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)
2026-04-21T18:04:10.455866Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=65 elapsed=5.507644708s
2026-04-21T18:04:10.456994Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 65 eligible frames
2026-04-21T18:04:10.784720Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)
2026-04-21T18:04:12.979583Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 8.1MB → 3.1MB (2.6x), 36 JPEGs deleted
2026-04-21T18:04:13.808201Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)
2026-04-21T18:04:15.311040Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 5.7MB → 2.1MB (2.7x), 27 JPEGs deleted
2026-04-21T18:04:22.870405Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)
2026-04-21T18:04:25.858949Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)
2026-04-21T18:04:47.178867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)
2026-04-21T18:04:47.409147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)
2026-04-21T18:04:48.621959Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)
2026-04-21T18:04:48.823996Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)
2026-04-21T18:04:49.613197Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)
2026-04-21T18:04:49.840589Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)
2026-04-21T18:04:54.113636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)
2026-04-21T18:04:54.333250Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)
2026-04-21T18:04:56.158603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)
2026-04-21T18:04:56.345340Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)
2026-04-21T18:05:24.653256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2923142241079919801, trigger=visual_change)
2026-04-21T18:05:27.506644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2923142241079919801, trigger=visual_change)
2026-04-21T18:05:52.127185Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)
2026-04-21T18:05:52.385537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)
2026-04-21T18:05:54.464579Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)
2026-04-21T18:05:54.740600Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)
2026-04-21T18:06:01.884193Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)
2026-04-21T18:06:04.917243Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)
2026-04-21T18:06:15.788550Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)
2026-04-21T18:06:16.090123Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)
2026-04-21T18:06:17.179267Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)
2026-04-21T18:07:04.992532Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)
2026-04-21T18:07:08.003078Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)
2026-04-21T18:07:17.121489Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)
2026-04-21T18:07:17.302355Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)
2026-04-21T18:07:27.025619Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)
2026-04-21T18:07:29.771279Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)
2026-04-21T18:07:31.137970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)
2026-04-21T18:07:36.086848Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=visual_change)
2026-04-21T18:07:36.306717Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)
2026-04-21T18:07:37.369851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)
2026-04-21T18:07:37.634865Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)
2026-04-21T18:07:38.805129Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)
2026-04-21T18:07:39.104738Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)
2026-04-21T18:07:40.060624Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)
2026-04-21T18:08:30.262801Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=visual_change)
2026-04-21T18:08:45.022177Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8543293535466770858, trigger=click)
2026-04-21T18:09:22.083704Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=74 elapsed=6.715953125s
2026-04-21T18:09:22.084245Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 74 eligible frames
2026-04-21T18:09:29.000281Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 43 frames, 9.6MB → 4.0MB (2.4x), 43 JPEGs deleted
2026-04-21T18:09:33.280652Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 5.8MB → 1.9MB (3.1x), 29 JPEGs deleted
2026-04-21T18:10:45.149443Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)
2026-04-21T18:11:39.313378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=745086096190842156, trigger=visual_change)
2026-04-21T18:11:42.305757Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=745086096190842156, trigger=click)
2026-04-21T18:11:46.031853Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=745086096190842156, trigger=click)
2026-04-21T18:11:46.095029Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=745086096190842156, trigger=click)
2026-04-21T18:14:41.494244Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=68 elapsed=8.195880125s
2026-04-21T18:14:41.495608Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 68 eligible frames
2026-04-21T18:14:48.613051Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 8.2MB → 3.4MB (2.5x), 36 JPEGs deleted
2026-04-21T18:14:55.232583Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 5.5MB → 2.6MB (2.1x), 30 JPEGs deleted
2026-04-21T18:19:19.967211Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2899189334056575250, trigger=click)
2026-04-21T18:19:20.363463Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2899189334056575250, trigger=click)
2026-04-21T18:19:59.298075Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=53 elapsed=4.000910792s
2026-04-21T18:19:59.298190Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 53 eligible frames
2026-04-21T18:20:02.044649Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 5.1MB → 3.5MB (1.5x), 26 JPEGs deleted
2026-04-21T18:20:04.900441Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.7MB → 2.4MB (1.9x), 25 JPEGs deleted
2026-04-21T18:20:23.742659Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)
2026-04-21T18:20:27.660528Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)
2026-04-21T18:20:34.896769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)
2026-04-21T18:20:35.220946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)
2026-04-21T18:20:40.886719Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)
2026-04-21T18:20:44.353070Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)
2026-04-21T18:20:47.046701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)
2026-04-21T18:20:48.003863Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)
2026-04-21T18:22:59.673927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2006451494811625283, trigger=click)
2026-04-21T18:23:02.374154Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2006451494811625283, trigger=visual_change)
2026-04-21T18:24:55.480969Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)
2026-04-21T18:24:55.713808Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)
2026-04-21T18:25:06.770660Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=745086096190842156, trigger=click)
2026-04-21T18:25:10.431473Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=69 elapsed=5.123936292s
2026-04-21T18:25:10.432665Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 69 eligible frames
2026-04-21T18:25:12.020960Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.7MB → 0.4MB (10.8x), 24 JPEGs deleted
2026-04-21T18:25:16.809118Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 43 frames, 7.5MB → 3.7MB (2.0x), 43 JPEGs deleted
2026-04-21T18:27:20.032159Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-868697608726996264, trigger=click)
2026-04-21T18:27:27.209581Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5262134208844209929, trigger=click)
2026-04-21T18:30:23.556529Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=60 elapsed=6.732438875s
2026-04-21T18:30:23.556849Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 60 eligible frames
2026-04-21T18:30:25.836587Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 5.3MB → 0.4MB (12.5x), 27 JPEGs deleted
2026-04-21T18:30:29.251794Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 5.4MB → 2.7MB (2.0x), 31 JPEGs deleted
2026-04-21T18:34:42.383568Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1898158487632236470, trigger=click)
2026-04-21T18:35:29.435858Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 84 eligible frames
2026-04-21T18:35:31.507303Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 35 frames, 6.8MB → 0.3MB (21.3x), 35 JPEGs deleted
2026-04-21T18:35:34.821718Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 47 frames, 8.8MB → 3.6MB (2.4x), 47 JPEGs deleted
2026-04-21T18:37:57.032414Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3231955623713121874, trigger=click)
2026-04-21T18:40:36.969380Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=205 elapsed=2.13815675s
2026-04-21T18:40:36.969491Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 205 eligible frames
2026-04-21T18:40:42.234686Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 90 frames, 17.5MB → 0.4MB (49.4x), 90 JPEGs deleted
2026-04-21T18:40:48.296945Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 99 frames, 14.9MB → 5.7MB (2.6x), 99 JPEGs deleted
2026-04-21T18:40:49.626073Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 1.8MB → 0.7MB (2.8x), 14 JPEGs deleted
2026-04-21T18:41:16.858046Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5262134208844209929, trigger=click)
2026-04-21T18:41:18.719527Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5262134208844209929, trigger=click)
2026-04-21T18:41:20.650032Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6762752836329409782, trigger=click)
2026-04-21T18:42:40.957654Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7949512313665335161, trigger=visual_change)
2026-04-21T18:42:42.714242Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7949512313665335161, trigger=click)
2026-04-21T18:44:54.833923Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7610506607449357182, trigger=click)
2026-04-21T18:44:55.013934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7610506607449357182, trigger=click)
2026-04-21T18:45:54.320505Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=145 elapsed=4.6846185s
2026-04-21T18:45:54.321215Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 145 eligible frames
2026-04-21T18:45:58.288822Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 64 frames, 12.5MB → 0.5MB (23.2x), 64 JPEGs deleted
2026-04-21T18:46:02.956701Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 78 frames, 11.5MB → 3.3MB (3.5x), 78 JPEGs deleted
2026-04-21T18:48:10.510139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4242937607805845066, trigger=click)
2026-04-21T18:48:37.207446Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5152173808593872338, trigger=visual_change)
2026-04-21T18:49:27.537635Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5244088376274895156, trigger=click)
2026-04-21T18:49:33.724367Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5262134208844209929, trigger=click)
2026-04-21T18:49:44.747739Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8298107678328947062, trigger=click)
2026-04-21T18:50:45.073176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)
2026-04-21T18:50:45.427101Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2709523957012057259, trigger=click)
2026-04-21T18:50:48.592273Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)
2026-04-21T18:50:49.492676Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)
2026-04-21T18:51:01.193858Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)
2026-04-21T18:51:05.888682Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=50 elapsed=2.917680375s
2026-04-21T18:51:05.889014Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 50 eligible frames
2026-04-21T18:51:06.016628Z WARN sqlx::query: summary="PRAGMA wal_checkpoint(TRUNCATE)" db.statement="" rows_affected=0 rows_returned=1 elapsed=2.157649083s
2026-04-21T18:51:06.079565Z WARN sqlx::query: summary="BEGIN IMMEDIATE" db.statement="" rows_affected=1 rows_returned=0 elapsed=1.385088167s
2026-04-21T18:51:07.829374Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 3.9MB → 0.4MB (11.0x), 20 JPEGs deleted
2026-04-21T18:51:09.736739Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 5.0MB → 1.8MB (2.7x), 28 JPEGs deleted
2026-04-21T18:51:22.360027Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2872311122120998867, trigger=click)
2026-04-21T18:51:22.556670Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2872311122120998867, trigger=click)
2026-04-21T18:51:38.819030Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7947558874471225541, trigger=click)
2026-04-21T18:51:57.414061Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)
2026-04-21T18:51:59.012068Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)
2026-04-21T18:51:59.285931Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)
2026-04-21T18:52:01.767745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)
2026-04-21T18:52:02.028355Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)
2026-04-21T18:52:05.460776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=visual_change)
2026-04-21T18:52:07.087479Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)
2026-04-21T18:52:07.314492Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)
2026-04-21T18:52:10.214922Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)
2026-04-21T18:52:10.537340Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)
2026-04-21T18:52:13.867159Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)
2026-04-21T18:52:14.152331Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)
2026-04-21T18:52:20.367281Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)
2026-04-21T18:52:26.127826Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1650348556715134220, trigger=click)
2026-04-21T18:52:37.517700Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=visual_change)
2026-04-21T18:52:42.329057Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=click)
2026-04-21T18:52:42.556779Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)
2026-04-21T18:52:44.386173Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)
2026-04-21T18:52:44.700511Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=click)
2026-04-21T18:52:45.210674Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)
2026-04-21T18:53:17.193415Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6757993062848436258, trigger=visual_change)
2026-04-21T18:53:30.834059Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-228480120308125164, trigger=click)
2026-04-21T18:53:38.030882Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7225077546439863627, trigger=click)
2026-04-21T18:53:56.421537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6437320026671683644, trigger=click)
2026-04-21T18:54:11.726528Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1667437155962702753, trigger=visual_change)
2026-04-21T18:54:12.117525Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1667437155962702753, trigger=click)
2026-04-21T18:54:18.659686Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=click)
2026-04-21T18:54:19.077258Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)
2026-04-21T18:54:29.973760Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)
2026-04-21T18:56:07.789768Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6757993062848436258, trigger=click)
2026-04-21T18:56:08.791400Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6757993062848436258, trigger=click)
2026-04-21T18:56:14.153615Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=80 elapsed=4.402661042s
2026-04-21T18:56:14.153722Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 80 eligible frames
2026-04-21T18:56:16.685912Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 6.2MB → 0.7MB (8.9x), 32 JPEGs deleted
2026-04-21T18:56:21.263739Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 46 frames, 8.2MB → 2.8MB (2.9x), 46 JPEGs deleted
2026-04-21T18:56:25.279306Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7906564822731502105, trigger=click)
2026-04-21T18:56:33.734840Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8817586097865472869, trigger=click)
2026-04-21T18:56:33.980908Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8817586097865472869, trigger=click)
2026-04-21T18:56:35.972959Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8817586097865472869, trigger=click)
2026-04-21T18:56:40.545963Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8587160525579598601, trigger=click)
2026-04-21T18:56:41.913814Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8587160525579598601, trigger=visual_change)
2026-04-21T18:56:45.516942Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1910160977377320534, trigger=click)
2026-04-21T18:56:48.740431Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1910160977377320534, trigger=click)
2026-04-21T18:56:50.439568Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1910160977377320534, trigger=click)
2026-04-21T18:56:50.692218Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1910160977377320534, trigger=click)
2026-04-21T18:57:12.321118Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)
2026-04-21T18:57:12.578681Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)
2026-04-21T18:57:24.290583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)
2026-04-21T18:57:24.543696Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)
2026-04-21T18:57:34.571768Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)
2026-04-21T18:57:36.227688Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)
2026-04-21T18:57:36.475151Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)
2026-04-21T18:57:42.338601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)
2026-04-21T18:57:42.559967Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)
2026-04-21T18:57:52.824809Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)
2026-04-21T18:57:53.145543Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)
2026-04-21T18:57:59.463043Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)
2026-04-21T18:57:59.717475Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)
2026-04-21T18:58:00.742137Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)
2026-04-21T18:58:01.061497Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)
2026-04-21T18:59:33.960291Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9203182216527106315, trigger=visual_change)
2026-04-21T18:59:55.990167Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)
2026-04-21T18:59:59.103830Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=visual_change)
2026-04-21T19:00:16.116927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)
2026-04-21T19:00:45.352689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)
2026-04-21T19:00:49.596644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)
2026-04-21T19:00:50.432181Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)
2026-04-21T19:01:07.992732Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)
2026-04-21T19:01:08.484066Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)
2026-04-21T19:01:10.538762Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)
2026-04-21T19:01:18.922398Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)
2026-04-21T19:01:28.361625Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=84 elapsed=6.9360265s
2026-04-21T19:01:28.362070Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 84 eligible frames
2026-04-21T19:01:32.723075Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 33 frames, 6.4MB → 0.3MB (19.7x), 33 JPEGs deleted
2026-04-21T19:01:42.130490Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 7.8MB → 3.3MB (2.4x), 49 JPEGs deleted
2026-04-21T19:02:09.991879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)
2026-04-21T19:02:12.577587Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)
2026-04-21T19:02:12.835924Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)
2026-04-21T19:02:15.635601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)
2026-04-21T19:02:18.720475Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)
2026-04-21T19:02:21.708351Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)
2026-04-21T19:02:22.061150Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)
2026-04-21T19:02:28.684303Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3995027160269120472, trigger=click)
2026-04-21T19:02:41.434491Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)
2026-04-21T19:02:41.724904Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)
2026-04-21T19:02:43.112974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)
2026-04-21T19:02:43.410843Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)
2026-04-21T19:02:47.501924Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)
2026-04-21T19:02:47.761592Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)
2026-04-21T19:02:54.205542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)
2026-04-21T19:02:54.441326Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)
2026-04-21T19:02:56.601490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)
2026-04-21T19:02:56.921256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)
2026-04-21T19:03:15.988643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)
2026-04-21T19:03:16.236342Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)
2026-04-21T19:03:28.508616Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)
2026-04-21T19:04:00.462064Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)
2026-04-21T19:04:01.516168Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)
2026-04-21T19:04:01.856315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)
2026-04-21T19:04:03.246448Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)
2026-04-21T19:04:03.735029Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)
2026-04-21T19:04:09.818135Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)
2026-04-21T19:05:03.118616Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)
2026-04-21T19:05:03.393788Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)
2026-04-21T19:05:21.352722Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=visual_change)
2026-04-21T19:05:43.751309Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)
2026-04-21T19:05:44.029500Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)
2026-04-21T19:05:45.626672Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)
2026-04-21T19:05:45.899754Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)
2026-04-21T19:05:48.206587Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)
2026-04-21T19:05:48.449043Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)
2026-04-21T19:06:22.834938Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7947558874471225541, trigger=click)
2026-04-21T19:06:52.937779Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=114 elapsed=10.747243125s
2026-04-21T19:06:52.938152Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 114 eligible frames
2026-04-21T19:06:57.942457Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 45 frames, 8.8MB → 0.3MB (27.2x), 45 JPEGs deleted
2026-04-21T19:07:05.853054Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 67 frames, 10.5MB → 5.2MB (2.0x), 67 JPEGs deleted
2026-04-21T19:07:45.088797Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)
2026-04-21T19:07:48.052391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6936634780821666458, trigger=click)
2026-04-21T19:08:59.593467Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5629560013928052473, trigger=click)
2026-04-21T19:09:29.443711Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)
2026-04-21T19:09:42.998313Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8043719072324535154, trigger=visual_change)
2026-04-21T19:09:50.759516Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)
2026-04-21T19:09:51.052544Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)
2026-04-21T19:09:51.892698Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)
2026-04-21T19:09:52.651776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)
2026-04-21T19:09:55.476431Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)
2026-04-21T19:09:55.898195Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)
2026-04-21T19:09:58.077337Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)
2026-04-21T19:10:01.103980Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)
2026-04-21T19:10:03.105423Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)
2026-04-21T19:10:03.448049Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)
2026-04-21T19:10:08.548130Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6051188157141408655, trigger=click)
2026-04-21T19:12:12.330759Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=70 elapsed=6.458002417s
2026-04-21T19:12:12.332545Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 70 eligible frames
2026-04-21T19:12:14.243079Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 5.5MB → 0.3MB (17.2x), 28 JPEGs deleted
2026-04-21T19:12:17.558334Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 40 frames, 7.4MB → 3.6MB (2.1x), 40 JPEGs deleted
2026-04-21T19:16:51.045938Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1370319459641728815, trigger=click)
2026-04-21T19:16:51.249993Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1370319459641728815, trigger=click)
2026-04-21T19:17:21.603564Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=40 elapsed=4.036037791s
2026-04-21T19:17:21.604357Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames
2026-04-21T19:17:22.750174Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.5MB → 0.3MB (11.2x), 18 JPEGs deleted
2026-04-21T19:17:24.332098Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.2MB → 1.3MB (3.2x), 20 JPEGs deleted
2026-04-21T19:22:25.748871Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=4...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"2026-04-21T18:01:10.189484Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:11.594292Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=visual_change)\n2026-04-21T18:01:12.844254Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:13.095866Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:49.712611Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5610420548393517496, trigger=click)\n2026-04-21T18:01:49.878502Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5610420548393517496, trigger=click)\n2026-04-21T18:01:54.385999Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4075180225844497251, trigger=click)\n2026-04-21T18:02:03.320721Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:04.589973Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:06.402101Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:08.459207Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:17.915785Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:20.289378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:53.363091Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:59.854804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6485088808083200508, trigger=visual_change)\n2026-04-21T18:03:23.692602Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2923142241079919801, trigger=visual_change)\n2026-04-21T18:03:38.383745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:03:38.666324Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:03:40.611795Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:03:46.691879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:03:49.696169Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:03:58.796193Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:10.455866Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=65 elapsed=5.507644708s\n2026-04-21T18:04:10.456994Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 65 eligible frames\n2026-04-21T18:04:10.784720Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:12.979583Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 8.1MB → 3.1MB (2.6x), 36 JPEGs deleted\n2026-04-21T18:04:13.808201Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:15.311040Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 5.7MB → 2.1MB (2.7x), 27 JPEGs deleted\n2026-04-21T18:04:22.870405Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:25.858949Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:47.178867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:47.409147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:48.621959Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:48.823996Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:49.613197Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:49.840589Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:54.113636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:54.333250Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:56.158603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:56.345340Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:24.653256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2923142241079919801, trigger=visual_change)\n2026-04-21T18:05:27.506644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2923142241079919801, trigger=visual_change)\n2026-04-21T18:05:52.127185Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:52.385537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:54.464579Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:54.740600Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:06:01.884193Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:06:04.917243Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:06:15.788550Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:06:16.090123Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:06:17.179267Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:07:04.992532Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:08.003078Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:17.121489Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:17.302355Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:27.025619Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:29.771279Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:31.137970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:36.086848Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:36.306717Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:37.369851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:37.634865Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:38.805129Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:39.104738Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:40.060624Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:08:30.262801Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:08:45.022177Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8543293535466770858, trigger=click)\n2026-04-21T18:09:22.083704Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=74 elapsed=6.715953125s\n2026-04-21T18:09:22.084245Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 74 eligible frames\n2026-04-21T18:09:29.000281Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 43 frames, 9.6MB → 4.0MB (2.4x), 43 JPEGs deleted\n2026-04-21T18:09:33.280652Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 5.8MB → 1.9MB (3.1x), 29 JPEGs deleted\n2026-04-21T18:10:45.149443Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:11:39.313378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=745086096190842156, trigger=visual_change)\n2026-04-21T18:11:42.305757Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=745086096190842156, trigger=click)\n2026-04-21T18:11:46.031853Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=745086096190842156, trigger=click)\n2026-04-21T18:11:46.095029Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=745086096190842156, trigger=click)\n2026-04-21T18:14:41.494244Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=68 elapsed=8.195880125s\n2026-04-21T18:14:41.495608Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 68 eligible frames\n2026-04-21T18:14:48.613051Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 8.2MB → 3.4MB (2.5x), 36 JPEGs deleted\n2026-04-21T18:14:55.232583Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 5.5MB → 2.6MB (2.1x), 30 JPEGs deleted\n2026-04-21T18:19:19.967211Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2899189334056575250, trigger=click)\n2026-04-21T18:19:20.363463Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2899189334056575250, trigger=click)\n2026-04-21T18:19:59.298075Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=53 elapsed=4.000910792s\n2026-04-21T18:19:59.298190Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 53 eligible frames\n2026-04-21T18:20:02.044649Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 5.1MB → 3.5MB (1.5x), 26 JPEGs deleted\n2026-04-21T18:20:04.900441Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.7MB → 2.4MB (1.9x), 25 JPEGs deleted\n2026-04-21T18:20:23.742659Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:27.660528Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:34.896769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:35.220946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:40.886719Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:44.353070Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:47.046701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:48.003863Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:22:59.673927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2006451494811625283, trigger=click)\n2026-04-21T18:23:02.374154Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2006451494811625283, trigger=visual_change)\n2026-04-21T18:24:55.480969Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:24:55.713808Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:25:06.770660Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=745086096190842156, trigger=click)\n2026-04-21T18:25:10.431473Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=69 elapsed=5.123936292s\n2026-04-21T18:25:10.432665Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 69 eligible frames\n2026-04-21T18:25:12.020960Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.7MB → 0.4MB (10.8x), 24 JPEGs deleted\n2026-04-21T18:25:16.809118Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 43 frames, 7.5MB → 3.7MB (2.0x), 43 JPEGs deleted\n2026-04-21T18:27:20.032159Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-868697608726996264, trigger=click)\n2026-04-21T18:27:27.209581Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5262134208844209929, trigger=click)\n2026-04-21T18:30:23.556529Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=60 elapsed=6.732438875s\n2026-04-21T18:30:23.556849Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 60 eligible frames\n2026-04-21T18:30:25.836587Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 5.3MB → 0.4MB (12.5x), 27 JPEGs deleted\n2026-04-21T18:30:29.251794Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 5.4MB → 2.7MB (2.0x), 31 JPEGs deleted\n2026-04-21T18:34:42.383568Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1898158487632236470, trigger=click)\n2026-04-21T18:35:29.435858Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 84 eligible frames\n2026-04-21T18:35:31.507303Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 35 frames, 6.8MB → 0.3MB (21.3x), 35 JPEGs deleted\n2026-04-21T18:35:34.821718Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 47 frames, 8.8MB → 3.6MB (2.4x), 47 JPEGs deleted\n2026-04-21T18:37:57.032414Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3231955623713121874, trigger=click)\n2026-04-21T18:40:36.969380Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=205 elapsed=2.13815675s\n2026-04-21T18:40:36.969491Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 205 eligible frames\n2026-04-21T18:40:42.234686Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 90 frames, 17.5MB → 0.4MB (49.4x), 90 JPEGs deleted\n2026-04-21T18:40:48.296945Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 99 frames, 14.9MB → 5.7MB (2.6x), 99 JPEGs deleted\n2026-04-21T18:40:49.626073Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 1.8MB → 0.7MB (2.8x), 14 JPEGs deleted\n2026-04-21T18:41:16.858046Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5262134208844209929, trigger=click)\n2026-04-21T18:41:18.719527Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5262134208844209929, trigger=click)\n2026-04-21T18:41:20.650032Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6762752836329409782, trigger=click)\n2026-04-21T18:42:40.957654Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7949512313665335161, trigger=visual_change)\n2026-04-21T18:42:42.714242Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7949512313665335161, trigger=click)\n2026-04-21T18:44:54.833923Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7610506607449357182, trigger=click)\n2026-04-21T18:44:55.013934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7610506607449357182, trigger=click)\n2026-04-21T18:45:54.320505Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=145 elapsed=4.6846185s\n2026-04-21T18:45:54.321215Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 145 eligible frames\n2026-04-21T18:45:58.288822Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 64 frames, 12.5MB → 0.5MB (23.2x), 64 JPEGs deleted\n2026-04-21T18:46:02.956701Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 78 frames, 11.5MB → 3.3MB (3.5x), 78 JPEGs deleted\n2026-04-21T18:48:10.510139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4242937607805845066, trigger=click)\n2026-04-21T18:48:37.207446Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5152173808593872338, trigger=visual_change)\n2026-04-21T18:49:27.537635Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5244088376274895156, trigger=click)\n2026-04-21T18:49:33.724367Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5262134208844209929, trigger=click)\n2026-04-21T18:49:44.747739Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8298107678328947062, trigger=click)\n2026-04-21T18:50:45.073176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:50:45.427101Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:50:48.592273Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:50:49.492676Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:51:01.193858Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:51:05.888682Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=50 elapsed=2.917680375s\n2026-04-21T18:51:05.889014Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 50 eligible frames\n2026-04-21T18:51:06.016628Z WARN sqlx::query: summary=\"PRAGMA wal_checkpoint(TRUNCATE)\" db.statement=\"\" rows_affected=0 rows_returned=1 elapsed=2.157649083s\n2026-04-21T18:51:06.079565Z WARN sqlx::query: summary=\"BEGIN IMMEDIATE\" db.statement=\"\" rows_affected=1 rows_returned=0 elapsed=1.385088167s\n2026-04-21T18:51:07.829374Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 3.9MB → 0.4MB (11.0x), 20 JPEGs deleted\n2026-04-21T18:51:09.736739Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 5.0MB → 1.8MB (2.7x), 28 JPEGs deleted\n2026-04-21T18:51:22.360027Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2872311122120998867, trigger=click)\n2026-04-21T18:51:22.556670Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2872311122120998867, trigger=click)\n2026-04-21T18:51:38.819030Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7947558874471225541, trigger=click)\n2026-04-21T18:51:57.414061Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:51:59.012068Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:51:59.285931Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:01.767745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:02.028355Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:05.460776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=visual_change)\n2026-04-21T18:52:07.087479Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:07.314492Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:10.214922Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:10.537340Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:13.867159Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:14.152331Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:20.367281Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:26.127826Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1650348556715134220, trigger=click)\n2026-04-21T18:52:37.517700Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=visual_change)\n2026-04-21T18:52:42.329057Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:52:42.556779Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:52:44.386173Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:52:44.700511Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:52:45.210674Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:53:17.193415Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6757993062848436258, trigger=visual_change)\n2026-04-21T18:53:30.834059Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-228480120308125164, trigger=click)\n2026-04-21T18:53:38.030882Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7225077546439863627, trigger=click)\n2026-04-21T18:53:56.421537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6437320026671683644, trigger=click)\n2026-04-21T18:54:11.726528Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1667437155962702753, trigger=visual_change)\n2026-04-21T18:54:12.117525Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1667437155962702753, trigger=click)\n2026-04-21T18:54:18.659686Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:54:19.077258Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:54:29.973760Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:56:07.789768Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6757993062848436258, trigger=click)\n2026-04-21T18:56:08.791400Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6757993062848436258, trigger=click)\n2026-04-21T18:56:14.153615Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=80 elapsed=4.402661042s\n2026-04-21T18:56:14.153722Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 80 eligible frames\n2026-04-21T18:56:16.685912Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 6.2MB → 0.7MB (8.9x), 32 JPEGs deleted\n2026-04-21T18:56:21.263739Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 46 frames, 8.2MB → 2.8MB (2.9x), 46 JPEGs deleted\n2026-04-21T18:56:25.279306Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7906564822731502105, trigger=click)\n2026-04-21T18:56:33.734840Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8817586097865472869, trigger=click)\n2026-04-21T18:56:33.980908Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8817586097865472869, trigger=click)\n2026-04-21T18:56:35.972959Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8817586097865472869, trigger=click)\n2026-04-21T18:56:40.545963Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8587160525579598601, trigger=click)\n2026-04-21T18:56:41.913814Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8587160525579598601, trigger=visual_change)\n2026-04-21T18:56:45.516942Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1910160977377320534, trigger=click)\n2026-04-21T18:56:48.740431Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1910160977377320534, trigger=click)\n2026-04-21T18:56:50.439568Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1910160977377320534, trigger=click)\n2026-04-21T18:56:50.692218Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1910160977377320534, trigger=click)\n2026-04-21T18:57:12.321118Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:12.578681Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:24.290583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:24.543696Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:34.571768Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:36.227688Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:36.475151Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:42.338601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:42.559967Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:52.824809Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:53.145543Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:59.463043Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:59.717475Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:58:00.742137Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:58:01.061497Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:59:33.960291Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9203182216527106315, trigger=visual_change)\n2026-04-21T18:59:55.990167Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T18:59:59.103830Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=visual_change)\n2026-04-21T19:00:16.116927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:00:45.352689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:00:49.596644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:00:50.432181Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:07.992732Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:08.484066Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:10.538762Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:18.922398Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:28.361625Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=84 elapsed=6.9360265s\n2026-04-21T19:01:28.362070Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 84 eligible frames\n2026-04-21T19:01:32.723075Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 33 frames, 6.4MB → 0.3MB (19.7x), 33 JPEGs deleted\n2026-04-21T19:01:42.130490Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 7.8MB → 3.3MB (2.4x), 49 JPEGs deleted\n2026-04-21T19:02:09.991879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:12.577587Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:12.835924Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:15.635601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:18.720475Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:21.708351Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:22.061150Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:28.684303Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3995027160269120472, trigger=click)\n2026-04-21T19:02:41.434491Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:41.724904Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:43.112974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:43.410843Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:47.501924Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:47.761592Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:54.205542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:54.441326Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:56.601490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:56.921256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:03:15.988643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:03:16.236342Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:03:28.508616Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:00.462064Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:01.516168Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:01.856315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:03.246448Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:03.735029Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:09.818135Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:05:03.118616Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:03.393788Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:21.352722Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=visual_change)\n2026-04-21T19:05:43.751309Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:44.029500Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:45.626672Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:45.899754Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:48.206587Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:48.449043Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:06:22.834938Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7947558874471225541, trigger=click)\n2026-04-21T19:06:52.937779Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=114 elapsed=10.747243125s\n2026-04-21T19:06:52.938152Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 114 eligible frames\n2026-04-21T19:06:57.942457Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 45 frames, 8.8MB → 0.3MB (27.2x), 45 JPEGs deleted\n2026-04-21T19:07:05.853054Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 67 frames, 10.5MB → 5.2MB (2.0x), 67 JPEGs deleted\n2026-04-21T19:07:45.088797Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:07:48.052391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6936634780821666458, trigger=click)\n2026-04-21T19:08:59.593467Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5629560013928052473, trigger=click)\n2026-04-21T19:09:29.443711Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:42.998313Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8043719072324535154, trigger=visual_change)\n2026-04-21T19:09:50.759516Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:51.052544Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:51.892698Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:09:52.651776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:55.476431Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:55.898195Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:09:58.077337Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:10:01.103980Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:10:03.105423Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:10:03.448049Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:10:08.548130Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6051188157141408655, trigger=click)\n2026-04-21T19:12:12.330759Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=70 elapsed=6.458002417s\n2026-04-21T19:12:12.332545Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 70 eligible frames\n2026-04-21T19:12:14.243079Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 5.5MB → 0.3MB (17.2x), 28 JPEGs deleted\n2026-04-21T19:12:17.558334Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 40 frames, 7.4MB → 3.6MB (2.1x), 40 JPEGs deleted\n2026-04-21T19:16:51.045938Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1370319459641728815, trigger=click)\n2026-04-21T19:16:51.249993Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1370319459641728815, trigger=click)\n2026-04-21T19:17:21.603564Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=40 elapsed=4.036037791s\n2026-04-21T19:17:21.604357Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames\n2026-04-21T19:17:22.750174Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.5MB → 0.3MB (11.2x), 18 JPEGs deleted\n2026-04-21T19:17:24.332098Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.2MB → 1.3MB (3.2x), 20 JPEGs deleted\n2026-04-21T19:22:25.748871Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=49 elapsed=1.406664416s\n2026-04-21T19:22:25.749095Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 49 eligible frames\n2026-04-21T19:22:27.704722Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 3.7MB → 0.8MB (4.5x), 22 JPEGs deleted\n2026-04-21T19:22:29.535330Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.2MB → 1.7MB (3.0x), 25 JPEGs deleted\n2026-04-21T19:23:29.233846Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9146581369053060363, trigger=click)\n2026-04-21T19:23:31.995034Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9146581369053060363, trigger=visual_change)\n2026-04-21T19:23:37.213396Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9146581369053060363, trigger=visual_change)\n2026-04-21T19:23:40.288223Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9146581369053060363, trigger=visual_change)\n2026-04-21T19:23:44.197738Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9146581369053060363, trigger=visual_change)\n2026-04-21T19:23:45.228572Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9146581369053060363, trigger=click)\n2026-04-21T19:23:56.251033Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:24:06.580019Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=335 elapsed=1.644312167s\n2026-04-21T19:24:28.860436Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:24:32.226944Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:24:32.476075Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:03.902521Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:19.205245Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:25.098627Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:36.013866Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:37.355954Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:41.831265Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:46.247585Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:46.619106Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:48.284769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:48.534452Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:49.421920Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:49.752264Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:54.600720Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:55.072357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:26:19.446041Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:26:22.718352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:27:38.437704Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=28 elapsed=8.833634334s\n2026-04-21T19:27:38.438043Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames\n2026-04-21T19:27:39.763901Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 1.9MB → 0.3MB (7.6x), 12 JPEGs deleted\n2026-04-21T19:27:41.220664Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.1MB → 0.9MB (2.2x), 14 JPEGs deleted\n2026-04-21T19:28:22.708791Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:28:23.849452Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:28:24.119301Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:14.209016Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:16.415693Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:21.726815Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:23.890645Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:24.239058Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:29.790006Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:33.098495Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:38.065869Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:44.089028Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:47.272131Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:53.977951Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:57.274496Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:30:11.986797Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:30:13.530455Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:30:28.332451Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:30:37.204947Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:26.255340Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:26.592983Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:30.448912Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:35.747969Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:37.783849Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:38.061197Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:43.216365Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:43.885407Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:46.680745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:52.971450Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:58.468469Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:58.624833Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:03.362210Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:12.706102Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:15.172982Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:23.020508Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:23.199312Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:25.387097Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:25.764201Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:30.336940Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:30.810971Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:39.812820Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:42.409145Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:44.386326Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:48.880648Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=47 elapsed=7.499136792s\n2026-04-21T19:32:48.880949Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 47 eligible frames\n2026-04-21T19:32:51.249469Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.2MB → 0.3MB (8.9x), 14 JPEGs deleted\n2026-04-21T19:32:55.969183Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 3.8MB → 1.9MB (2.0x), 31 JPEGs deleted\n2026-04-21T19:32:59.734686Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:33:00.098925Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:33:05.951997Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:34:07.213420Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:34:09.264586Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:34:16.527425Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:34:19.513647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:34:32.889780Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1128757073350665914, trigger=click)\n2026-04-21T19:34:56.078651Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4993766851008728916, trigger=click)\n2026-04-21T19:34:56.296542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4993766851008728916, trigger=click)\n2026-04-21T19:35:02.344819Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:35:05.237721Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:35:07.518599Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:35:09.938481Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:35:10.408295Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:35:26.864482Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:35:33.001733Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:35:36.479802Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:36:20.043835Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4526067242477956280, trigger=visual_change)\n2026-04-21T19:36:47.029303Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4526067242477956280, trigger=visual_change)\n2026-04-21T19:36:57.077150Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:37:33.348160Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:37:33.742029Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:37:36.579915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:37:39.754974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:38:04.951324Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=101 elapsed=8.9666755s\n2026-04-21T19:38:04.953527Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 101 eligible frames\n2026-04-21T19:38:13.751166Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 38 frames, 8.0MB → 3.5MB (2.3x), 38 JPEGs deleted\n2026-04-21T19:38:29.817220Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 61 frames, 9.7MB → 5.2MB (1.9x), 61 JPEGs deleted\n2026-04-21T19:40:34.255930Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=342 elapsed=1.0699005s\n2026-04-21T19:42:32.961192Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:42:33.305572Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:42:40.179851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=visual_change)\n2026-04-21T19:42:41.405781Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:42:41.720845Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:43:02.251464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=visual_change)\n2026-04-21T19:43:11.622532Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:43:36.525920Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=85 elapsed=6.634896167s\n2026-04-21T19:43:36.526454Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 85 eligible frames\n2026-04-21T19:43:39.459999Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 8.0MB → 3.4MB (2.3x), 36 JPEGs deleted\n2026-04-21T19:43:43.505640Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 47 frames, 7.9MB → 3.9MB (2.0x), 47 JPEGs deleted\n2026-04-21T19:44:05.999282Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=visual_change)\n2026-04-21T19:45:08.065595Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2712812971723964739, trigger=click)\n2026-04-21T19:45:46.266141Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:48:51.569666Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=64 elapsed=8.039671791s\n2026-04-21T19:48:51.570457Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 64 eligible frames\n2026-04-21T19:48:58.738540Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 7.2MB → 2.4MB (2.9x), 32 JPEGs deleted\n2026-04-21T19:49:05.383193Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 5.9MB → 2.5MB (2.4x), 30 JPEGs deleted\n2026-04-21T19:51:14.064760Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2572721248839450970, trigger=visual_change)\n2026-04-21T19:54:08.518415Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=346 elapsed=1.026887875s\n2026-04-21T19:54:12.872902Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=61 elapsed=7.44778675s\n2026-04-21T19:54:12.873164Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 61 eligible frames\n2026-04-21T19:54:16.348511Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.6MB → 1.4MB (4.1x), 25 JPEGs deleted\n2026-04-21T19:54:24.102233Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 34 frames, 6.2MB → 3.6MB (1.7x), 34 JPEGs deleted\n2026-04-21T19:59:32.063421Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=346 elapsed=1.165878958s\n2026-04-21T19:59:32.818884Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=31 elapsed=8.661332917s\n2026-04-21T19:59:32.819629Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 31 eligible frames\n2026-04-21T19:59:35.810838Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.9MB → 0.7MB (3.9x), 16 JPEGs deleted\n2026-04-21T19:59:38.924596Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.9MB → 1.5MB (2.0x), 13 JPEGs deleted\n2026-04-21T20:01:55.709776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1382976804061127003, trigger=click)\n2026-04-21T20:04:27.572999Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7658911549706194190, trigger=click)\n2026-04-21T20:04:46.630063Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=57 elapsed=7.045125334s\n2026-04-21T20:04:46.631081Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 57 eligible frames\n2026-04-21T20:04:49.684796Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 2.5MB → 0.8MB (3.2x), 23 JPEGs deleted\n2026-04-21T20:04:56.073590Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 5.7MB → 3.1MB (1.8x), 32 JPEGs deleted\n2026-04-21T20:05:04.129844Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-446124678591544690, trigger=click)\n2026-04-21T20:05:04.425723Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-446124678591544690, trigger=click)\n2026-04-21T20:09:59.238939Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=30 elapsed=2.058497125s\n2026-04-21T20:09:59.239075Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 30 eligible frames\n2026-04-21T20:10:00.874153Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.3MB → 0.2MB (5.8x), 13 JPEGs deleted\n2026-04-21T20:10:03.326064Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 1.8MB → 0.6MB (2.8x), 15 JPEGs deleted\n2026-04-21T20:15:07.129653Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=58 elapsed=3.763973459s\n2026-04-21T20:15:07.130598Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 58 eligible frames\n2026-04-21T20:15:09.088400Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 3.7MB → 0.6MB (5.9x), 26 JPEGs deleted\n2026-04-21T20:15:10.858868Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 3.9MB → 1.0MB (3.9x), 30 JPEGs deleted\n2026-04-21T20:18:21.110736Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=354 elapsed=1.169721666s\nzsh: terminated npx screenpipe@latest record --disable-audio --ignored-windows \"Boosteroid\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-start\ndetected hardware tier: Mid\nwarning: parakeet is not supported on this platform, using whisper-tiny instead\n2026-04-22T09:15:19.880360Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store\nchecking permissions...\n screen recording: ok\n accessibility: ok\n2026-04-22T09:15:19.951248Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6\n2026-04-22T09:15:20.675958Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor\n2026-04-22T09:15:20.677447Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)\n2026-04-22T09:15:20.677800Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)\n2026-04-22T09:15:20.709542Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true\n2026-04-22T09:15:20.709596Z INFO screenpipe: meeting detector enabled — independent of transcription mode\n2026-04-22T09:15:20.709849Z INFO screenpipe: API server listening on 127.0.0.1:3030 (localhost only)\n2026-04-22T09:15:20.709774Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)\n2026-04-22T09:15:20.709806Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)\n2026-04-22T09:15:20.709863Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key\n2026-04-22T09:15:20.709908Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager\n2026-04-22T09:15:20.721517Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-22T09:15:20.725781Z INFO screenpipe_core::pipes: loaded pipe: day-recap\n2026-04-22T09:15:20.725991Z INFO screenpipe_core::pipes: loaded pipe: standup-update\n2026-04-22T09:15:20.726387Z INFO screenpipe_core::pipes: loaded pipe: ai-habits\n2026-04-22T09:15:20.726548Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown\n2026-04-22T09:15:20.726690Z INFO screenpipe_core::pipes: loaded pipe: video-export\n2026-04-22T09:15:20.727224Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary\n2026-04-22T09:15:20.727242Z INFO screenpipe_core::pipes: loaded 6 pipes from \"/Users/lukas/.screenpipe/pipes\"\n\n\n\n _ \n __________________ ___ ____ ____ (_____ ___ \n / ___/ ___/ ___/ _ \\/ _ \\/ __ \\ / __ \\/ / __ \\/ _ \\\n (__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/\n/____/\\___/_/ \\___/\\___/_/ /_/ / .___/_/ .___/\\___/ \n /_/ /_/ \n\n\n\npower AI by everything you've seen, said or heard\nopen source | runs locally | developer friendly\n\n\n┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ true │\n│ vision disabled │ false │\n│ pause on DRM content │ false │\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n│ ignored windows │ [\"Boosteroid\"] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n2026-04-22T09:15:20.728614Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n│ api auth │ enabled │\n2026-04-22T09:15:20.742172Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n│ encrypt secrets │ disabled │\n│ retention days │ 14 │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ id: 1 │\n│ │ id: 2 │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ disabled │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-22T09:15:20.742788Z INFO screenpipe: starting UI event capture\n2026-04-22T09:15:20.755824Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-22T09:15:20.769629Z INFO screenpipe_engine::ui_recorder: UI recording session started: e7729066-2ab4-4bf0-9d48-0c9790a4ee79\n2026-04-22T09:15:20.769680Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-22T09:15:20.769789Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-21 06:15:20.769785 UTC to 2026-04-22 06:15:20.769785 UTC)\n2026-04-22T09:15:20.770644Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-22T09:15:20.778181Z INFO screenpipe_engine::server: Server listening on 127.0.0.1:3030\n2026-04-22T09:15:20.789960Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-22T09:15:21.591614Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-22T09:15:21.591646Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-22T09:15:21.591751Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-22T09:15:21.919088Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-22T09:15:21.919141Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-22T09:15:21.919158Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)\n2026-04-22T09:15:21.919163Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-22T09:15:21.919167Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)\n2026-04-22T09:15:23.315305Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-22T09:15:23.445619Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=68471, dur=74ms\n2026-04-22T09:15:23.697846Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-22T09:15:23.856559Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=68472, dur=115ms\n2026-04-22T09:15:23.858032Z INFO sck_rs::stream_manager: invalidated persistent stream for display 2\n2026-04-22T09:15:25.542035Z WARN sqlx::query: summary=\"SELECT f.id, f.timestamp, f.offset_index, …\" db.statement=\"\\n\\nSELECT\\n f.id,\\n f.timestamp,\\n f.offset_index,\\n COALESCE(\\n SUBSTR(f.full_text, 1, 200),\\n SUBSTR(f.accessibility_text, 1, 200),\\n (\\n SELECT\\n SUBSTR(ot.text, 1, 200)\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as text,\\n COALESCE(\\n f.app_name,\\n (\\n SELECT\\n ot.app_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as app_name,\\n COALESCE(\\n f.window_name,\\n (\\n SELECT\\n ot.window_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as window_name,\\n COALESCE(vc.device_name, f.device_name) as screen_device,\\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\\n COALESCE(vc.fps, 0.033) as chunk_fps,\\n f.browser_url,\\n f.machine_id\\nFROM\\n frames f\\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\\nWHERE\\n f.timestamp >= ?1\\n AND f.timestamp <= ?2\\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\\nORDER BY\\n f.timestamp DESC,\\n f.offset_index DESC\\nLIMIT\\n 10000\\n\" rows_affected=0 rows_returned=7744 elapsed=4.771776083s\n2026-04-22T09:15:25.568771Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 7744 frame entries, coverage from 2026-04-21 06:15:20.769785 UTC\n2026-04-22T09:15:32.415224Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-22T09:15:41.941919Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=357539612469251678, trigger=click)\n2026-04-22T09:15:43.170779Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=357539612469251678, trigger=visual_change)\n2026-04-22T09:16:22.411707Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5959696770819639860, trigger=visual_change)\n2026-04-22T09:16:26.239896Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=62 elapsed=5.530699458s\n2026-04-22T09:16:26.240084Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 62 eligible frames\n2026-04-22T09:16:28.044386Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 4.7MB → 0.2MB (19.7x), 30 JPEGs deleted\n2026-04-22T09:16:30.086623Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 4.3MB → 0.1MB (30.2x), 30 JPEGs deleted\n2026-04-22T09:16:31.962480Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5959696770819639860, trigger=visual_change)\n2026-04-22T09:19:29.939632Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7894432383542294550, trigger=click)\n2026-04-22T09:19:30.235489Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7894432383542294550, trigger=click)\n2026-04-22T09:19:35.764366Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7894432383542294550, trigger=click)\n2026-04-22T09:19:48.049836Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6938285907753314842, trigger=visual_change)\n2026-04-22T09:21:36.974672Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=2 elapsed=6.892004583s\n2026-04-22T09:21:36.974869Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-22T09:21:46.781688Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2525045998934122930, trigger=visual_change)\n2026-04-22T09:24:11.763955Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=889075772057942202, trigger=visual_change)\n2026-04-22T09:24:12.162666Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=889075772057942202, trigger=click)\n2026-04-22T09:24:14.800709Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=889075772057942202, trigger=click)\n2026-04-22T09:24:15.299587Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=889075772057942202, trigger=click)\n2026-04-22T09:24:17.445141Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=889075772057942202, trigger=click)\n2026-04-22T09:24:17.822587Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=889075772057942202, trigger=click)\n2026-04-22T09:24:24.786651Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1127753064753596652, trigger=click)\n2026-04-22T09:24:25.324058Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1127753064753596652, trigger=click)\n2026-04-22T09:24:29.098325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1127753064753596652, trigger=click)\n2026-04-22T09:24:50.423753Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7779472685250441843, trigger=click)\n2026-04-22T09:24:50.901024Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7779472685250441843, trigger=click)\n2026-04-22T09:25:10.616667Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5405130988905008112, trigger=click)\n2026-04-22T09:25:11.046676Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5405130988905008112, trigger=click)\n2026-04-22T09:25:20.763321Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5405130988905008112, trigger=click)\n2026-04-22T09:25:20.997547Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5405130988905008112, trigger=click)\n2026-04-22T09:25:25.954173Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5405130988905008112, trigger=click)\n2026-04-22T09:25:32.989805Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8138374647045057371, trigger=click)\n2026-04-22T09:25:36.003685Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8138374647045057371, trigger=click)\n2026-04-22T09:25:37.335354Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8138374647045057371, trigger=click)\n2026-04-22T09:25:37.578287Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8138374647045057371, trigger=click)\n2026-04-22T09:25:40.438000Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8138374647045057371, trigger=visual_change)\n2026-04-22T09:25:43.846661Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8138374647045057371, trigger=click)\n2026-04-22T09:25:44.062879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8138374647045057371, trigger=click)\n2026-04-22T09:25:51.479216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8138374647045057371, trigger=click)\n2026-04-22T09:25:53.247917Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8138374647045057371, trigger=click)\n2026-04-22T09:25:58.183431Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8138374647045057371, trigger=click)\n2026-04-22T09:25:58.469469Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8138374647045057371, trigger=click)\n2026-04-22T09:26:09.273910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5405130988905008112, trigger=click)\n2026-04-22T09:26:09.561856Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5405130988905008112, trigger=click)\n2026-04-22T09:26:10.819842Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5405130988905008112, trigger=click)\n2026-04-22T09:26:11.249618Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5405130988905008112, trigger=click)\n2026-04-22T09:26:40.577718Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2354791383483955560, trigger=visual_change)\n2026-04-22T09:26:44.799765Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=23 elapsed=7.81096125s\n2026-04-22T09:26:44.799978Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 23 eligible frames\n2026-04-22T09:26:46.688043Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 2.1MB → 1.2MB (1.7x), 8 JPEGs deleted\n2026-04-22T09:26:50.641966Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 3.0MB → 1.3MB (2.3x), 15 JPEGs deleted\n2026-04-22T09:31:51.652070Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 89 eligible frames\n2026-04-22T09:31:54.101939Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 33 frames, 9.4MB → 1.9MB (5.0x), 33 JPEGs deleted\n2026-04-22T09:31:59.304222Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 54 frames, 9.7MB → 5.0MB (1.9x), 54 JPEGs deleted\n2026-04-22T09:32:12.008662Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3624805284232944242, trigger=click)\n2026-04-22T09:32:35.967540Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3062750094588465259, trigger=visual_change)\n2026-04-22T09:33:06.818107Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3062750094588465259, trigger=visual_change)\n2026-04-22T09:33:14.632314Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2863574885747713422, trigger=click)\n2026-04-22T09:33:14.857523Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2863574885747713422, trigger=click)\n2026-04-22T09:34:14.788009Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2354791383483955560, trigger=visual_change)\n2026-04-22T09:34:30.609746Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2354791383483955560, trigger=click)\n2026-04-22T09:34:34.105401Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2354791383483955560, trigger=visual_change)\n2026-04-22T09:34:37.485108Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2354791383483955560, trigger=click)\n2026-04-22T09:35:54.598003Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-625214687390699270, trigger=visual_change)\n2026-04-22T09:36:09.104712Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2863574885747713422, trigger=click)\n2026-04-22T09:36:37.324238Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6459141415085539989, trigger=visual_change)\n2026-04-22T09:36:40.542880Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6459141415085539989, trigger=visual_change)\n2026-04-22T09:36:43.137729Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6459141415085539989, trigger=click)\n2026-04-22T09:36:44.229166Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6459141415085539989, trigger=click)\n2026-04-22T09:36:46.968613Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6459141415085539989, trigger=click)\n2026-04-22T09:36:52.078332Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6459141415085539989, trigger=visual_change)\n2026-04-22T09:36:54.127864Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6459141415085539989, trigger=click)\n2026-04-22T09:37:03.963789Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=87 elapsed=4.663980917s\n2026-04-22T09:37:03.964310Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 87 eligible frames\n2026-04-22T09:37:05.944118Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 7.1MB → 0.4MB (19.3x), 32 JPEGs deleted\n2026-04-22T09:37:09.865815Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 53 frames, 9.7MB → 4.1MB (2.4x), 53 JPEGs deleted\n2026-04-22T09:37:13.714905Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3548022877361860948, trigger=click)\n2026-04-22T09:38:12.283595Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3127667118792163607, trigger=click)\n2026-04-22T09:38:31.114793Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3127667118792163607, trigger=click)\n2026-04-22T09:38:31.809587Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3127667118792163607, trigger=click)\n2026-04-22T09:38:33.720499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3127667118792163607, trigger=visual_change)\n2026-04-22T09:38:39.562457Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3127667118792163607, trigger=click)\n2026-04-22T09:38:39.953380Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3127667118792163607, trigger=click)\n2026-04-22T09:42:22.290722Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=36 elapsed=11.598434833s\n2026-04-22T09:42:22.296038Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 36 eligible frames\n2026-04-22T09:42:29.157685Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 3.6MB → 0.6MB (6.0x), 16 JPEGs deleted\n2026-04-22T09:42:32.150217Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.0MB → 1.1MB (2.7x), 18 JPEGs deleted\n2026-04-22T09:45:17.750319Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Firefox, signals=2)\n2026-04-22T09:45:27.669631Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Firefox, signals=2, browser=true)\n2026-04-22T09:45:27.694051Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=6, app=Firefox, title=None)\n2026-04-22T09:47:47.881351Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=73 elapsed=15.717987375s\n2026-04-22T09:47:47.895439Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 73 eligible frames\n2026-04-22T09:47:55.588148Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 7.0MB → 2.6MB (2.7x), 36 JPEGs deleted\n2026-04-22T09:48:06.150273Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 35 frames, 5.8MB → 2.7MB (2.2x), 35 JPEGs deleted\n2026-04-22T09:50:08.042310Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6608914011836842734, trigger=click)\n2026-04-22T09:50:38.385760Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=6, grace=300s)\n2026-04-22T09:50:47.206212Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Active (controls reappeared, app=Firefox, id=6)\n2026-04-22T09:53:20.071320Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=47 elapsed=13.91473275s\n2026-04-22T09:53:20.074434Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 47 eligible frames\n2026-04-22T09:53:25.481039Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.9MB → 1.9MB (2.5x), 20 JPEGs deleted\n2026-04-22T09:53:31.514685Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 3.8MB → 1.3MB (3.0x), 25 JPEGs deleted\n2026-04-22T09:56:27.035122Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=6, grace=300s)\n2026-04-22T09:56:34.352390Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Active (controls reappeared, app=Firefox, id=6)\n2026-04-22T09:58:41.195094Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=51 elapsed=9.340191625s\n2026-04-22T09:58:41.195748Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 51 eligible frames\n2026-04-22T09:58:50.973307Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 3.6MB → 1.9MB (2.0x), 24 JPEGs deleted\n2026-04-22T09:58:55.976599Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 3.6MB → 0.7MB (5.0x), 25 JPEGs deleted\n2026-04-22T10:03:25.035638Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=6, grace=300s)\n2026-04-22T10:03:34.825175Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Active (controls reappeared, app=Firefox, id=6)\n2026-04-22T10:03:59.804173Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=30 elapsed=3.79059225s\n2026-04-22T10:03:59.804769Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 30 eligible frames\n2026-04-22T10:04:07.099407Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.9MB → 1.6MB (1.8x), 17 JPEGs deleted\n2026-04-22T10:04:09.251864Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.7MB → 0.3MB (5.2x), 11 JPEGs deleted\n2026-04-22T10:04:10.533704Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=6, grace=300s)\n2026-04-22T10:04:43.808519Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Active (controls reappeared, app=Firefox, id=6)\n2026-04-22T10:04:56.439936Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=6, grace=300s)\n2026-04-22T10:06:31.858072Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Active (controls reappeared, app=Firefox, id=6)\n2026-04-22T10:09:24.313437Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=26 elapsed=13.225098709s\n2026-04-22T10:09:24.316398Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 26 eligible frames\n2026-04-22T10:09:30.048930Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.7MB → 1.5MB (1.8x), 15 JPEGs deleted\n2026-04-22T10:09:32.094817Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 1.4MB → 0.3MB (5.3x), 9 JPEGs deleted\n2026-04-22T10:14:41.879312Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=29 elapsed=9.776819583s\n2026-04-22T10:14:41.881875Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 29 eligible frames\n2026-04-22T10:14:46.255765Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.7MB → 1.4MB (1.9x), 16 JPEGs deleted\n2026-04-22T10:14:47.845035Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.7MB → 0.4MB (3.7x), 11 JPEGs deleted\n2026-04-22T10:15:58.049606Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3225140536536520209, trigger=visual_change)\n2026-04-22T10:16:01.250980Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3225140536536520209, trigger=visual_change)\n2026-04-22T10:16:08.021292Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3225140536536520209, trigger=visual_change)\n2026-04-22T10:18:23.036830Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3225140536536520209, trigger=visual_change)\n2026-04-22T10:18:25.694340Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3225140536536520209, trigger=visual_change)\n2026-04-22T10:20:01.302255Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=26 elapsed=13.443118541s\n2026-04-22T10:20:01.308129Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 26 eligible frames\n2026-04-22T10:20:07.185095Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.2MB → 1.2MB (1.9x), 13 JPEGs deleted\n2026-04-22T10:20:09.181856Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.6MB → 0.4MB (4.6x), 11 JPEGs deleted\n2026-04-22T10:21:42.631708Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=6, grace=300s)\n2026-04-22T10:23:50.455162Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3671619337996960599, trigger=click)\n2026-04-22T10:25:20.440505Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=32 elapsed=9.592002791s\n2026-04-22T10:25:20.447053Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 32 eligible frames\n2026-04-22T10:25:26.728763Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 2.9MB → 1.3MB (2.2x), 19 JPEGs deleted\n2026-04-22T10:25:29.473763Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 2.0MB → 0.5MB (3.8x), 11 JPEGs deleted\n2026-04-22T10:26:45.951004Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Idle (timeout=300s, app=Firefox, id=6)\n2026-04-22T10:26:46.530346Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting ended (id=6)\n2026-04-22T10:27:17.369443Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2062784539481352883, trigger=click)\n2026-04-22T10:27:23.136885Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-65678043966680631, trigger=click)\n2026-04-22T10:27:23.510026Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-65678043966680631, trigger=click)\n2026-04-22T10:27:56.373647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3142145618711484947, trigger=click)\n2026-04-22T10:27:57.442225Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3142145618711484947, trigger=visual_change)\n2026-04-22T10:28:01.960662Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5828407217475560988, trigger=visual_change)\n2026-04-22T10:28:07.491134Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3142145618711484947, trigger=click)\n2026-04-22T10:28:07.825874Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3142145618711484947, trigger=click)\n2026-04-22T10:30:16.205480Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9197424015372835381, trigger=click)\n2026-04-22T10:30:17.536621Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9197424015372835381, trigger=click)\n2026-04-22T10:30:23.804809Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9197424015372835381, trigger=click)\n2026-04-22T10:30:24.227926Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9197424015372835381, trigger=click)\n2026-04-22T10:30:32.219093Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=26 elapsed=2.729861417s\n2026-04-22T10:30:32.219191Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 26 eligible frames\n2026-04-22T10:30:33.452158Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.2MB → 1.0MB (2.1x), 12 JPEGs deleted\n2026-04-22T10:30:34.655217Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.6MB → 0.6MB (4.6x), 12 JPEGs deleted\n2026-04-22T10:35:37.824110Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=42 elapsed=2.825256334s\n2026-04-22T10:35:37.824295Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 42 eligible frames\n2026-04-22T10:35:39.117243Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 3.6MB → 1.0MB (3.6x), 19 JPEGs deleted\n2026-04-22T10:35:40.660196Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 4.3MB → 1.5MB (2.9x), 21 JPEGs deleted\n2026-04-22T10:38:04.877259Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-65678043966680631, trigger=click)\n2026-04-22T10:38:07.705291Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-65678043966680631, trigger=click)\n2026-04-22T10:38:10.898974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-65678043966680631, trigger=click)\n2026-04-22T10:38:11.975537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-65678043966680631, trigger=click)\n2026-04-22T10:38:18.085335Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7761525857033094891, trigger=click)\n2026-04-22T10:38:24.306354Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7761525857033094891, trigger=visual_change)\n2026-04-22T10:39:35.930520Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=161997556014089017, trigger=click)\n2026-04-22T10:39:41.805633Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=161997556014089017, trigger=click)\n2026-04-22T10:39:42.138469Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=161997556014089017, trigger=click)\n2026-04-22T10:39:44.024008Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=161997556014089017, trigger=click)\n2026-04-22T10:39:44.814287Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=161997556014089017, trigger=click)\n2026-04-22T10:39:52.450542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=161997556014089017, trigger=visual_change)\n2026-04-22T10:40:00.574424Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=161997556014089017, trigger=click)\n2026-04-22T10:40:48.463266Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=71 elapsed=7.648351625s\n2026-04-22T10:40:48.463897Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 71 eligible frames\n2026-04-22T10:40:52.342098Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 33 frames, 6.8MB → 0.4MB (18.9x), 33 JPEGs deleted\n2026-04-22T10:40:57.964004Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 7.7MB → 2.7MB (2.8x), 36 JPEGs deleted\n2026-04-22T10:42:43.679554Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=235385460819764395, trigger=visual_change)\n2026-04-22T10:46:04.372787Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=37 elapsed=6.507600625s\n2026-04-22T10:46:04.373466Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 37 eligible frames\n2026-04-22T10:46:05.670180Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.8MB → 0.9MB (3.3x), 17 JPEGs deleted\n2026-04-22T10:46:07.423695Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 4.0MB → 1.2MB (3.3x), 18 JPEGs deleted\n2026-04-22T10:46:28.352534Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7979920242774959552, trigger=click)\n2026-04-22T10:46:50.281075Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7979920242774959552, trigger=click)\n2026-04-22T10:46:52.766064Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7979920242774959552, trigger=visual_change)\n2026-04-22T10:48:05.742909Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7979920242774959552, trigger=click)\n2026-04-22T10:48:06.094095Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7979920242774959552, trigger=click)\n2026-04-22T10:48:09.303230Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7979920242774959552, trigger=click)\n2026-04-22T10:48:09.673362Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7979920242774959552, trigger=click)\n2026-04-22T10:48:10.602234Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7979920242774959552, trigger=click)\n2026-04-22T10:48:10.980793Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7979920242774959552, trigger=click)\n2026-04-22T10:48:14.096855Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7979920242774959552, trigger=click)\n2026-04-22T10:48:14.445591Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7979920242774959552, trigger=click)\n2026-04-22T10:48:19.008864Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7979920242774959552, trigger=click)\n2026-04-22T10:48:19.360865Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7979920242774959552, trigger=click)\n2026-04-22T10:48:54.815098Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4247888003547861829, trigger=click)\n2026-04-22T10:49:10.177323Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6327679174418074924, trigger=click)\n2026-04-22T10:49:10.717996Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6327679174418074924, trigger=click)\n2026-04-22T10:49:13.470332Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6327679174418074924, trigger=click)\n2026-04-22T10:49:14.204551Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6327679174418074924, trigger=click)\n2026-04-22T10:49:36.549919Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4247888003547861829, trigger=click)\n2026-04-22T10:50:28.838023Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7164971126517405135, trigger=click)\n2026-04-22T10:51:15.863078Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=55 elapsed=8.34783475s\n2026-04-22T10:51:15.867188Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 55 eligible frames\n2026-04-22T10:51:18.108301Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 4.8MB → 0.5MB (9.6x), 23 JPEGs deleted\n2026-04-22T10:51:24.402239Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 5.8MB → 2.3MB (2.6x), 30 JPEGs deleted\n2026-04-22T10:54:05.429302Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7998995672879430036, trigger=visual_change)\n2026-04-22T10:56:24.620947Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 56 eligible frames\n2026-04-22T10:56:26.497992Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 4.8MB → 0.7MB (7.2x), 23 JPEGs deleted\n2026-04-22T10:56:29.140019Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7998995672879430036, trigger=click)\n2026-04-22T10:56:29.398291Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7998995672879430036, trigger=click)\n2026-04-22T10:56:29.755970Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 6.2MB → 3.2MB (1.9x), 31 JPEGs deleted\n2026-04-22T10:59:42.920990Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4913197316764586015, trigger=visual_change)\n2026-04-22T11:01:35.304946Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Firefox, signals=2)\n2026-04-22T11:01:37.612440Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=38 elapsed=7.845216667s\n2026-04-22T11:01:37.612575Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 38 eligible frames\n2026-04-22T11:01:38.912495Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.7MB → 0.4MB (8.7x), 18 JPEGs deleted\n2026-04-22T11:01:40.872030Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Firefox, signals=2, browser=true)\n2026-04-22T11:01:40.923371Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=7, app=Firefox, title=None)\n2026-04-22T11:01:41.075647Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 4.3MB → 1.3MB (3.2x), 18 JPEGs deleted\n2026-04-22T11:06:39.086079Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5337833728326299056, trigger=visual_change)\n2026-04-22T11:06:45.000177Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=20 elapsed=3.912066625s\n2026-04-22T11:06:45.000306Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 20 eligible frames\n2026-04-22T11:06:45.856461Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 1.9MB → 0.4MB (5.2x), 9 JPEGs deleted\n2026-04-22T11:06:46.835512Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 2.2MB → 0.4MB (5.2x), 9 JPEGs deleted\n2026-04-22T11:07:15.142764Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5337833728326299056, trigger=visual_change)\n2026-04-22T11:07:27.263827Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5337833728326299056, trigger=visual_change)\n2026-04-22T11:08:42.059221Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3303286484632371491, trigger=click)\n2026-04-22T11:08:51.466088Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3303286484632371491, trigger=click)\n2026-04-22T11:08:52.705589Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3303286484632371491, trigger=click)\n2026-04-22T11:08:54.862930Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3303286484632371491, trigger=visual_change)\n2026-04-22T11:08:57.767172Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3303286484632371491, trigger=visual_change)\n2026-04-22T11:09:04.442295Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3303286484632371491, trigger=visual_change)\n2026-04-22T11:09:23.549500Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3757537717350728121, trigger=visual_change)\n2026-04-22T11:09:26.647099Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3757537717350728121, trigger=visual_change)\n2026-04-22T11:09:27.617892Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3757537717350728121, trigger=visual_change)\n2026-04-22T11:09:37.846218Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3757537717350728121, trigger=click)\n2026-04-22T11:09:39.988136Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3757537717350728121, trigger=click)\n2026-04-22T11:09:45.701950Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3757537717350728121, trigger=visual_change)\n2026-04-22T11:09:51.479479Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4744117485268922271, trigger=click)\n2026-04-22T11:09:52.588279Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4744117485268922271, trigger=click)\n2026-04-22T11:10:37.947814Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3389527971234186058, trigger=click)\n2026-04-22T11:11:53.822254Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=92 elapsed=6.975139583s\n2026-04-22T11:11:53.822417Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 92 eligible frames\n2026-04-22T11:11:56.889877Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 42 frames, 8.3MB → 0.8MB (11.0x), 42 JPEGs deleted\n2026-04-22T11:12:02.546278Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 48 frames, 9.5MB → 3.9MB (2.4x), 48 JPEGs deleted\n2026-04-22T11:14:34.726971Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6209721463328613401, trigger=visual_change)\n2026-04-22T11:14:38.324225Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6209721463328613401, trigger=click)\n2026-04-22T11:14:38.645314Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6209721463328613401, trigger=click)\n2026-04-22T11:15:48.408130Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3290532042628205253, trigger=visual_change)\n2026-04-22T11:17:08.957655Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=29 elapsed=6.341871834s\n2026-04-22T11:17:08.958047Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 29 eligible frames\n2026-04-22T11:17:10.885629Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.5MB → 1.3MB (2.0x), 14 JPEGs deleted\n2026-04-22T11:17:12.612437Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.9MB → 1.0MB (3.0x), 13 JPEGs deleted\n2026-04-22T11:18:09.059454Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6788193544120196520, trigger=visual_change)\n2026-04-22T11:18:30.812176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6788193544120196520, trigger=visual_change)\n2026-04-22T11:20:13.991317Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=7, grace=300s)\n2026-04-22T11:20:30.900173Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Active (controls reappeared, app=Firefox, id=7)\n2026-04-22T11:21:47.313039Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6979569190562105843, trigger=visual_change)\n2026-04-22T11:22:14.058045Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=52 elapsed=1.433307042s\n2026-04-22T11:22:14.058201Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 52 eligible frames\n2026-04-22T11:22:17.430807Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 4.5MB → 2.6MB (1.7x), 27 JPEGs deleted\n2026-04-22T11:22:20.789307Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 5.1MB → 1.9MB (2.7x), 23 JPEGs deleted\n2026-04-22T11:24:11.055919Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6348043336790165851, trigger=visual_change)\n2026-04-22T11:27:24.744130Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=34 elapsed=3.94198725s\n2026-04-22T11:27:24.744695Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 34 eligible frames\n2026-04-22T11:27:26.116529Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.8MB → 1.2MB (1.5x), 13 JPEGs deleted\n2026-04-22T11:27:28.617165Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 4.4MB → 1.8MB (2.5x), 19 JPEGs deleted\n2026-04-22T11:32:29.223079Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 32 eligible frames\n2026-04-22T11:32:30.840428Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.5MB → 0.4MB (4.3x), 11 JPEGs deleted\n2026-04-22T11:32:33.246169Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 4.3MB → 2.0MB (2.1x), 19 JPEGs deleted\n2026-04-22T11:33:57.016394Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-268904747002154324, trigger=visual_change)\n2026-04-22T11:34:00.365029Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-268904747002154324, trigger=visual_change)\n2026-04-22T11:35:10.982104Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4296915293538414297, trigger=visual_change)\n2026-04-22T11:35:32.724876Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7285107730676902260, trigger=visual_change)\n2026-04-22T11:37:33.415720Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 27 eligible frames\n2026-04-22T11:37:34.371399Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.8MB → 0.2MB (8.6x), 13 JPEGs deleted\n2026-04-22T11:37:35.859845Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.7MB → 0.8MB (3.3x), 12 JPEGs deleted\n2026-04-22T11:37:51.362562Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8696186709523439969, trigger=visual_change)\n2026-04-22T11:38:34.243110Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1899945553455143507, trigger=visual_change)\n2026-04-22T11:38:59.179294Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1899945553455143507, trigger=visual_change)\n2026-04-22T11:39:48.236676Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5576803356774878841, trigger=visual_change)\n2026-04-22T11:40:22.065139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6640696446489616380, trigger=visual_change)\n2026-04-22T11:40:28.877584Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5960256550196817106, trigger=visual_change)\n2026-04-22T11:40:35.319368Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6640696446489616380, trigger=visual_change)\n2026-04-22T11:40:53.124904Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5960256550196817106, trigger=visual_change)\n2026-04-22T11:41:33.255320Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4989103865860242755, trigger=visual_change)\n2026-04-22T11:41:48.193900Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1488267386558342445, trigger=visual_change)\n2026-04-22T11:41:51.755705Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1488267386558342445, trigger=visual_change)\n2026-04-22T11:42:12.947590Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5684177415939916225, trigger=visual_change)\n2026-04-22T11:42:28.448251Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4939881454163746825, trigger=visual_change)\n2026-04-22T11:42:37.404128Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5184076061330305421, trigger=visual_change)\n2026-04-22T11:42:38.310197Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=32 elapsed=2.273565292s\n2026-04-22T11:42:38.310366Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 32 eligible frames\n2026-04-22T11:42:39.454621Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.8MB → 0.2MB (8.7x), 13 JPEGs deleted\n2026-04-22T11:42:41.159908Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 4.0MB → 1.5MB (2.7x), 17 JPEGs deleted\n2026-04-22T11:42:49.713146Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5184076061330305421, trigger=visual_change)\n2026-04-22T11:42:58.758597Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5184076061330305421, trigger=visual_change)\n2026-04-22T11:43:26.711882Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8888955688748119503, trigger=visual_change)\n2026-04-22T11:43:42.212402Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8888955688748119503, trigger=visual_change)\n2026-04-22T11:43:48.256895Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8888955688748119503, trigger=visual_change)\n2026-04-22T11:44:32.051314Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1061030761799504015, trigger=visual_change)\n2026-04-22T11:46:38.628742Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5309638870405538800, trigger=visual_change)\n2026-04-22T11:47:44.229671Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=24 elapsed=3.005999417s\n2026-04-22T11:47:44.230453Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 24 eligible frames\n2026-04-22T11:47:45.193130Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.4MB → 0.2MB (6.7x), 10 JPEGs deleted\n2026-04-22T11:47:46.669315Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.7MB → 1.0MB (2.6x), 12 JPEGs deleted\n2026-04-22T11:49:20.261509Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5041499190616781957, trigger=visual_change)\n2026-04-22T11:49:22.980492Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5041499190616781957, trigger=visual_change)\n2026-04-22T11:49:55.465856Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3947999597522241326, trigger=click)\n2026-04-22T11:52:35.652259Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6702837610765389296, trigger=visual_change)\n2026-04-22T11:52:53.489508Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=35 elapsed=6.809016916s\n2026-04-22T11:52:53.489713Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 35 eligible frames\n2026-04-22T11:52:54.357212Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.5MB → 0.2MB (7.2x), 11 JPEGs deleted\n2026-04-22T11:52:57.318472Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 5.1MB → 2.0MB (2.6x), 22 JPEGs deleted\n2026-04-22T11:53:26.811997Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1463508818426172948, trigger=click)\n2026-04-22T11:55:47.876156Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3551464550561190027, trigger=visual_change)","depth":4,"value":"2026-04-21T18:01:10.189484Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:11.594292Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=visual_change)\n2026-04-21T18:01:12.844254Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:13.095866Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:49.712611Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5610420548393517496, trigger=click)\n2026-04-21T18:01:49.878502Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5610420548393517496, trigger=click)\n2026-04-21T18:01:54.385999Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4075180225844497251, trigger=click)\n2026-04-21T18:02:03.320721Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:04.589973Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:06.402101Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:08.459207Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:17.915785Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:20.289378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:53.363091Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:59.854804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6485088808083200508, trigger=visual_change)\n2026-04-21T18:03:23.692602Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2923142241079919801, trigger=visual_change)\n2026-04-21T18:03:38.383745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:03:38.666324Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:03:40.611795Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:03:46.691879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:03:49.696169Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:03:58.796193Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:10.455866Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=65 elapsed=5.507644708s\n2026-04-21T18:04:10.456994Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 65 eligible frames\n2026-04-21T18:04:10.784720Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:12.979583Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 8.1MB → 3.1MB (2.6x), 36 JPEGs deleted\n2026-04-21T18:04:13.808201Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:15.311040Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 5.7MB → 2.1MB (2.7x), 27 JPEGs deleted\n2026-04-21T18:04:22.870405Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:25.858949Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:47.178867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:47.409147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:48.621959Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:48.823996Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:49.613197Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:49.840589Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:54.113636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:54.333250Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:56.158603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:56.345340Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:24.653256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2923142241079919801, trigger=visual_change)\n2026-04-21T18:05:27.506644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2923142241079919801, trigger=visual_change)\n2026-04-21T18:05:52.127185Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:52.385537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:54.464579Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:54.740600Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:06:01.884193Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:06:04.917243Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:06:15.788550Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:06:16.090123Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:06:17.179267Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:07:04.992532Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:08.003078Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:17.121489Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:17.302355Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:27.025619Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:29.771279Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:31.137970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:36.086848Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:36.306717Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:37.369851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:37.634865Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:38.805129Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:39.104738Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:40.060624Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:08:30.262801Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:08:45.022177Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8543293535466770858, trigger=click)\n2026-04-21T18:09:22.083704Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=74 elapsed=6.715953125s\n2026-04-21T18:09:22.084245Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 74 eligible frames\n2026-04-21T18:09:29.000281Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 43 frames, 9.6MB → 4.0MB (2.4x), 43 JPEGs deleted\n2026-04-21T18:09:33.280652Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 5.8MB → 1.9MB (3.1x), 29 JPEGs deleted\n2026-04-21T18:10:45.149443Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:11:39.313378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=745086096190842156, trigger=visual_change)\n2026-04-21T18:11:42.305757Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=745086096190842156, trigger=click)\n2026-04-21T18:11:46.031853Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=745086096190842156, trigger=click)\n2026-04-21T18:11:46.095029Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=745086096190842156, trigger=click)\n2026-04-21T18:14:41.494244Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=68 elapsed=8.195880125s\n2026-04-21T18:14:41.495608Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 68 eligible frames\n2026-04-21T18:14:48.613051Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 8.2MB → 3.4MB (2.5x), 36 JPEGs deleted\n2026-04-21T18:14:55.232583Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 5.5MB → 2.6MB (2.1x), 30 JPEGs deleted\n2026-04-21T18:19:19.967211Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2899189334056575250, trigger=click)\n2026-04-21T18:19:20.363463Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2899189334056575250, trigger=click)\n2026-04-21T18:19:59.298075Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=53 elapsed=4.000910792s\n2026-04-21T18:19:59.298190Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 53 eligible frames\n2026-04-21T18:20:02.044649Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 5.1MB → 3.5MB (1.5x), 26 JPEGs deleted\n2026-04-21T18:20:04.900441Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.7MB → 2.4MB (1.9x), 25 JPEGs deleted\n2026-04-21T18:20:23.742659Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:27.660528Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:34.896769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:35.220946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:40.886719Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:44.353070Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:47.046701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:48.003863Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:22:59.673927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2006451494811625283, trigger=click)\n2026-04-21T18:23:02.374154Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2006451494811625283, trigger=visual_change)\n2026-04-21T18:24:55.480969Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:24:55.713808Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:25:06.770660Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=745086096190842156, trigger=click)\n2026-04-21T18:25:10.431473Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=69 elapsed=5.123936292s\n2026-04-21T18:25:10.432665Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 69 eligible frames\n2026-04-21T18:25:12.020960Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.7MB → 0.4MB (10.8x), 24 JPEGs deleted\n2026-04-21T18:25:16.809118Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 43 frames, 7.5MB → 3.7MB (2.0x), 43 JPEGs deleted\n2026-04-21T18:27:20.032159Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-868697608726996264, trigger=click)\n2026-04-21T18:27:27.209581Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5262134208844209929, trigger=click)\n2026-04-21T18:30:23.556529Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=60 elapsed=6.732438875s\n2026-04-21T18:30:23.556849Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 60 eligible frames\n2026-04-21T18:30:25.836587Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 5.3MB → 0.4MB (12.5x), 27 JPEGs deleted\n2026-04-21T18:30:29.251794Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 5.4MB → 2.7MB (2.0x), 31 JPEGs deleted\n2026-04-21T18:34:42.383568Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1898158487632236470, trigger=click)\n2026-04-21T18:35:29.435858Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 84 eligible frames\n2026-04-21T18:35:31.507303Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 35 frames, 6.8MB → 0.3MB (21.3x), 35 JPEGs deleted\n2026-04-21T18:35:34.821718Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 47 frames, 8.8MB → 3.6MB (2.4x), 47 JPEGs deleted\n2026-04-21T18:37:57.032414Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3231955623713121874, trigger=click)\n2026-04-21T18:40:36.969380Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=205 elapsed=2.13815675s\n2026-04-21T18:40:36.969491Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 205 eligible frames\n2026-04-21T18:40:42.234686Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 90 frames, 17.5MB → 0.4MB (49.4x), 90 JPEGs deleted\n2026-04-21T18:40:48.296945Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 99 frames, 14.9MB → 5.7MB (2.6x), 99 JPEGs deleted\n2026-04-21T18:40:49.626073Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 1.8MB → 0.7MB (2.8x), 14 JPEGs deleted\n2026-04-21T18:41:16.858046Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5262134208844209929, trigger=click)\n2026-04-21T18:41:18.719527Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5262134208844209929, trigger=click)\n2026-04-21T18:41:20.650032Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6762752836329409782, trigger=click)\n2026-04-21T18:42:40.957654Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7949512313665335161, trigger=visual_change)\n2026-04-21T18:42:42.714242Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7949512313665335161, trigger=click)\n2026-04-21T18:44:54.833923Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7610506607449357182, trigger=click)\n2026-04-21T18:44:55.013934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7610506607449357182, trigger=click)\n2026-04-21T18:45:54.320505Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=145 elapsed=4.6846185s\n2026-04-21T18:45:54.321215Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 145 eligible frames\n2026-04-21T18:45:58.288822Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 64 frames, 12.5MB → 0.5MB (23.2x), 64 JPEGs deleted\n2026-04-21T18:46:02.956701Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 78 frames, 11.5MB → 3.3MB (3.5x), 78 JPEGs deleted\n2026-04-21T18:48:10.510139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4242937607805845066, trigger=click)\n2026-04-21T18:48:37.207446Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5152173808593872338, trigger=visual_change)\n2026-04-21T18:49:27.537635Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5244088376274895156, trigger=click)\n2026-04-21T18:49:33.724367Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5262134208844209929, trigger=click)\n2026-04-21T18:49:44.747739Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8298107678328947062, trigger=click)\n2026-04-21T18:50:45.073176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:50:45.427101Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:50:48.592273Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:50:49.492676Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:51:01.193858Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:51:05.888682Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=50 elapsed=2.917680375s\n2026-04-21T18:51:05.889014Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 50 eligible frames\n2026-04-21T18:51:06.016628Z WARN sqlx::query: summary=\"PRAGMA wal_checkpoint(TRUNCATE)\" db.statement=\"\" rows_affected=0 rows_returned=1 elapsed=2.157649083s\n2026-04-21T18:51:06.079565Z WARN sqlx::query: summary=\"BEGIN IMMEDIATE\" db.statement=\"\" rows_affected=1 rows_returned=0 elapsed=1.385088167s\n2026-04-21T18:51:07.829374Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 3.9MB → 0.4MB (11.0x), 20 JPEGs deleted\n2026-04-21T18:51:09.736739Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 5.0MB → 1.8MB (2.7x), 28 JPEGs deleted\n2026-04-21T18:51:22.360027Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2872311122120998867, trigger=click)\n2026-04-21T18:51:22.556670Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2872311122120998867, trigger=click)\n2026-04-21T18:51:38.819030Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7947558874471225541, trigger=click)\n2026-04-21T18:51:57.414061Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:51:59.012068Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:51:59.285931Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:01.767745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:02.028355Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:05.460776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=visual_change)\n2026-04-21T18:52:07.087479Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:07.314492Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:10.214922Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:10.537340Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:13.867159Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:14.152331Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:20.367281Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:26.127826Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1650348556715134220, trigger=click)\n2026-04-21T18:52:37.517700Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=visual_change)\n2026-04-21T18:52:42.329057Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:52:42.556779Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:52:44.386173Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:52:44.700511Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:52:45.210674Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:53:17.193415Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6757993062848436258, trigger=visual_change)\n2026-04-21T18:53:30.834059Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-228480120308125164, trigger=click)\n2026-04-21T18:53:38.030882Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7225077546439863627, trigger=click)\n2026-04-21T18:53:56.421537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6437320026671683644, trigger=click)\n2026-04-21T18:54:11.726528Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1667437155962702753, trigger=visual_change)\n2026-04-21T18:54:12.117525Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1667437155962702753, trigger=click)\n2026-04-21T18:54:18.659686Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:54:19.077258Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:54:29.973760Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:56:07.789768Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6757993062848436258, trigger=click)\n2026-04-21T18:56:08.791400Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6757993062848436258, trigger=click)\n2026-04-21T18:56:14.153615Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=80 elapsed=4.402661042s\n2026-04-21T18:56:14.153722Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 80 eligible frames\n2026-04-21T18:56:16.685912Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 6.2MB → 0.7MB (8.9x), 32 JPEGs deleted\n2026-04-21T18:56:21.263739Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 46 frames, 8.2MB → 2.8MB (2.9x), 46 JPEGs deleted\n2026-04-21T18:56:25.279306Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7906564822731502105, trigger=click)\n2026-04-21T18:56:33.734840Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8817586097865472869, trigger=click)\n2026-04-21T18:56:33.980908Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8817586097865472869, trigger=click)\n2026-04-21T18:56:35.972959Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8817586097865472869, trigger=click)\n2026-04-21T18:56:40.545963Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8587160525579598601, trigger=click)\n2026-04-21T18:56:41.913814Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8587160525579598601, trigger=visual_change)\n2026-04-21T18:56:45.516942Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1910160977377320534, trigger=click)\n2026-04-21T18:56:48.740431Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1910160977377320534, trigger=click)\n2026-04-21T18:56:50.439568Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1910160977377320534, trigger=click)\n2026-04-21T18:56:50.692218Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1910160977377320534, trigger=click)\n2026-04-21T18:57:12.321118Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:12.578681Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:24.290583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:24.543696Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:34.571768Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:36.227688Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:36.475151Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:42.338601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:42.559967Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:52.824809Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:53.145543Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:59.463043Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:59.717475Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:58:00.742137Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:58:01.061497Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:59:33.960291Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9203182216527106315, trigger=visual_change)\n2026-04-21T18:59:55.990167Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T18:59:59.103830Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=visual_change)\n2026-04-21T19:00:16.116927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:00:45.352689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:00:49.596644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:00:50.432181Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:07.992732Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:08.484066Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:10.538762Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:18.922398Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:28.361625Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=84 elapsed=6.9360265s\n2026-04-21T19:01:28.362070Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 84 eligible frames\n2026-04-21T19:01:32.723075Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 33 frames, 6.4MB → 0.3MB (19.7x), 33 JPEGs deleted\n2026-04-21T19:01:42.130490Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 7.8MB → 3.3MB (2.4x), 49 JPEGs deleted\n2026-04-21T19:02:09.991879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:12.577587Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:12.835924Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:15.635601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:18.720475Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:21.708351Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:22.061150Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:28.684303Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3995027160269120472, trigger=click)\n2026-04-21T19:02:41.434491Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:41.724904Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:43.112974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:43.410843Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:47.501924Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:47.761592Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:54.205542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:54.441326Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:56.601490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:56.921256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:03:15.988643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:03:16.236342Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:03:28.508616Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:00.462064Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:01.516168Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:01.856315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:03.246448Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:03.735029Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:09.818135Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:05:03.118616Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:03.393788Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:21.352722Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=visual_change)\n2026-04-21T19:05:43.751309Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:44.029500Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:45.626672Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:45.899754Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:48.206587Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:48.449043Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:06:22.834938Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7947558874471225541, trigger=click)\n2026-04-21T19:06:52.937779Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=114 elapsed=10.747243125s\n2026-04-21T19:06:52.938152Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 114 eligible frames\n2026-04-21T19:06:57.942457Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 45 frames, 8.8MB → 0.3MB (27.2x), 45 JPEGs deleted\n2026-04-21T19:07:05.853054Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 67 frames, 10.5MB → 5.2MB (2.0x), 67 JPEGs deleted\n2026-04-21T19:07:45.088797Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:07:48.052391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6936634780821666458, trigger=click)\n2026-04-21T19:08:59.593467Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5629560013928052473, trigger=click)\n2026-04-21T19:09:29.443711Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:42.998313Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8043719072324535154, trigger=visual_change)\n2026-04-21T19:09:50.759516Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:51.052544Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:51.892698Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:09:52.651776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:55.476431Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:55.898195Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:09:58.077337Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:10:01.103980Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:10:03.105423Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:10:03.448049Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:10:08.548130Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6051188157141408655, trigger=click)\n2026-04-21T19:12:12.330759Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=70 elapsed=6.458002417s\n2026-04-21T19:12:12.332545Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 70 eligible frames\n2026-04-21T19:12:14.243079Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 5.5MB → 0.3MB (17.2x), 28 JPEGs deleted\n2026-04-21T19:12:17.558334Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 40 frames, 7.4MB → 3.6MB (2.1x), 40 JPEGs deleted\n2026-04-21T19:16:51.045938Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1370319459641728815, trigger=click)\n2026-04-21T19:16:51.249993Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1370319459641728815, trigger=click)\n2026-04-21T19:17:21.603564Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=40 elapsed=4.036037791s\n2026-04-21T19:17:21.604357Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames\n2026-04-21T19:17:22.750174Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.5MB → 0.3MB (11.2x), 18 JPEGs deleted\n2026-04-21T19:17:24.332098Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.2MB → 1.3MB (3.2x), 20 JPEGs deleted\n2026-04-21T19:22:25.748871Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=49 elapsed=1.406664416s\n2026-04-21T19:22:25.749095Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 49 eligible frames\n2026-04-21T19:22:27.704722Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 3.7MB → 0.8MB (4.5x), 22 JPEGs deleted\n2026-04-21T19:22:29.535330Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.2MB → 1.7MB (3.0x), 25 JPEGs deleted\n2026-04-21T19:23:29.233846Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9146581369053060363, trigger=click)\n2026-04-21T19:23:31.995034Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9146581369053060363, trigger=visual_change)\n2026-04-21T19:23:37.213396Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9146581369053060363, trigger=visual_change)\n2026-04-21T19:23:40.288223Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9146581369053060363, trigger=visual_change)\n2026-04-21T19:23:44.197738Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9146581369053060363, trigger=visual_change)\n2026-04-21T19:23:45.228572Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9146581369053060363, trigger=click)\n2026-04-21T19:23:56.251033Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:24:06.580019Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=335 elapsed=1.644312167s\n2026-04-21T19:24:28.860436Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:24:32.226944Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:24:32.476075Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:03.902521Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:19.205245Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:25.098627Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:36.013866Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:37.355954Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:41.831265Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:46.247585Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:46.619106Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:48.284769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:48.534452Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:49.421920Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:49.752264Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:54.600720Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:55.072357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:26:19.446041Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:26:22.718352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:27:38.437704Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=28 elapsed=8.833634334s\n2026-04-21T19:27:38.438043Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames\n2026-04-21T19:27:39.763901Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 1.9MB → 0.3MB (7.6x), 12 JPEGs deleted\n2026-04-21T19:27:41.220664Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.1MB → 0.9MB (2.2x), 14 JPEGs deleted\n2026-04-21T19:28:22.708791Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:28:23.849452Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:28:24.119301Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:14.209016Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:16.415693Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:21.726815Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:23.890645Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:24.239058Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:29.790006Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:33.098495Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:38.065869Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:44.089028Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:47.272131Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:53.977951Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:57.274496Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:30:11.986797Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:30:13.530455Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:30:28.332451Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:30:37.204947Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:26.255340Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:26.592983Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:30.448912Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:35.747969Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:37.783849Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:38.061197Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:43.216365Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:43.885407Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:46.680745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:52.971450Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:58.468469Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:58.624833Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:03.362210Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:12.706102Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:15.172982Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:23.020508Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:23.199312Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:25.387097Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:25.764201Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:30.336940Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:30.810971Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:39.812820Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:42.409145Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:44.386326Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:48.880648Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=47 elapsed=7.499136792s\n2026-04-21T19:32:48.880949Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 47 eligible frames\n2026-04-21T19:32:51.249469Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.2MB → 0.3MB (8.9x), 14 JPEGs deleted\n2026-04-21T19:32:55.969183Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 3.8MB → 1.9MB (2.0x), 31 JPEGs deleted\n2026-04-21T19:32:59.734686Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:33:00.098925Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:33:05.951997Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:34:07.213420Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:34:09.264586Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:34:16.527425Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:34:19.513647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:34:32.889780Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1128757073350665914, trigger=click)\n2026-04-21T19:34:56.078651Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4993766851008728916, trigger=click)\n2026-04-21T19:34:56.296542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4993766851008728916, trigger=click)\n2026-04-21T19:35:02.344819Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:35:05.237721Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:35:07.518599Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:35:09.938481Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:35:10.408295Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:35:26.864482Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:35:33.001733Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:35:36.479802Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:36:20.043835Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4526067242477956280, trigger=visual_change)\n2026-04-21T19:36:47.029303Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4526067242477956280, trigger=visual_change)\n2026-04-21T19:36:57.077150Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:37:33.348160Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:37:33.742029Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:37:36.579915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:37:39.754974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:38:04.951324Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=101 elapsed=8.9666755s\n2026-04-21T19:38:04.953527Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 101 eligible frames\n2026-04-21T19:38:13.751166Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 38 frames, 8.0MB → 3.5MB (2.3x), 38 JPEGs deleted\n2026-04-21T19:38:29.817220Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 61 frames, 9.7MB → 5.2MB (1.9x), 61 JPEGs deleted\n2026-04-21T19:40:34.255930Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=342 elapsed=1.0699005s\n2026-04-21T19:42:32.961192Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:42:33.305572Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:42:40.179851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=visual_change)\n2026-04-21T19:42:41.405781Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:42:41.720845Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:43:02.251464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=visual_change)\n2026-04-21T19:43:11.622532Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:43:36.525920Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=85 elapsed=6.634896167s\n2026-04-21T19:43:36.526454Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 85 eligible frames\n2026-04-21T19:43:39.459999Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 8.0MB → 3.4MB (2.3x), 36 JPEGs deleted\n2026-04-21T19:43:43.505640Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 47 frames, 7.9MB → 3.9MB (2.0x), 47 JPEGs deleted\n2026-04-21T19:44:05.999282Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=visual_change)\n2026-04-21T19:45:08.065595Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2712812971723964739, trigger=click)\n2026-04-21T19:45:46.266141Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:48:51.569666Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=64 elapsed=8.039671791s\n2026-04-21T19:48:51.570457Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 64 eligible frames\n2026-04-21T19:48:58.738540Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 7.2MB → 2.4MB (2.9x), 32 JPEGs deleted\n2026-04-21T19:49:05.383193Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 5.9MB → 2.5MB (2.4x), 30 JPEGs deleted\n2026-04-21T19:51:14.064760Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2572721248839450970, trigger=visual_change)\n2026-04-21T19:54:08.518415Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=346 elapsed=1.026887875s\n2026-04-21T19:54:12.872902Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=61 elapsed=7.44778675s\n2026-04-21T19:54:12.873164Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 61 eligible frames\n2026-04-21T19:54:16.348511Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.6MB → 1.4MB (4.1x), 25 JPEGs deleted\n2026-04-21T19:54:24.102233Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 34 frames, 6.2MB → 3.6MB (1.7x), 34 JPEGs deleted\n2026-04-21T19:59:32.063421Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=346 elapsed=1.165878958s\n2026-04-21T19:59:32.818884Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=31 elapsed=8.661332917s\n2026-04-21T19:59:32.819629Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 31 eligible frames\n2026-04-21T19:59:35.810838Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.9MB → 0.7MB (3.9x), 16 JPEGs deleted\n2026-04-21T19:59:38.924596Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.9MB → 1.5MB (2.0x), 13 JPEGs deleted\n2026-04-21T20:01:55.709776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1382976804061127003, trigger=click)\n2026-04-21T20:04:27.572999Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7658911549706194190, trigger=click)\n2026-04-21T20:04:46.630063Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=57 elapsed=7.045125334s\n2026-04-21T20:04:46.631081Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 57 eligible frames\n2026-04-21T20:04:49.684796Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 2.5MB → 0.8MB (3.2x), 23 JPEGs deleted\n2026-04-21T20:04:56.073590Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 5.7MB → 3.1MB (1.8x), 32 JPEGs deleted\n2026-04-21T20:05:04.129844Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-446124678591544690, trigger=click)\n2026-04-21T20:05:04.425723Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-446124678591544690, trigger=click)\n2026-04-21T20:09:59.238939Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=30 elapsed=2.058497125s\n2026-04-21T20:09:59.239075Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 30 eligible frames\n2026-04-21T20:10:00.874153Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.3MB → 0.2MB (5.8x), 13 JPEGs deleted\n2026-04-21T20:10:03.326064Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 1.8MB → 0.6MB (2.8x), 15 JPEGs deleted\n2026-04-21T20:15:07.129653Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=58 elapsed=3.763973459s\n2026-04-21T20:15:07.130598Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 58 eligible frames\n2026-04-21T20:15:09.088400Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 3.7MB → 0.6MB (5.9x), 26 JPEGs deleted\n2026-04-21T20:15:10.858868Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 3.9MB → 1.0MB (3.9x), 30 JPEGs deleted\n2026-04-21T20:18:21.110736Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=354 elapsed=1.169721666s\nzsh: terminated npx screenpipe@latest record --disable-audio --ignored-windows \"Boosteroid\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-start\ndetected hardware tier: Mid\nwarning: parakeet is not supported on this platform, using whisper-tiny instead\n2026-04-22T09:15:19.880360Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store\nchecking permissions...\n screen recording: ok\n accessibility: ok\n2026-04-22T09:15:19.951248Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6\n2026-04-22T09:15:20.675958Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor\n2026-04-22T09:15:20.677447Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)\n2026-04-22T09:15:20.677800Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)\n2026-04-22T09:15:20.709542Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true\n2026-04-22T09:15:20.709596Z INFO screenpipe: meeting detector enabled — independent of transcription mode\n2026-04-22T09:15:20.709849Z INFO screenpipe: API server listening on 127.0.0.1:3030 (localhost only)\n2026-04-22T09:15:20.709774Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)\n2026-04-22T09:15:20.709806Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)\n2026-04-22T09:15:20.709863Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key\n2026-04-22T09:15:20.709908Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager\n2026-04-22T09:15:20.721517Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-22T09:15:20.725781Z INFO screenpipe_core::pipes: loaded pipe: day-recap\n2026-04-22T09:15:20.725991Z INFO screenpipe_core::pipes: loaded pipe: standup-update\n2026-04-22T09:15:20.726387Z INFO screenpipe_core::pipes: loaded pipe: ai-habits\n2026-04-22T09:15:20.726548Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown\n2026-04-22T09:15:20.726690Z INFO screenpipe_core::pipes: loaded pipe: video-export\n2026-04-22T09:15:20.727224Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary\n2026-04-22T09:15:20.727242Z INFO screenpipe_core::pipes: loaded 6 pipes from \"/Users/lukas/.screenpipe/pipes\"\n\n\n\n _ \n __________________ ___ ____ ____ (_____ ___ \n / ___/ ___/ ___/ _ \\/ _ \\/ __ \\ / __ \\/ / __ \\/ _ \\\n (__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/\n/____/\\___/_/ \\___/\\___/_/ /_/ / .___/_/ .___/\\___/ \n /_/ /_/ \n\n\n\npower AI by everything you've seen, said or heard\nopen source | runs locally | developer friendly\n\n\n┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ true │\n│ vision disabled │ false │\n│ pause on DRM content │ false │\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n│ ignored windows │ [\"Boosteroid\"] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n2026-04-22T09:15:20.728614Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n│ api auth │ enabled │\n2026-04-22T09:15:20.742172Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n│ encrypt secrets │ disabled │\n│ retention days │ 14 │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ id: 1 │\n│ │ id: 2 │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ disabled │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-22T09:15:20.742788Z INFO screenpipe: starting UI event capture\n2026-04-22T09:15:20.755824Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-22T09:15:20.769629Z INFO screenpipe_engine::ui_recorder: UI recording session started: e7729066-2ab4-4bf0-9d48-0c9790a4ee79\n2026-04-22T09:15:20.769680Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-22T09:15:20.769789Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-21 06:15:20.769785 UTC to 2026-04-22 06:15:20.769785 UTC)\n2026-04-22T09:15:20.770644Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-22T09:15:20.778181Z INFO screenpipe_engine::server: Server listening on 127.0.0.1:3030\n2026-04-22T09:15:20.789960Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-22T09:15:21.591614Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-22T09:15:21.591646Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-22T09:15:21.591751Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-22T09:15:21.919088Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-22T09:15:21.919141Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-22T09:15:21.919158Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)\n2026-04-22T09:15:21.919163Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-22T09:15:21.919167Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)\n2026-04-22T09:15:23.315305Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-22T09:15:23.445619Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=68471, dur=74ms\n2026-04-22T09:15:23.697846Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-22T09:15:23.856559Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=68472, dur=115ms\n2026-04-22T09:15:23.858032Z INFO sck_rs::stream_manager: invalidated persistent stream for display 2\n2026-04-22T09:15:25.542035Z WARN sqlx::query: summary=\"SELECT f.id, f.timestamp, f.offset_index, …\" db.statement=\"\\n\\nSELECT\\n f.id,\\n f.timestamp,\\n f.offset_index,\\n COALESCE(\\n SUBSTR(f.full_text, 1, 200),\\n SUBSTR(f.accessibility_text, 1, 200),\\n (\\n SELECT\\n SUBSTR(ot.text, 1, 200)\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as text,\\n COALESCE(\\n f.app_name,\\n (\\n SELECT\\n ot.app_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as app_name,\\n COALESCE(\\n f.window_name,\\n (\\n SELECT\\n ot.window_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as window_name,\\n COALESCE(vc.device_name, f.device_name) as screen_device,\\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\\n COALESCE(vc.fps, 0.033) as chunk_fps,\\n f.browser_url,\\n f.machine_id\\nFROM\\n frames f\\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\\nWHERE\\n f.timestamp >= ?1\\n AND f.timestamp <= ?2\\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\\nORDER BY\\n f.timestamp DESC,\\n f.offset_index DESC\\nLIMIT\\n 10000\\n\" rows_affected=0 rows_returned=7744 elapsed=4.771776083s\n2026-04-22T09:15:25.568771Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 7744 frame entries, coverage from 2026-04-21 06:15:20.769785 UTC\n2026-04-22T09:15:32.415224Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-22T09:15:41.941919Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=357539612469251678, trigger=click)\n2026-04-22T09:15:43.170779Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=357539612469251678, trigger=visual_change)\n2026-04-22T09:16:22.411707Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5959696770819639860, trigger=visual_change)\n2026-04-22T09:16:26.239896Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=62 elapsed=5.530699458s\n2026-04-22T09:16:26.240084Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 62 eligible frames\n2026-04-22T09:16:28.044386Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 4.7MB → 0.2MB (19.7x), 30 JPEGs deleted\n2026-04-22T09:16:30.086623Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 4.3MB → 0.1MB (30.2x), 30 JPEGs deleted\n2026-04-22T09:16:31.962480Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5959696770819639860, trigger=visual_change)\n2026-04-22T09:19:29.939632Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7894432383542294550, trigger=click)\n2026-04-22T09:19:30.235489Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7894432383542294550, trigger=click)\n2026-04-22T09:19:35.764366Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7894432383542294550, trigger=click)\n2026-04-22T09:19:48.049836Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6938285907753314842, trigger=visual_change)\n2026-04-22T09:21:36.974672Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=2 elapsed=6.892004583s\n2026-04-22T09:21:36.974869Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-22T09:21:46.781688Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2525045998934122930, trigger=visual_change)\n2026-04-22T09:24:11.763955Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=889075772057942202, trigger=visual_change)\n2026-04-22T09:24:12.162666Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=889075772057942202, trigger=click)\n2026-04-22T09:24:14.800709Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=889075772057942202, trigger=click)\n2026-04-22T09:24:15.299587Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=889075772057942202, trigger=click)\n2026-04-22T09:24:17.445141Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=889075772057942202, trigger=click)\n2026-04-22T09:24:17.822587Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=889075772057942202, trigger=click)\n2026-04-22T09:24:24.786651Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1127753064753596652, trigger=click)\n2026-04-22T09:24:25.324058Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1127753064753596652, trigger=click)\n2026-04-22T09:24:29.098325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1127753064753596652, trigger=click)\n2026-04-22T09:24:50.423753Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7779472685250441843, trigger=click)\n2026-04-22T09:24:50.901024Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7779472685250441843, trigger=click)\n2026-04-22T09:25:10.616667Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5405130988905008112, trigger=click)\n2026-04-22T09:25:11.046676Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5405130988905008112, trigger=click)\n2026-04-22T09:25:20.763321Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5405130988905008112, trigger=click)\n2026-04-22T09:25:20.997547Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5405130988905008112, trigger=click)\n2026-04-22T09:25:25.954173Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5405130988905008112, trigger=click)\n2026-04-22T09:25:32.989805Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8138374647045057371, trigger=click)\n2026-04-22T09:25:36.003685Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8138374647045057371, trigger=click)\n2026-04-22T09:25:37.335354Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8138374647045057371, trigger=click)\n2026-04-22T09:25:37.578287Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8138374647045057371, trigger=click)\n2026-04-22T09:25:40.438000Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8138374647045057371, trigger=visual_change)\n2026-04-22T09:25:43.846661Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8138374647045057371, trigger=click)\n2026-04-22T09:25:44.062879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8138374647045057371, trigger=click)\n2026-04-22T09:25:51.479216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8138374647045057371, trigger=click)\n2026-04-22T09:25:53.247917Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8138374647045057371, trigger=click)\n2026-04-22T09:25:58.183431Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8138374647045057371, trigger=click)\n2026-04-22T09:25:58.469469Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8138374647045057371, trigger=click)\n2026-04-22T09:26:09.273910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5405130988905008112, trigger=click)\n2026-04-22T09:26:09.561856Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5405130988905008112, trigger=click)\n2026-04-22T09:26:10.819842Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5405130988905008112, trigger=click)\n2026-04-22T09:26:11.249618Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5405130988905008112, trigger=click)\n2026-04-22T09:26:40.577718Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2354791383483955560, trigger=visual_change)\n2026-04-22T09:26:44.799765Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=23 elapsed=7.81096125s\n2026-04-22T09:26:44.799978Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 23 eligible frames\n2026-04-22T09:26:46.688043Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 2.1MB → 1.2MB (1.7x), 8 JPEGs deleted\n2026-04-22T09:26:50.641966Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 3.0MB → 1.3MB (2.3x), 15 JPEGs deleted\n2026-04-22T09:31:51.652070Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 89 eligible frames\n2026-04-22T09:31:54.101939Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 33 frames, 9.4MB → 1.9MB (5.0x), 33 JPEGs deleted\n2026-04-22T09:31:59.304222Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 54 frames, 9.7MB → 5.0MB (1.9x), 54 JPEGs deleted\n2026-04-22T09:32:12.008662Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3624805284232944242, trigger=click)\n2026-04-22T09:32:35.967540Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3062750094588465259, trigger=visual_change)\n2026-04-22T09:33:06.818107Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3062750094588465259, trigger=visual_change)\n2026-04-22T09:33:14.632314Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2863574885747713422, trigger=click)\n2026-04-22T09:33:14.857523Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2863574885747713422, trigger=click)\n2026-04-22T09:34:14.788009Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2354791383483955560, trigger=visual_change)\n2026-04-22T09:34:30.609746Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2354791383483955560, trigger=click)\n2026-04-22T09:34:34.105401Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2354791383483955560, trigger=visual_change)\n2026-04-22T09:34:37.485108Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2354791383483955560, trigger=click)\n2026-04-22T09:35:54.598003Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-625214687390699270, trigger=visual_change)\n2026-04-22T09:36:09.104712Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2863574885747713422, trigger=click)\n2026-04-22T09:36:37.324238Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6459141415085539989, trigger=visual_change)\n2026-04-22T09:36:40.542880Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6459141415085539989, trigger=visual_change)\n2026-04-22T09:36:43.137729Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6459141415085539989, trigger=click)\n2026-04-22T09:36:44.229166Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6459141415085539989, trigger=click)\n2026-04-22T09:36:46.968613Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6459141415085539989, trigger=click)\n2026-04-22T09:36:52.078332Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6459141415085539989, trigger=visual_change)\n2026-04-22T09:36:54.127864Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6459141415085539989, trigger=click)\n2026-04-22T09:37:03.963789Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=87 elapsed=4.663980917s\n2026-04-22T09:37:03.964310Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 87 eligible frames\n2026-04-22T09:37:05.944118Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 7.1MB → 0.4MB (19.3x), 32 JPEGs deleted\n2026-04-22T09:37:09.865815Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 53 frames, 9.7MB → 4.1MB (2.4x), 53 JPEGs deleted\n2026-04-22T09:37:13.714905Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3548022877361860948, trigger=click)\n2026-04-22T09:38:12.283595Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3127667118792163607, trigger=click)\n2026-04-22T09:38:31.114793Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3127667118792163607, trigger=click)\n2026-04-22T09:38:31.809587Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3127667118792163607, trigger=click)\n2026-04-22T09:38:33.720499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3127667118792163607, trigger=visual_change)\n2026-04-22T09:38:39.562457Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3127667118792163607, trigger=click)\n2026-04-22T09:38:39.953380Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3127667118792163607, trigger=click)\n2026-04-22T09:42:22.290722Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=36 elapsed=11.598434833s\n2026-04-22T09:42:22.296038Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 36 eligible frames\n2026-04-22T09:42:29.157685Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 3.6MB → 0.6MB (6.0x), 16 JPEGs deleted\n2026-04-22T09:42:32.150217Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.0MB → 1.1MB (2.7x), 18 JPEGs deleted\n2026-04-22T09:45:17.750319Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Firefox, signals=2)\n2026-04-22T09:45:27.669631Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Firefox, signals=2, browser=true)\n2026-04-22T09:45:27.694051Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=6, app=Firefox, title=None)\n2026-04-22T09:47:47.881351Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=73 elapsed=15.717987375s\n2026-04-22T09:47:47.895439Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 73 eligible frames\n2026-04-22T09:47:55.588148Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 7.0MB → 2.6MB (2.7x), 36 JPEGs deleted\n2026-04-22T09:48:06.150273Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 35 frames, 5.8MB → 2.7MB (2.2x), 35 JPEGs deleted\n2026-04-22T09:50:08.042310Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6608914011836842734, trigger=click)\n2026-04-22T09:50:38.385760Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=6, grace=300s)\n2026-04-22T09:50:47.206212Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Active (controls reappeared, app=Firefox, id=6)\n2026-04-22T09:53:20.071320Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=47 elapsed=13.91473275s\n2026-04-22T09:53:20.074434Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 47 eligible frames\n2026-04-22T09:53:25.481039Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.9MB → 1.9MB (2.5x), 20 JPEGs deleted\n2026-04-22T09:53:31.514685Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 3.8MB → 1.3MB (3.0x), 25 JPEGs deleted\n2026-04-22T09:56:27.035122Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=6, grace=300s)\n2026-04-22T09:56:34.352390Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Active (controls reappeared, app=Firefox, id=6)\n2026-04-22T09:58:41.195094Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=51 elapsed=9.340191625s\n2026-04-22T09:58:41.195748Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 51 eligible frames\n2026-04-22T09:58:50.973307Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 3.6MB → 1.9MB (2.0x), 24 JPEGs deleted\n2026-04-22T09:58:55.976599Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 3.6MB → 0.7MB (5.0x), 25 JPEGs deleted\n2026-04-22T10:03:25.035638Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=6, grace=300s)\n2026-04-22T10:03:34.825175Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Active (controls reappeared, app=Firefox, id=6)\n2026-04-22T10:03:59.804173Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=30 elapsed=3.79059225s\n2026-04-22T10:03:59.804769Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 30 eligible frames\n2026-04-22T10:04:07.099407Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.9MB → 1.6MB (1.8x), 17 JPEGs deleted\n2026-04-22T10:04:09.251864Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.7MB → 0.3MB (5.2x), 11 JPEGs deleted\n2026-04-22T10:04:10.533704Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=6, grace=300s)\n2026-04-22T10:04:43.808519Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Active (controls reappeared, app=Firefox, id=6)\n2026-04-22T10:04:56.439936Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=6, grace=300s)\n2026-04-22T10:06:31.858072Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Active (controls reappeared, app=Firefox, id=6)\n2026-04-22T10:09:24.313437Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=26 elapsed=13.225098709s\n2026-04-22T10:09:24.316398Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 26 eligible frames\n2026-04-22T10:09:30.048930Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.7MB → 1.5MB (1.8x), 15 JPEGs deleted\n2026-04-22T10:09:32.094817Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 1.4MB → 0.3MB (5.3x), 9 JPEGs deleted\n2026-04-22T10:14:41.879312Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=29 elapsed=9.776819583s\n2026-04-22T10:14:41.881875Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 29 eligible frames\n2026-04-22T10:14:46.255765Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.7MB → 1.4MB (1.9x), 16 JPEGs deleted\n2026-04-22T10:14:47.845035Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.7MB → 0.4MB (3.7x), 11 JPEGs deleted\n2026-04-22T10:15:58.049606Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3225140536536520209, trigger=visual_change)\n2026-04-22T10:16:01.250980Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3225140536536520209, trigger=visual_change)\n2026-04-22T10:16:08.021292Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3225140536536520209, trigger=visual_change)\n2026-04-22T10:18:23.036830Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3225140536536520209, trigger=visual_change)\n2026-04-22T10:18:25.694340Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3225140536536520209, trigger=visual_change)\n2026-04-22T10:20:01.302255Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=26 elapsed=13.443118541s\n2026-04-22T10:20:01.308129Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 26 eligible frames\n2026-04-22T10:20:07.185095Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.2MB → 1.2MB (1.9x), 13 JPEGs deleted\n2026-04-22T10:20:09.181856Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.6MB → 0.4MB (4.6x), 11 JPEGs deleted\n2026-04-22T10:21:42.631708Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=6, grace=300s)\n2026-04-22T10:23:50.455162Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3671619337996960599, trigger=click)\n2026-04-22T10:25:20.440505Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=32 elapsed=9.592002791s\n2026-04-22T10:25:20.447053Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 32 eligible frames\n2026-04-22T10:25:26.728763Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 2.9MB → 1.3MB (2.2x), 19 JPEGs deleted\n2026-04-22T10:25:29.473763Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 2.0MB → 0.5MB (3.8x), 11 JPEGs deleted\n2026-04-22T10:26:45.951004Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Idle (timeout=300s, app=Firefox, id=6)\n2026-04-22T10:26:46.530346Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting ended (id=6)\n2026-04-22T10:27:17.369443Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2062784539481352883, trigger=click)\n2026-04-22T10:27:23.136885Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-65678043966680631, trigger=click)\n2026-04-22T10:27:23.510026Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-65678043966680631, trigger=click)\n2026-04-22T10:27:56.373647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3142145618711484947, trigger=click)\n2026-04-22T10:27:57.442225Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3142145618711484947, trigger=visual_change)\n2026-04-22T10:28:01.960662Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5828407217475560988, trigger=visual_change)\n2026-04-22T10:28:07.491134Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3142145618711484947, trigger=click)\n2026-04-22T10:28:07.825874Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3142145618711484947, trigger=click)\n2026-04-22T10:30:16.205480Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9197424015372835381, trigger=click)\n2026-04-22T10:30:17.536621Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9197424015372835381, trigger=click)\n2026-04-22T10:30:23.804809Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9197424015372835381, trigger=click)\n2026-04-22T10:30:24.227926Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9197424015372835381, trigger=click)\n2026-04-22T10:30:32.219093Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=26 elapsed=2.729861417s\n2026-04-22T10:30:32.219191Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 26 eligible frames\n2026-04-22T10:30:33.452158Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.2MB → 1.0MB (2.1x), 12 JPEGs deleted\n2026-04-22T10:30:34.655217Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.6MB → 0.6MB (4.6x), 12 JPEGs deleted\n2026-04-22T10:35:37.824110Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=42 elapsed=2.825256334s\n2026-04-22T10:35:37.824295Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 42 eligible frames\n2026-04-22T10:35:39.117243Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 3.6MB → 1.0MB (3.6x), 19 JPEGs deleted\n2026-04-22T10:35:40.660196Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 4.3MB → 1.5MB (2.9x), 21 JPEGs deleted\n2026-04-22T10:38:04.877259Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-65678043966680631, trigger=click)\n2026-04-22T10:38:07.705291Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-65678043966680631, trigger=click)\n2026-04-22T10:38:10.898974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-65678043966680631, trigger=click)\n2026-04-22T10:38:11.975537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-65678043966680631, trigger=click)\n2026-04-22T10:38:18.085335Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7761525857033094891, trigger=click)\n2026-04-22T10:38:24.306354Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7761525857033094891, trigger=visual_change)\n2026-04-22T10:39:35.930520Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=161997556014089017, trigger=click)\n2026-04-22T10:39:41.805633Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=161997556014089017, trigger=click)\n2026-04-22T10:39:42.138469Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=161997556014089017, trigger=click)\n2026-04-22T10:39:44.024008Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=161997556014089017, trigger=click)\n2026-04-22T10:39:44.814287Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=161997556014089017, trigger=click)\n2026-04-22T10:39:52.450542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=161997556014089017, trigger=visual_change)\n2026-04-22T10:40:00.574424Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=161997556014089017, trigger=click)\n2026-04-22T10:40:48.463266Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=71 elapsed=7.648351625s\n2026-04-22T10:40:48.463897Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 71 eligible frames\n2026-04-22T10:40:52.342098Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 33 frames, 6.8MB → 0.4MB (18.9x), 33 JPEGs deleted\n2026-04-22T10:40:57.964004Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 7.7MB → 2.7MB (2.8x), 36 JPEGs deleted\n2026-04-22T10:42:43.679554Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=235385460819764395, trigger=visual_change)\n2026-04-22T10:46:04.372787Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=37 elapsed=6.507600625s\n2026-04-22T10:46:04.373466Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 37 eligible frames\n2026-04-22T10:46:05.670180Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.8MB → 0.9MB (3.3x), 17 JPEGs deleted\n2026-04-22T10:46:07.423695Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 4.0MB → 1.2MB (3.3x), 18 JPEGs deleted\n2026-04-22T10:46:28.352534Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7979920242774959552, trigger=click)\n2026-04-22T10:46:50.281075Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7979920242774959552, trigger=click)\n2026-04-22T10:46:52.766064Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7979920242774959552, trigger=visual_change)\n2026-04-22T10:48:05.742909Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7979920242774959552, trigger=click)\n2026-04-22T10:48:06.094095Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7979920242774959552, trigger=click)\n2026-04-22T10:48:09.303230Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7979920242774959552, trigger=click)\n2026-04-22T10:48:09.673362Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7979920242774959552, trigger=click)\n2026-04-22T10:48:10.602234Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7979920242774959552, trigger=click)\n2026-04-22T10:48:10.980793Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7979920242774959552, trigger=click)\n2026-04-22T10:48:14.096855Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7979920242774959552, trigger=click)\n2026-04-22T10:48:14.445591Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7979920242774959552, trigger=click)\n2026-04-22T10:48:19.008864Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7979920242774959552, trigger=click)\n2026-04-22T10:48:19.360865Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7979920242774959552, trigger=click)\n2026-04-22T10:48:54.815098Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4247888003547861829, trigger=click)\n2026-04-22T10:49:10.177323Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6327679174418074924, trigger=click)\n2026-04-22T10:49:10.717996Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6327679174418074924, trigger=click)\n2026-04-22T10:49:13.470332Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6327679174418074924, trigger=click)\n2026-04-22T10:49:14.204551Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6327679174418074924, trigger=click)\n2026-04-22T10:49:36.549919Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4247888003547861829, trigger=click)\n2026-04-22T10:50:28.838023Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7164971126517405135, trigger=click)\n2026-04-22T10:51:15.863078Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=55 elapsed=8.34783475s\n2026-04-22T10:51:15.867188Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 55 eligible frames\n2026-04-22T10:51:18.108301Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 4.8MB → 0.5MB (9.6x), 23 JPEGs deleted\n2026-04-22T10:51:24.402239Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 5.8MB → 2.3MB (2.6x), 30 JPEGs deleted\n2026-04-22T10:54:05.429302Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7998995672879430036, trigger=visual_change)\n2026-04-22T10:56:24.620947Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 56 eligible frames\n2026-04-22T10:56:26.497992Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 4.8MB → 0.7MB (7.2x), 23 JPEGs deleted\n2026-04-22T10:56:29.140019Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7998995672879430036, trigger=click)\n2026-04-22T10:56:29.398291Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7998995672879430036, trigger=click)\n2026-04-22T10:56:29.755970Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 6.2MB → 3.2MB (1.9x), 31 JPEGs deleted\n2026-04-22T10:59:42.920990Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4913197316764586015, trigger=visual_change)\n2026-04-22T11:01:35.304946Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Firefox, signals=2)\n2026-04-22T11:01:37.612440Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=38 elapsed=7.845216667s\n2026-04-22T11:01:37.612575Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 38 eligible frames\n2026-04-22T11:01:38.912495Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.7MB → 0.4MB (8.7x), 18 JPEGs deleted\n2026-04-22T11:01:40.872030Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Firefox, signals=2, browser=true)\n2026-04-22T11:01:40.923371Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=7, app=Firefox, title=None)\n2026-04-22T11:01:41.075647Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 4.3MB → 1.3MB (3.2x), 18 JPEGs deleted\n2026-04-22T11:06:39.086079Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5337833728326299056, trigger=visual_change)\n2026-04-22T11:06:45.000177Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=20 elapsed=3.912066625s\n2026-04-22T11:06:45.000306Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 20 eligible frames\n2026-04-22T11:06:45.856461Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 1.9MB → 0.4MB (5.2x), 9 JPEGs deleted\n2026-04-22T11:06:46.835512Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 2.2MB → 0.4MB (5.2x), 9 JPEGs deleted\n2026-04-22T11:07:15.142764Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5337833728326299056, trigger=visual_change)\n2026-04-22T11:07:27.263827Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5337833728326299056, trigger=visual_change)\n2026-04-22T11:08:42.059221Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3303286484632371491, trigger=click)\n2026-04-22T11:08:51.466088Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3303286484632371491, trigger=click)\n2026-04-22T11:08:52.705589Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3303286484632371491, trigger=click)\n2026-04-22T11:08:54.862930Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3303286484632371491, trigger=visual_change)\n2026-04-22T11:08:57.767172Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3303286484632371491, trigger=visual_change)\n2026-04-22T11:09:04.442295Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3303286484632371491, trigger=visual_change)\n2026-04-22T11:09:23.549500Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3757537717350728121, trigger=visual_change)\n2026-04-22T11:09:26.647099Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3757537717350728121, trigger=visual_change)\n2026-04-22T11:09:27.617892Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3757537717350728121, trigger=visual_change)\n2026-04-22T11:09:37.846218Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3757537717350728121, trigger=click)\n2026-04-22T11:09:39.988136Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3757537717350728121, trigger=click)\n2026-04-22T11:09:45.701950Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3757537717350728121, trigger=visual_change)\n2026-04-22T11:09:51.479479Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4744117485268922271, trigger=click)\n2026-04-22T11:09:52.588279Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4744117485268922271, trigger=click)\n2026-04-22T11:10:37.947814Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3389527971234186058, trigger=click)\n2026-04-22T11:11:53.822254Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=92 elapsed=6.975139583s\n2026-04-22T11:11:53.822417Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 92 eligible frames\n2026-04-22T11:11:56.889877Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 42 frames, 8.3MB → 0.8MB (11.0x), 42 JPEGs deleted\n2026-04-22T11:12:02.546278Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 48 frames, 9.5MB → 3.9MB (2.4x), 48 JPEGs deleted\n2026-04-22T11:14:34.726971Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6209721463328613401, trigger=visual_change)\n2026-04-22T11:14:38.324225Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6209721463328613401, trigger=click)\n2026-04-22T11:14:38.645314Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6209721463328613401, trigger=click)\n2026-04-22T11:15:48.408130Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3290532042628205253, trigger=visual_change)\n2026-04-22T11:17:08.957655Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=29 elapsed=6.341871834s\n2026-04-22T11:17:08.958047Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 29 eligible frames\n2026-04-22T11:17:10.885629Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.5MB → 1.3MB (2.0x), 14 JPEGs deleted\n2026-04-22T11:17:12.612437Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.9MB → 1.0MB (3.0x), 13 JPEGs deleted\n2026-04-22T11:18:09.059454Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6788193544120196520, trigger=visual_change)\n2026-04-22T11:18:30.812176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6788193544120196520, trigger=visual_change)\n2026-04-22T11:20:13.991317Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=7, grace=300s)\n2026-04-22T11:20:30.900173Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Active (controls reappeared, app=Firefox, id=7)\n2026-04-22T11:21:47.313039Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6979569190562105843, trigger=visual_change)\n2026-04-22T11:22:14.058045Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=52 elapsed=1.433307042s\n2026-04-22T11:22:14.058201Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 52 eligible frames\n2026-04-22T11:22:17.430807Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 4.5MB → 2.6MB (1.7x), 27 JPEGs deleted\n2026-04-22T11:22:20.789307Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 5.1MB → 1.9MB (2.7x), 23 JPEGs deleted\n2026-04-22T11:24:11.055919Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6348043336790165851, trigger=visual_change)\n2026-04-22T11:27:24.744130Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=34 elapsed=3.94198725s\n2026-04-22T11:27:24.744695Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 34 eligible frames\n2026-04-22T11:27:26.116529Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.8MB → 1.2MB (1.5x), 13 JPEGs deleted\n2026-04-22T11:27:28.617165Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 4.4MB → 1.8MB (2.5x), 19 JPEGs deleted\n2026-04-22T11:32:29.223079Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 32 eligible frames\n2026-04-22T11:32:30.840428Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.5MB → 0.4MB (4.3x), 11 JPEGs deleted\n2026-04-22T11:32:33.246169Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 4.3MB → 2.0MB (2.1x), 19 JPEGs deleted\n2026-04-22T11:33:57.016394Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-268904747002154324, trigger=visual_change)\n2026-04-22T11:34:00.365029Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-268904747002154324, trigger=visual_change)\n2026-04-22T11:35:10.982104Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4296915293538414297, trigger=visual_change)\n2026-04-22T11:35:32.724876Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7285107730676902260, trigger=visual_change)\n2026-04-22T11:37:33.415720Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 27 eligible frames\n2026-04-22T11:37:34.371399Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.8MB → 0.2MB (8.6x), 13 JPEGs deleted\n2026-04-22T11:37:35.859845Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.7MB → 0.8MB (3.3x), 12 JPEGs deleted\n2026-04-22T11:37:51.362562Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8696186709523439969, trigger=visual_change)\n2026-04-22T11:38:34.243110Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1899945553455143507, trigger=visual_change)\n2026-04-22T11:38:59.179294Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1899945553455143507, trigger=visual_change)\n2026-04-22T11:39:48.236676Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5576803356774878841, trigger=visual_change)\n2026-04-22T11:40:22.065139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6640696446489616380, trigger=visual_change)\n2026-04-22T11:40:28.877584Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5960256550196817106, trigger=visual_change)\n2026-04-22T11:40:35.319368Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6640696446489616380, trigger=visual_change)\n2026-04-22T11:40:53.124904Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5960256550196817106, trigger=visual_change)\n2026-04-22T11:41:33.255320Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4989103865860242755, trigger=visual_change)\n2026-04-22T11:41:48.193900Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1488267386558342445, trigger=visual_change)\n2026-04-22T11:41:51.755705Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1488267386558342445, trigger=visual_change)\n2026-04-22T11:42:12.947590Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5684177415939916225, trigger=visual_change)\n2026-04-22T11:42:28.448251Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4939881454163746825, trigger=visual_change)\n2026-04-22T11:42:37.404128Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5184076061330305421, trigger=visual_change)\n2026-04-22T11:42:38.310197Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=32 elapsed=2.273565292s\n2026-04-22T11:42:38.310366Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 32 eligible frames\n2026-04-22T11:42:39.454621Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.8MB → 0.2MB (8.7x), 13 JPEGs deleted\n2026-04-22T11:42:41.159908Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 4.0MB → 1.5MB (2.7x), 17 JPEGs deleted\n2026-04-22T11:42:49.713146Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5184076061330305421, trigger=visual_change)\n2026-04-22T11:42:58.758597Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5184076061330305421, trigger=visual_change)\n2026-04-22T11:43:26.711882Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8888955688748119503, trigger=visual_change)\n2026-04-22T11:43:42.212402Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8888955688748119503, trigger=visual_change)\n2026-04-22T11:43:48.256895Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8888955688748119503, trigger=visual_change)\n2026-04-22T11:44:32.051314Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1061030761799504015, trigger=visual_change)\n2026-04-22T11:46:38.628742Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5309638870405538800, trigger=visual_change)\n2026-04-22T11:47:44.229671Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=24 elapsed=3.005999417s\n2026-04-22T11:47:44.230453Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 24 eligible frames\n2026-04-22T11:47:45.193130Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.4MB → 0.2MB (6.7x), 10 JPEGs deleted\n2026-04-22T11:47:46.669315Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.7MB → 1.0MB (2.6x), 12 JPEGs deleted\n2026-04-22T11:49:20.261509Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5041499190616781957, trigger=visual_change)\n2026-04-22T11:49:22.980492Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5041499190616781957, trigger=visual_change)\n2026-04-22T11:49:55.465856Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3947999597522241326, trigger=click)\n2026-04-22T11:52:35.652259Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6702837610765389296, trigger=visual_change)\n2026-04-22T11:52:53.489508Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=35 elapsed=6.809016916s\n2026-04-22T11:52:53.489713Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 35 eligible frames\n2026-04-22T11:52:54.357212Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.5MB → 0.2MB (7.2x), 11 JPEGs deleted\n2026-04-22T11:52:57.318472Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 5.1MB → 2.0MB (2.6x), 22 JPEGs deleted\n2026-04-22T11:53:26.811997Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1463508818426172948, trigger=click)\n2026-04-22T11:55:47.876156Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3551464550561190027, trigger=visual_change)","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.12291667,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.12708333,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.24583334,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.25,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"✳ Build full day activity summary from Screenpipe (claude)","depth":2,"bounds":{"left":0.36875,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.37291667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.49166667,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.49583334,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.6145833,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.61875,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.7375,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.7416667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"ec2-user@ip-10-30-159-186:~ (nc)","depth":2,"bounds":{"left":0.86041665,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.8645833,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.9548611,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"screenpipe\"","depth":1,"bounds":{"left":0.47083333,"top":0.033333335,"width":0.058333334,"height":0.017777778},"role_description":"text"}]...
|
-8072162812305970924
|
986754612592747899
|
click
|
accessibility
|
NULL
|
2026-04-21T18:01:10.189484Z INFO screenpipe_engin 2026-04-21T18:01:10.189484Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)
2026-04-21T18:01:11.594292Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=visual_change)
2026-04-21T18:01:12.844254Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)
2026-04-21T18:01:13.095866Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)
2026-04-21T18:01:49.712611Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5610420548393517496, trigger=click)
2026-04-21T18:01:49.878502Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5610420548393517496, trigger=click)
2026-04-21T18:01:54.385999Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4075180225844497251, trigger=click)
2026-04-21T18:02:03.320721Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)
2026-04-21T18:02:04.589973Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2385966524984094377, trigger=visual_change)
2026-04-21T18:02:06.402101Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)
2026-04-21T18:02:08.459207Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)
2026-04-21T18:02:17.915785Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)
2026-04-21T18:02:20.289378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)
2026-04-21T18:02:53.363091Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)
2026-04-21T18:02:59.854804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6485088808083200508, trigger=visual_change)
2026-04-21T18:03:23.692602Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2923142241079919801, trigger=visual_change)
2026-04-21T18:03:38.383745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)
2026-04-21T18:03:38.666324Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)
2026-04-21T18:03:40.611795Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)
2026-04-21T18:03:46.691879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)
2026-04-21T18:03:49.696169Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)
2026-04-21T18:03:58.796193Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)
2026-04-21T18:04:10.455866Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=65 elapsed=5.507644708s
2026-04-21T18:04:10.456994Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 65 eligible frames
2026-04-21T18:04:10.784720Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)
2026-04-21T18:04:12.979583Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 8.1MB → 3.1MB (2.6x), 36 JPEGs deleted
2026-04-21T18:04:13.808201Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)
2026-04-21T18:04:15.311040Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 5.7MB → 2.1MB (2.7x), 27 JPEGs deleted
2026-04-21T18:04:22.870405Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)
2026-04-21T18:04:25.858949Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)
2026-04-21T18:04:47.178867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)
2026-04-21T18:04:47.409147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)
2026-04-21T18:04:48.621959Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)
2026-04-21T18:04:48.823996Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)
2026-04-21T18:04:49.613197Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)
2026-04-21T18:04:49.840589Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)
2026-04-21T18:04:54.113636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)
2026-04-21T18:04:54.333250Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)
2026-04-21T18:04:56.158603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)
2026-04-21T18:04:56.345340Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)
2026-04-21T18:05:24.653256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2923142241079919801, trigger=visual_change)
2026-04-21T18:05:27.506644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2923142241079919801, trigger=visual_change)
2026-04-21T18:05:52.127185Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)
2026-04-21T18:05:52.385537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)
2026-04-21T18:05:54.464579Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)
2026-04-21T18:05:54.740600Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)
2026-04-21T18:06:01.884193Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)
2026-04-21T18:06:04.917243Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)
2026-04-21T18:06:15.788550Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)
2026-04-21T18:06:16.090123Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)
2026-04-21T18:06:17.179267Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)
2026-04-21T18:07:04.992532Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)
2026-04-21T18:07:08.003078Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)
2026-04-21T18:07:17.121489Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)
2026-04-21T18:07:17.302355Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)
2026-04-21T18:07:27.025619Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)
2026-04-21T18:07:29.771279Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)
2026-04-21T18:07:31.137970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)
2026-04-21T18:07:36.086848Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=visual_change)
2026-04-21T18:07:36.306717Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)
2026-04-21T18:07:37.369851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)
2026-04-21T18:07:37.634865Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)
2026-04-21T18:07:38.805129Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)
2026-04-21T18:07:39.104738Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)
2026-04-21T18:07:40.060624Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)
2026-04-21T18:08:30.262801Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=visual_change)
2026-04-21T18:08:45.022177Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8543293535466770858, trigger=click)
2026-04-21T18:09:22.083704Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=74 elapsed=6.715953125s
2026-04-21T18:09:22.084245Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 74 eligible frames
2026-04-21T18:09:29.000281Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 43 frames, 9.6MB → 4.0MB (2.4x), 43 JPEGs deleted
2026-04-21T18:09:33.280652Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 5.8MB → 1.9MB (3.1x), 29 JPEGs deleted
2026-04-21T18:10:45.149443Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)
2026-04-21T18:11:39.313378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=745086096190842156, trigger=visual_change)
2026-04-21T18:11:42.305757Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=745086096190842156, trigger=click)
2026-04-21T18:11:46.031853Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=745086096190842156, trigger=click)
2026-04-21T18:11:46.095029Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=745086096190842156, trigger=click)
2026-04-21T18:14:41.494244Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=68 elapsed=8.195880125s
2026-04-21T18:14:41.495608Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 68 eligible frames
2026-04-21T18:14:48.613051Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 8.2MB → 3.4MB (2.5x), 36 JPEGs deleted
2026-04-21T18:14:55.232583Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 5.5MB → 2.6MB (2.1x), 30 JPEGs deleted
2026-04-21T18:19:19.967211Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2899189334056575250, trigger=click)
2026-04-21T18:19:20.363463Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2899189334056575250, trigger=click)
2026-04-21T18:19:59.298075Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=53 elapsed=4.000910792s
2026-04-21T18:19:59.298190Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 53 eligible frames
2026-04-21T18:20:02.044649Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 5.1MB → 3.5MB (1.5x), 26 JPEGs deleted
2026-04-21T18:20:04.900441Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.7MB → 2.4MB (1.9x), 25 JPEGs deleted
2026-04-21T18:20:23.742659Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)
2026-04-21T18:20:27.660528Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)
2026-04-21T18:20:34.896769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)
2026-04-21T18:20:35.220946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)
2026-04-21T18:20:40.886719Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)
2026-04-21T18:20:44.353070Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)
2026-04-21T18:20:47.046701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)
2026-04-21T18:20:48.003863Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)
2026-04-21T18:22:59.673927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2006451494811625283, trigger=click)
2026-04-21T18:23:02.374154Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2006451494811625283, trigger=visual_change)
2026-04-21T18:24:55.480969Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)
2026-04-21T18:24:55.713808Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)
2026-04-21T18:25:06.770660Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=745086096190842156, trigger=click)
2026-04-21T18:25:10.431473Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=69 elapsed=5.123936292s
2026-04-21T18:25:10.432665Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 69 eligible frames
2026-04-21T18:25:12.020960Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.7MB → 0.4MB (10.8x), 24 JPEGs deleted
2026-04-21T18:25:16.809118Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 43 frames, 7.5MB → 3.7MB (2.0x), 43 JPEGs deleted
2026-04-21T18:27:20.032159Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-868697608726996264, trigger=click)
2026-04-21T18:27:27.209581Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5262134208844209929, trigger=click)
2026-04-21T18:30:23.556529Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=60 elapsed=6.732438875s
2026-04-21T18:30:23.556849Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 60 eligible frames
2026-04-21T18:30:25.836587Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 5.3MB → 0.4MB (12.5x), 27 JPEGs deleted
2026-04-21T18:30:29.251794Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 5.4MB → 2.7MB (2.0x), 31 JPEGs deleted
2026-04-21T18:34:42.383568Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1898158487632236470, trigger=click)
2026-04-21T18:35:29.435858Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 84 eligible frames
2026-04-21T18:35:31.507303Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 35 frames, 6.8MB → 0.3MB (21.3x), 35 JPEGs deleted
2026-04-21T18:35:34.821718Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 47 frames, 8.8MB → 3.6MB (2.4x), 47 JPEGs deleted
2026-04-21T18:37:57.032414Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3231955623713121874, trigger=click)
2026-04-21T18:40:36.969380Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=205 elapsed=2.13815675s
2026-04-21T18:40:36.969491Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 205 eligible frames
2026-04-21T18:40:42.234686Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 90 frames, 17.5MB → 0.4MB (49.4x), 90 JPEGs deleted
2026-04-21T18:40:48.296945Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 99 frames, 14.9MB → 5.7MB (2.6x), 99 JPEGs deleted
2026-04-21T18:40:49.626073Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 1.8MB → 0.7MB (2.8x), 14 JPEGs deleted
2026-04-21T18:41:16.858046Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5262134208844209929, trigger=click)
2026-04-21T18:41:18.719527Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5262134208844209929, trigger=click)
2026-04-21T18:41:20.650032Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6762752836329409782, trigger=click)
2026-04-21T18:42:40.957654Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7949512313665335161, trigger=visual_change)
2026-04-21T18:42:42.714242Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7949512313665335161, trigger=click)
2026-04-21T18:44:54.833923Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7610506607449357182, trigger=click)
2026-04-21T18:44:55.013934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7610506607449357182, trigger=click)
2026-04-21T18:45:54.320505Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=145 elapsed=4.6846185s
2026-04-21T18:45:54.321215Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 145 eligible frames
2026-04-21T18:45:58.288822Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 64 frames, 12.5MB → 0.5MB (23.2x), 64 JPEGs deleted
2026-04-21T18:46:02.956701Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 78 frames, 11.5MB → 3.3MB (3.5x), 78 JPEGs deleted
2026-04-21T18:48:10.510139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4242937607805845066, trigger=click)
2026-04-21T18:48:37.207446Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5152173808593872338, trigger=visual_change)
2026-04-21T18:49:27.537635Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5244088376274895156, trigger=click)
2026-04-21T18:49:33.724367Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5262134208844209929, trigger=click)
2026-04-21T18:49:44.747739Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8298107678328947062, trigger=click)
2026-04-21T18:50:45.073176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)
2026-04-21T18:50:45.427101Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2709523957012057259, trigger=click)
2026-04-21T18:50:48.592273Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)
2026-04-21T18:50:49.492676Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)
2026-04-21T18:51:01.193858Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)
2026-04-21T18:51:05.888682Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=50 elapsed=2.917680375s
2026-04-21T18:51:05.889014Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 50 eligible frames
2026-04-21T18:51:06.016628Z WARN sqlx::query: summary="PRAGMA wal_checkpoint(TRUNCATE)" db.statement="" rows_affected=0 rows_returned=1 elapsed=2.157649083s
2026-04-21T18:51:06.079565Z WARN sqlx::query: summary="BEGIN IMMEDIATE" db.statement="" rows_affected=1 rows_returned=0 elapsed=1.385088167s
2026-04-21T18:51:07.829374Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 3.9MB → 0.4MB (11.0x), 20 JPEGs deleted
2026-04-21T18:51:09.736739Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 5.0MB → 1.8MB (2.7x), 28 JPEGs deleted
2026-04-21T18:51:22.360027Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2872311122120998867, trigger=click)
2026-04-21T18:51:22.556670Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2872311122120998867, trigger=click)
2026-04-21T18:51:38.819030Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7947558874471225541, trigger=click)
2026-04-21T18:51:57.414061Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)
2026-04-21T18:51:59.012068Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)
2026-04-21T18:51:59.285931Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)
2026-04-21T18:52:01.767745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)
2026-04-21T18:52:02.028355Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)
2026-04-21T18:52:05.460776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=visual_change)
2026-04-21T18:52:07.087479Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)
2026-04-21T18:52:07.314492Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)
2026-04-21T18:52:10.214922Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)
2026-04-21T18:52:10.537340Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)
2026-04-21T18:52:13.867159Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)
2026-04-21T18:52:14.152331Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)
2026-04-21T18:52:20.367281Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)
2026-04-21T18:52:26.127826Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1650348556715134220, trigger=click)
2026-04-21T18:52:37.517700Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=visual_change)
2026-04-21T18:52:42.329057Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=click)
2026-04-21T18:52:42.556779Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)
2026-04-21T18:52:44.386173Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)
2026-04-21T18:52:44.700511Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=click)
2026-04-21T18:52:45.210674Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)
2026-04-21T18:53:17.193415Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6757993062848436258, trigger=visual_change)
2026-04-21T18:53:30.834059Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-228480120308125164, trigger=click)
2026-04-21T18:53:38.030882Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7225077546439863627, trigger=click)
2026-04-21T18:53:56.421537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6437320026671683644, trigger=click)
2026-04-21T18:54:11.726528Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1667437155962702753, trigger=visual_change)
2026-04-21T18:54:12.117525Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1667437155962702753, trigger=click)
2026-04-21T18:54:18.659686Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=click)
2026-04-21T18:54:19.077258Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)
2026-04-21T18:54:29.973760Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)
2026-04-21T18:56:07.789768Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6757993062848436258, trigger=click)
2026-04-21T18:56:08.791400Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6757993062848436258, trigger=click)
2026-04-21T18:56:14.153615Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=80 elapsed=4.402661042s
2026-04-21T18:56:14.153722Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 80 eligible frames
2026-04-21T18:56:16.685912Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 6.2MB → 0.7MB (8.9x), 32 JPEGs deleted
2026-04-21T18:56:21.263739Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 46 frames, 8.2MB → 2.8MB (2.9x), 46 JPEGs deleted
2026-04-21T18:56:25.279306Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7906564822731502105, trigger=click)
2026-04-21T18:56:33.734840Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8817586097865472869, trigger=click)
2026-04-21T18:56:33.980908Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8817586097865472869, trigger=click)
2026-04-21T18:56:35.972959Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8817586097865472869, trigger=click)
2026-04-21T18:56:40.545963Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8587160525579598601, trigger=click)
2026-04-21T18:56:41.913814Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8587160525579598601, trigger=visual_change)
2026-04-21T18:56:45.516942Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1910160977377320534, trigger=click)
2026-04-21T18:56:48.740431Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1910160977377320534, trigger=click)
2026-04-21T18:56:50.439568Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1910160977377320534, trigger=click)
2026-04-21T18:56:50.692218Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1910160977377320534, trigger=click)
2026-04-21T18:57:12.321118Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)
2026-04-21T18:57:12.578681Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)
2026-04-21T18:57:24.290583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)
2026-04-21T18:57:24.543696Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)
2026-04-21T18:57:34.571768Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)
2026-04-21T18:57:36.227688Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)
2026-04-21T18:57:36.475151Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)
2026-04-21T18:57:42.338601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)
2026-04-21T18:57:42.559967Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)
2026-04-21T18:57:52.824809Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)
2026-04-21T18:57:53.145543Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)
2026-04-21T18:57:59.463043Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)
2026-04-21T18:57:59.717475Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)
2026-04-21T18:58:00.742137Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)
2026-04-21T18:58:01.061497Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)
2026-04-21T18:59:33.960291Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9203182216527106315, trigger=visual_change)
2026-04-21T18:59:55.990167Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)
2026-04-21T18:59:59.103830Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=visual_change)
2026-04-21T19:00:16.116927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)
2026-04-21T19:00:45.352689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)
2026-04-21T19:00:49.596644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)
2026-04-21T19:00:50.432181Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)
2026-04-21T19:01:07.992732Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)
2026-04-21T19:01:08.484066Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)
2026-04-21T19:01:10.538762Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)
2026-04-21T19:01:18.922398Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)
2026-04-21T19:01:28.361625Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=84 elapsed=6.9360265s
2026-04-21T19:01:28.362070Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 84 eligible frames
2026-04-21T19:01:32.723075Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 33 frames, 6.4MB → 0.3MB (19.7x), 33 JPEGs deleted
2026-04-21T19:01:42.130490Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 7.8MB → 3.3MB (2.4x), 49 JPEGs deleted
2026-04-21T19:02:09.991879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)
2026-04-21T19:02:12.577587Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)
2026-04-21T19:02:12.835924Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)
2026-04-21T19:02:15.635601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)
2026-04-21T19:02:18.720475Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)
2026-04-21T19:02:21.708351Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)
2026-04-21T19:02:22.061150Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)
2026-04-21T19:02:28.684303Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3995027160269120472, trigger=click)
2026-04-21T19:02:41.434491Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)
2026-04-21T19:02:41.724904Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)
2026-04-21T19:02:43.112974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)
2026-04-21T19:02:43.410843Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)
2026-04-21T19:02:47.501924Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)
2026-04-21T19:02:47.761592Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)
2026-04-21T19:02:54.205542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)
2026-04-21T19:02:54.441326Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)
2026-04-21T19:02:56.601490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)
2026-04-21T19:02:56.921256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)
2026-04-21T19:03:15.988643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)
2026-04-21T19:03:16.236342Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)
2026-04-21T19:03:28.508616Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)
2026-04-21T19:04:00.462064Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)
2026-04-21T19:04:01.516168Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)
2026-04-21T19:04:01.856315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)
2026-04-21T19:04:03.246448Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)
2026-04-21T19:04:03.735029Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)
2026-04-21T19:04:09.818135Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)
2026-04-21T19:05:03.118616Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)
2026-04-21T19:05:03.393788Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)
2026-04-21T19:05:21.352722Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=visual_change)
2026-04-21T19:05:43.751309Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)
2026-04-21T19:05:44.029500Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)
2026-04-21T19:05:45.626672Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)
2026-04-21T19:05:45.899754Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)
2026-04-21T19:05:48.206587Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)
2026-04-21T19:05:48.449043Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)
2026-04-21T19:06:22.834938Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7947558874471225541, trigger=click)
2026-04-21T19:06:52.937779Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=114 elapsed=10.747243125s
2026-04-21T19:06:52.938152Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 114 eligible frames
2026-04-21T19:06:57.942457Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 45 frames, 8.8MB → 0.3MB (27.2x), 45 JPEGs deleted
2026-04-21T19:07:05.853054Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 67 frames, 10.5MB → 5.2MB (2.0x), 67 JPEGs deleted
2026-04-21T19:07:45.088797Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)
2026-04-21T19:07:48.052391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6936634780821666458, trigger=click)
2026-04-21T19:08:59.593467Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5629560013928052473, trigger=click)
2026-04-21T19:09:29.443711Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)
2026-04-21T19:09:42.998313Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8043719072324535154, trigger=visual_change)
2026-04-21T19:09:50.759516Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)
2026-04-21T19:09:51.052544Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)
2026-04-21T19:09:51.892698Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)
2026-04-21T19:09:52.651776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)
2026-04-21T19:09:55.476431Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)
2026-04-21T19:09:55.898195Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)
2026-04-21T19:09:58.077337Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)
2026-04-21T19:10:01.103980Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)
2026-04-21T19:10:03.105423Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)
2026-04-21T19:10:03.448049Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)
2026-04-21T19:10:08.548130Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6051188157141408655, trigger=click)
2026-04-21T19:12:12.330759Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=70 elapsed=6.458002417s
2026-04-21T19:12:12.332545Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 70 eligible frames
2026-04-21T19:12:14.243079Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 5.5MB → 0.3MB (17.2x), 28 JPEGs deleted
2026-04-21T19:12:17.558334Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 40 frames, 7.4MB → 3.6MB (2.1x), 40 JPEGs deleted
2026-04-21T19:16:51.045938Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1370319459641728815, trigger=click)
2026-04-21T19:16:51.249993Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1370319459641728815, trigger=click)
2026-04-21T19:17:21.603564Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=40 elapsed=4.036037791s
2026-04-21T19:17:21.604357Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames
2026-04-21T19:17:22.750174Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.5MB → 0.3MB (11.2x), 18 JPEGs deleted
2026-04-21T19:17:24.332098Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.2MB → 1.3MB (3.2x), 20 JPEGs deleted
2026-04-21T19:22:25.748871Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=4...
|
69768
|
|
69770
|
1615
|
22
|
2026-04-22T08:56:54.047058+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-22/1776 /Users/lukas/.screenpipe/data/data/2026-04-22/1776848214047_m2.jpg...
|
iTerm2
|
screenpipe"
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
2026-04-21T18:01:10.189484Z INFO screenpipe_engin 2026-04-21T18:01:10.189484Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)
2026-04-21T18:01:11.594292Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=visual_change)
2026-04-21T18:01:12.844254Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)
2026-04-21T18:01:13.095866Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)
2026-04-21T18:01:49.712611Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5610420548393517496, trigger=click)
2026-04-21T18:01:49.878502Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5610420548393517496, trigger=click)
2026-04-21T18:01:54.385999Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4075180225844497251, trigger=click)
2026-04-21T18:02:03.320721Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)
2026-04-21T18:02:04.589973Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2385966524984094377, trigger=visual_change)
2026-04-21T18:02:06.402101Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)
2026-04-21T18:02:08.459207Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)
2026-04-21T18:02:17.915785Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)
2026-04-21T18:02:20.289378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)
2026-04-21T18:02:53.363091Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)
2026-04-21T18:02:59.854804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6485088808083200508, trigger=visual_change)
2026-04-21T18:03:23.692602Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2923142241079919801, trigger=visual_change)
2026-04-21T18:03:38.383745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)
2026-04-21T18:03:38.666324Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)
2026-04-21T18:03:40.611795Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)
2026-04-21T18:03:46.691879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)
2026-04-21T18:03:49.696169Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)
2026-04-21T18:03:58.796193Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)
2026-04-21T18:04:10.455866Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=65 elapsed=5.507644708s
2026-04-21T18:04:10.456994Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 65 eligible frames
2026-04-21T18:04:10.784720Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)
2026-04-21T18:04:12.979583Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 8.1MB → 3.1MB (2.6x), 36 JPEGs deleted
2026-04-21T18:04:13.808201Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)
2026-04-21T18:04:15.311040Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 5.7MB → 2.1MB (2.7x), 27 JPEGs deleted
2026-04-21T18:04:22.870405Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)
2026-04-21T18:04:25.858949Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)
2026-04-21T18:04:47.178867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)
2026-04-21T18:04:47.409147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)
2026-04-21T18:04:48.621959Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)
2026-04-21T18:04:48.823996Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)
2026-04-21T18:04:49.613197Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)
2026-04-21T18:04:49.840589Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)
2026-04-21T18:04:54.113636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)
2026-04-21T18:04:54.333250Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)
2026-04-21T18:04:56.158603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)
2026-04-21T18:04:56.345340Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)
2026-04-21T18:05:24.653256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2923142241079919801, trigger=visual_change)
2026-04-21T18:05:27.506644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2923142241079919801, trigger=visual_change)
2026-04-21T18:05:52.127185Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)
2026-04-21T18:05:52.385537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)
2026-04-21T18:05:54.464579Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)
2026-04-21T18:05:54.740600Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)
2026-04-21T18:06:01.884193Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)
2026-04-21T18:06:04.917243Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)
2026-04-21T18:06:15.788550Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)
2026-04-21T18:06:16.090123Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)
2026-04-21T18:06:17.179267Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)
2026-04-21T18:07:04.992532Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)
2026-04-21T18:07:08.003078Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)
2026-04-21T18:07:17.121489Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)
2026-04-21T18:07:17.302355Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)
2026-04-21T18:07:27.025619Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)
2026-04-21T18:07:29.771279Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)
2026-04-21T18:07:31.137970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)
2026-04-21T18:07:36.086848Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=visual_change)
2026-04-21T18:07:36.306717Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)
2026-04-21T18:07:37.369851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)
2026-04-21T18:07:37.634865Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)
2026-04-21T18:07:38.805129Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)
2026-04-21T18:07:39.104738Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)
2026-04-21T18:07:40.060624Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)
2026-04-21T18:08:30.262801Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=visual_change)
2026-04-21T18:08:45.022177Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8543293535466770858, trigger=click)
2026-04-21T18:09:22.083704Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=74 elapsed=6.715953125s
2026-04-21T18:09:22.084245Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 74 eligible frames
2026-04-21T18:09:29.000281Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 43 frames, 9.6MB → 4.0MB (2.4x), 43 JPEGs deleted
2026-04-21T18:09:33.280652Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 5.8MB → 1.9MB (3.1x), 29 JPEGs deleted
2026-04-21T18:10:45.149443Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)
2026-04-21T18:11:39.313378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=745086096190842156, trigger=visual_change)
2026-04-21T18:11:42.305757Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=745086096190842156, trigger=click)
2026-04-21T18:11:46.031853Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=745086096190842156, trigger=click)
2026-04-21T18:11:46.095029Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=745086096190842156, trigger=click)
2026-04-21T18:14:41.494244Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=68 elapsed=8.195880125s
2026-04-21T18:14:41.495608Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 68 eligible frames
2026-04-21T18:14:48.613051Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 8.2MB → 3.4MB (2.5x), 36 JPEGs deleted
2026-04-21T18:14:55.232583Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 5.5MB → 2.6MB (2.1x), 30 JPEGs deleted
2026-04-21T18:19:19.967211Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2899189334056575250, trigger=click)
2026-04-21T18:19:20.363463Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2899189334056575250, trigger=click)
2026-04-21T18:19:59.298075Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=53 elapsed=4.000910792s
2026-04-21T18:19:59.298190Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 53 eligible frames
2026-04-21T18:20:02.044649Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 5.1MB → 3.5MB (1.5x), 26 JPEGs deleted
2026-04-21T18:20:04.900441Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.7MB → 2.4MB (1.9x), 25 JPEGs deleted
2026-04-21T18:20:23.742659Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)
2026-04-21T18:20:27.660528Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)
2026-04-21T18:20:34.896769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)
2026-04-21T18:20:35.220946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)
2026-04-21T18:20:40.886719Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)
2026-04-21T18:20:44.353070Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)
2026-04-21T18:20:47.046701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)
2026-04-21T18:20:48.003863Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)
2026-04-21T18:22:59.673927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2006451494811625283, trigger=click)
2026-04-21T18:23:02.374154Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2006451494811625283, trigger=visual_change)
2026-04-21T18:24:55.480969Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)
2026-04-21T18:24:55.713808Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)
2026-04-21T18:25:06.770660Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=745086096190842156, trigger=click)
2026-04-21T18:25:10.431473Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=69 elapsed=5.123936292s
2026-04-21T18:25:10.432665Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 69 eligible frames
2026-04-21T18:25:12.020960Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.7MB → 0.4MB (10.8x), 24 JPEGs deleted
2026-04-21T18:25:16.809118Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 43 frames, 7.5MB → 3.7MB (2.0x), 43 JPEGs deleted
2026-04-21T18:27:20.032159Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-868697608726996264, trigger=click)
2026-04-21T18:27:27.209581Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5262134208844209929, trigger=click)
2026-04-21T18:30:23.556529Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=60 elapsed=6.732438875s
2026-04-21T18:30:23.556849Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 60 eligible frames
2026-04-21T18:30:25.836587Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 5.3MB → 0.4MB (12.5x), 27 JPEGs deleted
2026-04-21T18:30:29.251794Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 5.4MB → 2.7MB (2.0x), 31 JPEGs deleted
2026-04-21T18:34:42.383568Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1898158487632236470, trigger=click)
2026-04-21T18:35:29.435858Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 84 eligible frames
2026-04-21T18:35:31.507303Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 35 frames, 6.8MB → 0.3MB (21.3x), 35 JPEGs deleted
2026-04-21T18:35:34.821718Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 47 frames, 8.8MB → 3.6MB (2.4x), 47 JPEGs deleted
2026-04-21T18:37:57.032414Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3231955623713121874, trigger=click)
2026-04-21T18:40:36.969380Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=205 elapsed=2.13815675s
2026-04-21T18:40:36.969491Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 205 eligible frames
2026-04-21T18:40:42.234686Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 90 frames, 17.5MB → 0.4MB (49.4x), 90 JPEGs deleted
2026-04-21T18:40:48.296945Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 99 frames, 14.9MB → 5.7MB (2.6x), 99 JPEGs deleted
2026-04-21T18:40:49.626073Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 1.8MB → 0.7MB (2.8x), 14 JPEGs deleted
2026-04-21T18:41:16.858046Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5262134208844209929, trigger=click)
2026-04-21T18:41:18.719527Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5262134208844209929, trigger=click)
2026-04-21T18:41:20.650032Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6762752836329409782, trigger=click)
2026-04-21T18:42:40.957654Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7949512313665335161, trigger=visual_change)
2026-04-21T18:42:42.714242Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7949512313665335161, trigger=click)
2026-04-21T18:44:54.833923Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7610506607449357182, trigger=click)
2026-04-21T18:44:55.013934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7610506607449357182, trigger=click)
2026-04-21T18:45:54.320505Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=145 elapsed=4.6846185s
2026-04-21T18:45:54.321215Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 145 eligible frames
2026-04-21T18:45:58.288822Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 64 frames, 12.5MB → 0.5MB (23.2x), 64 JPEGs deleted
2026-04-21T18:46:02.956701Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 78 frames, 11.5MB → 3.3MB (3.5x), 78 JPEGs deleted
2026-04-21T18:48:10.510139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4242937607805845066, trigger=click)
2026-04-21T18:48:37.207446Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5152173808593872338, trigger=visual_change)
2026-04-21T18:49:27.537635Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5244088376274895156, trigger=click)
2026-04-21T18:49:33.724367Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5262134208844209929, trigger=click)
2026-04-21T18:49:44.747739Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8298107678328947062, trigger=click)
2026-04-21T18:50:45.073176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)
2026-04-21T18:50:45.427101Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2709523957012057259, trigger=click)
2026-04-21T18:50:48.592273Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)
2026-04-21T18:50:49.492676Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)
2026-04-21T18:51:01.193858Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)
2026-04-21T18:51:05.888682Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=50 elapsed=2.917680375s
2026-04-21T18:51:05.889014Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 50 eligible frames
2026-04-21T18:51:06.016628Z WARN sqlx::query: summary="PRAGMA wal_checkpoint(TRUNCATE)" db.statement="" rows_affected=0 rows_returned=1 elapsed=2.157649083s
2026-04-21T18:51:06.079565Z WARN sqlx::query: summary="BEGIN IMMEDIATE" db.statement="" rows_affected=1 rows_returned=0 elapsed=1.385088167s
2026-04-21T18:51:07.829374Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 3.9MB → 0.4MB (11.0x), 20 JPEGs deleted
2026-04-21T18:51:09.736739Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 5.0MB → 1.8MB (2.7x), 28 JPEGs deleted
2026-04-21T18:51:22.360027Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2872311122120998867, trigger=click)
2026-04-21T18:51:22.556670Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2872311122120998867, trigger=click)
2026-04-21T18:51:38.819030Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7947558874471225541, trigger=click)
2026-04-21T18:51:57.414061Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)
2026-04-21T18:51:59.012068Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)
2026-04-21T18:51:59.285931Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)
2026-04-21T18:52:01.767745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)
2026-04-21T18:52:02.028355Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)
2026-04-21T18:52:05.460776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=visual_change)
2026-04-21T18:52:07.087479Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)
2026-04-21T18:52:07.314492Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)
2026-04-21T18:52:10.214922Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)
2026-04-21T18:52:10.537340Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)
2026-04-21T18:52:13.867159Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)
2026-04-21T18:52:14.152331Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)
2026-04-21T18:52:20.367281Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)
2026-04-21T18:52:26.127826Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1650348556715134220, trigger=click)
2026-04-21T18:52:37.517700Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=visual_change)
2026-04-21T18:52:42.329057Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=click)
2026-04-21T18:52:42.556779Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)
2026-04-21T18:52:44.386173Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)
2026-04-21T18:52:44.700511Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=click)
2026-04-21T18:52:45.210674Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)
2026-04-21T18:53:17.193415Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6757993062848436258, trigger=visual_change)
2026-04-21T18:53:30.834059Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-228480120308125164, trigger=click)
2026-04-21T18:53:38.030882Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7225077546439863627, trigger=click)
2026-04-21T18:53:56.421537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6437320026671683644, trigger=click)
2026-04-21T18:54:11.726528Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1667437155962702753, trigger=visual_change)
2026-04-21T18:54:12.117525Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1667437155962702753, trigger=click)
2026-04-21T18:54:18.659686Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=click)
2026-04-21T18:54:19.077258Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)
2026-04-21T18:54:29.973760Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)
2026-04-21T18:56:07.789768Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6757993062848436258, trigger=click)
2026-04-21T18:56:08.791400Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6757993062848436258, trigger=click)
2026-04-21T18:56:14.153615Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=80 elapsed=4.402661042s
2026-04-21T18:56:14.153722Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 80 eligible frames
2026-04-21T18:56:16.685912Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 6.2MB → 0.7MB (8.9x), 32 JPEGs deleted
2026-04-21T18:56:21.263739Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 46 frames, 8.2MB → 2.8MB (2.9x), 46 JPEGs deleted
2026-04-21T18:56:25.279306Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7906564822731502105, trigger=click)
2026-04-21T18:56:33.734840Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8817586097865472869, trigger=click)
2026-04-21T18:56:33.980908Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8817586097865472869, trigger=click)
2026-04-21T18:56:35.972959Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8817586097865472869, trigger=click)
2026-04-21T18:56:40.545963Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8587160525579598601, trigger=click)
2026-04-21T18:56:41.913814Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8587160525579598601, trigger=visual_change)
2026-04-21T18:56:45.516942Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1910160977377320534, trigger=click)
2026-04-21T18:56:48.740431Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1910160977377320534, trigger=click)
2026-04-21T18:56:50.439568Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1910160977377320534, trigger=click)
2026-04-21T18:56:50.692218Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1910160977377320534, trigger=click)
2026-04-21T18:57:12.321118Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)
2026-04-21T18:57:12.578681Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)
2026-04-21T18:57:24.290583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)
2026-04-21T18:57:24.543696Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)
2026-04-21T18:57:34.571768Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)
2026-04-21T18:57:36.227688Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)
2026-04-21T18:57:36.475151Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)
2026-04-21T18:57:42.338601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)
2026-04-21T18:57:42.559967Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)
2026-04-21T18:57:52.824809Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)
2026-04-21T18:57:53.145543Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)
2026-04-21T18:57:59.463043Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)
2026-04-21T18:57:59.717475Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)
2026-04-21T18:58:00.742137Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)
2026-04-21T18:58:01.061497Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)
2026-04-21T18:59:33.960291Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9203182216527106315, trigger=visual_change)
2026-04-21T18:59:55.990167Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)
2026-04-21T18:59:59.103830Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=visual_change)
2026-04-21T19:00:16.116927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)
2026-04-21T19:00:45.352689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)
2026-04-21T19:00:49.596644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)
2026-04-21T19:00:50.432181Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)
2026-04-21T19:01:07.992732Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)
2026-04-21T19:01:08.484066Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)
2026-04-21T19:01:10.538762Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)
2026-04-21T19:01:18.922398Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)
2026-04-21T19:01:28.361625Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=84 elapsed=6.9360265s
2026-04-21T19:01:28.362070Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 84 eligible frames
2026-04-21T19:01:32.723075Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 33 frames, 6.4MB → 0.3MB (19.7x), 33 JPEGs deleted
2026-04-21T19:01:42.130490Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 7.8MB → 3.3MB (2.4x), 49 JPEGs deleted
2026-04-21T19:02:09.991879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)
2026-04-21T19:02:12.577587Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)
2026-04-21T19:02:12.835924Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)
2026-04-21T19:02:15.635601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)
2026-04-21T19:02:18.720475Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)
2026-04-21T19:02:21.708351Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)
2026-04-21T19:02:22.061150Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)
2026-04-21T19:02:28.684303Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3995027160269120472, trigger=click)
2026-04-21T19:02:41.434491Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)
2026-04-21T19:02:41.724904Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)
2026-04-21T19:02:43.112974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)
2026-04-21T19:02:43.410843Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)
2026-04-21T19:02:47.501924Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)
2026-04-21T19:02:47.761592Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)
2026-04-21T19:02:54.205542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)
2026-04-21T19:02:54.441326Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)
2026-04-21T19:02:56.601490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)
2026-04-21T19:02:56.921256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)
2026-04-21T19:03:15.988643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)
2026-04-21T19:03:16.236342Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)
2026-04-21T19:03:28.508616Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)
2026-04-21T19:04:00.462064Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)
2026-04-21T19:04:01.516168Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)
2026-04-21T19:04:01.856315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)
2026-04-21T19:04:03.246448Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)
2026-04-21T19:04:03.735029Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)
2026-04-21T19:04:09.818135Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)
2026-04-21T19:05:03.118616Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)
2026-04-21T19:05:03.393788Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)
2026-04-21T19:05:21.352722Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=visual_change)
2026-04-21T19:05:43.751309Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)
2026-04-21T19:05:44.029500Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)
2026-04-21T19:05:45.626672Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)
2026-04-21T19:05:45.899754Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)
2026-04-21T19:05:48.206587Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)
2026-04-21T19:05:48.449043Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)
2026-04-21T19:06:22.834938Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7947558874471225541, trigger=click)
2026-04-21T19:06:52.937779Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=114 elapsed=10.747243125s
2026-04-21T19:06:52.938152Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 114 eligible frames
2026-04-21T19:06:57.942457Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 45 frames, 8.8MB → 0.3MB (27.2x), 45 JPEGs deleted
2026-04-21T19:07:05.853054Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 67 frames, 10.5MB → 5.2MB (2.0x), 67 JPEGs deleted
2026-04-21T19:07:45.088797Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)
2026-04-21T19:07:48.052391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6936634780821666458, trigger=click)
2026-04-21T19:08:59.593467Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5629560013928052473, trigger=click)
2026-04-21T19:09:29.443711Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)
2026-04-21T19:09:42.998313Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8043719072324535154, trigger=visual_change)
2026-04-21T19:09:50.759516Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)
2026-04-21T19:09:51.052544Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)
2026-04-21T19:09:51.892698Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)
2026-04-21T19:09:52.651776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)
2026-04-21T19:09:55.476431Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)
2026-04-21T19:09:55.898195Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)
2026-04-21T19:09:58.077337Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)
2026-04-21T19:10:01.103980Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)
2026-04-21T19:10:03.105423Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)
2026-04-21T19:10:03.448049Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)
2026-04-21T19:10:08.548130Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6051188157141408655, trigger=click)
2026-04-21T19:12:12.330759Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=70 elapsed=6.458002417s
2026-04-21T19:12:12.332545Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 70 eligible frames
2026-04-21T19:12:14.243079Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 5.5MB → 0.3MB (17.2x), 28 JPEGs deleted
2026-04-21T19:12:17.558334Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 40 frames, 7.4MB → 3.6MB (2.1x), 40 JPEGs deleted
2026-04-21T19:16:51.045938Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1370319459641728815, trigger=click)
2026-04-21T19:16:51.249993Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1370319459641728815, trigger=click)
2026-04-21T19:17:21.603564Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=40 elapsed=4.036037791s
2026-04-21T19:17:21.604357Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames
2026-04-21T19:17:22.750174Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.5MB → 0.3MB (11.2x), 18 JPEGs deleted
2026-04-21T19:17:24.332098Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.2MB → 1.3MB (3.2x), 20 JPEGs deleted
2026-04-21T19:22:25.748871Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=4...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"2026-04-21T18:01:10.189484Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:11.594292Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=visual_change)\n2026-04-21T18:01:12.844254Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:13.095866Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:49.712611Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5610420548393517496, trigger=click)\n2026-04-21T18:01:49.878502Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5610420548393517496, trigger=click)\n2026-04-21T18:01:54.385999Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4075180225844497251, trigger=click)\n2026-04-21T18:02:03.320721Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:04.589973Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:06.402101Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:08.459207Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:17.915785Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:20.289378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:53.363091Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:59.854804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6485088808083200508, trigger=visual_change)\n2026-04-21T18:03:23.692602Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2923142241079919801, trigger=visual_change)\n2026-04-21T18:03:38.383745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:03:38.666324Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:03:40.611795Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:03:46.691879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:03:49.696169Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:03:58.796193Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:10.455866Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=65 elapsed=5.507644708s\n2026-04-21T18:04:10.456994Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 65 eligible frames\n2026-04-21T18:04:10.784720Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:12.979583Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 8.1MB → 3.1MB (2.6x), 36 JPEGs deleted\n2026-04-21T18:04:13.808201Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:15.311040Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 5.7MB → 2.1MB (2.7x), 27 JPEGs deleted\n2026-04-21T18:04:22.870405Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:25.858949Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:47.178867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:47.409147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:48.621959Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:48.823996Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:49.613197Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:49.840589Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:54.113636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:54.333250Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:56.158603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:56.345340Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:24.653256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2923142241079919801, trigger=visual_change)\n2026-04-21T18:05:27.506644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2923142241079919801, trigger=visual_change)\n2026-04-21T18:05:52.127185Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:52.385537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:54.464579Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:54.740600Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:06:01.884193Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:06:04.917243Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:06:15.788550Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:06:16.090123Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:06:17.179267Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:07:04.992532Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:08.003078Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:17.121489Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:17.302355Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:27.025619Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:29.771279Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:31.137970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:36.086848Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:36.306717Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:37.369851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:37.634865Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:38.805129Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:39.104738Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:40.060624Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:08:30.262801Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:08:45.022177Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8543293535466770858, trigger=click)\n2026-04-21T18:09:22.083704Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=74 elapsed=6.715953125s\n2026-04-21T18:09:22.084245Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 74 eligible frames\n2026-04-21T18:09:29.000281Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 43 frames, 9.6MB → 4.0MB (2.4x), 43 JPEGs deleted\n2026-04-21T18:09:33.280652Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 5.8MB → 1.9MB (3.1x), 29 JPEGs deleted\n2026-04-21T18:10:45.149443Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:11:39.313378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=745086096190842156, trigger=visual_change)\n2026-04-21T18:11:42.305757Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=745086096190842156, trigger=click)\n2026-04-21T18:11:46.031853Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=745086096190842156, trigger=click)\n2026-04-21T18:11:46.095029Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=745086096190842156, trigger=click)\n2026-04-21T18:14:41.494244Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=68 elapsed=8.195880125s\n2026-04-21T18:14:41.495608Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 68 eligible frames\n2026-04-21T18:14:48.613051Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 8.2MB → 3.4MB (2.5x), 36 JPEGs deleted\n2026-04-21T18:14:55.232583Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 5.5MB → 2.6MB (2.1x), 30 JPEGs deleted\n2026-04-21T18:19:19.967211Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2899189334056575250, trigger=click)\n2026-04-21T18:19:20.363463Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2899189334056575250, trigger=click)\n2026-04-21T18:19:59.298075Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=53 elapsed=4.000910792s\n2026-04-21T18:19:59.298190Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 53 eligible frames\n2026-04-21T18:20:02.044649Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 5.1MB → 3.5MB (1.5x), 26 JPEGs deleted\n2026-04-21T18:20:04.900441Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.7MB → 2.4MB (1.9x), 25 JPEGs deleted\n2026-04-21T18:20:23.742659Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:27.660528Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:34.896769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:35.220946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:40.886719Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:44.353070Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:47.046701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:48.003863Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:22:59.673927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2006451494811625283, trigger=click)\n2026-04-21T18:23:02.374154Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2006451494811625283, trigger=visual_change)\n2026-04-21T18:24:55.480969Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:24:55.713808Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:25:06.770660Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=745086096190842156, trigger=click)\n2026-04-21T18:25:10.431473Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=69 elapsed=5.123936292s\n2026-04-21T18:25:10.432665Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 69 eligible frames\n2026-04-21T18:25:12.020960Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.7MB → 0.4MB (10.8x), 24 JPEGs deleted\n2026-04-21T18:25:16.809118Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 43 frames, 7.5MB → 3.7MB (2.0x), 43 JPEGs deleted\n2026-04-21T18:27:20.032159Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-868697608726996264, trigger=click)\n2026-04-21T18:27:27.209581Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5262134208844209929, trigger=click)\n2026-04-21T18:30:23.556529Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=60 elapsed=6.732438875s\n2026-04-21T18:30:23.556849Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 60 eligible frames\n2026-04-21T18:30:25.836587Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 5.3MB → 0.4MB (12.5x), 27 JPEGs deleted\n2026-04-21T18:30:29.251794Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 5.4MB → 2.7MB (2.0x), 31 JPEGs deleted\n2026-04-21T18:34:42.383568Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1898158487632236470, trigger=click)\n2026-04-21T18:35:29.435858Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 84 eligible frames\n2026-04-21T18:35:31.507303Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 35 frames, 6.8MB → 0.3MB (21.3x), 35 JPEGs deleted\n2026-04-21T18:35:34.821718Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 47 frames, 8.8MB → 3.6MB (2.4x), 47 JPEGs deleted\n2026-04-21T18:37:57.032414Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3231955623713121874, trigger=click)\n2026-04-21T18:40:36.969380Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=205 elapsed=2.13815675s\n2026-04-21T18:40:36.969491Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 205 eligible frames\n2026-04-21T18:40:42.234686Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 90 frames, 17.5MB → 0.4MB (49.4x), 90 JPEGs deleted\n2026-04-21T18:40:48.296945Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 99 frames, 14.9MB → 5.7MB (2.6x), 99 JPEGs deleted\n2026-04-21T18:40:49.626073Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 1.8MB → 0.7MB (2.8x), 14 JPEGs deleted\n2026-04-21T18:41:16.858046Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5262134208844209929, trigger=click)\n2026-04-21T18:41:18.719527Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5262134208844209929, trigger=click)\n2026-04-21T18:41:20.650032Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6762752836329409782, trigger=click)\n2026-04-21T18:42:40.957654Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7949512313665335161, trigger=visual_change)\n2026-04-21T18:42:42.714242Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7949512313665335161, trigger=click)\n2026-04-21T18:44:54.833923Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7610506607449357182, trigger=click)\n2026-04-21T18:44:55.013934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7610506607449357182, trigger=click)\n2026-04-21T18:45:54.320505Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=145 elapsed=4.6846185s\n2026-04-21T18:45:54.321215Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 145 eligible frames\n2026-04-21T18:45:58.288822Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 64 frames, 12.5MB → 0.5MB (23.2x), 64 JPEGs deleted\n2026-04-21T18:46:02.956701Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 78 frames, 11.5MB → 3.3MB (3.5x), 78 JPEGs deleted\n2026-04-21T18:48:10.510139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4242937607805845066, trigger=click)\n2026-04-21T18:48:37.207446Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5152173808593872338, trigger=visual_change)\n2026-04-21T18:49:27.537635Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5244088376274895156, trigger=click)\n2026-04-21T18:49:33.724367Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5262134208844209929, trigger=click)\n2026-04-21T18:49:44.747739Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8298107678328947062, trigger=click)\n2026-04-21T18:50:45.073176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:50:45.427101Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:50:48.592273Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:50:49.492676Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:51:01.193858Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:51:05.888682Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=50 elapsed=2.917680375s\n2026-04-21T18:51:05.889014Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 50 eligible frames\n2026-04-21T18:51:06.016628Z WARN sqlx::query: summary=\"PRAGMA wal_checkpoint(TRUNCATE)\" db.statement=\"\" rows_affected=0 rows_returned=1 elapsed=2.157649083s\n2026-04-21T18:51:06.079565Z WARN sqlx::query: summary=\"BEGIN IMMEDIATE\" db.statement=\"\" rows_affected=1 rows_returned=0 elapsed=1.385088167s\n2026-04-21T18:51:07.829374Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 3.9MB → 0.4MB (11.0x), 20 JPEGs deleted\n2026-04-21T18:51:09.736739Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 5.0MB → 1.8MB (2.7x), 28 JPEGs deleted\n2026-04-21T18:51:22.360027Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2872311122120998867, trigger=click)\n2026-04-21T18:51:22.556670Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2872311122120998867, trigger=click)\n2026-04-21T18:51:38.819030Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7947558874471225541, trigger=click)\n2026-04-21T18:51:57.414061Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:51:59.012068Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:51:59.285931Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:01.767745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:02.028355Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:05.460776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=visual_change)\n2026-04-21T18:52:07.087479Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:07.314492Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:10.214922Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:10.537340Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:13.867159Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:14.152331Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:20.367281Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:26.127826Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1650348556715134220, trigger=click)\n2026-04-21T18:52:37.517700Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=visual_change)\n2026-04-21T18:52:42.329057Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:52:42.556779Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:52:44.386173Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:52:44.700511Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:52:45.210674Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:53:17.193415Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6757993062848436258, trigger=visual_change)\n2026-04-21T18:53:30.834059Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-228480120308125164, trigger=click)\n2026-04-21T18:53:38.030882Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7225077546439863627, trigger=click)\n2026-04-21T18:53:56.421537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6437320026671683644, trigger=click)\n2026-04-21T18:54:11.726528Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1667437155962702753, trigger=visual_change)\n2026-04-21T18:54:12.117525Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1667437155962702753, trigger=click)\n2026-04-21T18:54:18.659686Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:54:19.077258Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:54:29.973760Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:56:07.789768Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6757993062848436258, trigger=click)\n2026-04-21T18:56:08.791400Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6757993062848436258, trigger=click)\n2026-04-21T18:56:14.153615Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=80 elapsed=4.402661042s\n2026-04-21T18:56:14.153722Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 80 eligible frames\n2026-04-21T18:56:16.685912Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 6.2MB → 0.7MB (8.9x), 32 JPEGs deleted\n2026-04-21T18:56:21.263739Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 46 frames, 8.2MB → 2.8MB (2.9x), 46 JPEGs deleted\n2026-04-21T18:56:25.279306Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7906564822731502105, trigger=click)\n2026-04-21T18:56:33.734840Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8817586097865472869, trigger=click)\n2026-04-21T18:56:33.980908Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8817586097865472869, trigger=click)\n2026-04-21T18:56:35.972959Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8817586097865472869, trigger=click)\n2026-04-21T18:56:40.545963Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8587160525579598601, trigger=click)\n2026-04-21T18:56:41.913814Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8587160525579598601, trigger=visual_change)\n2026-04-21T18:56:45.516942Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1910160977377320534, trigger=click)\n2026-04-21T18:56:48.740431Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1910160977377320534, trigger=click)\n2026-04-21T18:56:50.439568Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1910160977377320534, trigger=click)\n2026-04-21T18:56:50.692218Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1910160977377320534, trigger=click)\n2026-04-21T18:57:12.321118Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:12.578681Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:24.290583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:24.543696Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:34.571768Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:36.227688Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:36.475151Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:42.338601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:42.559967Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:52.824809Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:53.145543Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:59.463043Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:59.717475Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:58:00.742137Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:58:01.061497Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:59:33.960291Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9203182216527106315, trigger=visual_change)\n2026-04-21T18:59:55.990167Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T18:59:59.103830Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=visual_change)\n2026-04-21T19:00:16.116927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:00:45.352689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:00:49.596644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:00:50.432181Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:07.992732Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:08.484066Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:10.538762Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:18.922398Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:28.361625Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=84 elapsed=6.9360265s\n2026-04-21T19:01:28.362070Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 84 eligible frames\n2026-04-21T19:01:32.723075Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 33 frames, 6.4MB → 0.3MB (19.7x), 33 JPEGs deleted\n2026-04-21T19:01:42.130490Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 7.8MB → 3.3MB (2.4x), 49 JPEGs deleted\n2026-04-21T19:02:09.991879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:12.577587Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:12.835924Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:15.635601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:18.720475Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:21.708351Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:22.061150Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:28.684303Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3995027160269120472, trigger=click)\n2026-04-21T19:02:41.434491Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:41.724904Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:43.112974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:43.410843Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:47.501924Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:47.761592Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:54.205542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:54.441326Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:56.601490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:56.921256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:03:15.988643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:03:16.236342Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:03:28.508616Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:00.462064Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:01.516168Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:01.856315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:03.246448Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:03.735029Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:09.818135Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:05:03.118616Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:03.393788Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:21.352722Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=visual_change)\n2026-04-21T19:05:43.751309Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:44.029500Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:45.626672Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:45.899754Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:48.206587Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:48.449043Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:06:22.834938Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7947558874471225541, trigger=click)\n2026-04-21T19:06:52.937779Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=114 elapsed=10.747243125s\n2026-04-21T19:06:52.938152Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 114 eligible frames\n2026-04-21T19:06:57.942457Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 45 frames, 8.8MB → 0.3MB (27.2x), 45 JPEGs deleted\n2026-04-21T19:07:05.853054Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 67 frames, 10.5MB → 5.2MB (2.0x), 67 JPEGs deleted\n2026-04-21T19:07:45.088797Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:07:48.052391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6936634780821666458, trigger=click)\n2026-04-21T19:08:59.593467Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5629560013928052473, trigger=click)\n2026-04-21T19:09:29.443711Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:42.998313Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8043719072324535154, trigger=visual_change)\n2026-04-21T19:09:50.759516Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:51.052544Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:51.892698Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:09:52.651776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:55.476431Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:55.898195Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:09:58.077337Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:10:01.103980Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:10:03.105423Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:10:03.448049Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:10:08.548130Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6051188157141408655, trigger=click)\n2026-04-21T19:12:12.330759Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=70 elapsed=6.458002417s\n2026-04-21T19:12:12.332545Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 70 eligible frames\n2026-04-21T19:12:14.243079Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 5.5MB → 0.3MB (17.2x), 28 JPEGs deleted\n2026-04-21T19:12:17.558334Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 40 frames, 7.4MB → 3.6MB (2.1x), 40 JPEGs deleted\n2026-04-21T19:16:51.045938Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1370319459641728815, trigger=click)\n2026-04-21T19:16:51.249993Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1370319459641728815, trigger=click)\n2026-04-21T19:17:21.603564Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=40 elapsed=4.036037791s\n2026-04-21T19:17:21.604357Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames\n2026-04-21T19:17:22.750174Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.5MB → 0.3MB (11.2x), 18 JPEGs deleted\n2026-04-21T19:17:24.332098Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.2MB → 1.3MB (3.2x), 20 JPEGs deleted\n2026-04-21T19:22:25.748871Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=49 elapsed=1.406664416s\n2026-04-21T19:22:25.749095Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 49 eligible frames\n2026-04-21T19:22:27.704722Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 3.7MB → 0.8MB (4.5x), 22 JPEGs deleted\n2026-04-21T19:22:29.535330Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.2MB → 1.7MB (3.0x), 25 JPEGs deleted\n2026-04-21T19:23:29.233846Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9146581369053060363, trigger=click)\n2026-04-21T19:23:31.995034Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9146581369053060363, trigger=visual_change)\n2026-04-21T19:23:37.213396Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9146581369053060363, trigger=visual_change)\n2026-04-21T19:23:40.288223Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9146581369053060363, trigger=visual_change)\n2026-04-21T19:23:44.197738Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9146581369053060363, trigger=visual_change)\n2026-04-21T19:23:45.228572Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9146581369053060363, trigger=click)\n2026-04-21T19:23:56.251033Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:24:06.580019Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=335 elapsed=1.644312167s\n2026-04-21T19:24:28.860436Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:24:32.226944Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:24:32.476075Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:03.902521Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:19.205245Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:25.098627Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:36.013866Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:37.355954Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:41.831265Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:46.247585Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:46.619106Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:48.284769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:48.534452Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:49.421920Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:49.752264Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:54.600720Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:55.072357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:26:19.446041Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:26:22.718352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:27:38.437704Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=28 elapsed=8.833634334s\n2026-04-21T19:27:38.438043Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames\n2026-04-21T19:27:39.763901Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 1.9MB → 0.3MB (7.6x), 12 JPEGs deleted\n2026-04-21T19:27:41.220664Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.1MB → 0.9MB (2.2x), 14 JPEGs deleted\n2026-04-21T19:28:22.708791Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:28:23.849452Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:28:24.119301Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:14.209016Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:16.415693Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:21.726815Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:23.890645Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:24.239058Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:29.790006Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:33.098495Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:38.065869Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:44.089028Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:47.272131Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:53.977951Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:57.274496Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:30:11.986797Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:30:13.530455Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:30:28.332451Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:30:37.204947Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:26.255340Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:26.592983Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:30.448912Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:35.747969Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:37.783849Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:38.061197Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:43.216365Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:43.885407Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:46.680745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:52.971450Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:58.468469Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:58.624833Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:03.362210Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:12.706102Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:15.172982Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:23.020508Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:23.199312Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:25.387097Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:25.764201Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:30.336940Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:30.810971Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:39.812820Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:42.409145Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:44.386326Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:48.880648Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=47 elapsed=7.499136792s\n2026-04-21T19:32:48.880949Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 47 eligible frames\n2026-04-21T19:32:51.249469Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.2MB → 0.3MB (8.9x), 14 JPEGs deleted\n2026-04-21T19:32:55.969183Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 3.8MB → 1.9MB (2.0x), 31 JPEGs deleted\n2026-04-21T19:32:59.734686Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:33:00.098925Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:33:05.951997Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:34:07.213420Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:34:09.264586Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:34:16.527425Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:34:19.513647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:34:32.889780Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1128757073350665914, trigger=click)\n2026-04-21T19:34:56.078651Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4993766851008728916, trigger=click)\n2026-04-21T19:34:56.296542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4993766851008728916, trigger=click)\n2026-04-21T19:35:02.344819Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:35:05.237721Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:35:07.518599Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:35:09.938481Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:35:10.408295Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:35:26.864482Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:35:33.001733Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:35:36.479802Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:36:20.043835Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4526067242477956280, trigger=visual_change)\n2026-04-21T19:36:47.029303Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4526067242477956280, trigger=visual_change)\n2026-04-21T19:36:57.077150Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:37:33.348160Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:37:33.742029Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:37:36.579915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:37:39.754974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:38:04.951324Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=101 elapsed=8.9666755s\n2026-04-21T19:38:04.953527Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 101 eligible frames\n2026-04-21T19:38:13.751166Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 38 frames, 8.0MB → 3.5MB (2.3x), 38 JPEGs deleted\n2026-04-21T19:38:29.817220Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 61 frames, 9.7MB → 5.2MB (1.9x), 61 JPEGs deleted\n2026-04-21T19:40:34.255930Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=342 elapsed=1.0699005s\n2026-04-21T19:42:32.961192Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:42:33.305572Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:42:40.179851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=visual_change)\n2026-04-21T19:42:41.405781Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:42:41.720845Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:43:02.251464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=visual_change)\n2026-04-21T19:43:11.622532Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:43:36.525920Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=85 elapsed=6.634896167s\n2026-04-21T19:43:36.526454Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 85 eligible frames\n2026-04-21T19:43:39.459999Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 8.0MB → 3.4MB (2.3x), 36 JPEGs deleted\n2026-04-21T19:43:43.505640Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 47 frames, 7.9MB → 3.9MB (2.0x), 47 JPEGs deleted\n2026-04-21T19:44:05.999282Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=visual_change)\n2026-04-21T19:45:08.065595Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2712812971723964739, trigger=click)\n2026-04-21T19:45:46.266141Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:48:51.569666Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=64 elapsed=8.039671791s\n2026-04-21T19:48:51.570457Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 64 eligible frames\n2026-04-21T19:48:58.738540Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 7.2MB → 2.4MB (2.9x), 32 JPEGs deleted\n2026-04-21T19:49:05.383193Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 5.9MB → 2.5MB (2.4x), 30 JPEGs deleted\n2026-04-21T19:51:14.064760Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2572721248839450970, trigger=visual_change)\n2026-04-21T19:54:08.518415Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=346 elapsed=1.026887875s\n2026-04-21T19:54:12.872902Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=61 elapsed=7.44778675s\n2026-04-21T19:54:12.873164Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 61 eligible frames\n2026-04-21T19:54:16.348511Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.6MB → 1.4MB (4.1x), 25 JPEGs deleted\n2026-04-21T19:54:24.102233Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 34 frames, 6.2MB → 3.6MB (1.7x), 34 JPEGs deleted\n2026-04-21T19:59:32.063421Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=346 elapsed=1.165878958s\n2026-04-21T19:59:32.818884Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=31 elapsed=8.661332917s\n2026-04-21T19:59:32.819629Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 31 eligible frames\n2026-04-21T19:59:35.810838Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.9MB → 0.7MB (3.9x), 16 JPEGs deleted\n2026-04-21T19:59:38.924596Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.9MB → 1.5MB (2.0x), 13 JPEGs deleted\n2026-04-21T20:01:55.709776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1382976804061127003, trigger=click)\n2026-04-21T20:04:27.572999Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7658911549706194190, trigger=click)\n2026-04-21T20:04:46.630063Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=57 elapsed=7.045125334s\n2026-04-21T20:04:46.631081Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 57 eligible frames\n2026-04-21T20:04:49.684796Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 2.5MB → 0.8MB (3.2x), 23 JPEGs deleted\n2026-04-21T20:04:56.073590Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 5.7MB → 3.1MB (1.8x), 32 JPEGs deleted\n2026-04-21T20:05:04.129844Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-446124678591544690, trigger=click)\n2026-04-21T20:05:04.425723Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-446124678591544690, trigger=click)\n2026-04-21T20:09:59.238939Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=30 elapsed=2.058497125s\n2026-04-21T20:09:59.239075Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 30 eligible frames\n2026-04-21T20:10:00.874153Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.3MB → 0.2MB (5.8x), 13 JPEGs deleted\n2026-04-21T20:10:03.326064Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 1.8MB → 0.6MB (2.8x), 15 JPEGs deleted\n2026-04-21T20:15:07.129653Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=58 elapsed=3.763973459s\n2026-04-21T20:15:07.130598Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 58 eligible frames\n2026-04-21T20:15:09.088400Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 3.7MB → 0.6MB (5.9x), 26 JPEGs deleted\n2026-04-21T20:15:10.858868Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 3.9MB → 1.0MB (3.9x), 30 JPEGs deleted\n2026-04-21T20:18:21.110736Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=354 elapsed=1.169721666s\nzsh: terminated npx screenpipe@latest record --disable-audio --ignored-windows \"Boosteroid\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-start\ndetected hardware tier: Mid\nwarning: parakeet is not supported on this platform, using whisper-tiny instead\n2026-04-22T09:15:19.880360Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store\nchecking permissions...\n screen recording: ok\n accessibility: ok\n2026-04-22T09:15:19.951248Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6\n2026-04-22T09:15:20.675958Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor\n2026-04-22T09:15:20.677447Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)\n2026-04-22T09:15:20.677800Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)\n2026-04-22T09:15:20.709542Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true\n2026-04-22T09:15:20.709596Z INFO screenpipe: meeting detector enabled — independent of transcription mode\n2026-04-22T09:15:20.709849Z INFO screenpipe: API server listening on 127.0.0.1:3030 (localhost only)\n2026-04-22T09:15:20.709774Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)\n2026-04-22T09:15:20.709806Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)\n2026-04-22T09:15:20.709863Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key\n2026-04-22T09:15:20.709908Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager\n2026-04-22T09:15:20.721517Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-22T09:15:20.725781Z INFO screenpipe_core::pipes: loaded pipe: day-recap\n2026-04-22T09:15:20.725991Z INFO screenpipe_core::pipes: loaded pipe: standup-update\n2026-04-22T09:15:20.726387Z INFO screenpipe_core::pipes: loaded pipe: ai-habits\n2026-04-22T09:15:20.726548Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown\n2026-04-22T09:15:20.726690Z INFO screenpipe_core::pipes: loaded pipe: video-export\n2026-04-22T09:15:20.727224Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary\n2026-04-22T09:15:20.727242Z INFO screenpipe_core::pipes: loaded 6 pipes from \"/Users/lukas/.screenpipe/pipes\"\n\n\n\n _ \n __________________ ___ ____ ____ (_____ ___ \n / ___/ ___/ ___/ _ \\/ _ \\/ __ \\ / __ \\/ / __ \\/ _ \\\n (__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/\n/____/\\___/_/ \\___/\\___/_/ /_/ / .___/_/ .___/\\___/ \n /_/ /_/ \n\n\n\npower AI by everything you've seen, said or heard\nopen source | runs locally | developer friendly\n\n\n┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ true │\n│ vision disabled │ false │\n│ pause on DRM content │ false │\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n│ ignored windows │ [\"Boosteroid\"] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n2026-04-22T09:15:20.728614Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n│ api auth │ enabled │\n2026-04-22T09:15:20.742172Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n│ encrypt secrets │ disabled │\n│ retention days │ 14 │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ id: 1 │\n│ │ id: 2 │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ disabled │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-22T09:15:20.742788Z INFO screenpipe: starting UI event capture\n2026-04-22T09:15:20.755824Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-22T09:15:20.769629Z INFO screenpipe_engine::ui_recorder: UI recording session started: e7729066-2ab4-4bf0-9d48-0c9790a4ee79\n2026-04-22T09:15:20.769680Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-22T09:15:20.769789Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-21 06:15:20.769785 UTC to 2026-04-22 06:15:20.769785 UTC)\n2026-04-22T09:15:20.770644Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-22T09:15:20.778181Z INFO screenpipe_engine::server: Server listening on 127.0.0.1:3030\n2026-04-22T09:15:20.789960Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-22T09:15:21.591614Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-22T09:15:21.591646Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-22T09:15:21.591751Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-22T09:15:21.919088Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-22T09:15:21.919141Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-22T09:15:21.919158Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)\n2026-04-22T09:15:21.919163Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-22T09:15:21.919167Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)\n2026-04-22T09:15:23.315305Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-22T09:15:23.445619Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=68471, dur=74ms\n2026-04-22T09:15:23.697846Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-22T09:15:23.856559Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=68472, dur=115ms\n2026-04-22T09:15:23.858032Z INFO sck_rs::stream_manager: invalidated persistent stream for display 2\n2026-04-22T09:15:25.542035Z WARN sqlx::query: summary=\"SELECT f.id, f.timestamp, f.offset_index, …\" db.statement=\"\\n\\nSELECT\\n f.id,\\n f.timestamp,\\n f.offset_index,\\n COALESCE(\\n SUBSTR(f.full_text, 1, 200),\\n SUBSTR(f.accessibility_text, 1, 200),\\n (\\n SELECT\\n SUBSTR(ot.text, 1, 200)\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as text,\\n COALESCE(\\n f.app_name,\\n (\\n SELECT\\n ot.app_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as app_name,\\n COALESCE(\\n f.window_name,\\n (\\n SELECT\\n ot.window_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as window_name,\\n COALESCE(vc.device_name, f.device_name) as screen_device,\\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\\n COALESCE(vc.fps, 0.033) as chunk_fps,\\n f.browser_url,\\n f.machine_id\\nFROM\\n frames f\\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\\nWHERE\\n f.timestamp >= ?1\\n AND f.timestamp <= ?2\\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\\nORDER BY\\n f.timestamp DESC,\\n f.offset_index DESC\\nLIMIT\\n 10000\\n\" rows_affected=0 rows_returned=7744 elapsed=4.771776083s\n2026-04-22T09:15:25.568771Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 7744 frame entries, coverage from 2026-04-21 06:15:20.769785 UTC\n2026-04-22T09:15:32.415224Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-22T09:15:41.941919Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=357539612469251678, trigger=click)\n2026-04-22T09:15:43.170779Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=357539612469251678, trigger=visual_change)\n2026-04-22T09:16:22.411707Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5959696770819639860, trigger=visual_change)\n2026-04-22T09:16:26.239896Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=62 elapsed=5.530699458s\n2026-04-22T09:16:26.240084Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 62 eligible frames\n2026-04-22T09:16:28.044386Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 4.7MB → 0.2MB (19.7x), 30 JPEGs deleted\n2026-04-22T09:16:30.086623Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 4.3MB → 0.1MB (30.2x), 30 JPEGs deleted\n2026-04-22T09:16:31.962480Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5959696770819639860, trigger=visual_change)\n2026-04-22T09:19:29.939632Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7894432383542294550, trigger=click)\n2026-04-22T09:19:30.235489Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7894432383542294550, trigger=click)\n2026-04-22T09:19:35.764366Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7894432383542294550, trigger=click)\n2026-04-22T09:19:48.049836Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6938285907753314842, trigger=visual_change)\n2026-04-22T09:21:36.974672Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=2 elapsed=6.892004583s\n2026-04-22T09:21:36.974869Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-22T09:21:46.781688Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2525045998934122930, trigger=visual_change)\n2026-04-22T09:24:11.763955Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=889075772057942202, trigger=visual_change)\n2026-04-22T09:24:12.162666Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=889075772057942202, trigger=click)\n2026-04-22T09:24:14.800709Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=889075772057942202, trigger=click)\n2026-04-22T09:24:15.299587Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=889075772057942202, trigger=click)\n2026-04-22T09:24:17.445141Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=889075772057942202, trigger=click)\n2026-04-22T09:24:17.822587Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=889075772057942202, trigger=click)\n2026-04-22T09:24:24.786651Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1127753064753596652, trigger=click)\n2026-04-22T09:24:25.324058Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1127753064753596652, trigger=click)\n2026-04-22T09:24:29.098325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1127753064753596652, trigger=click)\n2026-04-22T09:24:50.423753Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7779472685250441843, trigger=click)\n2026-04-22T09:24:50.901024Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7779472685250441843, trigger=click)\n2026-04-22T09:25:10.616667Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5405130988905008112, trigger=click)\n2026-04-22T09:25:11.046676Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5405130988905008112, trigger=click)\n2026-04-22T09:25:20.763321Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5405130988905008112, trigger=click)\n2026-04-22T09:25:20.997547Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5405130988905008112, trigger=click)\n2026-04-22T09:25:25.954173Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5405130988905008112, trigger=click)\n2026-04-22T09:25:32.989805Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8138374647045057371, trigger=click)\n2026-04-22T09:25:36.003685Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8138374647045057371, trigger=click)\n2026-04-22T09:25:37.335354Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8138374647045057371, trigger=click)\n2026-04-22T09:25:37.578287Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8138374647045057371, trigger=click)\n2026-04-22T09:25:40.438000Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8138374647045057371, trigger=visual_change)\n2026-04-22T09:25:43.846661Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8138374647045057371, trigger=click)\n2026-04-22T09:25:44.062879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8138374647045057371, trigger=click)\n2026-04-22T09:25:51.479216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8138374647045057371, trigger=click)\n2026-04-22T09:25:53.247917Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8138374647045057371, trigger=click)\n2026-04-22T09:25:58.183431Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8138374647045057371, trigger=click)\n2026-04-22T09:25:58.469469Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8138374647045057371, trigger=click)\n2026-04-22T09:26:09.273910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5405130988905008112, trigger=click)\n2026-04-22T09:26:09.561856Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5405130988905008112, trigger=click)\n2026-04-22T09:26:10.819842Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5405130988905008112, trigger=click)\n2026-04-22T09:26:11.249618Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5405130988905008112, trigger=click)\n2026-04-22T09:26:40.577718Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2354791383483955560, trigger=visual_change)\n2026-04-22T09:26:44.799765Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=23 elapsed=7.81096125s\n2026-04-22T09:26:44.799978Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 23 eligible frames\n2026-04-22T09:26:46.688043Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 2.1MB → 1.2MB (1.7x), 8 JPEGs deleted\n2026-04-22T09:26:50.641966Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 3.0MB → 1.3MB (2.3x), 15 JPEGs deleted\n2026-04-22T09:31:51.652070Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 89 eligible frames\n2026-04-22T09:31:54.101939Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 33 frames, 9.4MB → 1.9MB (5.0x), 33 JPEGs deleted\n2026-04-22T09:31:59.304222Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 54 frames, 9.7MB → 5.0MB (1.9x), 54 JPEGs deleted\n2026-04-22T09:32:12.008662Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3624805284232944242, trigger=click)\n2026-04-22T09:32:35.967540Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3062750094588465259, trigger=visual_change)\n2026-04-22T09:33:06.818107Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3062750094588465259, trigger=visual_change)\n2026-04-22T09:33:14.632314Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2863574885747713422, trigger=click)\n2026-04-22T09:33:14.857523Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2863574885747713422, trigger=click)\n2026-04-22T09:34:14.788009Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2354791383483955560, trigger=visual_change)\n2026-04-22T09:34:30.609746Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2354791383483955560, trigger=click)\n2026-04-22T09:34:34.105401Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2354791383483955560, trigger=visual_change)\n2026-04-22T09:34:37.485108Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2354791383483955560, trigger=click)\n2026-04-22T09:35:54.598003Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-625214687390699270, trigger=visual_change)\n2026-04-22T09:36:09.104712Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2863574885747713422, trigger=click)\n2026-04-22T09:36:37.324238Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6459141415085539989, trigger=visual_change)\n2026-04-22T09:36:40.542880Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6459141415085539989, trigger=visual_change)\n2026-04-22T09:36:43.137729Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6459141415085539989, trigger=click)\n2026-04-22T09:36:44.229166Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6459141415085539989, trigger=click)\n2026-04-22T09:36:46.968613Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6459141415085539989, trigger=click)\n2026-04-22T09:36:52.078332Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6459141415085539989, trigger=visual_change)\n2026-04-22T09:36:54.127864Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6459141415085539989, trigger=click)\n2026-04-22T09:37:03.963789Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=87 elapsed=4.663980917s\n2026-04-22T09:37:03.964310Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 87 eligible frames\n2026-04-22T09:37:05.944118Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 7.1MB → 0.4MB (19.3x), 32 JPEGs deleted\n2026-04-22T09:37:09.865815Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 53 frames, 9.7MB → 4.1MB (2.4x), 53 JPEGs deleted\n2026-04-22T09:37:13.714905Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3548022877361860948, trigger=click)\n2026-04-22T09:38:12.283595Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3127667118792163607, trigger=click)\n2026-04-22T09:38:31.114793Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3127667118792163607, trigger=click)\n2026-04-22T09:38:31.809587Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3127667118792163607, trigger=click)\n2026-04-22T09:38:33.720499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3127667118792163607, trigger=visual_change)\n2026-04-22T09:38:39.562457Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3127667118792163607, trigger=click)\n2026-04-22T09:38:39.953380Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3127667118792163607, trigger=click)\n2026-04-22T09:42:22.290722Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=36 elapsed=11.598434833s\n2026-04-22T09:42:22.296038Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 36 eligible frames\n2026-04-22T09:42:29.157685Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 3.6MB → 0.6MB (6.0x), 16 JPEGs deleted\n2026-04-22T09:42:32.150217Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.0MB → 1.1MB (2.7x), 18 JPEGs deleted\n2026-04-22T09:45:17.750319Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Firefox, signals=2)\n2026-04-22T09:45:27.669631Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Firefox, signals=2, browser=true)\n2026-04-22T09:45:27.694051Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=6, app=Firefox, title=None)\n2026-04-22T09:47:47.881351Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=73 elapsed=15.717987375s\n2026-04-22T09:47:47.895439Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 73 eligible frames\n2026-04-22T09:47:55.588148Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 7.0MB → 2.6MB (2.7x), 36 JPEGs deleted\n2026-04-22T09:48:06.150273Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 35 frames, 5.8MB → 2.7MB (2.2x), 35 JPEGs deleted\n2026-04-22T09:50:08.042310Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6608914011836842734, trigger=click)\n2026-04-22T09:50:38.385760Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=6, grace=300s)\n2026-04-22T09:50:47.206212Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Active (controls reappeared, app=Firefox, id=6)\n2026-04-22T09:53:20.071320Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=47 elapsed=13.91473275s\n2026-04-22T09:53:20.074434Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 47 eligible frames\n2026-04-22T09:53:25.481039Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.9MB → 1.9MB (2.5x), 20 JPEGs deleted\n2026-04-22T09:53:31.514685Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 3.8MB → 1.3MB (3.0x), 25 JPEGs deleted\n2026-04-22T09:56:27.035122Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=6, grace=300s)\n2026-04-22T09:56:34.352390Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Active (controls reappeared, app=Firefox, id=6)\n2026-04-22T09:58:41.195094Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=51 elapsed=9.340191625s\n2026-04-22T09:58:41.195748Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 51 eligible frames\n2026-04-22T09:58:50.973307Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 3.6MB → 1.9MB (2.0x), 24 JPEGs deleted\n2026-04-22T09:58:55.976599Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 3.6MB → 0.7MB (5.0x), 25 JPEGs deleted\n2026-04-22T10:03:25.035638Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=6, grace=300s)\n2026-04-22T10:03:34.825175Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Active (controls reappeared, app=Firefox, id=6)\n2026-04-22T10:03:59.804173Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=30 elapsed=3.79059225s\n2026-04-22T10:03:59.804769Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 30 eligible frames\n2026-04-22T10:04:07.099407Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.9MB → 1.6MB (1.8x), 17 JPEGs deleted\n2026-04-22T10:04:09.251864Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.7MB → 0.3MB (5.2x), 11 JPEGs deleted\n2026-04-22T10:04:10.533704Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=6, grace=300s)\n2026-04-22T10:04:43.808519Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Active (controls reappeared, app=Firefox, id=6)\n2026-04-22T10:04:56.439936Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=6, grace=300s)\n2026-04-22T10:06:31.858072Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Active (controls reappeared, app=Firefox, id=6)\n2026-04-22T10:09:24.313437Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=26 elapsed=13.225098709s\n2026-04-22T10:09:24.316398Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 26 eligible frames\n2026-04-22T10:09:30.048930Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.7MB → 1.5MB (1.8x), 15 JPEGs deleted\n2026-04-22T10:09:32.094817Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 1.4MB → 0.3MB (5.3x), 9 JPEGs deleted\n2026-04-22T10:14:41.879312Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=29 elapsed=9.776819583s\n2026-04-22T10:14:41.881875Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 29 eligible frames\n2026-04-22T10:14:46.255765Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.7MB → 1.4MB (1.9x), 16 JPEGs deleted\n2026-04-22T10:14:47.845035Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.7MB → 0.4MB (3.7x), 11 JPEGs deleted\n2026-04-22T10:15:58.049606Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3225140536536520209, trigger=visual_change)\n2026-04-22T10:16:01.250980Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3225140536536520209, trigger=visual_change)\n2026-04-22T10:16:08.021292Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3225140536536520209, trigger=visual_change)\n2026-04-22T10:18:23.036830Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3225140536536520209, trigger=visual_change)\n2026-04-22T10:18:25.694340Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3225140536536520209, trigger=visual_change)\n2026-04-22T10:20:01.302255Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=26 elapsed=13.443118541s\n2026-04-22T10:20:01.308129Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 26 eligible frames\n2026-04-22T10:20:07.185095Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.2MB → 1.2MB (1.9x), 13 JPEGs deleted\n2026-04-22T10:20:09.181856Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.6MB → 0.4MB (4.6x), 11 JPEGs deleted\n2026-04-22T10:21:42.631708Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=6, grace=300s)\n2026-04-22T10:23:50.455162Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3671619337996960599, trigger=click)\n2026-04-22T10:25:20.440505Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=32 elapsed=9.592002791s\n2026-04-22T10:25:20.447053Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 32 eligible frames\n2026-04-22T10:25:26.728763Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 2.9MB → 1.3MB (2.2x), 19 JPEGs deleted\n2026-04-22T10:25:29.473763Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 2.0MB → 0.5MB (3.8x), 11 JPEGs deleted\n2026-04-22T10:26:45.951004Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Idle (timeout=300s, app=Firefox, id=6)\n2026-04-22T10:26:46.530346Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting ended (id=6)\n2026-04-22T10:27:17.369443Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2062784539481352883, trigger=click)\n2026-04-22T10:27:23.136885Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-65678043966680631, trigger=click)\n2026-04-22T10:27:23.510026Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-65678043966680631, trigger=click)\n2026-04-22T10:27:56.373647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3142145618711484947, trigger=click)\n2026-04-22T10:27:57.442225Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3142145618711484947, trigger=visual_change)\n2026-04-22T10:28:01.960662Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5828407217475560988, trigger=visual_change)\n2026-04-22T10:28:07.491134Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3142145618711484947, trigger=click)\n2026-04-22T10:28:07.825874Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3142145618711484947, trigger=click)\n2026-04-22T10:30:16.205480Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9197424015372835381, trigger=click)\n2026-04-22T10:30:17.536621Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9197424015372835381, trigger=click)\n2026-04-22T10:30:23.804809Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9197424015372835381, trigger=click)\n2026-04-22T10:30:24.227926Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9197424015372835381, trigger=click)\n2026-04-22T10:30:32.219093Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=26 elapsed=2.729861417s\n2026-04-22T10:30:32.219191Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 26 eligible frames\n2026-04-22T10:30:33.452158Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.2MB → 1.0MB (2.1x), 12 JPEGs deleted\n2026-04-22T10:30:34.655217Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.6MB → 0.6MB (4.6x), 12 JPEGs deleted\n2026-04-22T10:35:37.824110Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=42 elapsed=2.825256334s\n2026-04-22T10:35:37.824295Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 42 eligible frames\n2026-04-22T10:35:39.117243Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 3.6MB → 1.0MB (3.6x), 19 JPEGs deleted\n2026-04-22T10:35:40.660196Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 4.3MB → 1.5MB (2.9x), 21 JPEGs deleted\n2026-04-22T10:38:04.877259Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-65678043966680631, trigger=click)\n2026-04-22T10:38:07.705291Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-65678043966680631, trigger=click)\n2026-04-22T10:38:10.898974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-65678043966680631, trigger=click)\n2026-04-22T10:38:11.975537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-65678043966680631, trigger=click)\n2026-04-22T10:38:18.085335Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7761525857033094891, trigger=click)\n2026-04-22T10:38:24.306354Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7761525857033094891, trigger=visual_change)\n2026-04-22T10:39:35.930520Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=161997556014089017, trigger=click)\n2026-04-22T10:39:41.805633Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=161997556014089017, trigger=click)\n2026-04-22T10:39:42.138469Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=161997556014089017, trigger=click)\n2026-04-22T10:39:44.024008Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=161997556014089017, trigger=click)\n2026-04-22T10:39:44.814287Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=161997556014089017, trigger=click)\n2026-04-22T10:39:52.450542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=161997556014089017, trigger=visual_change)\n2026-04-22T10:40:00.574424Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=161997556014089017, trigger=click)\n2026-04-22T10:40:48.463266Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=71 elapsed=7.648351625s\n2026-04-22T10:40:48.463897Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 71 eligible frames\n2026-04-22T10:40:52.342098Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 33 frames, 6.8MB → 0.4MB (18.9x), 33 JPEGs deleted\n2026-04-22T10:40:57.964004Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 7.7MB → 2.7MB (2.8x), 36 JPEGs deleted\n2026-04-22T10:42:43.679554Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=235385460819764395, trigger=visual_change)\n2026-04-22T10:46:04.372787Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=37 elapsed=6.507600625s\n2026-04-22T10:46:04.373466Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 37 eligible frames\n2026-04-22T10:46:05.670180Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.8MB → 0.9MB (3.3x), 17 JPEGs deleted\n2026-04-22T10:46:07.423695Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 4.0MB → 1.2MB (3.3x), 18 JPEGs deleted\n2026-04-22T10:46:28.352534Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7979920242774959552, trigger=click)\n2026-04-22T10:46:50.281075Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7979920242774959552, trigger=click)\n2026-04-22T10:46:52.766064Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7979920242774959552, trigger=visual_change)\n2026-04-22T10:48:05.742909Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7979920242774959552, trigger=click)\n2026-04-22T10:48:06.094095Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7979920242774959552, trigger=click)\n2026-04-22T10:48:09.303230Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7979920242774959552, trigger=click)\n2026-04-22T10:48:09.673362Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7979920242774959552, trigger=click)\n2026-04-22T10:48:10.602234Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7979920242774959552, trigger=click)\n2026-04-22T10:48:10.980793Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7979920242774959552, trigger=click)\n2026-04-22T10:48:14.096855Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7979920242774959552, trigger=click)\n2026-04-22T10:48:14.445591Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7979920242774959552, trigger=click)\n2026-04-22T10:48:19.008864Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7979920242774959552, trigger=click)\n2026-04-22T10:48:19.360865Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7979920242774959552, trigger=click)\n2026-04-22T10:48:54.815098Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4247888003547861829, trigger=click)\n2026-04-22T10:49:10.177323Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6327679174418074924, trigger=click)\n2026-04-22T10:49:10.717996Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6327679174418074924, trigger=click)\n2026-04-22T10:49:13.470332Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6327679174418074924, trigger=click)\n2026-04-22T10:49:14.204551Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6327679174418074924, trigger=click)\n2026-04-22T10:49:36.549919Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4247888003547861829, trigger=click)\n2026-04-22T10:50:28.838023Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7164971126517405135, trigger=click)\n2026-04-22T10:51:15.863078Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=55 elapsed=8.34783475s\n2026-04-22T10:51:15.867188Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 55 eligible frames\n2026-04-22T10:51:18.108301Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 4.8MB → 0.5MB (9.6x), 23 JPEGs deleted\n2026-04-22T10:51:24.402239Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 5.8MB → 2.3MB (2.6x), 30 JPEGs deleted\n2026-04-22T10:54:05.429302Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7998995672879430036, trigger=visual_change)\n2026-04-22T10:56:24.620947Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 56 eligible frames\n2026-04-22T10:56:26.497992Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 4.8MB → 0.7MB (7.2x), 23 JPEGs deleted\n2026-04-22T10:56:29.140019Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7998995672879430036, trigger=click)\n2026-04-22T10:56:29.398291Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7998995672879430036, trigger=click)\n2026-04-22T10:56:29.755970Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 6.2MB → 3.2MB (1.9x), 31 JPEGs deleted\n2026-04-22T10:59:42.920990Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4913197316764586015, trigger=visual_change)\n2026-04-22T11:01:35.304946Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Firefox, signals=2)\n2026-04-22T11:01:37.612440Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=38 elapsed=7.845216667s\n2026-04-22T11:01:37.612575Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 38 eligible frames\n2026-04-22T11:01:38.912495Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.7MB → 0.4MB (8.7x), 18 JPEGs deleted\n2026-04-22T11:01:40.872030Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Firefox, signals=2, browser=true)\n2026-04-22T11:01:40.923371Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=7, app=Firefox, title=None)\n2026-04-22T11:01:41.075647Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 4.3MB → 1.3MB (3.2x), 18 JPEGs deleted\n2026-04-22T11:06:39.086079Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5337833728326299056, trigger=visual_change)\n2026-04-22T11:06:45.000177Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=20 elapsed=3.912066625s\n2026-04-22T11:06:45.000306Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 20 eligible frames\n2026-04-22T11:06:45.856461Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 1.9MB → 0.4MB (5.2x), 9 JPEGs deleted\n2026-04-22T11:06:46.835512Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 2.2MB → 0.4MB (5.2x), 9 JPEGs deleted\n2026-04-22T11:07:15.142764Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5337833728326299056, trigger=visual_change)\n2026-04-22T11:07:27.263827Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5337833728326299056, trigger=visual_change)\n2026-04-22T11:08:42.059221Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3303286484632371491, trigger=click)\n2026-04-22T11:08:51.466088Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3303286484632371491, trigger=click)\n2026-04-22T11:08:52.705589Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3303286484632371491, trigger=click)\n2026-04-22T11:08:54.862930Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3303286484632371491, trigger=visual_change)\n2026-04-22T11:08:57.767172Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3303286484632371491, trigger=visual_change)\n2026-04-22T11:09:04.442295Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3303286484632371491, trigger=visual_change)\n2026-04-22T11:09:23.549500Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3757537717350728121, trigger=visual_change)\n2026-04-22T11:09:26.647099Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3757537717350728121, trigger=visual_change)\n2026-04-22T11:09:27.617892Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3757537717350728121, trigger=visual_change)\n2026-04-22T11:09:37.846218Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3757537717350728121, trigger=click)\n2026-04-22T11:09:39.988136Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3757537717350728121, trigger=click)\n2026-04-22T11:09:45.701950Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3757537717350728121, trigger=visual_change)\n2026-04-22T11:09:51.479479Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4744117485268922271, trigger=click)\n2026-04-22T11:09:52.588279Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4744117485268922271, trigger=click)\n2026-04-22T11:10:37.947814Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3389527971234186058, trigger=click)\n2026-04-22T11:11:53.822254Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=92 elapsed=6.975139583s\n2026-04-22T11:11:53.822417Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 92 eligible frames\n2026-04-22T11:11:56.889877Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 42 frames, 8.3MB → 0.8MB (11.0x), 42 JPEGs deleted\n2026-04-22T11:12:02.546278Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 48 frames, 9.5MB → 3.9MB (2.4x), 48 JPEGs deleted\n2026-04-22T11:14:34.726971Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6209721463328613401, trigger=visual_change)\n2026-04-22T11:14:38.324225Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6209721463328613401, trigger=click)\n2026-04-22T11:14:38.645314Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6209721463328613401, trigger=click)\n2026-04-22T11:15:48.408130Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3290532042628205253, trigger=visual_change)\n2026-04-22T11:17:08.957655Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=29 elapsed=6.341871834s\n2026-04-22T11:17:08.958047Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 29 eligible frames\n2026-04-22T11:17:10.885629Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.5MB → 1.3MB (2.0x), 14 JPEGs deleted\n2026-04-22T11:17:12.612437Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.9MB → 1.0MB (3.0x), 13 JPEGs deleted\n2026-04-22T11:18:09.059454Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6788193544120196520, trigger=visual_change)\n2026-04-22T11:18:30.812176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6788193544120196520, trigger=visual_change)\n2026-04-22T11:20:13.991317Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=7, grace=300s)\n2026-04-22T11:20:30.900173Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Active (controls reappeared, app=Firefox, id=7)\n2026-04-22T11:21:47.313039Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6979569190562105843, trigger=visual_change)\n2026-04-22T11:22:14.058045Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=52 elapsed=1.433307042s\n2026-04-22T11:22:14.058201Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 52 eligible frames\n2026-04-22T11:22:17.430807Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 4.5MB → 2.6MB (1.7x), 27 JPEGs deleted\n2026-04-22T11:22:20.789307Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 5.1MB → 1.9MB (2.7x), 23 JPEGs deleted\n2026-04-22T11:24:11.055919Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6348043336790165851, trigger=visual_change)\n2026-04-22T11:27:24.744130Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=34 elapsed=3.94198725s\n2026-04-22T11:27:24.744695Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 34 eligible frames\n2026-04-22T11:27:26.116529Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.8MB → 1.2MB (1.5x), 13 JPEGs deleted\n2026-04-22T11:27:28.617165Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 4.4MB → 1.8MB (2.5x), 19 JPEGs deleted\n2026-04-22T11:32:29.223079Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 32 eligible frames\n2026-04-22T11:32:30.840428Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.5MB → 0.4MB (4.3x), 11 JPEGs deleted\n2026-04-22T11:32:33.246169Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 4.3MB → 2.0MB (2.1x), 19 JPEGs deleted\n2026-04-22T11:33:57.016394Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-268904747002154324, trigger=visual_change)\n2026-04-22T11:34:00.365029Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-268904747002154324, trigger=visual_change)\n2026-04-22T11:35:10.982104Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4296915293538414297, trigger=visual_change)\n2026-04-22T11:35:32.724876Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7285107730676902260, trigger=visual_change)\n2026-04-22T11:37:33.415720Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 27 eligible frames\n2026-04-22T11:37:34.371399Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.8MB → 0.2MB (8.6x), 13 JPEGs deleted\n2026-04-22T11:37:35.859845Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.7MB → 0.8MB (3.3x), 12 JPEGs deleted\n2026-04-22T11:37:51.362562Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8696186709523439969, trigger=visual_change)\n2026-04-22T11:38:34.243110Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1899945553455143507, trigger=visual_change)\n2026-04-22T11:38:59.179294Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1899945553455143507, trigger=visual_change)\n2026-04-22T11:39:48.236676Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5576803356774878841, trigger=visual_change)\n2026-04-22T11:40:22.065139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6640696446489616380, trigger=visual_change)\n2026-04-22T11:40:28.877584Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5960256550196817106, trigger=visual_change)\n2026-04-22T11:40:35.319368Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6640696446489616380, trigger=visual_change)\n2026-04-22T11:40:53.124904Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5960256550196817106, trigger=visual_change)\n2026-04-22T11:41:33.255320Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4989103865860242755, trigger=visual_change)\n2026-04-22T11:41:48.193900Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1488267386558342445, trigger=visual_change)\n2026-04-22T11:41:51.755705Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1488267386558342445, trigger=visual_change)\n2026-04-22T11:42:12.947590Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5684177415939916225, trigger=visual_change)\n2026-04-22T11:42:28.448251Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4939881454163746825, trigger=visual_change)\n2026-04-22T11:42:37.404128Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5184076061330305421, trigger=visual_change)\n2026-04-22T11:42:38.310197Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=32 elapsed=2.273565292s\n2026-04-22T11:42:38.310366Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 32 eligible frames\n2026-04-22T11:42:39.454621Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.8MB → 0.2MB (8.7x), 13 JPEGs deleted\n2026-04-22T11:42:41.159908Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 4.0MB → 1.5MB (2.7x), 17 JPEGs deleted\n2026-04-22T11:42:49.713146Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5184076061330305421, trigger=visual_change)\n2026-04-22T11:42:58.758597Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5184076061330305421, trigger=visual_change)\n2026-04-22T11:43:26.711882Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8888955688748119503, trigger=visual_change)\n2026-04-22T11:43:42.212402Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8888955688748119503, trigger=visual_change)\n2026-04-22T11:43:48.256895Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8888955688748119503, trigger=visual_change)\n2026-04-22T11:44:32.051314Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1061030761799504015, trigger=visual_change)\n2026-04-22T11:46:38.628742Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5309638870405538800, trigger=visual_change)\n2026-04-22T11:47:44.229671Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=24 elapsed=3.005999417s\n2026-04-22T11:47:44.230453Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 24 eligible frames\n2026-04-22T11:47:45.193130Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.4MB → 0.2MB (6.7x), 10 JPEGs deleted\n2026-04-22T11:47:46.669315Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.7MB → 1.0MB (2.6x), 12 JPEGs deleted\n2026-04-22T11:49:20.261509Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5041499190616781957, trigger=visual_change)\n2026-04-22T11:49:22.980492Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5041499190616781957, trigger=visual_change)\n2026-04-22T11:49:55.465856Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3947999597522241326, trigger=click)\n2026-04-22T11:52:35.652259Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6702837610765389296, trigger=visual_change)\n2026-04-22T11:52:53.489508Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=35 elapsed=6.809016916s\n2026-04-22T11:52:53.489713Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 35 eligible frames\n2026-04-22T11:52:54.357212Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.5MB → 0.2MB (7.2x), 11 JPEGs deleted\n2026-04-22T11:52:57.318472Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 5.1MB → 2.0MB (2.6x), 22 JPEGs deleted\n2026-04-22T11:53:26.811997Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1463508818426172948, trigger=click)\n2026-04-22T11:55:47.876156Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3551464550561190027, trigger=visual_change)","depth":4,"value":"2026-04-21T18:01:10.189484Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:11.594292Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=visual_change)\n2026-04-21T18:01:12.844254Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:13.095866Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:49.712611Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5610420548393517496, trigger=click)\n2026-04-21T18:01:49.878502Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5610420548393517496, trigger=click)\n2026-04-21T18:01:54.385999Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4075180225844497251, trigger=click)\n2026-04-21T18:02:03.320721Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:04.589973Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:06.402101Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:08.459207Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:17.915785Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:20.289378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:53.363091Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:59.854804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6485088808083200508, trigger=visual_change)\n2026-04-21T18:03:23.692602Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2923142241079919801, trigger=visual_change)\n2026-04-21T18:03:38.383745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:03:38.666324Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:03:40.611795Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:03:46.691879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:03:49.696169Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:03:58.796193Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:10.455866Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=65 elapsed=5.507644708s\n2026-04-21T18:04:10.456994Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 65 eligible frames\n2026-04-21T18:04:10.784720Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:12.979583Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 8.1MB → 3.1MB (2.6x), 36 JPEGs deleted\n2026-04-21T18:04:13.808201Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:15.311040Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 5.7MB → 2.1MB (2.7x), 27 JPEGs deleted\n2026-04-21T18:04:22.870405Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:25.858949Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:47.178867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:47.409147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:48.621959Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:48.823996Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:49.613197Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:49.840589Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:54.113636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:54.333250Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:56.158603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:56.345340Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:24.653256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2923142241079919801, trigger=visual_change)\n2026-04-21T18:05:27.506644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2923142241079919801, trigger=visual_change)\n2026-04-21T18:05:52.127185Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:52.385537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:54.464579Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:54.740600Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:06:01.884193Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:06:04.917243Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:06:15.788550Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:06:16.090123Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:06:17.179267Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:07:04.992532Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:08.003078Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:17.121489Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:17.302355Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:27.025619Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:29.771279Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:31.137970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:36.086848Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:36.306717Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:37.369851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:37.634865Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:38.805129Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:39.104738Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:40.060624Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:08:30.262801Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:08:45.022177Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8543293535466770858, trigger=click)\n2026-04-21T18:09:22.083704Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=74 elapsed=6.715953125s\n2026-04-21T18:09:22.084245Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 74 eligible frames\n2026-04-21T18:09:29.000281Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 43 frames, 9.6MB → 4.0MB (2.4x), 43 JPEGs deleted\n2026-04-21T18:09:33.280652Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 5.8MB → 1.9MB (3.1x), 29 JPEGs deleted\n2026-04-21T18:10:45.149443Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:11:39.313378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=745086096190842156, trigger=visual_change)\n2026-04-21T18:11:42.305757Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=745086096190842156, trigger=click)\n2026-04-21T18:11:46.031853Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=745086096190842156, trigger=click)\n2026-04-21T18:11:46.095029Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=745086096190842156, trigger=click)\n2026-04-21T18:14:41.494244Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=68 elapsed=8.195880125s\n2026-04-21T18:14:41.495608Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 68 eligible frames\n2026-04-21T18:14:48.613051Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 8.2MB → 3.4MB (2.5x), 36 JPEGs deleted\n2026-04-21T18:14:55.232583Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 5.5MB → 2.6MB (2.1x), 30 JPEGs deleted\n2026-04-21T18:19:19.967211Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2899189334056575250, trigger=click)\n2026-04-21T18:19:20.363463Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2899189334056575250, trigger=click)\n2026-04-21T18:19:59.298075Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=53 elapsed=4.000910792s\n2026-04-21T18:19:59.298190Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 53 eligible frames\n2026-04-21T18:20:02.044649Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 5.1MB → 3.5MB (1.5x), 26 JPEGs deleted\n2026-04-21T18:20:04.900441Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.7MB → 2.4MB (1.9x), 25 JPEGs deleted\n2026-04-21T18:20:23.742659Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:27.660528Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:34.896769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:35.220946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:40.886719Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:44.353070Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:47.046701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:48.003863Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:22:59.673927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2006451494811625283, trigger=click)\n2026-04-21T18:23:02.374154Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2006451494811625283, trigger=visual_change)\n2026-04-21T18:24:55.480969Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:24:55.713808Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:25:06.770660Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=745086096190842156, trigger=click)\n2026-04-21T18:25:10.431473Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=69 elapsed=5.123936292s\n2026-04-21T18:25:10.432665Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 69 eligible frames\n2026-04-21T18:25:12.020960Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.7MB → 0.4MB (10.8x), 24 JPEGs deleted\n2026-04-21T18:25:16.809118Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 43 frames, 7.5MB → 3.7MB (2.0x), 43 JPEGs deleted\n2026-04-21T18:27:20.032159Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-868697608726996264, trigger=click)\n2026-04-21T18:27:27.209581Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5262134208844209929, trigger=click)\n2026-04-21T18:30:23.556529Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=60 elapsed=6.732438875s\n2026-04-21T18:30:23.556849Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 60 eligible frames\n2026-04-21T18:30:25.836587Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 5.3MB → 0.4MB (12.5x), 27 JPEGs deleted\n2026-04-21T18:30:29.251794Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 5.4MB → 2.7MB (2.0x), 31 JPEGs deleted\n2026-04-21T18:34:42.383568Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1898158487632236470, trigger=click)\n2026-04-21T18:35:29.435858Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 84 eligible frames\n2026-04-21T18:35:31.507303Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 35 frames, 6.8MB → 0.3MB (21.3x), 35 JPEGs deleted\n2026-04-21T18:35:34.821718Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 47 frames, 8.8MB → 3.6MB (2.4x), 47 JPEGs deleted\n2026-04-21T18:37:57.032414Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3231955623713121874, trigger=click)\n2026-04-21T18:40:36.969380Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=205 elapsed=2.13815675s\n2026-04-21T18:40:36.969491Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 205 eligible frames\n2026-04-21T18:40:42.234686Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 90 frames, 17.5MB → 0.4MB (49.4x), 90 JPEGs deleted\n2026-04-21T18:40:48.296945Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 99 frames, 14.9MB → 5.7MB (2.6x), 99 JPEGs deleted\n2026-04-21T18:40:49.626073Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 1.8MB → 0.7MB (2.8x), 14 JPEGs deleted\n2026-04-21T18:41:16.858046Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5262134208844209929, trigger=click)\n2026-04-21T18:41:18.719527Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5262134208844209929, trigger=click)\n2026-04-21T18:41:20.650032Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6762752836329409782, trigger=click)\n2026-04-21T18:42:40.957654Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7949512313665335161, trigger=visual_change)\n2026-04-21T18:42:42.714242Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7949512313665335161, trigger=click)\n2026-04-21T18:44:54.833923Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7610506607449357182, trigger=click)\n2026-04-21T18:44:55.013934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7610506607449357182, trigger=click)\n2026-04-21T18:45:54.320505Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=145 elapsed=4.6846185s\n2026-04-21T18:45:54.321215Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 145 eligible frames\n2026-04-21T18:45:58.288822Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 64 frames, 12.5MB → 0.5MB (23.2x), 64 JPEGs deleted\n2026-04-21T18:46:02.956701Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 78 frames, 11.5MB → 3.3MB (3.5x), 78 JPEGs deleted\n2026-04-21T18:48:10.510139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4242937607805845066, trigger=click)\n2026-04-21T18:48:37.207446Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5152173808593872338, trigger=visual_change)\n2026-04-21T18:49:27.537635Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5244088376274895156, trigger=click)\n2026-04-21T18:49:33.724367Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5262134208844209929, trigger=click)\n2026-04-21T18:49:44.747739Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8298107678328947062, trigger=click)\n2026-04-21T18:50:45.073176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:50:45.427101Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:50:48.592273Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:50:49.492676Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:51:01.193858Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:51:05.888682Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=50 elapsed=2.917680375s\n2026-04-21T18:51:05.889014Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 50 eligible frames\n2026-04-21T18:51:06.016628Z WARN sqlx::query: summary=\"PRAGMA wal_checkpoint(TRUNCATE)\" db.statement=\"\" rows_affected=0 rows_returned=1 elapsed=2.157649083s\n2026-04-21T18:51:06.079565Z WARN sqlx::query: summary=\"BEGIN IMMEDIATE\" db.statement=\"\" rows_affected=1 rows_returned=0 elapsed=1.385088167s\n2026-04-21T18:51:07.829374Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 3.9MB → 0.4MB (11.0x), 20 JPEGs deleted\n2026-04-21T18:51:09.736739Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 5.0MB → 1.8MB (2.7x), 28 JPEGs deleted\n2026-04-21T18:51:22.360027Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2872311122120998867, trigger=click)\n2026-04-21T18:51:22.556670Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2872311122120998867, trigger=click)\n2026-04-21T18:51:38.819030Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7947558874471225541, trigger=click)\n2026-04-21T18:51:57.414061Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:51:59.012068Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:51:59.285931Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:01.767745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:02.028355Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:05.460776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=visual_change)\n2026-04-21T18:52:07.087479Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:07.314492Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:10.214922Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:10.537340Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:13.867159Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:14.152331Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:20.367281Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:26.127826Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1650348556715134220, trigger=click)\n2026-04-21T18:52:37.517700Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=visual_change)\n2026-04-21T18:52:42.329057Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:52:42.556779Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:52:44.386173Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:52:44.700511Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:52:45.210674Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:53:17.193415Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6757993062848436258, trigger=visual_change)\n2026-04-21T18:53:30.834059Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-228480120308125164, trigger=click)\n2026-04-21T18:53:38.030882Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7225077546439863627, trigger=click)\n2026-04-21T18:53:56.421537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6437320026671683644, trigger=click)\n2026-04-21T18:54:11.726528Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1667437155962702753, trigger=visual_change)\n2026-04-21T18:54:12.117525Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1667437155962702753, trigger=click)\n2026-04-21T18:54:18.659686Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:54:19.077258Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:54:29.973760Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:56:07.789768Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6757993062848436258, trigger=click)\n2026-04-21T18:56:08.791400Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6757993062848436258, trigger=click)\n2026-04-21T18:56:14.153615Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=80 elapsed=4.402661042s\n2026-04-21T18:56:14.153722Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 80 eligible frames\n2026-04-21T18:56:16.685912Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 6.2MB → 0.7MB (8.9x), 32 JPEGs deleted\n2026-04-21T18:56:21.263739Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 46 frames, 8.2MB → 2.8MB (2.9x), 46 JPEGs deleted\n2026-04-21T18:56:25.279306Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7906564822731502105, trigger=click)\n2026-04-21T18:56:33.734840Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8817586097865472869, trigger=click)\n2026-04-21T18:56:33.980908Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8817586097865472869, trigger=click)\n2026-04-21T18:56:35.972959Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8817586097865472869, trigger=click)\n2026-04-21T18:56:40.545963Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8587160525579598601, trigger=click)\n2026-04-21T18:56:41.913814Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8587160525579598601, trigger=visual_change)\n2026-04-21T18:56:45.516942Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1910160977377320534, trigger=click)\n2026-04-21T18:56:48.740431Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1910160977377320534, trigger=click)\n2026-04-21T18:56:50.439568Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1910160977377320534, trigger=click)\n2026-04-21T18:56:50.692218Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1910160977377320534, trigger=click)\n2026-04-21T18:57:12.321118Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:12.578681Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:24.290583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:24.543696Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:34.571768Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:36.227688Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:36.475151Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:42.338601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:42.559967Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:52.824809Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:53.145543Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:59.463043Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:59.717475Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:58:00.742137Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:58:01.061497Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:59:33.960291Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9203182216527106315, trigger=visual_change)\n2026-04-21T18:59:55.990167Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T18:59:59.103830Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=visual_change)\n2026-04-21T19:00:16.116927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:00:45.352689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:00:49.596644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:00:50.432181Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:07.992732Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:08.484066Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:10.538762Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:18.922398Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:28.361625Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=84 elapsed=6.9360265s\n2026-04-21T19:01:28.362070Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 84 eligible frames\n2026-04-21T19:01:32.723075Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 33 frames, 6.4MB → 0.3MB (19.7x), 33 JPEGs deleted\n2026-04-21T19:01:42.130490Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 7.8MB → 3.3MB (2.4x), 49 JPEGs deleted\n2026-04-21T19:02:09.991879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:12.577587Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:12.835924Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:15.635601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:18.720475Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:21.708351Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:22.061150Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:28.684303Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3995027160269120472, trigger=click)\n2026-04-21T19:02:41.434491Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:41.724904Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:43.112974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:43.410843Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:47.501924Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:47.761592Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:54.205542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:54.441326Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:56.601490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:56.921256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:03:15.988643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:03:16.236342Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:03:28.508616Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:00.462064Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:01.516168Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:01.856315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:03.246448Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:03.735029Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:09.818135Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:05:03.118616Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:03.393788Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:21.352722Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=visual_change)\n2026-04-21T19:05:43.751309Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:44.029500Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:45.626672Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:45.899754Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:48.206587Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:48.449043Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:06:22.834938Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7947558874471225541, trigger=click)\n2026-04-21T19:06:52.937779Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=114 elapsed=10.747243125s\n2026-04-21T19:06:52.938152Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 114 eligible frames\n2026-04-21T19:06:57.942457Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 45 frames, 8.8MB → 0.3MB (27.2x), 45 JPEGs deleted\n2026-04-21T19:07:05.853054Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 67 frames, 10.5MB → 5.2MB (2.0x), 67 JPEGs deleted\n2026-04-21T19:07:45.088797Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:07:48.052391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6936634780821666458, trigger=click)\n2026-04-21T19:08:59.593467Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5629560013928052473, trigger=click)\n2026-04-21T19:09:29.443711Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:42.998313Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8043719072324535154, trigger=visual_change)\n2026-04-21T19:09:50.759516Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:51.052544Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:51.892698Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:09:52.651776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:55.476431Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:55.898195Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:09:58.077337Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:10:01.103980Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:10:03.105423Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:10:03.448049Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:10:08.548130Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6051188157141408655, trigger=click)\n2026-04-21T19:12:12.330759Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=70 elapsed=6.458002417s\n2026-04-21T19:12:12.332545Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 70 eligible frames\n2026-04-21T19:12:14.243079Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 5.5MB → 0.3MB (17.2x), 28 JPEGs deleted\n2026-04-21T19:12:17.558334Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 40 frames, 7.4MB → 3.6MB (2.1x), 40 JPEGs deleted\n2026-04-21T19:16:51.045938Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1370319459641728815, trigger=click)\n2026-04-21T19:16:51.249993Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1370319459641728815, trigger=click)\n2026-04-21T19:17:21.603564Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=40 elapsed=4.036037791s\n2026-04-21T19:17:21.604357Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames\n2026-04-21T19:17:22.750174Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.5MB → 0.3MB (11.2x), 18 JPEGs deleted\n2026-04-21T19:17:24.332098Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.2MB → 1.3MB (3.2x), 20 JPEGs deleted\n2026-04-21T19:22:25.748871Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=49 elapsed=1.406664416s\n2026-04-21T19:22:25.749095Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 49 eligible frames\n2026-04-21T19:22:27.704722Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 3.7MB → 0.8MB (4.5x), 22 JPEGs deleted\n2026-04-21T19:22:29.535330Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.2MB → 1.7MB (3.0x), 25 JPEGs deleted\n2026-04-21T19:23:29.233846Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9146581369053060363, trigger=click)\n2026-04-21T19:23:31.995034Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9146581369053060363, trigger=visual_change)\n2026-04-21T19:23:37.213396Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9146581369053060363, trigger=visual_change)\n2026-04-21T19:23:40.288223Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9146581369053060363, trigger=visual_change)\n2026-04-21T19:23:44.197738Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9146581369053060363, trigger=visual_change)\n2026-04-21T19:23:45.228572Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9146581369053060363, trigger=click)\n2026-04-21T19:23:56.251033Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:24:06.580019Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=335 elapsed=1.644312167s\n2026-04-21T19:24:28.860436Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:24:32.226944Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:24:32.476075Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:03.902521Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:19.205245Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:25.098627Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:36.013866Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:37.355954Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:41.831265Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:46.247585Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:46.619106Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:48.284769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:48.534452Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:49.421920Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:49.752264Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:54.600720Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:55.072357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:26:19.446041Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:26:22.718352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:27:38.437704Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=28 elapsed=8.833634334s\n2026-04-21T19:27:38.438043Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames\n2026-04-21T19:27:39.763901Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 1.9MB → 0.3MB (7.6x), 12 JPEGs deleted\n2026-04-21T19:27:41.220664Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.1MB → 0.9MB (2.2x), 14 JPEGs deleted\n2026-04-21T19:28:22.708791Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:28:23.849452Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:28:24.119301Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:14.209016Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:16.415693Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:21.726815Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:23.890645Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:24.239058Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:29.790006Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:33.098495Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:38.065869Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:44.089028Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:47.272131Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:53.977951Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:57.274496Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:30:11.986797Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:30:13.530455Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:30:28.332451Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:30:37.204947Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:26.255340Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:26.592983Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:30.448912Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:35.747969Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:37.783849Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:38.061197Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:43.216365Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:43.885407Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:46.680745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:52.971450Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:58.468469Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:58.624833Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:03.362210Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:12.706102Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:15.172982Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:23.020508Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:23.199312Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:25.387097Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:25.764201Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:30.336940Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:30.810971Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:39.812820Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:42.409145Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:44.386326Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:48.880648Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=47 elapsed=7.499136792s\n2026-04-21T19:32:48.880949Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 47 eligible frames\n2026-04-21T19:32:51.249469Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.2MB → 0.3MB (8.9x), 14 JPEGs deleted\n2026-04-21T19:32:55.969183Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 3.8MB → 1.9MB (2.0x), 31 JPEGs deleted\n2026-04-21T19:32:59.734686Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:33:00.098925Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:33:05.951997Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:34:07.213420Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:34:09.264586Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:34:16.527425Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:34:19.513647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:34:32.889780Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1128757073350665914, trigger=click)\n2026-04-21T19:34:56.078651Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4993766851008728916, trigger=click)\n2026-04-21T19:34:56.296542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4993766851008728916, trigger=click)\n2026-04-21T19:35:02.344819Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:35:05.237721Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:35:07.518599Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:35:09.938481Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:35:10.408295Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:35:26.864482Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:35:33.001733Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:35:36.479802Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:36:20.043835Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4526067242477956280, trigger=visual_change)\n2026-04-21T19:36:47.029303Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4526067242477956280, trigger=visual_change)\n2026-04-21T19:36:57.077150Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:37:33.348160Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:37:33.742029Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:37:36.579915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:37:39.754974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:38:04.951324Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=101 elapsed=8.9666755s\n2026-04-21T19:38:04.953527Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 101 eligible frames\n2026-04-21T19:38:13.751166Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 38 frames, 8.0MB → 3.5MB (2.3x), 38 JPEGs deleted\n2026-04-21T19:38:29.817220Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 61 frames, 9.7MB → 5.2MB (1.9x), 61 JPEGs deleted\n2026-04-21T19:40:34.255930Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=342 elapsed=1.0699005s\n2026-04-21T19:42:32.961192Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:42:33.305572Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:42:40.179851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=visual_change)\n2026-04-21T19:42:41.405781Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:42:41.720845Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:43:02.251464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=visual_change)\n2026-04-21T19:43:11.622532Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:43:36.525920Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=85 elapsed=6.634896167s\n2026-04-21T19:43:36.526454Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 85 eligible frames\n2026-04-21T19:43:39.459999Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 8.0MB → 3.4MB (2.3x), 36 JPEGs deleted\n2026-04-21T19:43:43.505640Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 47 frames, 7.9MB → 3.9MB (2.0x), 47 JPEGs deleted\n2026-04-21T19:44:05.999282Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=visual_change)\n2026-04-21T19:45:08.065595Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2712812971723964739, trigger=click)\n2026-04-21T19:45:46.266141Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:48:51.569666Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=64 elapsed=8.039671791s\n2026-04-21T19:48:51.570457Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 64 eligible frames\n2026-04-21T19:48:58.738540Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 7.2MB → 2.4MB (2.9x), 32 JPEGs deleted\n2026-04-21T19:49:05.383193Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 5.9MB → 2.5MB (2.4x), 30 JPEGs deleted\n2026-04-21T19:51:14.064760Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2572721248839450970, trigger=visual_change)\n2026-04-21T19:54:08.518415Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=346 elapsed=1.026887875s\n2026-04-21T19:54:12.872902Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=61 elapsed=7.44778675s\n2026-04-21T19:54:12.873164Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 61 eligible frames\n2026-04-21T19:54:16.348511Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.6MB → 1.4MB (4.1x), 25 JPEGs deleted\n2026-04-21T19:54:24.102233Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 34 frames, 6.2MB → 3.6MB (1.7x), 34 JPEGs deleted\n2026-04-21T19:59:32.063421Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=346 elapsed=1.165878958s\n2026-04-21T19:59:32.818884Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=31 elapsed=8.661332917s\n2026-04-21T19:59:32.819629Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 31 eligible frames\n2026-04-21T19:59:35.810838Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.9MB → 0.7MB (3.9x), 16 JPEGs deleted\n2026-04-21T19:59:38.924596Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.9MB → 1.5MB (2.0x), 13 JPEGs deleted\n2026-04-21T20:01:55.709776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1382976804061127003, trigger=click)\n2026-04-21T20:04:27.572999Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7658911549706194190, trigger=click)\n2026-04-21T20:04:46.630063Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=57 elapsed=7.045125334s\n2026-04-21T20:04:46.631081Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 57 eligible frames\n2026-04-21T20:04:49.684796Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 2.5MB → 0.8MB (3.2x), 23 JPEGs deleted\n2026-04-21T20:04:56.073590Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 5.7MB → 3.1MB (1.8x), 32 JPEGs deleted\n2026-04-21T20:05:04.129844Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-446124678591544690, trigger=click)\n2026-04-21T20:05:04.425723Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-446124678591544690, trigger=click)\n2026-04-21T20:09:59.238939Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=30 elapsed=2.058497125s\n2026-04-21T20:09:59.239075Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 30 eligible frames\n2026-04-21T20:10:00.874153Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.3MB → 0.2MB (5.8x), 13 JPEGs deleted\n2026-04-21T20:10:03.326064Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 1.8MB → 0.6MB (2.8x), 15 JPEGs deleted\n2026-04-21T20:15:07.129653Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=58 elapsed=3.763973459s\n2026-04-21T20:15:07.130598Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 58 eligible frames\n2026-04-21T20:15:09.088400Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 3.7MB → 0.6MB (5.9x), 26 JPEGs deleted\n2026-04-21T20:15:10.858868Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 3.9MB → 1.0MB (3.9x), 30 JPEGs deleted\n2026-04-21T20:18:21.110736Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=354 elapsed=1.169721666s\nzsh: terminated npx screenpipe@latest record --disable-audio --ignored-windows \"Boosteroid\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-start\ndetected hardware tier: Mid\nwarning: parakeet is not supported on this platform, using whisper-tiny instead\n2026-04-22T09:15:19.880360Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store\nchecking permissions...\n screen recording: ok\n accessibility: ok\n2026-04-22T09:15:19.951248Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6\n2026-04-22T09:15:20.675958Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor\n2026-04-22T09:15:20.677447Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)\n2026-04-22T09:15:20.677800Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)\n2026-04-22T09:15:20.709542Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true\n2026-04-22T09:15:20.709596Z INFO screenpipe: meeting detector enabled — independent of transcription mode\n2026-04-22T09:15:20.709849Z INFO screenpipe: API server listening on 127.0.0.1:3030 (localhost only)\n2026-04-22T09:15:20.709774Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)\n2026-04-22T09:15:20.709806Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)\n2026-04-22T09:15:20.709863Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key\n2026-04-22T09:15:20.709908Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager\n2026-04-22T09:15:20.721517Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-22T09:15:20.725781Z INFO screenpipe_core::pipes: loaded pipe: day-recap\n2026-04-22T09:15:20.725991Z INFO screenpipe_core::pipes: loaded pipe: standup-update\n2026-04-22T09:15:20.726387Z INFO screenpipe_core::pipes: loaded pipe: ai-habits\n2026-04-22T09:15:20.726548Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown\n2026-04-22T09:15:20.726690Z INFO screenpipe_core::pipes: loaded pipe: video-export\n2026-04-22T09:15:20.727224Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary\n2026-04-22T09:15:20.727242Z INFO screenpipe_core::pipes: loaded 6 pipes from \"/Users/lukas/.screenpipe/pipes\"\n\n\n\n _ \n __________________ ___ ____ ____ (_____ ___ \n / ___/ ___/ ___/ _ \\/ _ \\/ __ \\ / __ \\/ / __ \\/ _ \\\n (__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/\n/____/\\___/_/ \\___/\\___/_/ /_/ / .___/_/ .___/\\___/ \n /_/ /_/ \n\n\n\npower AI by everything you've seen, said or heard\nopen source | runs locally | developer friendly\n\n\n┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ true │\n│ vision disabled │ false │\n│ pause on DRM content │ false │\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n│ ignored windows │ [\"Boosteroid\"] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n2026-04-22T09:15:20.728614Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n│ api auth │ enabled │\n2026-04-22T09:15:20.742172Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n│ encrypt secrets │ disabled │\n│ retention days │ 14 │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ id: 1 │\n│ │ id: 2 │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ disabled │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-22T09:15:20.742788Z INFO screenpipe: starting UI event capture\n2026-04-22T09:15:20.755824Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-22T09:15:20.769629Z INFO screenpipe_engine::ui_recorder: UI recording session started: e7729066-2ab4-4bf0-9d48-0c9790a4ee79\n2026-04-22T09:15:20.769680Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-22T09:15:20.769789Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-21 06:15:20.769785 UTC to 2026-04-22 06:15:20.769785 UTC)\n2026-04-22T09:15:20.770644Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-22T09:15:20.778181Z INFO screenpipe_engine::server: Server listening on 127.0.0.1:3030\n2026-04-22T09:15:20.789960Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-22T09:15:21.591614Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-22T09:15:21.591646Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-22T09:15:21.591751Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-22T09:15:21.919088Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-22T09:15:21.919141Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-22T09:15:21.919158Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)\n2026-04-22T09:15:21.919163Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-22T09:15:21.919167Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)\n2026-04-22T09:15:23.315305Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-22T09:15:23.445619Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=68471, dur=74ms\n2026-04-22T09:15:23.697846Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-22T09:15:23.856559Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=68472, dur=115ms\n2026-04-22T09:15:23.858032Z INFO sck_rs::stream_manager: invalidated persistent stream for display 2\n2026-04-22T09:15:25.542035Z WARN sqlx::query: summary=\"SELECT f.id, f.timestamp, f.offset_index, …\" db.statement=\"\\n\\nSELECT\\n f.id,\\n f.timestamp,\\n f.offset_index,\\n COALESCE(\\n SUBSTR(f.full_text, 1, 200),\\n SUBSTR(f.accessibility_text, 1, 200),\\n (\\n SELECT\\n SUBSTR(ot.text, 1, 200)\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as text,\\n COALESCE(\\n f.app_name,\\n (\\n SELECT\\n ot.app_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as app_name,\\n COALESCE(\\n f.window_name,\\n (\\n SELECT\\n ot.window_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as window_name,\\n COALESCE(vc.device_name, f.device_name) as screen_device,\\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\\n COALESCE(vc.fps, 0.033) as chunk_fps,\\n f.browser_url,\\n f.machine_id\\nFROM\\n frames f\\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\\nWHERE\\n f.timestamp >= ?1\\n AND f.timestamp <= ?2\\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\\nORDER BY\\n f.timestamp DESC,\\n f.offset_index DESC\\nLIMIT\\n 10000\\n\" rows_affected=0 rows_returned=7744 elapsed=4.771776083s\n2026-04-22T09:15:25.568771Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 7744 frame entries, coverage from 2026-04-21 06:15:20.769785 UTC\n2026-04-22T09:15:32.415224Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-22T09:15:41.941919Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=357539612469251678, trigger=click)\n2026-04-22T09:15:43.170779Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=357539612469251678, trigger=visual_change)\n2026-04-22T09:16:22.411707Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5959696770819639860, trigger=visual_change)\n2026-04-22T09:16:26.239896Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=62 elapsed=5.530699458s\n2026-04-22T09:16:26.240084Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 62 eligible frames\n2026-04-22T09:16:28.044386Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 4.7MB → 0.2MB (19.7x), 30 JPEGs deleted\n2026-04-22T09:16:30.086623Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 4.3MB → 0.1MB (30.2x), 30 JPEGs deleted\n2026-04-22T09:16:31.962480Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5959696770819639860, trigger=visual_change)\n2026-04-22T09:19:29.939632Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7894432383542294550, trigger=click)\n2026-04-22T09:19:30.235489Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7894432383542294550, trigger=click)\n2026-04-22T09:19:35.764366Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7894432383542294550, trigger=click)\n2026-04-22T09:19:48.049836Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6938285907753314842, trigger=visual_change)\n2026-04-22T09:21:36.974672Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=2 elapsed=6.892004583s\n2026-04-22T09:21:36.974869Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-22T09:21:46.781688Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2525045998934122930, trigger=visual_change)\n2026-04-22T09:24:11.763955Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=889075772057942202, trigger=visual_change)\n2026-04-22T09:24:12.162666Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=889075772057942202, trigger=click)\n2026-04-22T09:24:14.800709Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=889075772057942202, trigger=click)\n2026-04-22T09:24:15.299587Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=889075772057942202, trigger=click)\n2026-04-22T09:24:17.445141Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=889075772057942202, trigger=click)\n2026-04-22T09:24:17.822587Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=889075772057942202, trigger=click)\n2026-04-22T09:24:24.786651Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1127753064753596652, trigger=click)\n2026-04-22T09:24:25.324058Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1127753064753596652, trigger=click)\n2026-04-22T09:24:29.098325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1127753064753596652, trigger=click)\n2026-04-22T09:24:50.423753Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7779472685250441843, trigger=click)\n2026-04-22T09:24:50.901024Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7779472685250441843, trigger=click)\n2026-04-22T09:25:10.616667Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5405130988905008112, trigger=click)\n2026-04-22T09:25:11.046676Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5405130988905008112, trigger=click)\n2026-04-22T09:25:20.763321Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5405130988905008112, trigger=click)\n2026-04-22T09:25:20.997547Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5405130988905008112, trigger=click)\n2026-04-22T09:25:25.954173Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5405130988905008112, trigger=click)\n2026-04-22T09:25:32.989805Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8138374647045057371, trigger=click)\n2026-04-22T09:25:36.003685Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8138374647045057371, trigger=click)\n2026-04-22T09:25:37.335354Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8138374647045057371, trigger=click)\n2026-04-22T09:25:37.578287Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8138374647045057371, trigger=click)\n2026-04-22T09:25:40.438000Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8138374647045057371, trigger=visual_change)\n2026-04-22T09:25:43.846661Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8138374647045057371, trigger=click)\n2026-04-22T09:25:44.062879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8138374647045057371, trigger=click)\n2026-04-22T09:25:51.479216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8138374647045057371, trigger=click)\n2026-04-22T09:25:53.247917Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8138374647045057371, trigger=click)\n2026-04-22T09:25:58.183431Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8138374647045057371, trigger=click)\n2026-04-22T09:25:58.469469Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8138374647045057371, trigger=click)\n2026-04-22T09:26:09.273910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5405130988905008112, trigger=click)\n2026-04-22T09:26:09.561856Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5405130988905008112, trigger=click)\n2026-04-22T09:26:10.819842Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5405130988905008112, trigger=click)\n2026-04-22T09:26:11.249618Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5405130988905008112, trigger=click)\n2026-04-22T09:26:40.577718Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2354791383483955560, trigger=visual_change)\n2026-04-22T09:26:44.799765Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=23 elapsed=7.81096125s\n2026-04-22T09:26:44.799978Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 23 eligible frames\n2026-04-22T09:26:46.688043Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 2.1MB → 1.2MB (1.7x), 8 JPEGs deleted\n2026-04-22T09:26:50.641966Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 3.0MB → 1.3MB (2.3x), 15 JPEGs deleted\n2026-04-22T09:31:51.652070Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 89 eligible frames\n2026-04-22T09:31:54.101939Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 33 frames, 9.4MB → 1.9MB (5.0x), 33 JPEGs deleted\n2026-04-22T09:31:59.304222Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 54 frames, 9.7MB → 5.0MB (1.9x), 54 JPEGs deleted\n2026-04-22T09:32:12.008662Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3624805284232944242, trigger=click)\n2026-04-22T09:32:35.967540Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3062750094588465259, trigger=visual_change)\n2026-04-22T09:33:06.818107Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3062750094588465259, trigger=visual_change)\n2026-04-22T09:33:14.632314Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2863574885747713422, trigger=click)\n2026-04-22T09:33:14.857523Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2863574885747713422, trigger=click)\n2026-04-22T09:34:14.788009Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2354791383483955560, trigger=visual_change)\n2026-04-22T09:34:30.609746Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2354791383483955560, trigger=click)\n2026-04-22T09:34:34.105401Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2354791383483955560, trigger=visual_change)\n2026-04-22T09:34:37.485108Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2354791383483955560, trigger=click)\n2026-04-22T09:35:54.598003Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-625214687390699270, trigger=visual_change)\n2026-04-22T09:36:09.104712Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2863574885747713422, trigger=click)\n2026-04-22T09:36:37.324238Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6459141415085539989, trigger=visual_change)\n2026-04-22T09:36:40.542880Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6459141415085539989, trigger=visual_change)\n2026-04-22T09:36:43.137729Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6459141415085539989, trigger=click)\n2026-04-22T09:36:44.229166Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6459141415085539989, trigger=click)\n2026-04-22T09:36:46.968613Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6459141415085539989, trigger=click)\n2026-04-22T09:36:52.078332Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6459141415085539989, trigger=visual_change)\n2026-04-22T09:36:54.127864Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6459141415085539989, trigger=click)\n2026-04-22T09:37:03.963789Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=87 elapsed=4.663980917s\n2026-04-22T09:37:03.964310Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 87 eligible frames\n2026-04-22T09:37:05.944118Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 7.1MB → 0.4MB (19.3x), 32 JPEGs deleted\n2026-04-22T09:37:09.865815Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 53 frames, 9.7MB → 4.1MB (2.4x), 53 JPEGs deleted\n2026-04-22T09:37:13.714905Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3548022877361860948, trigger=click)\n2026-04-22T09:38:12.283595Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3127667118792163607, trigger=click)\n2026-04-22T09:38:31.114793Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3127667118792163607, trigger=click)\n2026-04-22T09:38:31.809587Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3127667118792163607, trigger=click)\n2026-04-22T09:38:33.720499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3127667118792163607, trigger=visual_change)\n2026-04-22T09:38:39.562457Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3127667118792163607, trigger=click)\n2026-04-22T09:38:39.953380Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3127667118792163607, trigger=click)\n2026-04-22T09:42:22.290722Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=36 elapsed=11.598434833s\n2026-04-22T09:42:22.296038Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 36 eligible frames\n2026-04-22T09:42:29.157685Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 3.6MB → 0.6MB (6.0x), 16 JPEGs deleted\n2026-04-22T09:42:32.150217Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.0MB → 1.1MB (2.7x), 18 JPEGs deleted\n2026-04-22T09:45:17.750319Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Firefox, signals=2)\n2026-04-22T09:45:27.669631Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Firefox, signals=2, browser=true)\n2026-04-22T09:45:27.694051Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=6, app=Firefox, title=None)\n2026-04-22T09:47:47.881351Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=73 elapsed=15.717987375s\n2026-04-22T09:47:47.895439Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 73 eligible frames\n2026-04-22T09:47:55.588148Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 7.0MB → 2.6MB (2.7x), 36 JPEGs deleted\n2026-04-22T09:48:06.150273Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 35 frames, 5.8MB → 2.7MB (2.2x), 35 JPEGs deleted\n2026-04-22T09:50:08.042310Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6608914011836842734, trigger=click)\n2026-04-22T09:50:38.385760Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=6, grace=300s)\n2026-04-22T09:50:47.206212Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Active (controls reappeared, app=Firefox, id=6)\n2026-04-22T09:53:20.071320Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=47 elapsed=13.91473275s\n2026-04-22T09:53:20.074434Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 47 eligible frames\n2026-04-22T09:53:25.481039Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.9MB → 1.9MB (2.5x), 20 JPEGs deleted\n2026-04-22T09:53:31.514685Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 3.8MB → 1.3MB (3.0x), 25 JPEGs deleted\n2026-04-22T09:56:27.035122Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=6, grace=300s)\n2026-04-22T09:56:34.352390Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Active (controls reappeared, app=Firefox, id=6)\n2026-04-22T09:58:41.195094Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=51 elapsed=9.340191625s\n2026-04-22T09:58:41.195748Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 51 eligible frames\n2026-04-22T09:58:50.973307Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 3.6MB → 1.9MB (2.0x), 24 JPEGs deleted\n2026-04-22T09:58:55.976599Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 3.6MB → 0.7MB (5.0x), 25 JPEGs deleted\n2026-04-22T10:03:25.035638Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=6, grace=300s)\n2026-04-22T10:03:34.825175Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Active (controls reappeared, app=Firefox, id=6)\n2026-04-22T10:03:59.804173Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=30 elapsed=3.79059225s\n2026-04-22T10:03:59.804769Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 30 eligible frames\n2026-04-22T10:04:07.099407Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.9MB → 1.6MB (1.8x), 17 JPEGs deleted\n2026-04-22T10:04:09.251864Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.7MB → 0.3MB (5.2x), 11 JPEGs deleted\n2026-04-22T10:04:10.533704Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=6, grace=300s)\n2026-04-22T10:04:43.808519Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Active (controls reappeared, app=Firefox, id=6)\n2026-04-22T10:04:56.439936Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=6, grace=300s)\n2026-04-22T10:06:31.858072Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Active (controls reappeared, app=Firefox, id=6)\n2026-04-22T10:09:24.313437Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=26 elapsed=13.225098709s\n2026-04-22T10:09:24.316398Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 26 eligible frames\n2026-04-22T10:09:30.048930Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.7MB → 1.5MB (1.8x), 15 JPEGs deleted\n2026-04-22T10:09:32.094817Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 1.4MB → 0.3MB (5.3x), 9 JPEGs deleted\n2026-04-22T10:14:41.879312Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=29 elapsed=9.776819583s\n2026-04-22T10:14:41.881875Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 29 eligible frames\n2026-04-22T10:14:46.255765Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.7MB → 1.4MB (1.9x), 16 JPEGs deleted\n2026-04-22T10:14:47.845035Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.7MB → 0.4MB (3.7x), 11 JPEGs deleted\n2026-04-22T10:15:58.049606Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3225140536536520209, trigger=visual_change)\n2026-04-22T10:16:01.250980Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3225140536536520209, trigger=visual_change)\n2026-04-22T10:16:08.021292Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3225140536536520209, trigger=visual_change)\n2026-04-22T10:18:23.036830Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3225140536536520209, trigger=visual_change)\n2026-04-22T10:18:25.694340Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3225140536536520209, trigger=visual_change)\n2026-04-22T10:20:01.302255Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=26 elapsed=13.443118541s\n2026-04-22T10:20:01.308129Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 26 eligible frames\n2026-04-22T10:20:07.185095Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.2MB → 1.2MB (1.9x), 13 JPEGs deleted\n2026-04-22T10:20:09.181856Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.6MB → 0.4MB (4.6x), 11 JPEGs deleted\n2026-04-22T10:21:42.631708Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=6, grace=300s)\n2026-04-22T10:23:50.455162Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3671619337996960599, trigger=click)\n2026-04-22T10:25:20.440505Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=32 elapsed=9.592002791s\n2026-04-22T10:25:20.447053Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 32 eligible frames\n2026-04-22T10:25:26.728763Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 2.9MB → 1.3MB (2.2x), 19 JPEGs deleted\n2026-04-22T10:25:29.473763Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 2.0MB → 0.5MB (3.8x), 11 JPEGs deleted\n2026-04-22T10:26:45.951004Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Idle (timeout=300s, app=Firefox, id=6)\n2026-04-22T10:26:46.530346Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting ended (id=6)\n2026-04-22T10:27:17.369443Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2062784539481352883, trigger=click)\n2026-04-22T10:27:23.136885Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-65678043966680631, trigger=click)\n2026-04-22T10:27:23.510026Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-65678043966680631, trigger=click)\n2026-04-22T10:27:56.373647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3142145618711484947, trigger=click)\n2026-04-22T10:27:57.442225Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3142145618711484947, trigger=visual_change)\n2026-04-22T10:28:01.960662Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5828407217475560988, trigger=visual_change)\n2026-04-22T10:28:07.491134Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3142145618711484947, trigger=click)\n2026-04-22T10:28:07.825874Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3142145618711484947, trigger=click)\n2026-04-22T10:30:16.205480Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9197424015372835381, trigger=click)\n2026-04-22T10:30:17.536621Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9197424015372835381, trigger=click)\n2026-04-22T10:30:23.804809Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9197424015372835381, trigger=click)\n2026-04-22T10:30:24.227926Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9197424015372835381, trigger=click)\n2026-04-22T10:30:32.219093Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=26 elapsed=2.729861417s\n2026-04-22T10:30:32.219191Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 26 eligible frames\n2026-04-22T10:30:33.452158Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.2MB → 1.0MB (2.1x), 12 JPEGs deleted\n2026-04-22T10:30:34.655217Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.6MB → 0.6MB (4.6x), 12 JPEGs deleted\n2026-04-22T10:35:37.824110Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=42 elapsed=2.825256334s\n2026-04-22T10:35:37.824295Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 42 eligible frames\n2026-04-22T10:35:39.117243Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 3.6MB → 1.0MB (3.6x), 19 JPEGs deleted\n2026-04-22T10:35:40.660196Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 4.3MB → 1.5MB (2.9x), 21 JPEGs deleted\n2026-04-22T10:38:04.877259Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-65678043966680631, trigger=click)\n2026-04-22T10:38:07.705291Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-65678043966680631, trigger=click)\n2026-04-22T10:38:10.898974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-65678043966680631, trigger=click)\n2026-04-22T10:38:11.975537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-65678043966680631, trigger=click)\n2026-04-22T10:38:18.085335Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7761525857033094891, trigger=click)\n2026-04-22T10:38:24.306354Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7761525857033094891, trigger=visual_change)\n2026-04-22T10:39:35.930520Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=161997556014089017, trigger=click)\n2026-04-22T10:39:41.805633Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=161997556014089017, trigger=click)\n2026-04-22T10:39:42.138469Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=161997556014089017, trigger=click)\n2026-04-22T10:39:44.024008Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=161997556014089017, trigger=click)\n2026-04-22T10:39:44.814287Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=161997556014089017, trigger=click)\n2026-04-22T10:39:52.450542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=161997556014089017, trigger=visual_change)\n2026-04-22T10:40:00.574424Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=161997556014089017, trigger=click)\n2026-04-22T10:40:48.463266Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=71 elapsed=7.648351625s\n2026-04-22T10:40:48.463897Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 71 eligible frames\n2026-04-22T10:40:52.342098Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 33 frames, 6.8MB → 0.4MB (18.9x), 33 JPEGs deleted\n2026-04-22T10:40:57.964004Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 7.7MB → 2.7MB (2.8x), 36 JPEGs deleted\n2026-04-22T10:42:43.679554Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=235385460819764395, trigger=visual_change)\n2026-04-22T10:46:04.372787Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=37 elapsed=6.507600625s\n2026-04-22T10:46:04.373466Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 37 eligible frames\n2026-04-22T10:46:05.670180Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.8MB → 0.9MB (3.3x), 17 JPEGs deleted\n2026-04-22T10:46:07.423695Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 4.0MB → 1.2MB (3.3x), 18 JPEGs deleted\n2026-04-22T10:46:28.352534Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7979920242774959552, trigger=click)\n2026-04-22T10:46:50.281075Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7979920242774959552, trigger=click)\n2026-04-22T10:46:52.766064Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7979920242774959552, trigger=visual_change)\n2026-04-22T10:48:05.742909Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7979920242774959552, trigger=click)\n2026-04-22T10:48:06.094095Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7979920242774959552, trigger=click)\n2026-04-22T10:48:09.303230Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7979920242774959552, trigger=click)\n2026-04-22T10:48:09.673362Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7979920242774959552, trigger=click)\n2026-04-22T10:48:10.602234Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7979920242774959552, trigger=click)\n2026-04-22T10:48:10.980793Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7979920242774959552, trigger=click)\n2026-04-22T10:48:14.096855Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7979920242774959552, trigger=click)\n2026-04-22T10:48:14.445591Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7979920242774959552, trigger=click)\n2026-04-22T10:48:19.008864Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7979920242774959552, trigger=click)\n2026-04-22T10:48:19.360865Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7979920242774959552, trigger=click)\n2026-04-22T10:48:54.815098Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4247888003547861829, trigger=click)\n2026-04-22T10:49:10.177323Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6327679174418074924, trigger=click)\n2026-04-22T10:49:10.717996Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6327679174418074924, trigger=click)\n2026-04-22T10:49:13.470332Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6327679174418074924, trigger=click)\n2026-04-22T10:49:14.204551Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6327679174418074924, trigger=click)\n2026-04-22T10:49:36.549919Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4247888003547861829, trigger=click)\n2026-04-22T10:50:28.838023Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7164971126517405135, trigger=click)\n2026-04-22T10:51:15.863078Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=55 elapsed=8.34783475s\n2026-04-22T10:51:15.867188Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 55 eligible frames\n2026-04-22T10:51:18.108301Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 4.8MB → 0.5MB (9.6x), 23 JPEGs deleted\n2026-04-22T10:51:24.402239Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 5.8MB → 2.3MB (2.6x), 30 JPEGs deleted\n2026-04-22T10:54:05.429302Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7998995672879430036, trigger=visual_change)\n2026-04-22T10:56:24.620947Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 56 eligible frames\n2026-04-22T10:56:26.497992Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 4.8MB → 0.7MB (7.2x), 23 JPEGs deleted\n2026-04-22T10:56:29.140019Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7998995672879430036, trigger=click)\n2026-04-22T10:56:29.398291Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7998995672879430036, trigger=click)\n2026-04-22T10:56:29.755970Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 6.2MB → 3.2MB (1.9x), 31 JPEGs deleted\n2026-04-22T10:59:42.920990Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4913197316764586015, trigger=visual_change)\n2026-04-22T11:01:35.304946Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Firefox, signals=2)\n2026-04-22T11:01:37.612440Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=38 elapsed=7.845216667s\n2026-04-22T11:01:37.612575Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 38 eligible frames\n2026-04-22T11:01:38.912495Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.7MB → 0.4MB (8.7x), 18 JPEGs deleted\n2026-04-22T11:01:40.872030Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Firefox, signals=2, browser=true)\n2026-04-22T11:01:40.923371Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=7, app=Firefox, title=None)\n2026-04-22T11:01:41.075647Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 4.3MB → 1.3MB (3.2x), 18 JPEGs deleted\n2026-04-22T11:06:39.086079Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5337833728326299056, trigger=visual_change)\n2026-04-22T11:06:45.000177Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=20 elapsed=3.912066625s\n2026-04-22T11:06:45.000306Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 20 eligible frames\n2026-04-22T11:06:45.856461Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 1.9MB → 0.4MB (5.2x), 9 JPEGs deleted\n2026-04-22T11:06:46.835512Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 2.2MB → 0.4MB (5.2x), 9 JPEGs deleted\n2026-04-22T11:07:15.142764Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5337833728326299056, trigger=visual_change)\n2026-04-22T11:07:27.263827Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5337833728326299056, trigger=visual_change)\n2026-04-22T11:08:42.059221Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3303286484632371491, trigger=click)\n2026-04-22T11:08:51.466088Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3303286484632371491, trigger=click)\n2026-04-22T11:08:52.705589Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3303286484632371491, trigger=click)\n2026-04-22T11:08:54.862930Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3303286484632371491, trigger=visual_change)\n2026-04-22T11:08:57.767172Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3303286484632371491, trigger=visual_change)\n2026-04-22T11:09:04.442295Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3303286484632371491, trigger=visual_change)\n2026-04-22T11:09:23.549500Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3757537717350728121, trigger=visual_change)\n2026-04-22T11:09:26.647099Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3757537717350728121, trigger=visual_change)\n2026-04-22T11:09:27.617892Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3757537717350728121, trigger=visual_change)\n2026-04-22T11:09:37.846218Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3757537717350728121, trigger=click)\n2026-04-22T11:09:39.988136Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3757537717350728121, trigger=click)\n2026-04-22T11:09:45.701950Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3757537717350728121, trigger=visual_change)\n2026-04-22T11:09:51.479479Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4744117485268922271, trigger=click)\n2026-04-22T11:09:52.588279Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4744117485268922271, trigger=click)\n2026-04-22T11:10:37.947814Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3389527971234186058, trigger=click)\n2026-04-22T11:11:53.822254Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=92 elapsed=6.975139583s\n2026-04-22T11:11:53.822417Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 92 eligible frames\n2026-04-22T11:11:56.889877Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 42 frames, 8.3MB → 0.8MB (11.0x), 42 JPEGs deleted\n2026-04-22T11:12:02.546278Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 48 frames, 9.5MB → 3.9MB (2.4x), 48 JPEGs deleted\n2026-04-22T11:14:34.726971Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6209721463328613401, trigger=visual_change)\n2026-04-22T11:14:38.324225Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6209721463328613401, trigger=click)\n2026-04-22T11:14:38.645314Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6209721463328613401, trigger=click)\n2026-04-22T11:15:48.408130Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3290532042628205253, trigger=visual_change)\n2026-04-22T11:17:08.957655Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=29 elapsed=6.341871834s\n2026-04-22T11:17:08.958047Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 29 eligible frames\n2026-04-22T11:17:10.885629Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.5MB → 1.3MB (2.0x), 14 JPEGs deleted\n2026-04-22T11:17:12.612437Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.9MB → 1.0MB (3.0x), 13 JPEGs deleted\n2026-04-22T11:18:09.059454Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6788193544120196520, trigger=visual_change)\n2026-04-22T11:18:30.812176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6788193544120196520, trigger=visual_change)\n2026-04-22T11:20:13.991317Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=7, grace=300s)\n2026-04-22T11:20:30.900173Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Active (controls reappeared, app=Firefox, id=7)\n2026-04-22T11:21:47.313039Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6979569190562105843, trigger=visual_change)\n2026-04-22T11:22:14.058045Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=52 elapsed=1.433307042s\n2026-04-22T11:22:14.058201Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 52 eligible frames\n2026-04-22T11:22:17.430807Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 4.5MB → 2.6MB (1.7x), 27 JPEGs deleted\n2026-04-22T11:22:20.789307Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 5.1MB → 1.9MB (2.7x), 23 JPEGs deleted\n2026-04-22T11:24:11.055919Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6348043336790165851, trigger=visual_change)\n2026-04-22T11:27:24.744130Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=34 elapsed=3.94198725s\n2026-04-22T11:27:24.744695Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 34 eligible frames\n2026-04-22T11:27:26.116529Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.8MB → 1.2MB (1.5x), 13 JPEGs deleted\n2026-04-22T11:27:28.617165Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 4.4MB → 1.8MB (2.5x), 19 JPEGs deleted\n2026-04-22T11:32:29.223079Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 32 eligible frames\n2026-04-22T11:32:30.840428Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.5MB → 0.4MB (4.3x), 11 JPEGs deleted\n2026-04-22T11:32:33.246169Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 4.3MB → 2.0MB (2.1x), 19 JPEGs deleted\n2026-04-22T11:33:57.016394Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-268904747002154324, trigger=visual_change)\n2026-04-22T11:34:00.365029Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-268904747002154324, trigger=visual_change)\n2026-04-22T11:35:10.982104Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4296915293538414297, trigger=visual_change)\n2026-04-22T11:35:32.724876Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7285107730676902260, trigger=visual_change)\n2026-04-22T11:37:33.415720Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 27 eligible frames\n2026-04-22T11:37:34.371399Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.8MB → 0.2MB (8.6x), 13 JPEGs deleted\n2026-04-22T11:37:35.859845Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.7MB → 0.8MB (3.3x), 12 JPEGs deleted\n2026-04-22T11:37:51.362562Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8696186709523439969, trigger=visual_change)\n2026-04-22T11:38:34.243110Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1899945553455143507, trigger=visual_change)\n2026-04-22T11:38:59.179294Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1899945553455143507, trigger=visual_change)\n2026-04-22T11:39:48.236676Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5576803356774878841, trigger=visual_change)\n2026-04-22T11:40:22.065139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6640696446489616380, trigger=visual_change)\n2026-04-22T11:40:28.877584Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5960256550196817106, trigger=visual_change)\n2026-04-22T11:40:35.319368Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6640696446489616380, trigger=visual_change)\n2026-04-22T11:40:53.124904Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5960256550196817106, trigger=visual_change)\n2026-04-22T11:41:33.255320Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4989103865860242755, trigger=visual_change)\n2026-04-22T11:41:48.193900Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1488267386558342445, trigger=visual_change)\n2026-04-22T11:41:51.755705Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1488267386558342445, trigger=visual_change)\n2026-04-22T11:42:12.947590Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5684177415939916225, trigger=visual_change)\n2026-04-22T11:42:28.448251Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4939881454163746825, trigger=visual_change)\n2026-04-22T11:42:37.404128Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5184076061330305421, trigger=visual_change)\n2026-04-22T11:42:38.310197Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=32 elapsed=2.273565292s\n2026-04-22T11:42:38.310366Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 32 eligible frames\n2026-04-22T11:42:39.454621Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.8MB → 0.2MB (8.7x), 13 JPEGs deleted\n2026-04-22T11:42:41.159908Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 4.0MB → 1.5MB (2.7x), 17 JPEGs deleted\n2026-04-22T11:42:49.713146Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5184076061330305421, trigger=visual_change)\n2026-04-22T11:42:58.758597Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5184076061330305421, trigger=visual_change)\n2026-04-22T11:43:26.711882Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8888955688748119503, trigger=visual_change)\n2026-04-22T11:43:42.212402Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8888955688748119503, trigger=visual_change)\n2026-04-22T11:43:48.256895Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8888955688748119503, trigger=visual_change)\n2026-04-22T11:44:32.051314Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1061030761799504015, trigger=visual_change)\n2026-04-22T11:46:38.628742Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5309638870405538800, trigger=visual_change)\n2026-04-22T11:47:44.229671Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=24 elapsed=3.005999417s\n2026-04-22T11:47:44.230453Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 24 eligible frames\n2026-04-22T11:47:45.193130Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.4MB → 0.2MB (6.7x), 10 JPEGs deleted\n2026-04-22T11:47:46.669315Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.7MB → 1.0MB (2.6x), 12 JPEGs deleted\n2026-04-22T11:49:20.261509Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5041499190616781957, trigger=visual_change)\n2026-04-22T11:49:22.980492Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5041499190616781957, trigger=visual_change)\n2026-04-22T11:49:55.465856Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3947999597522241326, trigger=click)\n2026-04-22T11:52:35.652259Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6702837610765389296, trigger=visual_change)\n2026-04-22T11:52:53.489508Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=35 elapsed=6.809016916s\n2026-04-22T11:52:53.489713Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 35 eligible frames\n2026-04-22T11:52:54.357212Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.5MB → 0.2MB (7.2x), 11 JPEGs deleted\n2026-04-22T11:52:57.318472Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 5.1MB → 2.0MB (2.6x), 22 JPEGs deleted\n2026-04-22T11:53:26.811997Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1463508818426172948, trigger=click)\n2026-04-22T11:55:47.876156Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3551464550561190027, trigger=visual_change)","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.058843084,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.32912233,"top":1.0,"width":0.058843084,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.33111703,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.3879654,"top":1.0,"width":0.058843084,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3899601,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"✳ Build full day activity summary from Screenpipe (claude)","depth":2,"bounds":{"left":0.44680852,"top":1.0,"width":0.058843084,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.4488032,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.5056516,"top":1.0,"width":0.058843084,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.50764626,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.56449467,"top":1.0,"width":0.058843084,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.56648934,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.62333775,"top":1.0,"width":0.058843084,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6253325,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"ec2-user@ip-10-30-159-186:~ (nc)","depth":2,"bounds":{"left":0.6821808,"top":1.0,"width":0.058843084,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.68417555,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7273936,"top":1.0,"width":0.01861702,"height":-0.023144484},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"screenpipe\"","depth":1,"bounds":{"left":0.4956782,"top":1.0,"width":0.027925532,"height":-0.02394259},"role_description":"text"}]...
|
-8072162812305970924
|
986754612592747899
|
click
|
accessibility
|
NULL
|
2026-04-21T18:01:10.189484Z INFO screenpipe_engin 2026-04-21T18:01:10.189484Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)
2026-04-21T18:01:11.594292Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=visual_change)
2026-04-21T18:01:12.844254Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)
2026-04-21T18:01:13.095866Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)
2026-04-21T18:01:49.712611Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5610420548393517496, trigger=click)
2026-04-21T18:01:49.878502Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5610420548393517496, trigger=click)
2026-04-21T18:01:54.385999Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4075180225844497251, trigger=click)
2026-04-21T18:02:03.320721Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)
2026-04-21T18:02:04.589973Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2385966524984094377, trigger=visual_change)
2026-04-21T18:02:06.402101Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)
2026-04-21T18:02:08.459207Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)
2026-04-21T18:02:17.915785Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)
2026-04-21T18:02:20.289378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)
2026-04-21T18:02:53.363091Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)
2026-04-21T18:02:59.854804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6485088808083200508, trigger=visual_change)
2026-04-21T18:03:23.692602Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2923142241079919801, trigger=visual_change)
2026-04-21T18:03:38.383745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)
2026-04-21T18:03:38.666324Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)
2026-04-21T18:03:40.611795Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)
2026-04-21T18:03:46.691879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)
2026-04-21T18:03:49.696169Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)
2026-04-21T18:03:58.796193Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)
2026-04-21T18:04:10.455866Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=65 elapsed=5.507644708s
2026-04-21T18:04:10.456994Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 65 eligible frames
2026-04-21T18:04:10.784720Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)
2026-04-21T18:04:12.979583Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 8.1MB → 3.1MB (2.6x), 36 JPEGs deleted
2026-04-21T18:04:13.808201Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)
2026-04-21T18:04:15.311040Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 5.7MB → 2.1MB (2.7x), 27 JPEGs deleted
2026-04-21T18:04:22.870405Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)
2026-04-21T18:04:25.858949Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)
2026-04-21T18:04:47.178867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)
2026-04-21T18:04:47.409147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)
2026-04-21T18:04:48.621959Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)
2026-04-21T18:04:48.823996Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)
2026-04-21T18:04:49.613197Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)
2026-04-21T18:04:49.840589Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)
2026-04-21T18:04:54.113636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)
2026-04-21T18:04:54.333250Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)
2026-04-21T18:04:56.158603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)
2026-04-21T18:04:56.345340Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)
2026-04-21T18:05:24.653256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2923142241079919801, trigger=visual_change)
2026-04-21T18:05:27.506644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2923142241079919801, trigger=visual_change)
2026-04-21T18:05:52.127185Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)
2026-04-21T18:05:52.385537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)
2026-04-21T18:05:54.464579Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)
2026-04-21T18:05:54.740600Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)
2026-04-21T18:06:01.884193Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)
2026-04-21T18:06:04.917243Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)
2026-04-21T18:06:15.788550Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)
2026-04-21T18:06:16.090123Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)
2026-04-21T18:06:17.179267Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)
2026-04-21T18:07:04.992532Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)
2026-04-21T18:07:08.003078Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)
2026-04-21T18:07:17.121489Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)
2026-04-21T18:07:17.302355Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)
2026-04-21T18:07:27.025619Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)
2026-04-21T18:07:29.771279Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)
2026-04-21T18:07:31.137970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)
2026-04-21T18:07:36.086848Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=visual_change)
2026-04-21T18:07:36.306717Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)
2026-04-21T18:07:37.369851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)
2026-04-21T18:07:37.634865Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)
2026-04-21T18:07:38.805129Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)
2026-04-21T18:07:39.104738Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)
2026-04-21T18:07:40.060624Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)
2026-04-21T18:08:30.262801Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=visual_change)
2026-04-21T18:08:45.022177Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8543293535466770858, trigger=click)
2026-04-21T18:09:22.083704Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=74 elapsed=6.715953125s
2026-04-21T18:09:22.084245Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 74 eligible frames
2026-04-21T18:09:29.000281Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 43 frames, 9.6MB → 4.0MB (2.4x), 43 JPEGs deleted
2026-04-21T18:09:33.280652Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 5.8MB → 1.9MB (3.1x), 29 JPEGs deleted
2026-04-21T18:10:45.149443Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)
2026-04-21T18:11:39.313378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=745086096190842156, trigger=visual_change)
2026-04-21T18:11:42.305757Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=745086096190842156, trigger=click)
2026-04-21T18:11:46.031853Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=745086096190842156, trigger=click)
2026-04-21T18:11:46.095029Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=745086096190842156, trigger=click)
2026-04-21T18:14:41.494244Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=68 elapsed=8.195880125s
2026-04-21T18:14:41.495608Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 68 eligible frames
2026-04-21T18:14:48.613051Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 8.2MB → 3.4MB (2.5x), 36 JPEGs deleted
2026-04-21T18:14:55.232583Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 5.5MB → 2.6MB (2.1x), 30 JPEGs deleted
2026-04-21T18:19:19.967211Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2899189334056575250, trigger=click)
2026-04-21T18:19:20.363463Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2899189334056575250, trigger=click)
2026-04-21T18:19:59.298075Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=53 elapsed=4.000910792s
2026-04-21T18:19:59.298190Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 53 eligible frames
2026-04-21T18:20:02.044649Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 5.1MB → 3.5MB (1.5x), 26 JPEGs deleted
2026-04-21T18:20:04.900441Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.7MB → 2.4MB (1.9x), 25 JPEGs deleted
2026-04-21T18:20:23.742659Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)
2026-04-21T18:20:27.660528Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)
2026-04-21T18:20:34.896769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)
2026-04-21T18:20:35.220946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)
2026-04-21T18:20:40.886719Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)
2026-04-21T18:20:44.353070Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)
2026-04-21T18:20:47.046701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)
2026-04-21T18:20:48.003863Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)
2026-04-21T18:22:59.673927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2006451494811625283, trigger=click)
2026-04-21T18:23:02.374154Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2006451494811625283, trigger=visual_change)
2026-04-21T18:24:55.480969Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)
2026-04-21T18:24:55.713808Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)
2026-04-21T18:25:06.770660Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=745086096190842156, trigger=click)
2026-04-21T18:25:10.431473Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=69 elapsed=5.123936292s
2026-04-21T18:25:10.432665Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 69 eligible frames
2026-04-21T18:25:12.020960Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.7MB → 0.4MB (10.8x), 24 JPEGs deleted
2026-04-21T18:25:16.809118Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 43 frames, 7.5MB → 3.7MB (2.0x), 43 JPEGs deleted
2026-04-21T18:27:20.032159Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-868697608726996264, trigger=click)
2026-04-21T18:27:27.209581Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5262134208844209929, trigger=click)
2026-04-21T18:30:23.556529Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=60 elapsed=6.732438875s
2026-04-21T18:30:23.556849Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 60 eligible frames
2026-04-21T18:30:25.836587Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 5.3MB → 0.4MB (12.5x), 27 JPEGs deleted
2026-04-21T18:30:29.251794Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 5.4MB → 2.7MB (2.0x), 31 JPEGs deleted
2026-04-21T18:34:42.383568Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1898158487632236470, trigger=click)
2026-04-21T18:35:29.435858Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 84 eligible frames
2026-04-21T18:35:31.507303Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 35 frames, 6.8MB → 0.3MB (21.3x), 35 JPEGs deleted
2026-04-21T18:35:34.821718Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 47 frames, 8.8MB → 3.6MB (2.4x), 47 JPEGs deleted
2026-04-21T18:37:57.032414Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3231955623713121874, trigger=click)
2026-04-21T18:40:36.969380Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=205 elapsed=2.13815675s
2026-04-21T18:40:36.969491Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 205 eligible frames
2026-04-21T18:40:42.234686Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 90 frames, 17.5MB → 0.4MB (49.4x), 90 JPEGs deleted
2026-04-21T18:40:48.296945Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 99 frames, 14.9MB → 5.7MB (2.6x), 99 JPEGs deleted
2026-04-21T18:40:49.626073Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 1.8MB → 0.7MB (2.8x), 14 JPEGs deleted
2026-04-21T18:41:16.858046Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5262134208844209929, trigger=click)
2026-04-21T18:41:18.719527Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5262134208844209929, trigger=click)
2026-04-21T18:41:20.650032Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6762752836329409782, trigger=click)
2026-04-21T18:42:40.957654Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7949512313665335161, trigger=visual_change)
2026-04-21T18:42:42.714242Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7949512313665335161, trigger=click)
2026-04-21T18:44:54.833923Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7610506607449357182, trigger=click)
2026-04-21T18:44:55.013934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7610506607449357182, trigger=click)
2026-04-21T18:45:54.320505Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=145 elapsed=4.6846185s
2026-04-21T18:45:54.321215Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 145 eligible frames
2026-04-21T18:45:58.288822Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 64 frames, 12.5MB → 0.5MB (23.2x), 64 JPEGs deleted
2026-04-21T18:46:02.956701Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 78 frames, 11.5MB → 3.3MB (3.5x), 78 JPEGs deleted
2026-04-21T18:48:10.510139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4242937607805845066, trigger=click)
2026-04-21T18:48:37.207446Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5152173808593872338, trigger=visual_change)
2026-04-21T18:49:27.537635Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5244088376274895156, trigger=click)
2026-04-21T18:49:33.724367Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5262134208844209929, trigger=click)
2026-04-21T18:49:44.747739Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8298107678328947062, trigger=click)
2026-04-21T18:50:45.073176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)
2026-04-21T18:50:45.427101Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2709523957012057259, trigger=click)
2026-04-21T18:50:48.592273Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)
2026-04-21T18:50:49.492676Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)
2026-04-21T18:51:01.193858Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)
2026-04-21T18:51:05.888682Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=50 elapsed=2.917680375s
2026-04-21T18:51:05.889014Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 50 eligible frames
2026-04-21T18:51:06.016628Z WARN sqlx::query: summary="PRAGMA wal_checkpoint(TRUNCATE)" db.statement="" rows_affected=0 rows_returned=1 elapsed=2.157649083s
2026-04-21T18:51:06.079565Z WARN sqlx::query: summary="BEGIN IMMEDIATE" db.statement="" rows_affected=1 rows_returned=0 elapsed=1.385088167s
2026-04-21T18:51:07.829374Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 3.9MB → 0.4MB (11.0x), 20 JPEGs deleted
2026-04-21T18:51:09.736739Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 5.0MB → 1.8MB (2.7x), 28 JPEGs deleted
2026-04-21T18:51:22.360027Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2872311122120998867, trigger=click)
2026-04-21T18:51:22.556670Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2872311122120998867, trigger=click)
2026-04-21T18:51:38.819030Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7947558874471225541, trigger=click)
2026-04-21T18:51:57.414061Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)
2026-04-21T18:51:59.012068Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)
2026-04-21T18:51:59.285931Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)
2026-04-21T18:52:01.767745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)
2026-04-21T18:52:02.028355Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)
2026-04-21T18:52:05.460776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=visual_change)
2026-04-21T18:52:07.087479Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)
2026-04-21T18:52:07.314492Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)
2026-04-21T18:52:10.214922Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)
2026-04-21T18:52:10.537340Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)
2026-04-21T18:52:13.867159Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)
2026-04-21T18:52:14.152331Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)
2026-04-21T18:52:20.367281Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)
2026-04-21T18:52:26.127826Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1650348556715134220, trigger=click)
2026-04-21T18:52:37.517700Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=visual_change)
2026-04-21T18:52:42.329057Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=click)
2026-04-21T18:52:42.556779Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)
2026-04-21T18:52:44.386173Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)
2026-04-21T18:52:44.700511Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=click)
2026-04-21T18:52:45.210674Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)
2026-04-21T18:53:17.193415Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6757993062848436258, trigger=visual_change)
2026-04-21T18:53:30.834059Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-228480120308125164, trigger=click)
2026-04-21T18:53:38.030882Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7225077546439863627, trigger=click)
2026-04-21T18:53:56.421537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6437320026671683644, trigger=click)
2026-04-21T18:54:11.726528Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1667437155962702753, trigger=visual_change)
2026-04-21T18:54:12.117525Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1667437155962702753, trigger=click)
2026-04-21T18:54:18.659686Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=click)
2026-04-21T18:54:19.077258Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)
2026-04-21T18:54:29.973760Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)
2026-04-21T18:56:07.789768Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6757993062848436258, trigger=click)
2026-04-21T18:56:08.791400Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6757993062848436258, trigger=click)
2026-04-21T18:56:14.153615Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=80 elapsed=4.402661042s
2026-04-21T18:56:14.153722Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 80 eligible frames
2026-04-21T18:56:16.685912Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 6.2MB → 0.7MB (8.9x), 32 JPEGs deleted
2026-04-21T18:56:21.263739Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 46 frames, 8.2MB → 2.8MB (2.9x), 46 JPEGs deleted
2026-04-21T18:56:25.279306Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7906564822731502105, trigger=click)
2026-04-21T18:56:33.734840Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8817586097865472869, trigger=click)
2026-04-21T18:56:33.980908Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8817586097865472869, trigger=click)
2026-04-21T18:56:35.972959Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8817586097865472869, trigger=click)
2026-04-21T18:56:40.545963Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8587160525579598601, trigger=click)
2026-04-21T18:56:41.913814Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8587160525579598601, trigger=visual_change)
2026-04-21T18:56:45.516942Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1910160977377320534, trigger=click)
2026-04-21T18:56:48.740431Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1910160977377320534, trigger=click)
2026-04-21T18:56:50.439568Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1910160977377320534, trigger=click)
2026-04-21T18:56:50.692218Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1910160977377320534, trigger=click)
2026-04-21T18:57:12.321118Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)
2026-04-21T18:57:12.578681Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)
2026-04-21T18:57:24.290583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)
2026-04-21T18:57:24.543696Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)
2026-04-21T18:57:34.571768Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)
2026-04-21T18:57:36.227688Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)
2026-04-21T18:57:36.475151Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)
2026-04-21T18:57:42.338601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)
2026-04-21T18:57:42.559967Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)
2026-04-21T18:57:52.824809Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)
2026-04-21T18:57:53.145543Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)
2026-04-21T18:57:59.463043Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)
2026-04-21T18:57:59.717475Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)
2026-04-21T18:58:00.742137Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)
2026-04-21T18:58:01.061497Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)
2026-04-21T18:59:33.960291Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9203182216527106315, trigger=visual_change)
2026-04-21T18:59:55.990167Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)
2026-04-21T18:59:59.103830Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=visual_change)
2026-04-21T19:00:16.116927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)
2026-04-21T19:00:45.352689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)
2026-04-21T19:00:49.596644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)
2026-04-21T19:00:50.432181Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)
2026-04-21T19:01:07.992732Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)
2026-04-21T19:01:08.484066Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)
2026-04-21T19:01:10.538762Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)
2026-04-21T19:01:18.922398Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)
2026-04-21T19:01:28.361625Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=84 elapsed=6.9360265s
2026-04-21T19:01:28.362070Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 84 eligible frames
2026-04-21T19:01:32.723075Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 33 frames, 6.4MB → 0.3MB (19.7x), 33 JPEGs deleted
2026-04-21T19:01:42.130490Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 7.8MB → 3.3MB (2.4x), 49 JPEGs deleted
2026-04-21T19:02:09.991879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)
2026-04-21T19:02:12.577587Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)
2026-04-21T19:02:12.835924Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)
2026-04-21T19:02:15.635601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)
2026-04-21T19:02:18.720475Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)
2026-04-21T19:02:21.708351Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)
2026-04-21T19:02:22.061150Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)
2026-04-21T19:02:28.684303Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3995027160269120472, trigger=click)
2026-04-21T19:02:41.434491Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)
2026-04-21T19:02:41.724904Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)
2026-04-21T19:02:43.112974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)
2026-04-21T19:02:43.410843Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)
2026-04-21T19:02:47.501924Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)
2026-04-21T19:02:47.761592Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)
2026-04-21T19:02:54.205542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)
2026-04-21T19:02:54.441326Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)
2026-04-21T19:02:56.601490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)
2026-04-21T19:02:56.921256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)
2026-04-21T19:03:15.988643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)
2026-04-21T19:03:16.236342Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)
2026-04-21T19:03:28.508616Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)
2026-04-21T19:04:00.462064Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)
2026-04-21T19:04:01.516168Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)
2026-04-21T19:04:01.856315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)
2026-04-21T19:04:03.246448Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)
2026-04-21T19:04:03.735029Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)
2026-04-21T19:04:09.818135Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)
2026-04-21T19:05:03.118616Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)
2026-04-21T19:05:03.393788Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)
2026-04-21T19:05:21.352722Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=visual_change)
2026-04-21T19:05:43.751309Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)
2026-04-21T19:05:44.029500Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)
2026-04-21T19:05:45.626672Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)
2026-04-21T19:05:45.899754Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)
2026-04-21T19:05:48.206587Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)
2026-04-21T19:05:48.449043Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)
2026-04-21T19:06:22.834938Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7947558874471225541, trigger=click)
2026-04-21T19:06:52.937779Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=114 elapsed=10.747243125s
2026-04-21T19:06:52.938152Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 114 eligible frames
2026-04-21T19:06:57.942457Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 45 frames, 8.8MB → 0.3MB (27.2x), 45 JPEGs deleted
2026-04-21T19:07:05.853054Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 67 frames, 10.5MB → 5.2MB (2.0x), 67 JPEGs deleted
2026-04-21T19:07:45.088797Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)
2026-04-21T19:07:48.052391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6936634780821666458, trigger=click)
2026-04-21T19:08:59.593467Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5629560013928052473, trigger=click)
2026-04-21T19:09:29.443711Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)
2026-04-21T19:09:42.998313Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8043719072324535154, trigger=visual_change)
2026-04-21T19:09:50.759516Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)
2026-04-21T19:09:51.052544Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)
2026-04-21T19:09:51.892698Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)
2026-04-21T19:09:52.651776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)
2026-04-21T19:09:55.476431Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)
2026-04-21T19:09:55.898195Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)
2026-04-21T19:09:58.077337Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)
2026-04-21T19:10:01.103980Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)
2026-04-21T19:10:03.105423Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)
2026-04-21T19:10:03.448049Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)
2026-04-21T19:10:08.548130Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6051188157141408655, trigger=click)
2026-04-21T19:12:12.330759Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=70 elapsed=6.458002417s
2026-04-21T19:12:12.332545Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 70 eligible frames
2026-04-21T19:12:14.243079Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 5.5MB → 0.3MB (17.2x), 28 JPEGs deleted
2026-04-21T19:12:17.558334Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 40 frames, 7.4MB → 3.6MB (2.1x), 40 JPEGs deleted
2026-04-21T19:16:51.045938Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1370319459641728815, trigger=click)
2026-04-21T19:16:51.249993Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1370319459641728815, trigger=click)
2026-04-21T19:17:21.603564Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=40 elapsed=4.036037791s
2026-04-21T19:17:21.604357Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames
2026-04-21T19:17:22.750174Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.5MB → 0.3MB (11.2x), 18 JPEGs deleted
2026-04-21T19:17:24.332098Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.2MB → 1.3MB (3.2x), 20 JPEGs deleted
2026-04-21T19:22:25.748871Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=4...
|
69769
|
|
68524
|
1554
|
11
|
2026-04-22T06:17:42.176037+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-22/1776 /Users/lukas/.screenpipe/data/data/2026-04-22/1776838662176_m1.jpg...
|
iTerm2
|
screenpipe"
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
FROM\n frames\nWHERE\n snapshot_path IS NOT NULL FROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=47 elapsed=5.487768917s
2026-04-21T16:49:53.309371Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 47 eligible frames
2026-04-21T16:49:54.673701Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.9MB → 0.3MB (13.1x), 21 JPEGs deleted
2026-04-21T16:49:56.314871Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.7MB → 1.2MB (4.0x), 24 JPEGs deleted
2026-04-21T16:54:59.385017Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=62 elapsed=3.057419917s
2026-04-21T16:54:59.385210Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 62 eligible frames
2026-04-21T16:55:00.998239Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.8MB → 0.5MB (10.3x), 26 JPEGs deleted
2026-04-21T16:55:03.739041Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 34 frames, 5.8MB → 2.6MB (2.2x), 34 JPEGs deleted
2026-04-21T16:55:17.768634Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)
2026-04-21T17:23:59.183039Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)
2026-04-21T17:23:59.216966Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2
2026-04-21T17:24:00.832399Z INFO screenpipe_engine::vision_manager::monitor_watcher: Monitor 2 disconnected, stopping recording
2026-04-21T17:24:00.832464Z INFO screenpipe_engine::vision_manager::manager: Stopping vision recording for monitor 2
2026-04-21T17:24:00.832336Z INFO sck_rs::stream_manager: stopped 2 persistent stream(s)
2026-04-21T17:24:04.654209Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)
2026-04-21T17:24:30.699969Z ERROR screenpipe_engine::resource_monitor: Failed to send resource usage to PostHog: error sending request for url (https://us.i.posthog.com/capture/)
2026-04-21T17:25:01.085383Z INFO screenpipe_engine::vision_manager::monitor_watcher: Monitor 2 reconnected, resuming recording
2026-04-21T17:25:01.273818Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-04-21T17:25:01.273870Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-04-21T17:25:01.273896Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-04-21T17:25:02.310236Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)
2026-04-21T17:25:02.808234Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=66228, dur=365ms
2026-04-21T17:25:04.889075Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:07.887565Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:10.918390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:14.039034Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:17.160521Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:26.096276Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:29.061270Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:32.067380Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:35.263701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:41.164753Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:25:44.239172Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:25:47.149320Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:25:50.242915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:25:53.308794Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:25:56.218138Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:25:59.144297Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:26:05.965946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:08.584110Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:11.350189Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:14.339609Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:17.398251Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:20.782119Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:23.385506Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:26.427626Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:29.573661Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:32.450744Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:38.464132Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:41.456915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:44.496278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:47.541313Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:50.596256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:53.597171Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:56.764522Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:59.751576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:02.719391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:08.829090Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:11.800601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:14.811724Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:17.855339Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:26.878741Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:29.933020Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:32.947216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:36.041239Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:38.993657Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:42.039373Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:45.172399Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:48.081804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:51.142939Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:54.169253Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:00.341347Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:03.322832Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:06.631198Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:09.537232Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:12.406113Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:15.381764Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:15.806839Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=44 elapsed=5.777403s
2026-04-21T17:28:15.806951Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 44 eligible frames
2026-04-21T17:28:17.108106Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.9MB → 0.3MB (13.1x), 21 JPEGs deleted
2026-04-21T17:28:18.370832Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.6MB → 0.5MB (7.8x), 21 JPEGs deleted
2026-04-21T17:28:18.461408Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:22.068097Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:24.604711Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:27.608060Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:33.774822Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:36.697278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:39.729251Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:42.728755Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:45.748204Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:48.768910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:51.814752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:54.970698Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:57.869874Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:00.913837Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:07.461529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:10.043928Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:13.182411Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:16.080133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:19.108570Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:22.322033Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:25.172666Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:28.398354Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:31.249083Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:34.289745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:40.303310Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:43.308015Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:46.360649Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:49.356069Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:52.450205Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:55.422975Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:58.446390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:01.491253Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:04.500380Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:16.830925Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:19.856895Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:23.100486Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:25.938910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:28.953603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:32.061536Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:35.030958Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:38.162895Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:41.148165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:44.019513Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:50.259576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:53.148070Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:56.309979Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:59.185610Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:02.278235Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:05.287341Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:08.409426Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:11.489977Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:14.319338Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:17.348153Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:23.351025Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:26.427529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:29.337254Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:32.386165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:35.653387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:38.430216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:41.428909Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:44.432459Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:47.448603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:50.432780Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:56.535727Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:59.590792Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:32:02.621444Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:32:05.627964Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:32:08.710139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:32:11.765247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:32:14.787638Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:32:17.876480Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)
2026-04-21T17:32:20.977937Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)
2026-04-21T17:32:29.888970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8116870867026519513, trigger=click)
2026-04-21T17:32:33.123648Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)
2026-04-21T17:33:03.355082Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)
2026-04-21T17:33:05.517897Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=click)
2026-04-21T17:33:06.399783Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)
2026-04-21T17:33:09.478894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)
2026-04-21T17:33:19.151217Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
2026-04-21T17:33:21.431006Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6379516332769645744, trigger=visual_change)
2026-04-21T17:33:33.494463Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7500553589467718193, trigger=visual_change)
2026-04-21T17:34:00.725974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2275300387038012183, trigger=click)
2026-04-21T17:34:07.214867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2063499064757931498, trigger=visual_change)
2026-04-21T17:34:31.480257Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=visual_change)
2026-04-21T17:34:34.482370Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=visual_change)
2026-04-21T17:35:53.801549Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7652433743467416760, trigger=click)
2026-04-21T17:35:53.954311Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7652433743467416760, trigger=click)
2026-04-21T17:35:54.740695Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7652433743467416760, trigger=click)
2026-04-21T17:36:06.295752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5335392039126841536, trigger=visual_change)
2026-04-21T17:36:28.893337Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5927780310531960690, trigger=visual_change)
2026-04-21T17:38:15.647110Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)
2026-04-21T17:38:17.801901Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)
2026-04-21T17:38:17.962831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)
2026-04-21T17:38:22.819710Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7137414965816212018, trigger=click)
2026-04-21T17:38:22.917176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=click)
2026-04-21T17:38:23.042830Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=28 elapsed=3.882772625s
2026-04-21T17:38:23.042920Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames
2026-04-21T17:38:24.717251Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 2.8MB → 0.4MB (6.3x), 18 JPEGs deleted
2026-04-21T17:38:26.727027Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.1MB → 0.2MB (5.7x), 10 JPEGs deleted
2026-04-21T17:38:35.971287Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=click)
2026-04-21T17:38:36.106246Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7137414965816212018, trigger=click)
2026-04-21T17:38:37.368009Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=visual_change)
2026-04-21T17:38:43.431620Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8741356672789266752, trigger=visual_change)
2026-04-21T17:38:49.319886Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5149767057649118192, trigger=click)
2026-04-21T17:38:49.477325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5149767057649118192, trigger=click)
2026-04-21T17:38:51.019231Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5149767057649118192, trigger=visual_change)
2026-04-21T17:39:04.249890Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7355944135161080033, trigger=click)
2026-04-21T17:39:23.256256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4983811095206295613, trigger=click)
2026-04-21T17:39:23.385820Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4983811095206295613, trigger=click)
2026-04-21T17:39:24.367407Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4983811095206295613, trigger=visual_change)
2026-04-21T17:39:24.895784Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4983811095206295613, trigger=click)
2026-04-21T17:39:46.438272Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=372069959735326508, trigger=visual_change)
2026-04-21T17:39:49.101085Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4964238948655865655, trigger=visual_change)
2026-04-21T17:39:58.083750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)
2026-04-21T17:40:01.375315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)
2026-04-21T17:40:04.195859Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)
2026-04-21T17:40:12.117004Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2989278587618621353, trigger=click)
2026-04-21T17:40:12.244666Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2989278587618621353, trigger=click)
2026-04-21T17:40:13.925024Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2989278587618621353, trigger=visual_change)
2026-04-21T17:40:23.294147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=visual_change)
2026-04-21T17:40:55.989498Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3182674559678505325, trigger=click)
2026-04-21T17:40:58.413325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3182674559678505325, trigger=visual_change)
2026-04-21T17:41:23.101094Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5616874458658671741, trigger=visual_change)
2026-04-21T17:41:29.504783Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2744778324521007391, trigger=visual_change)
2026-04-21T17:42:13.830352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6664909184667365933, trigger=click)
2026-04-21T17:42:13.905614Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=click)
2026-04-21T17:42:14.689622Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6664909184667365933, trigger=click)
2026-04-21T17:43:13.738786Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5563100798252317961, trigger=visual_change)
2026-04-21T17:43:31.769731Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=40 elapsed=4.870364084s
2026-04-21T17:43:31.770321Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames
2026-04-21T17:43:32.514133Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.1MB → 0.1MB (8.9x), 11 JPEGs deleted
2026-04-21T17:43:34.391762Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 3.0MB → 0.5MB (5.9x), 27 JPEGs deleted
2026-04-21T17:44:19.021163Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-263228306577803226, trigger=click)
2026-04-21T17:44:32.036390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8360298266192684601, trigger=click)
2026-04-21T17:44:33.859332Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8360298266192684601, trigger=visual_change)
2026-04-21T17:44:42.936361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=visual_change)
2026-04-21T17:44:46.420662Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=visual_change)
2026-04-21T17:46:17.725934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7286082578618580481, trigger=click)
2026-04-21T17:46:18.733766Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=click)
2026-04-21T17:46:19.506484Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7286082578618580481, trigger=click)
2026-04-21T17:46:20.729229Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=click)
2026-04-21T17:46:27.956655Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8942982652250876029, trigger=click)
2026-04-21T17:46:29.490950Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8942982652250876029, trigger=click)
2026-04-21T17:46:45.634752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5761541209609855314, trigger=click)
2026-04-21T17:46:45.971315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5761541209609855314, trigger=click)
2026-04-21T17:46:50.988867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5607564885929685542, trigger=click)
2026-04-21T17:46:51.601750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5607564885929685542, trigger=click)
2026-04-21T17:46:56.353647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4497988824039212795, trigger=click)
2026-04-21T17:47:24.716661Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4864885406063659925, trigger=visual_change)
2026-04-21T17:47:29.793942Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:30.097043Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)
2026-04-21T17:47:30.960214Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:32.707746Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)
2026-04-21T17:47:36.181007Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:36.362574Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:37.093511Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:41.720206Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)
2026-04-21T17:47:44.706704Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)
2026-04-21T17:47:48.602580Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:48.776278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:52.582982Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5658848090639979218, trigger=click)
2026-04-21T17:47:57.282103Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8902771592702756196, trigger=click)
2026-04-21T17:48:06.880071Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8902771592702756196, trigger=click)
2026-04-21T17:48:07.656377Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8902771592702756196, trigger=click)
2026-04-21T17:48:23.785117Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:48:24.032602Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:48:26.587906Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:48:32.180582Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)
2026-04-21T17:48:34.022831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:48:34.363583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:48:39.363585Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=83 elapsed=4.983598708s
2026-04-21T17:48:39.363733Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 83 eligible frames
2026-04-21T17:48:41.479158Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 3.3MB → 0.2MB (17.7x), 31 JPEGs deleted
2026-04-21T17:48:44.682560Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 50 frames, 6.5MB → 2.0MB (3.3x), 50 JPEGs deleted
2026-04-21T17:48:53.828851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)
2026-04-21T17:48:56.563636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)
2026-04-21T17:48:59.291654Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:48:59.467275Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:00.295226Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:00.453357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=visual_change)
2026-04-21T17:49:13.301518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)
2026-04-21T17:49:16.454207Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)
2026-04-21T17:49:16.837288Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:18.900202Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:19.229376Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:20.418502Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:20.706966Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:21.269855Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:22.896443Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:23.115745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:29.927553Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1234240076182081719, trigger=click)
2026-04-21T17:49:40.567042Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1506528968255096811, trigger=click)
2026-04-21T17:49:40.722412Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1506528968255096811, trigger=click)
2026-04-21T17:49:44.790415Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1506528968255096811, trigger=visual_change)
2026-04-21T17:49:44.983133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1506528968255096811, trigger=visual_change)
2026-04-21T17:51:50.315220Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)
2026-04-21T17:51:53.337571Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)
2026-04-21T17:51:59.473328Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)
2026-04-21T17:52:02.455277Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)
2026-04-21T17:52:05.862297Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)
2026-04-21T17:52:07.729450Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)
2026-04-21T17:52:16.901254Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)
2026-04-21T17:52:29.702852Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)
2026-04-21T17:52:36.533775Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)
2026-04-21T17:52:39.599515Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)
2026-04-21T17:52:45.700237Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)
2026-04-21T17:52:48.638819Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)
2026-04-21T17:52:54.704399Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)
2026-04-21T17:52:57.751791Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)
2026-04-21T17:53:10.186965Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)
2026-04-21T17:53:46.867091Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=116 elapsed=2.178958s
2026-04-21T17:53:46.867199Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 116 eligible frames
2026-04-21T17:53:49.254310Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=visual_change)
2026-04-21T17:53:50.410056Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 56 frames, 12.3MB → 3.7MB (3.3x), 56 JPEGs deleted
2026-04-21T17:53:51.388237Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=clic...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"FROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=47 elapsed=5.487768917s\n2026-04-21T16:49:53.309371Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 47 eligible frames\n2026-04-21T16:49:54.673701Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.9MB → 0.3MB (13.1x), 21 JPEGs deleted\n2026-04-21T16:49:56.314871Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.7MB → 1.2MB (4.0x), 24 JPEGs deleted\n2026-04-21T16:54:59.385017Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=62 elapsed=3.057419917s\n2026-04-21T16:54:59.385210Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 62 eligible frames\n2026-04-21T16:55:00.998239Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.8MB → 0.5MB (10.3x), 26 JPEGs deleted\n2026-04-21T16:55:03.739041Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 34 frames, 5.8MB → 2.6MB (2.2x), 34 JPEGs deleted\n2026-04-21T16:55:17.768634Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)\n2026-04-21T17:23:59.183039Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)\n2026-04-21T17:23:59.216966Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2\n2026-04-21T17:24:00.832399Z INFO screenpipe_engine::vision_manager::monitor_watcher: Monitor 2 disconnected, stopping recording\n2026-04-21T17:24:00.832464Z INFO screenpipe_engine::vision_manager::manager: Stopping vision recording for monitor 2\n2026-04-21T17:24:00.832336Z INFO sck_rs::stream_manager: stopped 2 persistent stream(s)\n2026-04-21T17:24:04.654209Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-21T17:24:30.699969Z ERROR screenpipe_engine::resource_monitor: Failed to send resource usage to PostHog: error sending request for url (https://us.i.posthog.com/capture/)\n2026-04-21T17:25:01.085383Z INFO screenpipe_engine::vision_manager::monitor_watcher: Monitor 2 reconnected, resuming recording\n2026-04-21T17:25:01.273818Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-21T17:25:01.273870Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-21T17:25:01.273896Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-21T17:25:02.310236Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-21T17:25:02.808234Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=66228, dur=365ms\n2026-04-21T17:25:04.889075Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:07.887565Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:10.918390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:14.039034Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:17.160521Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:26.096276Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:29.061270Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:32.067380Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:35.263701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:41.164753Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:44.239172Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:47.149320Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:50.242915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:53.308794Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:56.218138Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:59.144297Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:26:05.965946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:08.584110Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:11.350189Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:14.339609Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:17.398251Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:20.782119Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:23.385506Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:26.427626Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:29.573661Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:32.450744Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:38.464132Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:41.456915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:44.496278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:47.541313Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:50.596256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:53.597171Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:56.764522Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:59.751576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:02.719391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:08.829090Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:11.800601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:14.811724Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:17.855339Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:26.878741Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:29.933020Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:32.947216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:36.041239Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:38.993657Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:42.039373Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:45.172399Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:48.081804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:51.142939Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:54.169253Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:00.341347Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:03.322832Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:06.631198Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:09.537232Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:12.406113Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:15.381764Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:15.806839Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=44 elapsed=5.777403s\n2026-04-21T17:28:15.806951Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 44 eligible frames\n2026-04-21T17:28:17.108106Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.9MB → 0.3MB (13.1x), 21 JPEGs deleted\n2026-04-21T17:28:18.370832Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.6MB → 0.5MB (7.8x), 21 JPEGs deleted\n2026-04-21T17:28:18.461408Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:22.068097Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:24.604711Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:27.608060Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:33.774822Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:36.697278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:39.729251Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:42.728755Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:45.748204Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:48.768910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:51.814752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:54.970698Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:57.869874Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:00.913837Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:07.461529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:10.043928Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:13.182411Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:16.080133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:19.108570Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:22.322033Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:25.172666Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:28.398354Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:31.249083Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:34.289745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:40.303310Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:43.308015Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:46.360649Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:49.356069Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:52.450205Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:55.422975Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:58.446390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:01.491253Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:04.500380Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:16.830925Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:19.856895Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:23.100486Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:25.938910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:28.953603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:32.061536Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:35.030958Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:38.162895Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:41.148165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:44.019513Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:50.259576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:53.148070Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:56.309979Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:59.185610Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:02.278235Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:05.287341Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:08.409426Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:11.489977Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:14.319338Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:17.348153Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:23.351025Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:26.427529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:29.337254Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:32.386165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:35.653387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:38.430216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:41.428909Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:44.432459Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:47.448603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:50.432780Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:56.535727Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:59.590792Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:02.621444Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:05.627964Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:08.710139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:11.765247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:14.787638Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:17.876480Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)\n2026-04-21T17:32:20.977937Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)\n2026-04-21T17:32:29.888970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8116870867026519513, trigger=click)\n2026-04-21T17:32:33.123648Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)\n2026-04-21T17:33:03.355082Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)\n2026-04-21T17:33:05.517897Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=click)\n2026-04-21T17:33:06.399783Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)\n2026-04-21T17:33:09.478894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)\n2026-04-21T17:33:19.151217Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-21T17:33:21.431006Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6379516332769645744, trigger=visual_change)\n2026-04-21T17:33:33.494463Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7500553589467718193, trigger=visual_change)\n2026-04-21T17:34:00.725974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2275300387038012183, trigger=click)\n2026-04-21T17:34:07.214867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2063499064757931498, trigger=visual_change)\n2026-04-21T17:34:31.480257Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=visual_change)\n2026-04-21T17:34:34.482370Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=visual_change)\n2026-04-21T17:35:53.801549Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7652433743467416760, trigger=click)\n2026-04-21T17:35:53.954311Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7652433743467416760, trigger=click)\n2026-04-21T17:35:54.740695Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7652433743467416760, trigger=click)\n2026-04-21T17:36:06.295752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5335392039126841536, trigger=visual_change)\n2026-04-21T17:36:28.893337Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5927780310531960690, trigger=visual_change)\n2026-04-21T17:38:15.647110Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)\n2026-04-21T17:38:17.801901Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)\n2026-04-21T17:38:17.962831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)\n2026-04-21T17:38:22.819710Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7137414965816212018, trigger=click)\n2026-04-21T17:38:22.917176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=click)\n2026-04-21T17:38:23.042830Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=28 elapsed=3.882772625s\n2026-04-21T17:38:23.042920Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames\n2026-04-21T17:38:24.717251Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 2.8MB → 0.4MB (6.3x), 18 JPEGs deleted\n2026-04-21T17:38:26.727027Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.1MB → 0.2MB (5.7x), 10 JPEGs deleted\n2026-04-21T17:38:35.971287Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=click)\n2026-04-21T17:38:36.106246Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7137414965816212018, trigger=click)\n2026-04-21T17:38:37.368009Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=visual_change)\n2026-04-21T17:38:43.431620Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8741356672789266752, trigger=visual_change)\n2026-04-21T17:38:49.319886Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5149767057649118192, trigger=click)\n2026-04-21T17:38:49.477325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5149767057649118192, trigger=click)\n2026-04-21T17:38:51.019231Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5149767057649118192, trigger=visual_change)\n2026-04-21T17:39:04.249890Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7355944135161080033, trigger=click)\n2026-04-21T17:39:23.256256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4983811095206295613, trigger=click)\n2026-04-21T17:39:23.385820Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4983811095206295613, trigger=click)\n2026-04-21T17:39:24.367407Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4983811095206295613, trigger=visual_change)\n2026-04-21T17:39:24.895784Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4983811095206295613, trigger=click)\n2026-04-21T17:39:46.438272Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=372069959735326508, trigger=visual_change)\n2026-04-21T17:39:49.101085Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4964238948655865655, trigger=visual_change)\n2026-04-21T17:39:58.083750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)\n2026-04-21T17:40:01.375315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)\n2026-04-21T17:40:04.195859Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)\n2026-04-21T17:40:12.117004Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2989278587618621353, trigger=click)\n2026-04-21T17:40:12.244666Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2989278587618621353, trigger=click)\n2026-04-21T17:40:13.925024Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2989278587618621353, trigger=visual_change)\n2026-04-21T17:40:23.294147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=visual_change)\n2026-04-21T17:40:55.989498Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3182674559678505325, trigger=click)\n2026-04-21T17:40:58.413325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3182674559678505325, trigger=visual_change)\n2026-04-21T17:41:23.101094Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5616874458658671741, trigger=visual_change)\n2026-04-21T17:41:29.504783Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2744778324521007391, trigger=visual_change)\n2026-04-21T17:42:13.830352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6664909184667365933, trigger=click)\n2026-04-21T17:42:13.905614Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=click)\n2026-04-21T17:42:14.689622Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6664909184667365933, trigger=click)\n2026-04-21T17:43:13.738786Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5563100798252317961, trigger=visual_change)\n2026-04-21T17:43:31.769731Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=40 elapsed=4.870364084s\n2026-04-21T17:43:31.770321Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames\n2026-04-21T17:43:32.514133Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.1MB → 0.1MB (8.9x), 11 JPEGs deleted\n2026-04-21T17:43:34.391762Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 3.0MB → 0.5MB (5.9x), 27 JPEGs deleted\n2026-04-21T17:44:19.021163Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-263228306577803226, trigger=click)\n2026-04-21T17:44:32.036390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8360298266192684601, trigger=click)\n2026-04-21T17:44:33.859332Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8360298266192684601, trigger=visual_change)\n2026-04-21T17:44:42.936361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=visual_change)\n2026-04-21T17:44:46.420662Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=visual_change)\n2026-04-21T17:46:17.725934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7286082578618580481, trigger=click)\n2026-04-21T17:46:18.733766Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=click)\n2026-04-21T17:46:19.506484Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7286082578618580481, trigger=click)\n2026-04-21T17:46:20.729229Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=click)\n2026-04-21T17:46:27.956655Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8942982652250876029, trigger=click)\n2026-04-21T17:46:29.490950Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8942982652250876029, trigger=click)\n2026-04-21T17:46:45.634752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5761541209609855314, trigger=click)\n2026-04-21T17:46:45.971315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5761541209609855314, trigger=click)\n2026-04-21T17:46:50.988867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5607564885929685542, trigger=click)\n2026-04-21T17:46:51.601750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5607564885929685542, trigger=click)\n2026-04-21T17:46:56.353647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4497988824039212795, trigger=click)\n2026-04-21T17:47:24.716661Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4864885406063659925, trigger=visual_change)\n2026-04-21T17:47:29.793942Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:30.097043Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)\n2026-04-21T17:47:30.960214Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:32.707746Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)\n2026-04-21T17:47:36.181007Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:36.362574Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:37.093511Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:41.720206Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)\n2026-04-21T17:47:44.706704Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)\n2026-04-21T17:47:48.602580Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:48.776278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:52.582982Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5658848090639979218, trigger=click)\n2026-04-21T17:47:57.282103Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8902771592702756196, trigger=click)\n2026-04-21T17:48:06.880071Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8902771592702756196, trigger=click)\n2026-04-21T17:48:07.656377Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8902771592702756196, trigger=click)\n2026-04-21T17:48:23.785117Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:24.032602Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:26.587906Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:32.180582Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:48:34.022831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:34.363583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:39.363585Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=83 elapsed=4.983598708s\n2026-04-21T17:48:39.363733Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 83 eligible frames\n2026-04-21T17:48:41.479158Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 3.3MB → 0.2MB (17.7x), 31 JPEGs deleted\n2026-04-21T17:48:44.682560Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 50 frames, 6.5MB → 2.0MB (3.3x), 50 JPEGs deleted\n2026-04-21T17:48:53.828851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:48:56.563636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:48:59.291654Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:59.467275Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:00.295226Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:00.453357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:49:13.301518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:49:16.454207Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:49:16.837288Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:18.900202Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:19.229376Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:20.418502Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:20.706966Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:21.269855Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:22.896443Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:23.115745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:29.927553Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1234240076182081719, trigger=click)\n2026-04-21T17:49:40.567042Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1506528968255096811, trigger=click)\n2026-04-21T17:49:40.722412Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1506528968255096811, trigger=click)\n2026-04-21T17:49:44.790415Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1506528968255096811, trigger=visual_change)\n2026-04-21T17:49:44.983133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1506528968255096811, trigger=visual_change)\n2026-04-21T17:51:50.315220Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)\n2026-04-21T17:51:53.337571Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)\n2026-04-21T17:51:59.473328Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)\n2026-04-21T17:52:02.455277Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)\n2026-04-21T17:52:05.862297Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:52:07.729450Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:52:16.901254Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:52:29.702852Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:52:36.533775Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:39.599515Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:45.700237Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:48.638819Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:54.704399Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:57.751791Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:53:10.186965Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:53:46.867091Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=116 elapsed=2.178958s\n2026-04-21T17:53:46.867199Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 116 eligible frames\n2026-04-21T17:53:49.254310Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:53:50.410056Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 56 frames, 12.3MB → 3.7MB (3.3x), 56 JPEGs deleted\n2026-04-21T17:53:51.388237Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:53:53.983042Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 58 frames, 9.0MB → 2.6MB (3.5x), 58 JPEGs deleted\n2026-04-21T17:53:56.223709Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:25.250317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:54:25.727105Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:54:32.633019Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:33.984547Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:54:35.401305Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:35.511290Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:38.494935Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:38.630637Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:41.245537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:54:45.441966Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:54:50.148639Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:50.313941Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:51.769427Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:51.915582Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:58.755543Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:55:01.758776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:55:25.745659Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3428322026263856254, trigger=click)\n2026-04-21T17:55:27.298490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3428322026263856254, trigger=visual_change)\n2026-04-21T17:55:33.297808Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3428322026263856254, trigger=visual_change)\n2026-04-21T17:55:48.491529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7233070170495400552, trigger=visual_change)\n2026-04-21T17:55:49.809101Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7233070170495400552, trigger=visual_change)\n2026-04-21T17:55:54.025243Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7233070170495400552, trigger=click)\n2026-04-21T17:55:54.165626Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7233070170495400552, trigger=click)\n2026-04-21T17:55:58.086411Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1463712168180952345, trigger=visual_change)\n2026-04-21T17:56:04.943502Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7233070170495400552, trigger=visual_change)\n2026-04-21T17:57:22.021701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:23.588692Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:30.517012Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:31.818301Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:31.972732Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:40.727074Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:42.330179Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:42.494853Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:45.528669Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:46.132479Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:46.358876Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:58:36.946109Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6074307134448385817, trigger=visual_change)\n2026-04-21T17:58:57.225929Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=117 elapsed=3.2365965s\n2026-04-21T17:58:57.226687Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 117 eligible frames\n2026-04-21T17:59:01.078632Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 58 frames, 12.8MB → 4.3MB (3.0x), 58 JPEGs deleted\n2026-04-21T17:59:04.938676Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 57 frames, 10.8MB → 4.0MB (2.7x), 57 JPEGs deleted\n2026-04-21T18:00:27.589643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9170086261988994041, trigger=click)\n2026-04-21T18:00:28.469646Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9170086261988994041, trigger=visual_change)\n2026-04-21T18:00:37.318027Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=9170086261988994041, trigger=click)\n2026-04-21T18:00:42.194585Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=9170086261988994041, trigger=click)\n2026-04-21T18:00:42.367049Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9170086261988994041, trigger=click)\n2026-04-21T18:01:07.200973Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:08.642294Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:08.873831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=visual_change)\n2026-04-21T18:01:09.931490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:10.189484Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:11.594292Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=visual_change)\n2026-04-21T18:01:12.844254Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:13.095866Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:49.712611Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5610420548393517496, trigger=click)\n2026-04-21T18:01:49.878502Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5610420548393517496, trigger=click)\n2026-04-21T18:01:54.385999Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4075180225844497251, trigger=click)\n2026-04-21T18:02:03.320721Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:04.589973Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:06.402101Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:08.459207Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:17.915785Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:20.289378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:53.363091Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:59.854804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6485088808083200508, trigger=visual_change)\n2026-04-21T18:03:23.692602Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2923142241079919801, trigger=visual_change)\n2026-04-21T18:03:38.383745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:03:38.666324Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:03:40.611795Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:03:46.691879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:03:49.696169Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:03:58.796193Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:10.455866Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=65 elapsed=5.507644708s\n2026-04-21T18:04:10.456994Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 65 eligible frames\n2026-04-21T18:04:10.784720Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:12.979583Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 8.1MB → 3.1MB (2.6x), 36 JPEGs deleted\n2026-04-21T18:04:13.808201Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:15.311040Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 5.7MB → 2.1MB (2.7x), 27 JPEGs deleted\n2026-04-21T18:04:22.870405Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:25.858949Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:47.178867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:47.409147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:48.621959Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:48.823996Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:49.613197Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:49.840589Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:54.113636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:54.333250Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:56.158603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:56.345340Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:24.653256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2923142241079919801, trigger=visual_change)\n2026-04-21T18:05:27.506644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2923142241079919801, trigger=visual_change)\n2026-04-21T18:05:52.127185Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:52.385537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:54.464579Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:54.740600Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:06:01.884193Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:06:04.917243Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:06:15.788550Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:06:16.090123Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:06:17.179267Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:07:04.992532Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:08.003078Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:17.121489Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:17.302355Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:27.025619Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:29.771279Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:31.137970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:36.086848Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:36.306717Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:37.369851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:37.634865Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:38.805129Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:39.104738Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:40.060624Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:08:30.262801Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:08:45.022177Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8543293535466770858, trigger=click)\n2026-04-21T18:09:22.083704Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=74 elapsed=6.715953125s\n2026-04-21T18:09:22.084245Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 74 eligible frames\n2026-04-21T18:09:29.000281Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 43 frames, 9.6MB → 4.0MB (2.4x), 43 JPEGs deleted\n2026-04-21T18:09:33.280652Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 5.8MB → 1.9MB (3.1x), 29 JPEGs deleted\n2026-04-21T18:10:45.149443Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:11:39.313378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=745086096190842156, trigger=visual_change)\n2026-04-21T18:11:42.305757Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=745086096190842156, trigger=click)\n2026-04-21T18:11:46.031853Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=745086096190842156, trigger=click)\n2026-04-21T18:11:46.095029Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=745086096190842156, trigger=click)\n2026-04-21T18:14:41.494244Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=68 elapsed=8.195880125s\n2026-04-21T18:14:41.495608Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 68 eligible frames\n2026-04-21T18:14:48.613051Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 8.2MB → 3.4MB (2.5x), 36 JPEGs deleted\n2026-04-21T18:14:55.232583Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 5.5MB → 2.6MB (2.1x), 30 JPEGs deleted\n2026-04-21T18:19:19.967211Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2899189334056575250, trigger=click)\n2026-04-21T18:19:20.363463Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2899189334056575250, trigger=click)\n2026-04-21T18:19:59.298075Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=53 elapsed=4.000910792s\n2026-04-21T18:19:59.298190Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 53 eligible frames\n2026-04-21T18:20:02.044649Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 5.1MB → 3.5MB (1.5x), 26 JPEGs deleted\n2026-04-21T18:20:04.900441Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.7MB → 2.4MB (1.9x), 25 JPEGs deleted\n2026-04-21T18:20:23.742659Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:27.660528Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:34.896769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:35.220946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:40.886719Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:44.353070Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:47.046701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:48.003863Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:22:59.673927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2006451494811625283, trigger=click)\n2026-04-21T18:23:02.374154Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2006451494811625283, trigger=visual_change)\n2026-04-21T18:24:55.480969Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:24:55.713808Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:25:06.770660Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=745086096190842156, trigger=click)\n2026-04-21T18:25:10.431473Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=69 elapsed=5.123936292s\n2026-04-21T18:25:10.432665Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 69 eligible frames\n2026-04-21T18:25:12.020960Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.7MB → 0.4MB (10.8x), 24 JPEGs deleted\n2026-04-21T18:25:16.809118Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 43 frames, 7.5MB → 3.7MB (2.0x), 43 JPEGs deleted\n2026-04-21T18:27:20.032159Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-868697608726996264, trigger=click)\n2026-04-21T18:27:27.209581Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5262134208844209929, trigger=click)\n2026-04-21T18:30:23.556529Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=60 elapsed=6.732438875s\n2026-04-21T18:30:23.556849Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 60 eligible frames\n2026-04-21T18:30:25.836587Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 5.3MB → 0.4MB (12.5x), 27 JPEGs deleted\n2026-04-21T18:30:29.251794Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 5.4MB → 2.7MB (2.0x), 31 JPEGs deleted\n2026-04-21T18:34:42.383568Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1898158487632236470, trigger=click)\n2026-04-21T18:35:29.435858Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 84 eligible frames\n2026-04-21T18:35:31.507303Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 35 frames, 6.8MB → 0.3MB (21.3x), 35 JPEGs deleted\n2026-04-21T18:35:34.821718Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 47 frames, 8.8MB → 3.6MB (2.4x), 47 JPEGs deleted\n2026-04-21T18:37:57.032414Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3231955623713121874, trigger=click)\n2026-04-21T18:40:36.969380Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=205 elapsed=2.13815675s\n2026-04-21T18:40:36.969491Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 205 eligible frames\n2026-04-21T18:40:42.234686Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 90 frames, 17.5MB → 0.4MB (49.4x), 90 JPEGs deleted\n2026-04-21T18:40:48.296945Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 99 frames, 14.9MB → 5.7MB (2.6x), 99 JPEGs deleted\n2026-04-21T18:40:49.626073Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 1.8MB → 0.7MB (2.8x), 14 JPEGs deleted\n2026-04-21T18:41:16.858046Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5262134208844209929, trigger=click)\n2026-04-21T18:41:18.719527Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5262134208844209929, trigger=click)\n2026-04-21T18:41:20.650032Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6762752836329409782, trigger=click)\n2026-04-21T18:42:40.957654Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7949512313665335161, trigger=visual_change)\n2026-04-21T18:42:42.714242Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7949512313665335161, trigger=click)\n2026-04-21T18:44:54.833923Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7610506607449357182, trigger=click)\n2026-04-21T18:44:55.013934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7610506607449357182, trigger=click)\n2026-04-21T18:45:54.320505Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=145 elapsed=4.6846185s\n2026-04-21T18:45:54.321215Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 145 eligible frames\n2026-04-21T18:45:58.288822Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 64 frames, 12.5MB → 0.5MB (23.2x), 64 JPEGs deleted\n2026-04-21T18:46:02.956701Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 78 frames, 11.5MB → 3.3MB (3.5x), 78 JPEGs deleted\n2026-04-21T18:48:10.510139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4242937607805845066, trigger=click)\n2026-04-21T18:48:37.207446Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5152173808593872338, trigger=visual_change)\n2026-04-21T18:49:27.537635Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5244088376274895156, trigger=click)\n2026-04-21T18:49:33.724367Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5262134208844209929, trigger=click)\n2026-04-21T18:49:44.747739Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8298107678328947062, trigger=click)\n2026-04-21T18:50:45.073176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:50:45.427101Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:50:48.592273Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:50:49.492676Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:51:01.193858Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:51:05.888682Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=50 elapsed=2.917680375s\n2026-04-21T18:51:05.889014Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 50 eligible frames\n2026-04-21T18:51:06.016628Z WARN sqlx::query: summary=\"PRAGMA wal_checkpoint(TRUNCATE)\" db.statement=\"\" rows_affected=0 rows_returned=1 elapsed=2.157649083s\n2026-04-21T18:51:06.079565Z WARN sqlx::query: summary=\"BEGIN IMMEDIATE\" db.statement=\"\" rows_affected=1 rows_returned=0 elapsed=1.385088167s\n2026-04-21T18:51:07.829374Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 3.9MB → 0.4MB (11.0x), 20 JPEGs deleted\n2026-04-21T18:51:09.736739Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 5.0MB → 1.8MB (2.7x), 28 JPEGs deleted\n2026-04-21T18:51:22.360027Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2872311122120998867, trigger=click)\n2026-04-21T18:51:22.556670Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2872311122120998867, trigger=click)\n2026-04-21T18:51:38.819030Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7947558874471225541, trigger=click)\n2026-04-21T18:51:57.414061Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:51:59.012068Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:51:59.285931Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:01.767745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:02.028355Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:05.460776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=visual_change)\n2026-04-21T18:52:07.087479Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:07.314492Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:10.214922Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:10.537340Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:13.867159Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:14.152331Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:20.367281Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:26.127826Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1650348556715134220, trigger=click)\n2026-04-21T18:52:37.517700Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=visual_change)\n2026-04-21T18:52:42.329057Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:52:42.556779Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:52:44.386173Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:52:44.700511Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:52:45.210674Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:53:17.193415Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6757993062848436258, trigger=visual_change)\n2026-04-21T18:53:30.834059Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-228480120308125164, trigger=click)\n2026-04-21T18:53:38.030882Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7225077546439863627, trigger=click)\n2026-04-21T18:53:56.421537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6437320026671683644, trigger=click)\n2026-04-21T18:54:11.726528Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1667437155962702753, trigger=visual_change)\n2026-04-21T18:54:12.117525Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1667437155962702753, trigger=click)\n2026-04-21T18:54:18.659686Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:54:19.077258Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:54:29.973760Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:56:07.789768Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6757993062848436258, trigger=click)\n2026-04-21T18:56:08.791400Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6757993062848436258, trigger=click)\n2026-04-21T18:56:14.153615Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=80 elapsed=4.402661042s\n2026-04-21T18:56:14.153722Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 80 eligible frames\n2026-04-21T18:56:16.685912Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 6.2MB → 0.7MB (8.9x), 32 JPEGs deleted\n2026-04-21T18:56:21.263739Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 46 frames, 8.2MB → 2.8MB (2.9x), 46 JPEGs deleted\n2026-04-21T18:56:25.279306Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7906564822731502105, trigger=click)\n2026-04-21T18:56:33.734840Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8817586097865472869, trigger=click)\n2026-04-21T18:56:33.980908Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8817586097865472869, trigger=click)\n2026-04-21T18:56:35.972959Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8817586097865472869, trigger=click)\n2026-04-21T18:56:40.545963Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8587160525579598601, trigger=click)\n2026-04-21T18:56:41.913814Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8587160525579598601, trigger=visual_change)\n2026-04-21T18:56:45.516942Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1910160977377320534, trigger=click)\n2026-04-21T18:56:48.740431Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1910160977377320534, trigger=click)\n2026-04-21T18:56:50.439568Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1910160977377320534, trigger=click)\n2026-04-21T18:56:50.692218Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1910160977377320534, trigger=click)\n2026-04-21T18:57:12.321118Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:12.578681Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:24.290583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:24.543696Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:34.571768Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:36.227688Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:36.475151Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:42.338601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:42.559967Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:52.824809Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:53.145543Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:59.463043Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:59.717475Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:58:00.742137Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:58:01.061497Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:59:33.960291Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9203182216527106315, trigger=visual_change)\n2026-04-21T18:59:55.990167Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T18:59:59.103830Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=visual_change)\n2026-04-21T19:00:16.116927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:00:45.352689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:00:49.596644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:00:50.432181Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:07.992732Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:08.484066Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:10.538762Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:18.922398Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:28.361625Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=84 elapsed=6.9360265s\n2026-04-21T19:01:28.362070Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 84 eligible frames\n2026-04-21T19:01:32.723075Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 33 frames, 6.4MB → 0.3MB (19.7x), 33 JPEGs deleted\n2026-04-21T19:01:42.130490Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 7.8MB → 3.3MB (2.4x), 49 JPEGs deleted\n2026-04-21T19:02:09.991879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:12.577587Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:12.835924Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:15.635601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:18.720475Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:21.708351Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:22.061150Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:28.684303Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3995027160269120472, trigger=click)\n2026-04-21T19:02:41.434491Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:41.724904Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:43.112974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:43.410843Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:47.501924Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:47.761592Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:54.205542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:54.441326Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:56.601490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:56.921256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:03:15.988643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:03:16.236342Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:03:28.508616Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:00.462064Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:01.516168Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:01.856315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:03.246448Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:03.735029Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:09.818135Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:05:03.118616Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:03.393788Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:21.352722Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=visual_change)\n2026-04-21T19:05:43.751309Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:44.029500Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:45.626672Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:45.899754Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:48.206587Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:48.449043Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:06:22.834938Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7947558874471225541, trigger=click)\n2026-04-21T19:06:52.937779Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=114 elapsed=10.747243125s\n2026-04-21T19:06:52.938152Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 114 eligible frames\n2026-04-21T19:06:57.942457Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 45 frames, 8.8MB → 0.3MB (27.2x), 45 JPEGs deleted\n2026-04-21T19:07:05.853054Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 67 frames, 10.5MB → 5.2MB (2.0x), 67 JPEGs deleted\n2026-04-21T19:07:45.088797Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:07:48.052391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6936634780821666458, trigger=click)\n2026-04-21T19:08:59.593467Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5629560013928052473, trigger=click)\n2026-04-21T19:09:29.443711Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:42.998313Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8043719072324535154, trigger=visual_change)\n2026-04-21T19:09:50.759516Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:51.052544Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:51.892698Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:09:52.651776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:55.476431Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:55.898195Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:09:58.077337Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:10:01.103980Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:10:03.105423Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:10:03.448049Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:10:08.548130Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6051188157141408655, trigger=click)\n2026-04-21T19:12:12.330759Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=70 elapsed=6.458002417s\n2026-04-21T19:12:12.332545Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 70 eligible frames\n2026-04-21T19:12:14.243079Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 5.5MB → 0.3MB (17.2x), 28 JPEGs deleted\n2026-04-21T19:12:17.558334Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 40 frames, 7.4MB → 3.6MB (2.1x), 40 JPEGs deleted\n2026-04-21T19:16:51.045938Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1370319459641728815, trigger=click)\n2026-04-21T19:16:51.249993Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1370319459641728815, trigger=click)\n2026-04-21T19:17:21.603564Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=40 elapsed=4.036037791s\n2026-04-21T19:17:21.604357Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames\n2026-04-21T19:17:22.750174Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.5MB → 0.3MB (11.2x), 18 JPEGs deleted\n2026-04-21T19:17:24.332098Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.2MB → 1.3MB (3.2x), 20 JPEGs deleted\n2026-04-21T19:22:25.748871Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=49 elapsed=1.406664416s\n2026-04-21T19:22:25.749095Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 49 eligible frames\n2026-04-21T19:22:27.704722Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 3.7MB → 0.8MB (4.5x), 22 JPEGs deleted\n2026-04-21T19:22:29.535330Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.2MB → 1.7MB (3.0x), 25 JPEGs deleted\n2026-04-21T19:23:29.233846Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9146581369053060363, trigger=click)\n2026-04-21T19:23:31.995034Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9146581369053060363, trigger=visual_change)\n2026-04-21T19:23:37.213396Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9146581369053060363, trigger=visual_change)\n2026-04-21T19:23:40.288223Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9146581369053060363, trigger=visual_change)\n2026-04-21T19:23:44.197738Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9146581369053060363, trigger=visual_change)\n2026-04-21T19:23:45.228572Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9146581369053060363, trigger=click)\n2026-04-21T19:23:56.251033Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:24:06.580019Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=335 elapsed=1.644312167s\n2026-04-21T19:24:28.860436Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:24:32.226944Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:24:32.476075Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:03.902521Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:19.205245Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:25.098627Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:36.013866Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:37.355954Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:41.831265Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:46.247585Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:46.619106Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:48.284769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:48.534452Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:49.421920Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:49.752264Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:54.600720Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:55.072357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:26:19.446041Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:26:22.718352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:27:38.437704Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=28 elapsed=8.833634334s\n2026-04-21T19:27:38.438043Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames\n2026-04-21T19:27:39.763901Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 1.9MB → 0.3MB (7.6x), 12 JPEGs deleted\n2026-04-21T19:27:41.220664Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.1MB → 0.9MB (2.2x), 14 JPEGs deleted\n2026-04-21T19:28:22.708791Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:28:23.849452Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:28:24.119301Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:14.209016Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:16.415693Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:21.726815Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:23.890645Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:24.239058Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:29.790006Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:33.098495Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:38.065869Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:44.089028Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:47.272131Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:53.977951Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:57.274496Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:30:11.986797Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:30:13.530455Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:30:28.332451Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:30:37.204947Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:26.255340Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:26.592983Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:30.448912Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:35.747969Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:37.783849Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:38.061197Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:43.216365Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:43.885407Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:46.680745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:52.971450Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:58.468469Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:58.624833Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:03.362210Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:12.706102Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:15.172982Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:23.020508Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:23.199312Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:25.387097Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:25.764201Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:30.336940Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:30.810971Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:39.812820Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:42.409145Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:44.386326Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:48.880648Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=47 elapsed=7.499136792s\n2026-04-21T19:32:48.880949Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 47 eligible frames\n2026-04-21T19:32:51.249469Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.2MB → 0.3MB (8.9x), 14 JPEGs deleted\n2026-04-21T19:32:55.969183Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 3.8MB → 1.9MB (2.0x), 31 JPEGs deleted\n2026-04-21T19:32:59.734686Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:33:00.098925Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:33:05.951997Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:34:07.213420Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:34:09.264586Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:34:16.527425Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:34:19.513647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:34:32.889780Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1128757073350665914, trigger=click)\n2026-04-21T19:34:56.078651Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4993766851008728916, trigger=click)\n2026-04-21T19:34:56.296542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4993766851008728916, trigger=click)\n2026-04-21T19:35:02.344819Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:35:05.237721Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:35:07.518599Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:35:09.938481Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:35:10.408295Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:35:26.864482Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:35:33.001733Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:35:36.479802Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:36:20.043835Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4526067242477956280, trigger=visual_change)\n2026-04-21T19:36:47.029303Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4526067242477956280, trigger=visual_change)\n2026-04-21T19:36:57.077150Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:37:33.348160Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:37:33.742029Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:37:36.579915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:37:39.754974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:38:04.951324Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=101 elapsed=8.9666755s\n2026-04-21T19:38:04.953527Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 101 eligible frames\n2026-04-21T19:38:13.751166Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 38 frames, 8.0MB → 3.5MB (2.3x), 38 JPEGs deleted\n2026-04-21T19:38:29.817220Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 61 frames, 9.7MB → 5.2MB (1.9x), 61 JPEGs deleted\n2026-04-21T19:40:34.255930Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=342 elapsed=1.0699005s\n2026-04-21T19:42:32.961192Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:42:33.305572Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:42:40.179851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=visual_change)\n2026-04-21T19:42:41.405781Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:42:41.720845Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:43:02.251464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=visual_change)\n2026-04-21T19:43:11.622532Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:43:36.525920Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=85 elapsed=6.634896167s\n2026-04-21T19:43:36.526454Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 85 eligible frames\n2026-04-21T19:43:39.459999Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 8.0MB → 3.4MB (2.3x), 36 JPEGs deleted\n2026-04-21T19:43:43.505640Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 47 frames, 7.9MB → 3.9MB (2.0x), 47 JPEGs deleted\n2026-04-21T19:44:05.999282Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=visual_change)\n2026-04-21T19:45:08.065595Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2712812971723964739, trigger=click)\n2026-04-21T19:45:46.266141Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:48:51.569666Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=64 elapsed=8.039671791s\n2026-04-21T19:48:51.570457Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 64 eligible frames\n2026-04-21T19:48:58.738540Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 7.2MB → 2.4MB (2.9x), 32 JPEGs deleted\n2026-04-21T19:49:05.383193Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 5.9MB → 2.5MB (2.4x), 30 JPEGs deleted\n2026-04-21T19:51:14.064760Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2572721248839450970, trigger=visual_change)\n2026-04-21T19:54:08.518415Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=346 elapsed=1.026887875s\n2026-04-21T19:54:12.872902Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=61 elapsed=7.44778675s\n2026-04-21T19:54:12.873164Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 61 eligible frames\n2026-04-21T19:54:16.348511Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.6MB → 1.4MB (4.1x), 25 JPEGs deleted\n2026-04-21T19:54:24.102233Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 34 frames, 6.2MB → 3.6MB (1.7x), 34 JPEGs deleted\n2026-04-21T19:59:32.063421Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=346 elapsed=1.165878958s\n2026-04-21T19:59:32.818884Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=31 elapsed=8.661332917s\n2026-04-21T19:59:32.819629Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 31 eligible frames\n2026-04-21T19:59:35.810838Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.9MB → 0.7MB (3.9x), 16 JPEGs deleted\n2026-04-21T19:59:38.924596Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.9MB → 1.5MB (2.0x), 13 JPEGs deleted\n2026-04-21T20:01:55.709776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1382976804061127003, trigger=click)\n2026-04-21T20:04:27.572999Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7658911549706194190, trigger=click)\n2026-04-21T20:04:46.630063Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=57 elapsed=7.045125334s\n2026-04-21T20:04:46.631081Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 57 eligible frames\n2026-04-21T20:04:49.684796Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 2.5MB → 0.8MB (3.2x), 23 JPEGs deleted\n2026-04-21T20:04:56.073590Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 5.7MB → 3.1MB (1.8x), 32 JPEGs deleted\n2026-04-21T20:05:04.129844Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-446124678591544690, trigger=click)\n2026-04-21T20:05:04.425723Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-446124678591544690, trigger=click)\n2026-04-21T20:09:59.238939Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=30 elapsed=2.058497125s\n2026-04-21T20:09:59.239075Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 30 eligible frames\n2026-04-21T20:10:00.874153Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.3MB → 0.2MB (5.8x), 13 JPEGs deleted\n2026-04-21T20:10:03.326064Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 1.8MB → 0.6MB (2.8x), 15 JPEGs deleted\n2026-04-21T20:15:07.129653Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=58 elapsed=3.763973459s\n2026-04-21T20:15:07.130598Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 58 eligible frames\n2026-04-21T20:15:09.088400Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 3.7MB → 0.6MB (5.9x), 26 JPEGs deleted\n2026-04-21T20:15:10.858868Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 3.9MB → 1.0MB (3.9x), 30 JPEGs deleted\n2026-04-21T20:18:21.110736Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=354 elapsed=1.169721666s\nzsh: terminated npx screenpipe@latest record --disable-audio --ignored-windows \"Boosteroid\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-start\ndetected hardware tier: Mid\nwarning: parakeet is not supported on this platform, using whisper-tiny instead\n2026-04-22T09:15:19.880360Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store\nchecking permissions...\n screen recording: ok\n accessibility: ok\n2026-04-22T09:15:19.951248Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6\n2026-04-22T09:15:20.675958Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor\n2026-04-22T09:15:20.677447Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)\n2026-04-22T09:15:20.677800Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)\n2026-04-22T09:15:20.709542Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true\n2026-04-22T09:15:20.709596Z INFO screenpipe: meeting detector enabled — independent of transcription mode\n2026-04-22T09:15:20.709849Z INFO screenpipe: API server listening on 127.0.0.1:3030 (localhost only)\n2026-04-22T09:15:20.709774Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)\n2026-04-22T09:15:20.709806Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)\n2026-04-22T09:15:20.709863Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key\n2026-04-22T09:15:20.709908Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager\n2026-04-22T09:15:20.721517Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-22T09:15:20.725781Z INFO screenpipe_core::pipes: loaded pipe: day-recap\n2026-04-22T09:15:20.725991Z INFO screenpipe_core::pipes: loaded pipe: standup-update\n2026-04-22T09:15:20.726387Z INFO screenpipe_core::pipes: loaded pipe: ai-habits\n2026-04-22T09:15:20.726548Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown\n2026-04-22T09:15:20.726690Z INFO screenpipe_core::pipes: loaded pipe: video-export\n2026-04-22T09:15:20.727224Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary\n2026-04-22T09:15:20.727242Z INFO screenpipe_core::pipes: loaded 6 pipes from \"/Users/lukas/.screenpipe/pipes\"\n\n\n\n _ \n __________________ ___ ____ ____ (_____ ___ \n / ___/ ___/ ___/ _ \\/ _ \\/ __ \\ / __ \\/ / __ \\/ _ \\\n (__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/\n/____/\\___/_/ \\___/\\___/_/ /_/ / .___/_/ .___/\\___/ \n /_/ /_/ \n\n\n\npower AI by everything you've seen, said or heard\nopen source | runs locally | developer friendly\n\n\n┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ true │\n│ vision disabled │ false │\n│ pause on DRM content │ false │\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n│ ignored windows │ [\"Boosteroid\"] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n2026-04-22T09:15:20.728614Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n│ api auth │ enabled │\n2026-04-22T09:15:20.742172Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n│ encrypt secrets │ disabled │\n│ retention days │ 14 │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ id: 1 │\n│ │ id: 2 │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ disabled │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-22T09:15:20.742788Z INFO screenpipe: starting UI event capture\n2026-04-22T09:15:20.755824Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-22T09:15:20.769629Z INFO screenpipe_engine::ui_recorder: UI recording session started: e7729066-2ab4-4bf0-9d48-0c9790a4ee79\n2026-04-22T09:15:20.769680Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-22T09:15:20.769789Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-21 06:15:20.769785 UTC to 2026-04-22 06:15:20.769785 UTC)\n2026-04-22T09:15:20.770644Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-22T09:15:20.778181Z INFO screenpipe_engine::server: Server listening on 127.0.0.1:3030\n2026-04-22T09:15:20.789960Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-22T09:15:21.591614Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-22T09:15:21.591646Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-22T09:15:21.591751Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-22T09:15:21.919088Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-22T09:15:21.919141Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-22T09:15:21.919158Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)\n2026-04-22T09:15:21.919163Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-22T09:15:21.919167Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)\n2026-04-22T09:15:23.315305Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-22T09:15:23.445619Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=68471, dur=74ms\n2026-04-22T09:15:23.697846Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-22T09:15:23.856559Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=68472, dur=115ms\n2026-04-22T09:15:23.858032Z INFO sck_rs::stream_manager: invalidated persistent stream for display 2\n2026-04-22T09:15:25.542035Z WARN sqlx::query: summary=\"SELECT f.id, f.timestamp, f.offset_index, …\" db.statement=\"\\n\\nSELECT\\n f.id,\\n f.timestamp,\\n f.offset_index,\\n COALESCE(\\n SUBSTR(f.full_text, 1, 200),\\n SUBSTR(f.accessibility_text, 1, 200),\\n (\\n SELECT\\n SUBSTR(ot.text, 1, 200)\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as text,\\n COALESCE(\\n f.app_name,\\n (\\n SELECT\\n ot.app_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as app_name,\\n COALESCE(\\n f.window_name,\\n (\\n SELECT\\n ot.window_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as window_name,\\n COALESCE(vc.device_name, f.device_name) as screen_device,\\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\\n COALESCE(vc.fps, 0.033) as chunk_fps,\\n f.browser_url,\\n f.machine_id\\nFROM\\n frames f\\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\\nWHERE\\n f.timestamp >= ?1\\n AND f.timestamp <= ?2\\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\\nORDER BY\\n f.timestamp DESC,\\n f.offset_index DESC\\nLIMIT\\n 10000\\n\" rows_affected=0 rows_returned=7744 elapsed=4.771776083s\n2026-04-22T09:15:25.568771Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 7744 frame entries, coverage from 2026-04-21 06:15:20.769785 UTC\n2026-04-22T09:15:32.415224Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-22T09:15:41.941919Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=357539612469251678, trigger=click)\n2026-04-22T09:15:43.170779Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=357539612469251678, trigger=visual_change)\n2026-04-22T09:16:22.411707Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5959696770819639860, trigger=visual_change)\n2026-04-22T09:16:26.239896Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=62 elapsed=5.530699458s\n2026-04-22T09:16:26.240084Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 62 eligible frames\n2026-04-22T09:16:28.044386Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 4.7MB → 0.2MB (19.7x), 30 JPEGs deleted\n2026-04-22T09:16:30.086623Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 4.3MB → 0.1MB (30.2x), 30 JPEGs deleted\n2026-04-22T09:16:31.962480Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5959696770819639860, trigger=visual_change)","depth":4,"value":"FROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=47 elapsed=5.487768917s\n2026-04-21T16:49:53.309371Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 47 eligible frames\n2026-04-21T16:49:54.673701Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.9MB → 0.3MB (13.1x), 21 JPEGs deleted\n2026-04-21T16:49:56.314871Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.7MB → 1.2MB (4.0x), 24 JPEGs deleted\n2026-04-21T16:54:59.385017Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=62 elapsed=3.057419917s\n2026-04-21T16:54:59.385210Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 62 eligible frames\n2026-04-21T16:55:00.998239Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.8MB → 0.5MB (10.3x), 26 JPEGs deleted\n2026-04-21T16:55:03.739041Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 34 frames, 5.8MB → 2.6MB (2.2x), 34 JPEGs deleted\n2026-04-21T16:55:17.768634Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)\n2026-04-21T17:23:59.183039Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)\n2026-04-21T17:23:59.216966Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2\n2026-04-21T17:24:00.832399Z INFO screenpipe_engine::vision_manager::monitor_watcher: Monitor 2 disconnected, stopping recording\n2026-04-21T17:24:00.832464Z INFO screenpipe_engine::vision_manager::manager: Stopping vision recording for monitor 2\n2026-04-21T17:24:00.832336Z INFO sck_rs::stream_manager: stopped 2 persistent stream(s)\n2026-04-21T17:24:04.654209Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-21T17:24:30.699969Z ERROR screenpipe_engine::resource_monitor: Failed to send resource usage to PostHog: error sending request for url (https://us.i.posthog.com/capture/)\n2026-04-21T17:25:01.085383Z INFO screenpipe_engine::vision_manager::monitor_watcher: Monitor 2 reconnected, resuming recording\n2026-04-21T17:25:01.273818Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-21T17:25:01.273870Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-21T17:25:01.273896Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-21T17:25:02.310236Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-21T17:25:02.808234Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=66228, dur=365ms\n2026-04-21T17:25:04.889075Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:07.887565Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:10.918390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:14.039034Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:17.160521Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:26.096276Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:29.061270Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:32.067380Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:35.263701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:41.164753Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:44.239172Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:47.149320Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:50.242915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:53.308794Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:56.218138Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:59.144297Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:26:05.965946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:08.584110Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:11.350189Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:14.339609Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:17.398251Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:20.782119Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:23.385506Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:26.427626Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:29.573661Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:32.450744Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:38.464132Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:41.456915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:44.496278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:47.541313Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:50.596256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:53.597171Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:56.764522Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:59.751576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:02.719391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:08.829090Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:11.800601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:14.811724Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:17.855339Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:26.878741Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:29.933020Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:32.947216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:36.041239Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:38.993657Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:42.039373Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:45.172399Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:48.081804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:51.142939Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:54.169253Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:00.341347Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:03.322832Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:06.631198Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:09.537232Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:12.406113Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:15.381764Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:15.806839Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=44 elapsed=5.777403s\n2026-04-21T17:28:15.806951Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 44 eligible frames\n2026-04-21T17:28:17.108106Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.9MB → 0.3MB (13.1x), 21 JPEGs deleted\n2026-04-21T17:28:18.370832Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.6MB → 0.5MB (7.8x), 21 JPEGs deleted\n2026-04-21T17:28:18.461408Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:22.068097Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:24.604711Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:27.608060Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:33.774822Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:36.697278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:39.729251Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:42.728755Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:45.748204Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:48.768910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:51.814752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:54.970698Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:57.869874Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:00.913837Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:07.461529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:10.043928Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:13.182411Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:16.080133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:19.108570Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:22.322033Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:25.172666Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:28.398354Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:31.249083Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:34.289745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:40.303310Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:43.308015Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:46.360649Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:49.356069Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:52.450205Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:55.422975Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:58.446390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:01.491253Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:04.500380Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:16.830925Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:19.856895Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:23.100486Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:25.938910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:28.953603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:32.061536Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:35.030958Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:38.162895Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:41.148165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:44.019513Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:50.259576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:53.148070Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:56.309979Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:59.185610Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:02.278235Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:05.287341Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:08.409426Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:11.489977Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:14.319338Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:17.348153Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:23.351025Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:26.427529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:29.337254Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:32.386165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:35.653387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:38.430216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:41.428909Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:44.432459Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:47.448603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:50.432780Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:56.535727Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:59.590792Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:02.621444Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:05.627964Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:08.710139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:11.765247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:14.787638Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:17.876480Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)\n2026-04-21T17:32:20.977937Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)\n2026-04-21T17:32:29.888970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8116870867026519513, trigger=click)\n2026-04-21T17:32:33.123648Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)\n2026-04-21T17:33:03.355082Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)\n2026-04-21T17:33:05.517897Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=click)\n2026-04-21T17:33:06.399783Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)\n2026-04-21T17:33:09.478894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)\n2026-04-21T17:33:19.151217Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-21T17:33:21.431006Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6379516332769645744, trigger=visual_change)\n2026-04-21T17:33:33.494463Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7500553589467718193, trigger=visual_change)\n2026-04-21T17:34:00.725974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2275300387038012183, trigger=click)\n2026-04-21T17:34:07.214867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2063499064757931498, trigger=visual_change)\n2026-04-21T17:34:31.480257Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=visual_change)\n2026-04-21T17:34:34.482370Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=visual_change)\n2026-04-21T17:35:53.801549Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7652433743467416760, trigger=click)\n2026-04-21T17:35:53.954311Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7652433743467416760, trigger=click)\n2026-04-21T17:35:54.740695Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7652433743467416760, trigger=click)\n2026-04-21T17:36:06.295752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5335392039126841536, trigger=visual_change)\n2026-04-21T17:36:28.893337Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5927780310531960690, trigger=visual_change)\n2026-04-21T17:38:15.647110Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)\n2026-04-21T17:38:17.801901Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)\n2026-04-21T17:38:17.962831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)\n2026-04-21T17:38:22.819710Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7137414965816212018, trigger=click)\n2026-04-21T17:38:22.917176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=click)\n2026-04-21T17:38:23.042830Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=28 elapsed=3.882772625s\n2026-04-21T17:38:23.042920Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames\n2026-04-21T17:38:24.717251Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 2.8MB → 0.4MB (6.3x), 18 JPEGs deleted\n2026-04-21T17:38:26.727027Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.1MB → 0.2MB (5.7x), 10 JPEGs deleted\n2026-04-21T17:38:35.971287Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=click)\n2026-04-21T17:38:36.106246Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7137414965816212018, trigger=click)\n2026-04-21T17:38:37.368009Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=visual_change)\n2026-04-21T17:38:43.431620Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8741356672789266752, trigger=visual_change)\n2026-04-21T17:38:49.319886Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5149767057649118192, trigger=click)\n2026-04-21T17:38:49.477325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5149767057649118192, trigger=click)\n2026-04-21T17:38:51.019231Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5149767057649118192, trigger=visual_change)\n2026-04-21T17:39:04.249890Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7355944135161080033, trigger=click)\n2026-04-21T17:39:23.256256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4983811095206295613, trigger=click)\n2026-04-21T17:39:23.385820Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4983811095206295613, trigger=click)\n2026-04-21T17:39:24.367407Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4983811095206295613, trigger=visual_change)\n2026-04-21T17:39:24.895784Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4983811095206295613, trigger=click)\n2026-04-21T17:39:46.438272Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=372069959735326508, trigger=visual_change)\n2026-04-21T17:39:49.101085Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4964238948655865655, trigger=visual_change)\n2026-04-21T17:39:58.083750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)\n2026-04-21T17:40:01.375315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)\n2026-04-21T17:40:04.195859Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)\n2026-04-21T17:40:12.117004Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2989278587618621353, trigger=click)\n2026-04-21T17:40:12.244666Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2989278587618621353, trigger=click)\n2026-04-21T17:40:13.925024Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2989278587618621353, trigger=visual_change)\n2026-04-21T17:40:23.294147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=visual_change)\n2026-04-21T17:40:55.989498Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3182674559678505325, trigger=click)\n2026-04-21T17:40:58.413325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3182674559678505325, trigger=visual_change)\n2026-04-21T17:41:23.101094Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5616874458658671741, trigger=visual_change)\n2026-04-21T17:41:29.504783Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2744778324521007391, trigger=visual_change)\n2026-04-21T17:42:13.830352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6664909184667365933, trigger=click)\n2026-04-21T17:42:13.905614Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=click)\n2026-04-21T17:42:14.689622Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6664909184667365933, trigger=click)\n2026-04-21T17:43:13.738786Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5563100798252317961, trigger=visual_change)\n2026-04-21T17:43:31.769731Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=40 elapsed=4.870364084s\n2026-04-21T17:43:31.770321Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames\n2026-04-21T17:43:32.514133Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.1MB → 0.1MB (8.9x), 11 JPEGs deleted\n2026-04-21T17:43:34.391762Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 3.0MB → 0.5MB (5.9x), 27 JPEGs deleted\n2026-04-21T17:44:19.021163Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-263228306577803226, trigger=click)\n2026-04-21T17:44:32.036390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8360298266192684601, trigger=click)\n2026-04-21T17:44:33.859332Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8360298266192684601, trigger=visual_change)\n2026-04-21T17:44:42.936361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=visual_change)\n2026-04-21T17:44:46.420662Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=visual_change)\n2026-04-21T17:46:17.725934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7286082578618580481, trigger=click)\n2026-04-21T17:46:18.733766Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=click)\n2026-04-21T17:46:19.506484Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7286082578618580481, trigger=click)\n2026-04-21T17:46:20.729229Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=click)\n2026-04-21T17:46:27.956655Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8942982652250876029, trigger=click)\n2026-04-21T17:46:29.490950Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8942982652250876029, trigger=click)\n2026-04-21T17:46:45.634752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5761541209609855314, trigger=click)\n2026-04-21T17:46:45.971315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5761541209609855314, trigger=click)\n2026-04-21T17:46:50.988867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5607564885929685542, trigger=click)\n2026-04-21T17:46:51.601750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5607564885929685542, trigger=click)\n2026-04-21T17:46:56.353647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4497988824039212795, trigger=click)\n2026-04-21T17:47:24.716661Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4864885406063659925, trigger=visual_change)\n2026-04-21T17:47:29.793942Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:30.097043Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)\n2026-04-21T17:47:30.960214Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:32.707746Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)\n2026-04-21T17:47:36.181007Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:36.362574Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:37.093511Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:41.720206Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)\n2026-04-21T17:47:44.706704Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)\n2026-04-21T17:47:48.602580Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:48.776278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:52.582982Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5658848090639979218, trigger=click)\n2026-04-21T17:47:57.282103Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8902771592702756196, trigger=click)\n2026-04-21T17:48:06.880071Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8902771592702756196, trigger=click)\n2026-04-21T17:48:07.656377Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8902771592702756196, trigger=click)\n2026-04-21T17:48:23.785117Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:24.032602Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:26.587906Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:32.180582Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:48:34.022831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:34.363583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:39.363585Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=83 elapsed=4.983598708s\n2026-04-21T17:48:39.363733Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 83 eligible frames\n2026-04-21T17:48:41.479158Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 3.3MB → 0.2MB (17.7x), 31 JPEGs deleted\n2026-04-21T17:48:44.682560Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 50 frames, 6.5MB → 2.0MB (3.3x), 50 JPEGs deleted\n2026-04-21T17:48:53.828851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:48:56.563636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:48:59.291654Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:59.467275Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:00.295226Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:00.453357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:49:13.301518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:49:16.454207Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:49:16.837288Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:18.900202Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:19.229376Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:20.418502Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:20.706966Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:21.269855Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:22.896443Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:23.115745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:29.927553Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1234240076182081719, trigger=click)\n2026-04-21T17:49:40.567042Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1506528968255096811, trigger=click)\n2026-04-21T17:49:40.722412Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1506528968255096811, trigger=click)\n2026-04-21T17:49:44.790415Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1506528968255096811, trigger=visual_change)\n2026-04-21T17:49:44.983133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1506528968255096811, trigger=visual_change)\n2026-04-21T17:51:50.315220Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)\n2026-04-21T17:51:53.337571Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)\n2026-04-21T17:51:59.473328Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)\n2026-04-21T17:52:02.455277Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)\n2026-04-21T17:52:05.862297Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:52:07.729450Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:52:16.901254Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:52:29.702852Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:52:36.533775Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:39.599515Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:45.700237Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:48.638819Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:54.704399Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:57.751791Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:53:10.186965Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:53:46.867091Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=116 elapsed=2.178958s\n2026-04-21T17:53:46.867199Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 116 eligible frames\n2026-04-21T17:53:49.254310Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:53:50.410056Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 56 frames, 12.3MB → 3.7MB (3.3x), 56 JPEGs deleted\n2026-04-21T17:53:51.388237Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:53:53.983042Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 58 frames, 9.0MB → 2.6MB (3.5x), 58 JPEGs deleted\n2026-04-21T17:53:56.223709Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:25.250317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:54:25.727105Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:54:32.633019Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:33.984547Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:54:35.401305Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:35.511290Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:38.494935Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:38.630637Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:41.245537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:54:45.441966Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:54:50.148639Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:50.313941Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:51.769427Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:51.915582Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:58.755543Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:55:01.758776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:55:25.745659Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3428322026263856254, trigger=click)\n2026-04-21T17:55:27.298490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3428322026263856254, trigger=visual_change)\n2026-04-21T17:55:33.297808Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3428322026263856254, trigger=visual_change)\n2026-04-21T17:55:48.491529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7233070170495400552, trigger=visual_change)\n2026-04-21T17:55:49.809101Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7233070170495400552, trigger=visual_change)\n2026-04-21T17:55:54.025243Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7233070170495400552, trigger=click)\n2026-04-21T17:55:54.165626Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7233070170495400552, trigger=click)\n2026-04-21T17:55:58.086411Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1463712168180952345, trigger=visual_change)\n2026-04-21T17:56:04.943502Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7233070170495400552, trigger=visual_change)\n2026-04-21T17:57:22.021701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:23.588692Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:30.517012Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:31.818301Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:31.972732Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:40.727074Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:42.330179Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:42.494853Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:45.528669Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:46.132479Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:46.358876Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:58:36.946109Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6074307134448385817, trigger=visual_change)\n2026-04-21T17:58:57.225929Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=117 elapsed=3.2365965s\n2026-04-21T17:58:57.226687Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 117 eligible frames\n2026-04-21T17:59:01.078632Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 58 frames, 12.8MB → 4.3MB (3.0x), 58 JPEGs deleted\n2026-04-21T17:59:04.938676Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 57 frames, 10.8MB → 4.0MB (2.7x), 57 JPEGs deleted\n2026-04-21T18:00:27.589643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9170086261988994041, trigger=click)\n2026-04-21T18:00:28.469646Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9170086261988994041, trigger=visual_change)\n2026-04-21T18:00:37.318027Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=9170086261988994041, trigger=click)\n2026-04-21T18:00:42.194585Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=9170086261988994041, trigger=click)\n2026-04-21T18:00:42.367049Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9170086261988994041, trigger=click)\n2026-04-21T18:01:07.200973Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:08.642294Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:08.873831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=visual_change)\n2026-04-21T18:01:09.931490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:10.189484Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:11.594292Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=visual_change)\n2026-04-21T18:01:12.844254Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:13.095866Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:49.712611Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5610420548393517496, trigger=click)\n2026-04-21T18:01:49.878502Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5610420548393517496, trigger=click)\n2026-04-21T18:01:54.385999Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4075180225844497251, trigger=click)\n2026-04-21T18:02:03.320721Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:04.589973Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:06.402101Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:08.459207Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:17.915785Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:20.289378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:53.363091Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:59.854804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6485088808083200508, trigger=visual_change)\n2026-04-21T18:03:23.692602Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2923142241079919801, trigger=visual_change)\n2026-04-21T18:03:38.383745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:03:38.666324Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:03:40.611795Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:03:46.691879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:03:49.696169Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:03:58.796193Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:10.455866Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=65 elapsed=5.507644708s\n2026-04-21T18:04:10.456994Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 65 eligible frames\n2026-04-21T18:04:10.784720Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:12.979583Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 8.1MB → 3.1MB (2.6x), 36 JPEGs deleted\n2026-04-21T18:04:13.808201Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:15.311040Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 5.7MB → 2.1MB (2.7x), 27 JPEGs deleted\n2026-04-21T18:04:22.870405Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:25.858949Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:47.178867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:47.409147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:48.621959Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:48.823996Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:49.613197Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:49.840589Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:54.113636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:54.333250Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:56.158603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:56.345340Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:24.653256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2923142241079919801, trigger=visual_change)\n2026-04-21T18:05:27.506644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2923142241079919801, trigger=visual_change)\n2026-04-21T18:05:52.127185Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:52.385537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:54.464579Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:54.740600Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:06:01.884193Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:06:04.917243Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:06:15.788550Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:06:16.090123Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:06:17.179267Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:07:04.992532Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:08.003078Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:17.121489Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:17.302355Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:27.025619Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:29.771279Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:31.137970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:36.086848Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:36.306717Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:37.369851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:37.634865Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:38.805129Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:39.104738Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:40.060624Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:08:30.262801Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:08:45.022177Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8543293535466770858, trigger=click)\n2026-04-21T18:09:22.083704Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=74 elapsed=6.715953125s\n2026-04-21T18:09:22.084245Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 74 eligible frames\n2026-04-21T18:09:29.000281Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 43 frames, 9.6MB → 4.0MB (2.4x), 43 JPEGs deleted\n2026-04-21T18:09:33.280652Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 5.8MB → 1.9MB (3.1x), 29 JPEGs deleted\n2026-04-21T18:10:45.149443Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:11:39.313378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=745086096190842156, trigger=visual_change)\n2026-04-21T18:11:42.305757Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=745086096190842156, trigger=click)\n2026-04-21T18:11:46.031853Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=745086096190842156, trigger=click)\n2026-04-21T18:11:46.095029Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=745086096190842156, trigger=click)\n2026-04-21T18:14:41.494244Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=68 elapsed=8.195880125s\n2026-04-21T18:14:41.495608Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 68 eligible frames\n2026-04-21T18:14:48.613051Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 8.2MB → 3.4MB (2.5x), 36 JPEGs deleted\n2026-04-21T18:14:55.232583Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 5.5MB → 2.6MB (2.1x), 30 JPEGs deleted\n2026-04-21T18:19:19.967211Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2899189334056575250, trigger=click)\n2026-04-21T18:19:20.363463Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2899189334056575250, trigger=click)\n2026-04-21T18:19:59.298075Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=53 elapsed=4.000910792s\n2026-04-21T18:19:59.298190Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 53 eligible frames\n2026-04-21T18:20:02.044649Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 5.1MB → 3.5MB (1.5x), 26 JPEGs deleted\n2026-04-21T18:20:04.900441Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.7MB → 2.4MB (1.9x), 25 JPEGs deleted\n2026-04-21T18:20:23.742659Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:27.660528Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:34.896769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:35.220946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:40.886719Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:44.353070Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:47.046701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:48.003863Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:22:59.673927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2006451494811625283, trigger=click)\n2026-04-21T18:23:02.374154Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2006451494811625283, trigger=visual_change)\n2026-04-21T18:24:55.480969Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:24:55.713808Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:25:06.770660Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=745086096190842156, trigger=click)\n2026-04-21T18:25:10.431473Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=69 elapsed=5.123936292s\n2026-04-21T18:25:10.432665Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 69 eligible frames\n2026-04-21T18:25:12.020960Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.7MB → 0.4MB (10.8x), 24 JPEGs deleted\n2026-04-21T18:25:16.809118Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 43 frames, 7.5MB → 3.7MB (2.0x), 43 JPEGs deleted\n2026-04-21T18:27:20.032159Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-868697608726996264, trigger=click)\n2026-04-21T18:27:27.209581Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5262134208844209929, trigger=click)\n2026-04-21T18:30:23.556529Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=60 elapsed=6.732438875s\n2026-04-21T18:30:23.556849Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 60 eligible frames\n2026-04-21T18:30:25.836587Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 5.3MB → 0.4MB (12.5x), 27 JPEGs deleted\n2026-04-21T18:30:29.251794Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 5.4MB → 2.7MB (2.0x), 31 JPEGs deleted\n2026-04-21T18:34:42.383568Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1898158487632236470, trigger=click)\n2026-04-21T18:35:29.435858Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 84 eligible frames\n2026-04-21T18:35:31.507303Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 35 frames, 6.8MB → 0.3MB (21.3x), 35 JPEGs deleted\n2026-04-21T18:35:34.821718Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 47 frames, 8.8MB → 3.6MB (2.4x), 47 JPEGs deleted\n2026-04-21T18:37:57.032414Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3231955623713121874, trigger=click)\n2026-04-21T18:40:36.969380Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=205 elapsed=2.13815675s\n2026-04-21T18:40:36.969491Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 205 eligible frames\n2026-04-21T18:40:42.234686Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 90 frames, 17.5MB → 0.4MB (49.4x), 90 JPEGs deleted\n2026-04-21T18:40:48.296945Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 99 frames, 14.9MB → 5.7MB (2.6x), 99 JPEGs deleted\n2026-04-21T18:40:49.626073Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 1.8MB → 0.7MB (2.8x), 14 JPEGs deleted\n2026-04-21T18:41:16.858046Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5262134208844209929, trigger=click)\n2026-04-21T18:41:18.719527Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5262134208844209929, trigger=click)\n2026-04-21T18:41:20.650032Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6762752836329409782, trigger=click)\n2026-04-21T18:42:40.957654Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7949512313665335161, trigger=visual_change)\n2026-04-21T18:42:42.714242Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7949512313665335161, trigger=click)\n2026-04-21T18:44:54.833923Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7610506607449357182, trigger=click)\n2026-04-21T18:44:55.013934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7610506607449357182, trigger=click)\n2026-04-21T18:45:54.320505Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=145 elapsed=4.6846185s\n2026-04-21T18:45:54.321215Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 145 eligible frames\n2026-04-21T18:45:58.288822Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 64 frames, 12.5MB → 0.5MB (23.2x), 64 JPEGs deleted\n2026-04-21T18:46:02.956701Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 78 frames, 11.5MB → 3.3MB (3.5x), 78 JPEGs deleted\n2026-04-21T18:48:10.510139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4242937607805845066, trigger=click)\n2026-04-21T18:48:37.207446Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5152173808593872338, trigger=visual_change)\n2026-04-21T18:49:27.537635Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5244088376274895156, trigger=click)\n2026-04-21T18:49:33.724367Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5262134208844209929, trigger=click)\n2026-04-21T18:49:44.747739Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8298107678328947062, trigger=click)\n2026-04-21T18:50:45.073176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:50:45.427101Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:50:48.592273Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:50:49.492676Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:51:01.193858Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:51:05.888682Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=50 elapsed=2.917680375s\n2026-04-21T18:51:05.889014Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 50 eligible frames\n2026-04-21T18:51:06.016628Z WARN sqlx::query: summary=\"PRAGMA wal_checkpoint(TRUNCATE)\" db.statement=\"\" rows_affected=0 rows_returned=1 elapsed=2.157649083s\n2026-04-21T18:51:06.079565Z WARN sqlx::query: summary=\"BEGIN IMMEDIATE\" db.statement=\"\" rows_affected=1 rows_returned=0 elapsed=1.385088167s\n2026-04-21T18:51:07.829374Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 3.9MB → 0.4MB (11.0x), 20 JPEGs deleted\n2026-04-21T18:51:09.736739Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 5.0MB → 1.8MB (2.7x), 28 JPEGs deleted\n2026-04-21T18:51:22.360027Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2872311122120998867, trigger=click)\n2026-04-21T18:51:22.556670Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2872311122120998867, trigger=click)\n2026-04-21T18:51:38.819030Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7947558874471225541, trigger=click)\n2026-04-21T18:51:57.414061Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:51:59.012068Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:51:59.285931Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:01.767745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:02.028355Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:05.460776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=visual_change)\n2026-04-21T18:52:07.087479Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:07.314492Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:10.214922Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:10.537340Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:13.867159Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:14.152331Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:20.367281Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:26.127826Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1650348556715134220, trigger=click)\n2026-04-21T18:52:37.517700Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=visual_change)\n2026-04-21T18:52:42.329057Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:52:42.556779Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:52:44.386173Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:52:44.700511Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:52:45.210674Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:53:17.193415Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6757993062848436258, trigger=visual_change)\n2026-04-21T18:53:30.834059Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-228480120308125164, trigger=click)\n2026-04-21T18:53:38.030882Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7225077546439863627, trigger=click)\n2026-04-21T18:53:56.421537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6437320026671683644, trigger=click)\n2026-04-21T18:54:11.726528Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1667437155962702753, trigger=visual_change)\n2026-04-21T18:54:12.117525Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1667437155962702753, trigger=click)\n2026-04-21T18:54:18.659686Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:54:19.077258Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:54:29.973760Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:56:07.789768Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6757993062848436258, trigger=click)\n2026-04-21T18:56:08.791400Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6757993062848436258, trigger=click)\n2026-04-21T18:56:14.153615Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=80 elapsed=4.402661042s\n2026-04-21T18:56:14.153722Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 80 eligible frames\n2026-04-21T18:56:16.685912Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 6.2MB → 0.7MB (8.9x), 32 JPEGs deleted\n2026-04-21T18:56:21.263739Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 46 frames, 8.2MB → 2.8MB (2.9x), 46 JPEGs deleted\n2026-04-21T18:56:25.279306Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7906564822731502105, trigger=click)\n2026-04-21T18:56:33.734840Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8817586097865472869, trigger=click)\n2026-04-21T18:56:33.980908Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8817586097865472869, trigger=click)\n2026-04-21T18:56:35.972959Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8817586097865472869, trigger=click)\n2026-04-21T18:56:40.545963Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8587160525579598601, trigger=click)\n2026-04-21T18:56:41.913814Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8587160525579598601, trigger=visual_change)\n2026-04-21T18:56:45.516942Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1910160977377320534, trigger=click)\n2026-04-21T18:56:48.740431Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1910160977377320534, trigger=click)\n2026-04-21T18:56:50.439568Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1910160977377320534, trigger=click)\n2026-04-21T18:56:50.692218Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1910160977377320534, trigger=click)\n2026-04-21T18:57:12.321118Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:12.578681Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:24.290583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:24.543696Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:34.571768Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:36.227688Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:36.475151Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:42.338601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:42.559967Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:52.824809Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:53.145543Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:59.463043Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:59.717475Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:58:00.742137Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:58:01.061497Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:59:33.960291Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9203182216527106315, trigger=visual_change)\n2026-04-21T18:59:55.990167Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T18:59:59.103830Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=visual_change)\n2026-04-21T19:00:16.116927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:00:45.352689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:00:49.596644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:00:50.432181Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:07.992732Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:08.484066Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:10.538762Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:18.922398Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:28.361625Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=84 elapsed=6.9360265s\n2026-04-21T19:01:28.362070Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 84 eligible frames\n2026-04-21T19:01:32.723075Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 33 frames, 6.4MB → 0.3MB (19.7x), 33 JPEGs deleted\n2026-04-21T19:01:42.130490Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 7.8MB → 3.3MB (2.4x), 49 JPEGs deleted\n2026-04-21T19:02:09.991879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:12.577587Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:12.835924Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:15.635601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:18.720475Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:21.708351Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:22.061150Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:28.684303Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3995027160269120472, trigger=click)\n2026-04-21T19:02:41.434491Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:41.724904Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:43.112974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:43.410843Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:47.501924Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:47.761592Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:54.205542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:54.441326Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:56.601490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:56.921256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:03:15.988643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:03:16.236342Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:03:28.508616Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:00.462064Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:01.516168Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:01.856315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:03.246448Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:03.735029Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:09.818135Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:05:03.118616Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:03.393788Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:21.352722Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=visual_change)\n2026-04-21T19:05:43.751309Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:44.029500Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:45.626672Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:45.899754Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:48.206587Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:48.449043Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:06:22.834938Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7947558874471225541, trigger=click)\n2026-04-21T19:06:52.937779Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=114 elapsed=10.747243125s\n2026-04-21T19:06:52.938152Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 114 eligible frames\n2026-04-21T19:06:57.942457Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 45 frames, 8.8MB → 0.3MB (27.2x), 45 JPEGs deleted\n2026-04-21T19:07:05.853054Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 67 frames, 10.5MB → 5.2MB (2.0x), 67 JPEGs deleted\n2026-04-21T19:07:45.088797Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:07:48.052391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6936634780821666458, trigger=click)\n2026-04-21T19:08:59.593467Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5629560013928052473, trigger=click)\n2026-04-21T19:09:29.443711Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:42.998313Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8043719072324535154, trigger=visual_change)\n2026-04-21T19:09:50.759516Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:51.052544Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:51.892698Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:09:52.651776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:55.476431Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:55.898195Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:09:58.077337Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:10:01.103980Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:10:03.105423Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:10:03.448049Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:10:08.548130Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6051188157141408655, trigger=click)\n2026-04-21T19:12:12.330759Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=70 elapsed=6.458002417s\n2026-04-21T19:12:12.332545Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 70 eligible frames\n2026-04-21T19:12:14.243079Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 5.5MB → 0.3MB (17.2x), 28 JPEGs deleted\n2026-04-21T19:12:17.558334Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 40 frames, 7.4MB → 3.6MB (2.1x), 40 JPEGs deleted\n2026-04-21T19:16:51.045938Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1370319459641728815, trigger=click)\n2026-04-21T19:16:51.249993Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1370319459641728815, trigger=click)\n2026-04-21T19:17:21.603564Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=40 elapsed=4.036037791s\n2026-04-21T19:17:21.604357Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames\n2026-04-21T19:17:22.750174Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.5MB → 0.3MB (11.2x), 18 JPEGs deleted\n2026-04-21T19:17:24.332098Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.2MB → 1.3MB (3.2x), 20 JPEGs deleted\n2026-04-21T19:22:25.748871Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=49 elapsed=1.406664416s\n2026-04-21T19:22:25.749095Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 49 eligible frames\n2026-04-21T19:22:27.704722Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 3.7MB → 0.8MB (4.5x), 22 JPEGs deleted\n2026-04-21T19:22:29.535330Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.2MB → 1.7MB (3.0x), 25 JPEGs deleted\n2026-04-21T19:23:29.233846Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9146581369053060363, trigger=click)\n2026-04-21T19:23:31.995034Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9146581369053060363, trigger=visual_change)\n2026-04-21T19:23:37.213396Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9146581369053060363, trigger=visual_change)\n2026-04-21T19:23:40.288223Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9146581369053060363, trigger=visual_change)\n2026-04-21T19:23:44.197738Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9146581369053060363, trigger=visual_change)\n2026-04-21T19:23:45.228572Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9146581369053060363, trigger=click)\n2026-04-21T19:23:56.251033Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:24:06.580019Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=335 elapsed=1.644312167s\n2026-04-21T19:24:28.860436Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:24:32.226944Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:24:32.476075Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:03.902521Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:19.205245Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:25.098627Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:36.013866Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:37.355954Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:41.831265Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:46.247585Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:46.619106Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:48.284769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:48.534452Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:49.421920Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:49.752264Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:54.600720Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:55.072357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:26:19.446041Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:26:22.718352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:27:38.437704Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=28 elapsed=8.833634334s\n2026-04-21T19:27:38.438043Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames\n2026-04-21T19:27:39.763901Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 1.9MB → 0.3MB (7.6x), 12 JPEGs deleted\n2026-04-21T19:27:41.220664Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.1MB → 0.9MB (2.2x), 14 JPEGs deleted\n2026-04-21T19:28:22.708791Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:28:23.849452Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:28:24.119301Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:14.209016Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:16.415693Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:21.726815Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:23.890645Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:24.239058Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:29.790006Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:33.098495Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:38.065869Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:44.089028Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:47.272131Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:53.977951Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:57.274496Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:30:11.986797Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:30:13.530455Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:30:28.332451Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:30:37.204947Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:26.255340Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:26.592983Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:30.448912Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:35.747969Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:37.783849Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:38.061197Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:43.216365Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:43.885407Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:46.680745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:52.971450Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:58.468469Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:58.624833Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:03.362210Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:12.706102Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:15.172982Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:23.020508Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:23.199312Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:25.387097Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:25.764201Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:30.336940Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:30.810971Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:39.812820Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:42.409145Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:44.386326Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:48.880648Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=47 elapsed=7.499136792s\n2026-04-21T19:32:48.880949Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 47 eligible frames\n2026-04-21T19:32:51.249469Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.2MB → 0.3MB (8.9x), 14 JPEGs deleted\n2026-04-21T19:32:55.969183Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 3.8MB → 1.9MB (2.0x), 31 JPEGs deleted\n2026-04-21T19:32:59.734686Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:33:00.098925Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:33:05.951997Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:34:07.213420Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:34:09.264586Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:34:16.527425Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:34:19.513647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:34:32.889780Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1128757073350665914, trigger=click)\n2026-04-21T19:34:56.078651Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4993766851008728916, trigger=click)\n2026-04-21T19:34:56.296542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4993766851008728916, trigger=click)\n2026-04-21T19:35:02.344819Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:35:05.237721Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:35:07.518599Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:35:09.938481Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:35:10.408295Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:35:26.864482Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:35:33.001733Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:35:36.479802Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:36:20.043835Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4526067242477956280, trigger=visual_change)\n2026-04-21T19:36:47.029303Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4526067242477956280, trigger=visual_change)\n2026-04-21T19:36:57.077150Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:37:33.348160Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:37:33.742029Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:37:36.579915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:37:39.754974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:38:04.951324Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=101 elapsed=8.9666755s\n2026-04-21T19:38:04.953527Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 101 eligible frames\n2026-04-21T19:38:13.751166Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 38 frames, 8.0MB → 3.5MB (2.3x), 38 JPEGs deleted\n2026-04-21T19:38:29.817220Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 61 frames, 9.7MB → 5.2MB (1.9x), 61 JPEGs deleted\n2026-04-21T19:40:34.255930Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=342 elapsed=1.0699005s\n2026-04-21T19:42:32.961192Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:42:33.305572Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:42:40.179851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=visual_change)\n2026-04-21T19:42:41.405781Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:42:41.720845Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:43:02.251464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=visual_change)\n2026-04-21T19:43:11.622532Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:43:36.525920Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=85 elapsed=6.634896167s\n2026-04-21T19:43:36.526454Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 85 eligible frames\n2026-04-21T19:43:39.459999Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 8.0MB → 3.4MB (2.3x), 36 JPEGs deleted\n2026-04-21T19:43:43.505640Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 47 frames, 7.9MB → 3.9MB (2.0x), 47 JPEGs deleted\n2026-04-21T19:44:05.999282Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=visual_change)\n2026-04-21T19:45:08.065595Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2712812971723964739, trigger=click)\n2026-04-21T19:45:46.266141Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:48:51.569666Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=64 elapsed=8.039671791s\n2026-04-21T19:48:51.570457Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 64 eligible frames\n2026-04-21T19:48:58.738540Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 7.2MB → 2.4MB (2.9x), 32 JPEGs deleted\n2026-04-21T19:49:05.383193Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 5.9MB → 2.5MB (2.4x), 30 JPEGs deleted\n2026-04-21T19:51:14.064760Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2572721248839450970, trigger=visual_change)\n2026-04-21T19:54:08.518415Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=346 elapsed=1.026887875s\n2026-04-21T19:54:12.872902Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=61 elapsed=7.44778675s\n2026-04-21T19:54:12.873164Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 61 eligible frames\n2026-04-21T19:54:16.348511Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.6MB → 1.4MB (4.1x), 25 JPEGs deleted\n2026-04-21T19:54:24.102233Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 34 frames, 6.2MB → 3.6MB (1.7x), 34 JPEGs deleted\n2026-04-21T19:59:32.063421Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=346 elapsed=1.165878958s\n2026-04-21T19:59:32.818884Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=31 elapsed=8.661332917s\n2026-04-21T19:59:32.819629Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 31 eligible frames\n2026-04-21T19:59:35.810838Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.9MB → 0.7MB (3.9x), 16 JPEGs deleted\n2026-04-21T19:59:38.924596Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.9MB → 1.5MB (2.0x), 13 JPEGs deleted\n2026-04-21T20:01:55.709776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1382976804061127003, trigger=click)\n2026-04-21T20:04:27.572999Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7658911549706194190, trigger=click)\n2026-04-21T20:04:46.630063Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=57 elapsed=7.045125334s\n2026-04-21T20:04:46.631081Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 57 eligible frames\n2026-04-21T20:04:49.684796Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 2.5MB → 0.8MB (3.2x), 23 JPEGs deleted\n2026-04-21T20:04:56.073590Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 5.7MB → 3.1MB (1.8x), 32 JPEGs deleted\n2026-04-21T20:05:04.129844Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-446124678591544690, trigger=click)\n2026-04-21T20:05:04.425723Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-446124678591544690, trigger=click)\n2026-04-21T20:09:59.238939Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=30 elapsed=2.058497125s\n2026-04-21T20:09:59.239075Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 30 eligible frames\n2026-04-21T20:10:00.874153Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.3MB → 0.2MB (5.8x), 13 JPEGs deleted\n2026-04-21T20:10:03.326064Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 1.8MB → 0.6MB (2.8x), 15 JPEGs deleted\n2026-04-21T20:15:07.129653Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=58 elapsed=3.763973459s\n2026-04-21T20:15:07.130598Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 58 eligible frames\n2026-04-21T20:15:09.088400Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 3.7MB → 0.6MB (5.9x), 26 JPEGs deleted\n2026-04-21T20:15:10.858868Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 3.9MB → 1.0MB (3.9x), 30 JPEGs deleted\n2026-04-21T20:18:21.110736Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=354 elapsed=1.169721666s\nzsh: terminated npx screenpipe@latest record --disable-audio --ignored-windows \"Boosteroid\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-start\ndetected hardware tier: Mid\nwarning: parakeet is not supported on this platform, using whisper-tiny instead\n2026-04-22T09:15:19.880360Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store\nchecking permissions...\n screen recording: ok\n accessibility: ok\n2026-04-22T09:15:19.951248Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6\n2026-04-22T09:15:20.675958Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor\n2026-04-22T09:15:20.677447Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)\n2026-04-22T09:15:20.677800Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)\n2026-04-22T09:15:20.709542Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true\n2026-04-22T09:15:20.709596Z INFO screenpipe: meeting detector enabled — independent of transcription mode\n2026-04-22T09:15:20.709849Z INFO screenpipe: API server listening on 127.0.0.1:3030 (localhost only)\n2026-04-22T09:15:20.709774Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)\n2026-04-22T09:15:20.709806Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)\n2026-04-22T09:15:20.709863Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key\n2026-04-22T09:15:20.709908Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager\n2026-04-22T09:15:20.721517Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-22T09:15:20.725781Z INFO screenpipe_core::pipes: loaded pipe: day-recap\n2026-04-22T09:15:20.725991Z INFO screenpipe_core::pipes: loaded pipe: standup-update\n2026-04-22T09:15:20.726387Z INFO screenpipe_core::pipes: loaded pipe: ai-habits\n2026-04-22T09:15:20.726548Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown\n2026-04-22T09:15:20.726690Z INFO screenpipe_core::pipes: loaded pipe: video-export\n2026-04-22T09:15:20.727224Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary\n2026-04-22T09:15:20.727242Z INFO screenpipe_core::pipes: loaded 6 pipes from \"/Users/lukas/.screenpipe/pipes\"\n\n\n\n _ \n __________________ ___ ____ ____ (_____ ___ \n / ___/ ___/ ___/ _ \\/ _ \\/ __ \\ / __ \\/ / __ \\/ _ \\\n (__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/\n/____/\\___/_/ \\___/\\___/_/ /_/ / .___/_/ .___/\\___/ \n /_/ /_/ \n\n\n\npower AI by everything you've seen, said or heard\nopen source | runs locally | developer friendly\n\n\n┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ true │\n│ vision disabled │ false │\n│ pause on DRM content │ false │\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n│ ignored windows │ [\"Boosteroid\"] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n2026-04-22T09:15:20.728614Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n│ api auth │ enabled │\n2026-04-22T09:15:20.742172Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n│ encrypt secrets │ disabled │\n│ retention days │ 14 │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ id: 1 │\n│ │ id: 2 │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ disabled │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-22T09:15:20.742788Z INFO screenpipe: starting UI event capture\n2026-04-22T09:15:20.755824Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-22T09:15:20.769629Z INFO screenpipe_engine::ui_recorder: UI recording session started: e7729066-2ab4-4bf0-9d48-0c9790a4ee79\n2026-04-22T09:15:20.769680Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-22T09:15:20.769789Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-21 06:15:20.769785 UTC to 2026-04-22 06:15:20.769785 UTC)\n2026-04-22T09:15:20.770644Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-22T09:15:20.778181Z INFO screenpipe_engine::server: Server listening on 127.0.0.1:3030\n2026-04-22T09:15:20.789960Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-22T09:15:21.591614Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-22T09:15:21.591646Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-22T09:15:21.591751Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-22T09:15:21.919088Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-22T09:15:21.919141Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-22T09:15:21.919158Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)\n2026-04-22T09:15:21.919163Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-22T09:15:21.919167Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)\n2026-04-22T09:15:23.315305Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-22T09:15:23.445619Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=68471, dur=74ms\n2026-04-22T09:15:23.697846Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-22T09:15:23.856559Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=68472, dur=115ms\n2026-04-22T09:15:23.858032Z INFO sck_rs::stream_manager: invalidated persistent stream for display 2\n2026-04-22T09:15:25.542035Z WARN sqlx::query: summary=\"SELECT f.id, f.timestamp, f.offset_index, …\" db.statement=\"\\n\\nSELECT\\n f.id,\\n f.timestamp,\\n f.offset_index,\\n COALESCE(\\n SUBSTR(f.full_text, 1, 200),\\n SUBSTR(f.accessibility_text, 1, 200),\\n (\\n SELECT\\n SUBSTR(ot.text, 1, 200)\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as text,\\n COALESCE(\\n f.app_name,\\n (\\n SELECT\\n ot.app_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as app_name,\\n COALESCE(\\n f.window_name,\\n (\\n SELECT\\n ot.window_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as window_name,\\n COALESCE(vc.device_name, f.device_name) as screen_device,\\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\\n COALESCE(vc.fps, 0.033) as chunk_fps,\\n f.browser_url,\\n f.machine_id\\nFROM\\n frames f\\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\\nWHERE\\n f.timestamp >= ?1\\n AND f.timestamp <= ?2\\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\\nORDER BY\\n f.timestamp DESC,\\n f.offset_index DESC\\nLIMIT\\n 10000\\n\" rows_affected=0 rows_returned=7744 elapsed=4.771776083s\n2026-04-22T09:15:25.568771Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 7744 frame entries, coverage from 2026-04-21 06:15:20.769785 UTC\n2026-04-22T09:15:32.415224Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-22T09:15:41.941919Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=357539612469251678, trigger=click)\n2026-04-22T09:15:43.170779Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=357539612469251678, trigger=visual_change)\n2026-04-22T09:16:22.411707Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5959696770819639860, trigger=visual_change)\n2026-04-22T09:16:26.239896Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=62 elapsed=5.530699458s\n2026-04-22T09:16:26.240084Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 62 eligible frames\n2026-04-22T09:16:28.044386Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 4.7MB → 0.2MB (19.7x), 30 JPEGs deleted\n2026-04-22T09:16:30.086623Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 4.3MB → 0.1MB (30.2x), 30 JPEGs deleted\n2026-04-22T09:16:31.962480Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5959696770819639860, trigger=visual_change)","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.12291667,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.12708333,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.24583334,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.25,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"✳ Build full day activity summary from Screenpipe (claude)","depth":2,"bounds":{"left":0.36875,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.37291667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.49166667,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.49583334,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.6145833,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.61875,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.7375,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.7416667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"ec2-user@ip-10-30-159-186:~ (-zsh)","depth":2,"bounds":{"left":0.86041665,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.8645833,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.9548611,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"screenpipe\"","depth":1,"bounds":{"left":0.47083333,"top":0.033333335,"width":0.058333334,"height":0.017777778},"role_description":"text"}]...
|
6197491067458315690
|
2646348668002215289
|
app_switch
|
accessibility
|
NULL
|
FROM\n frames\nWHERE\n snapshot_path IS NOT NULL FROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=47 elapsed=5.487768917s
2026-04-21T16:49:53.309371Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 47 eligible frames
2026-04-21T16:49:54.673701Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.9MB → 0.3MB (13.1x), 21 JPEGs deleted
2026-04-21T16:49:56.314871Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.7MB → 1.2MB (4.0x), 24 JPEGs deleted
2026-04-21T16:54:59.385017Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=62 elapsed=3.057419917s
2026-04-21T16:54:59.385210Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 62 eligible frames
2026-04-21T16:55:00.998239Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.8MB → 0.5MB (10.3x), 26 JPEGs deleted
2026-04-21T16:55:03.739041Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 34 frames, 5.8MB → 2.6MB (2.2x), 34 JPEGs deleted
2026-04-21T16:55:17.768634Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)
2026-04-21T17:23:59.183039Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)
2026-04-21T17:23:59.216966Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2
2026-04-21T17:24:00.832399Z INFO screenpipe_engine::vision_manager::monitor_watcher: Monitor 2 disconnected, stopping recording
2026-04-21T17:24:00.832464Z INFO screenpipe_engine::vision_manager::manager: Stopping vision recording for monitor 2
2026-04-21T17:24:00.832336Z INFO sck_rs::stream_manager: stopped 2 persistent stream(s)
2026-04-21T17:24:04.654209Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)
2026-04-21T17:24:30.699969Z ERROR screenpipe_engine::resource_monitor: Failed to send resource usage to PostHog: error sending request for url (https://us.i.posthog.com/capture/)
2026-04-21T17:25:01.085383Z INFO screenpipe_engine::vision_manager::monitor_watcher: Monitor 2 reconnected, resuming recording
2026-04-21T17:25:01.273818Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-04-21T17:25:01.273870Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-04-21T17:25:01.273896Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-04-21T17:25:02.310236Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)
2026-04-21T17:25:02.808234Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=66228, dur=365ms
2026-04-21T17:25:04.889075Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:07.887565Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:10.918390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:14.039034Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:17.160521Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:26.096276Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:29.061270Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:32.067380Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:35.263701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:41.164753Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:25:44.239172Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:25:47.149320Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:25:50.242915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:25:53.308794Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:25:56.218138Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:25:59.144297Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:26:05.965946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:08.584110Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:11.350189Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:14.339609Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:17.398251Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:20.782119Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:23.385506Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:26.427626Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:29.573661Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:32.450744Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:38.464132Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:41.456915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:44.496278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:47.541313Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:50.596256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:53.597171Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:56.764522Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:59.751576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:02.719391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:08.829090Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:11.800601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:14.811724Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:17.855339Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:26.878741Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:29.933020Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:32.947216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:36.041239Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:38.993657Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:42.039373Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:45.172399Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:48.081804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:51.142939Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:54.169253Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:00.341347Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:03.322832Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:06.631198Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:09.537232Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:12.406113Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:15.381764Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:15.806839Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=44 elapsed=5.777403s
2026-04-21T17:28:15.806951Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 44 eligible frames
2026-04-21T17:28:17.108106Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.9MB → 0.3MB (13.1x), 21 JPEGs deleted
2026-04-21T17:28:18.370832Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.6MB → 0.5MB (7.8x), 21 JPEGs deleted
2026-04-21T17:28:18.461408Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:22.068097Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:24.604711Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:27.608060Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:33.774822Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:36.697278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:39.729251Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:42.728755Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:45.748204Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:48.768910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:51.814752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:54.970698Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:57.869874Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:00.913837Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:07.461529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:10.043928Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:13.182411Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:16.080133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:19.108570Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:22.322033Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:25.172666Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:28.398354Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:31.249083Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:34.289745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:40.303310Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:43.308015Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:46.360649Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:49.356069Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:52.450205Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:55.422975Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:58.446390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:01.491253Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:04.500380Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:16.830925Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:19.856895Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:23.100486Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:25.938910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:28.953603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:32.061536Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:35.030958Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:38.162895Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:41.148165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:44.019513Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:50.259576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:53.148070Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:56.309979Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:59.185610Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:02.278235Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:05.287341Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:08.409426Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:11.489977Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:14.319338Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:17.348153Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:23.351025Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:26.427529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:29.337254Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:32.386165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:35.653387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:38.430216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:41.428909Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:44.432459Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:47.448603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:50.432780Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:56.535727Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:59.590792Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:32:02.621444Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:32:05.627964Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:32:08.710139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:32:11.765247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:32:14.787638Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:32:17.876480Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)
2026-04-21T17:32:20.977937Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)
2026-04-21T17:32:29.888970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8116870867026519513, trigger=click)
2026-04-21T17:32:33.123648Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)
2026-04-21T17:33:03.355082Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)
2026-04-21T17:33:05.517897Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=click)
2026-04-21T17:33:06.399783Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)
2026-04-21T17:33:09.478894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)
2026-04-21T17:33:19.151217Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
2026-04-21T17:33:21.431006Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6379516332769645744, trigger=visual_change)
2026-04-21T17:33:33.494463Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7500553589467718193, trigger=visual_change)
2026-04-21T17:34:00.725974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2275300387038012183, trigger=click)
2026-04-21T17:34:07.214867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2063499064757931498, trigger=visual_change)
2026-04-21T17:34:31.480257Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=visual_change)
2026-04-21T17:34:34.482370Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=visual_change)
2026-04-21T17:35:53.801549Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7652433743467416760, trigger=click)
2026-04-21T17:35:53.954311Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7652433743467416760, trigger=click)
2026-04-21T17:35:54.740695Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7652433743467416760, trigger=click)
2026-04-21T17:36:06.295752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5335392039126841536, trigger=visual_change)
2026-04-21T17:36:28.893337Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5927780310531960690, trigger=visual_change)
2026-04-21T17:38:15.647110Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)
2026-04-21T17:38:17.801901Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)
2026-04-21T17:38:17.962831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)
2026-04-21T17:38:22.819710Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7137414965816212018, trigger=click)
2026-04-21T17:38:22.917176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=click)
2026-04-21T17:38:23.042830Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=28 elapsed=3.882772625s
2026-04-21T17:38:23.042920Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames
2026-04-21T17:38:24.717251Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 2.8MB → 0.4MB (6.3x), 18 JPEGs deleted
2026-04-21T17:38:26.727027Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.1MB → 0.2MB (5.7x), 10 JPEGs deleted
2026-04-21T17:38:35.971287Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=click)
2026-04-21T17:38:36.106246Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7137414965816212018, trigger=click)
2026-04-21T17:38:37.368009Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=visual_change)
2026-04-21T17:38:43.431620Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8741356672789266752, trigger=visual_change)
2026-04-21T17:38:49.319886Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5149767057649118192, trigger=click)
2026-04-21T17:38:49.477325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5149767057649118192, trigger=click)
2026-04-21T17:38:51.019231Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5149767057649118192, trigger=visual_change)
2026-04-21T17:39:04.249890Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7355944135161080033, trigger=click)
2026-04-21T17:39:23.256256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4983811095206295613, trigger=click)
2026-04-21T17:39:23.385820Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4983811095206295613, trigger=click)
2026-04-21T17:39:24.367407Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4983811095206295613, trigger=visual_change)
2026-04-21T17:39:24.895784Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4983811095206295613, trigger=click)
2026-04-21T17:39:46.438272Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=372069959735326508, trigger=visual_change)
2026-04-21T17:39:49.101085Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4964238948655865655, trigger=visual_change)
2026-04-21T17:39:58.083750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)
2026-04-21T17:40:01.375315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)
2026-04-21T17:40:04.195859Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)
2026-04-21T17:40:12.117004Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2989278587618621353, trigger=click)
2026-04-21T17:40:12.244666Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2989278587618621353, trigger=click)
2026-04-21T17:40:13.925024Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2989278587618621353, trigger=visual_change)
2026-04-21T17:40:23.294147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=visual_change)
2026-04-21T17:40:55.989498Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3182674559678505325, trigger=click)
2026-04-21T17:40:58.413325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3182674559678505325, trigger=visual_change)
2026-04-21T17:41:23.101094Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5616874458658671741, trigger=visual_change)
2026-04-21T17:41:29.504783Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2744778324521007391, trigger=visual_change)
2026-04-21T17:42:13.830352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6664909184667365933, trigger=click)
2026-04-21T17:42:13.905614Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=click)
2026-04-21T17:42:14.689622Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6664909184667365933, trigger=click)
2026-04-21T17:43:13.738786Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5563100798252317961, trigger=visual_change)
2026-04-21T17:43:31.769731Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=40 elapsed=4.870364084s
2026-04-21T17:43:31.770321Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames
2026-04-21T17:43:32.514133Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.1MB → 0.1MB (8.9x), 11 JPEGs deleted
2026-04-21T17:43:34.391762Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 3.0MB → 0.5MB (5.9x), 27 JPEGs deleted
2026-04-21T17:44:19.021163Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-263228306577803226, trigger=click)
2026-04-21T17:44:32.036390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8360298266192684601, trigger=click)
2026-04-21T17:44:33.859332Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8360298266192684601, trigger=visual_change)
2026-04-21T17:44:42.936361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=visual_change)
2026-04-21T17:44:46.420662Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=visual_change)
2026-04-21T17:46:17.725934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7286082578618580481, trigger=click)
2026-04-21T17:46:18.733766Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=click)
2026-04-21T17:46:19.506484Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7286082578618580481, trigger=click)
2026-04-21T17:46:20.729229Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=click)
2026-04-21T17:46:27.956655Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8942982652250876029, trigger=click)
2026-04-21T17:46:29.490950Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8942982652250876029, trigger=click)
2026-04-21T17:46:45.634752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5761541209609855314, trigger=click)
2026-04-21T17:46:45.971315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5761541209609855314, trigger=click)
2026-04-21T17:46:50.988867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5607564885929685542, trigger=click)
2026-04-21T17:46:51.601750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5607564885929685542, trigger=click)
2026-04-21T17:46:56.353647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4497988824039212795, trigger=click)
2026-04-21T17:47:24.716661Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4864885406063659925, trigger=visual_change)
2026-04-21T17:47:29.793942Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:30.097043Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)
2026-04-21T17:47:30.960214Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:32.707746Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)
2026-04-21T17:47:36.181007Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:36.362574Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:37.093511Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:41.720206Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)
2026-04-21T17:47:44.706704Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)
2026-04-21T17:47:48.602580Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:48.776278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:52.582982Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5658848090639979218, trigger=click)
2026-04-21T17:47:57.282103Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8902771592702756196, trigger=click)
2026-04-21T17:48:06.880071Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8902771592702756196, trigger=click)
2026-04-21T17:48:07.656377Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8902771592702756196, trigger=click)
2026-04-21T17:48:23.785117Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:48:24.032602Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:48:26.587906Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:48:32.180582Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)
2026-04-21T17:48:34.022831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:48:34.363583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:48:39.363585Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=83 elapsed=4.983598708s
2026-04-21T17:48:39.363733Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 83 eligible frames
2026-04-21T17:48:41.479158Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 3.3MB → 0.2MB (17.7x), 31 JPEGs deleted
2026-04-21T17:48:44.682560Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 50 frames, 6.5MB → 2.0MB (3.3x), 50 JPEGs deleted
2026-04-21T17:48:53.828851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)
2026-04-21T17:48:56.563636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)
2026-04-21T17:48:59.291654Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:48:59.467275Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:00.295226Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:00.453357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=visual_change)
2026-04-21T17:49:13.301518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)
2026-04-21T17:49:16.454207Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)
2026-04-21T17:49:16.837288Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:18.900202Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:19.229376Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:20.418502Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:20.706966Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:21.269855Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:22.896443Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:23.115745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:29.927553Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1234240076182081719, trigger=click)
2026-04-21T17:49:40.567042Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1506528968255096811, trigger=click)
2026-04-21T17:49:40.722412Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1506528968255096811, trigger=click)
2026-04-21T17:49:44.790415Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1506528968255096811, trigger=visual_change)
2026-04-21T17:49:44.983133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1506528968255096811, trigger=visual_change)
2026-04-21T17:51:50.315220Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)
2026-04-21T17:51:53.337571Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)
2026-04-21T17:51:59.473328Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)
2026-04-21T17:52:02.455277Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)
2026-04-21T17:52:05.862297Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)
2026-04-21T17:52:07.729450Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)
2026-04-21T17:52:16.901254Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)
2026-04-21T17:52:29.702852Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)
2026-04-21T17:52:36.533775Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)
2026-04-21T17:52:39.599515Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)
2026-04-21T17:52:45.700237Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)
2026-04-21T17:52:48.638819Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)
2026-04-21T17:52:54.704399Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)
2026-04-21T17:52:57.751791Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)
2026-04-21T17:53:10.186965Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)
2026-04-21T17:53:46.867091Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=116 elapsed=2.178958s
2026-04-21T17:53:46.867199Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 116 eligible frames
2026-04-21T17:53:49.254310Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=visual_change)
2026-04-21T17:53:50.410056Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 56 frames, 12.3MB → 3.7MB (3.3x), 56 JPEGs deleted
2026-04-21T17:53:51.388237Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=clic...
|
NULL
|
|
68479
|
1553
|
3
|
2026-04-22T06:15:36.819054+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-22/1776 /Users/lukas/.screenpipe/data/data/2026-04-22/1776838536819_m2.jpg...
|
iTerm2
|
screenpipe"
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
2026-04-21T16:41:35.133385Z INFO screenpipe_engin 2026-04-21T16:41:35.133385Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)
2026-04-21T16:43:15.919099Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8254246256813675665, trigger=click)
2026-04-21T16:43:44.014066Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8254246256813675665, trigger=visual_change)
2026-04-21T16:44:45.410923Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=35 elapsed=2.419201375s
2026-04-21T16:44:45.411045Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 35 eligible frames
2026-04-21T16:44:46.383629Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.8MB → 0.3MB (9.5x), 15 JPEGs deleted
2026-04-21T16:44:47.792527Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.6MB → 0.8MB (4.3x), 18 JPEGs deleted
2026-04-21T16:49:53.308820Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=47 elapsed=5.487768917s
2026-04-21T16:49:53.309371Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 47 eligible frames
2026-04-21T16:49:54.673701Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.9MB → 0.3MB (13.1x), 21 JPEGs deleted
2026-04-21T16:49:56.314871Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.7MB → 1.2MB (4.0x), 24 JPEGs deleted
2026-04-21T16:54:59.385017Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=62 elapsed=3.057419917s
2026-04-21T16:54:59.385210Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 62 eligible frames
2026-04-21T16:55:00.998239Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.8MB → 0.5MB (10.3x), 26 JPEGs deleted
2026-04-21T16:55:03.739041Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 34 frames, 5.8MB → 2.6MB (2.2x), 34 JPEGs deleted
2026-04-21T16:55:17.768634Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)
2026-04-21T17:23:59.183039Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)
2026-04-21T17:23:59.216966Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2
2026-04-21T17:24:00.832399Z INFO screenpipe_engine::vision_manager::monitor_watcher: Monitor 2 disconnected, stopping recording
2026-04-21T17:24:00.832464Z INFO screenpipe_engine::vision_manager::manager: Stopping vision recording for monitor 2
2026-04-21T17:24:00.832336Z INFO sck_rs::stream_manager: stopped 2 persistent stream(s)
2026-04-21T17:24:04.654209Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)
2026-04-21T17:24:30.699969Z ERROR screenpipe_engine::resource_monitor: Failed to send resource usage to PostHog: error sending request for url (https://us.i.posthog.com/capture/)
2026-04-21T17:25:01.085383Z INFO screenpipe_engine::vision_manager::monitor_watcher: Monitor 2 reconnected, resuming recording
2026-04-21T17:25:01.273818Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-04-21T17:25:01.273870Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-04-21T17:25:01.273896Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-04-21T17:25:02.310236Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)
2026-04-21T17:25:02.808234Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=66228, dur=365ms
2026-04-21T17:25:04.889075Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:07.887565Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:10.918390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:14.039034Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:17.160521Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:26.096276Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:29.061270Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:32.067380Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:35.263701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:41.164753Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:25:44.239172Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:25:47.149320Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:25:50.242915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:25:53.308794Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:25:56.218138Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:25:59.144297Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:26:05.965946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:08.584110Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:11.350189Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:14.339609Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:17.398251Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:20.782119Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:23.385506Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:26.427626Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:29.573661Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:32.450744Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:38.464132Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:41.456915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:44.496278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:47.541313Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:50.596256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:53.597171Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:56.764522Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:59.751576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:02.719391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:08.829090Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:11.800601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:14.811724Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:17.855339Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:26.878741Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:29.933020Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:32.947216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:36.041239Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:38.993657Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:42.039373Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:45.172399Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:48.081804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:51.142939Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:54.169253Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:00.341347Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:03.322832Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:06.631198Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:09.537232Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:12.406113Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:15.381764Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:15.806839Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=44 elapsed=5.777403s
2026-04-21T17:28:15.806951Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 44 eligible frames
2026-04-21T17:28:17.108106Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.9MB → 0.3MB (13.1x), 21 JPEGs deleted
2026-04-21T17:28:18.370832Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.6MB → 0.5MB (7.8x), 21 JPEGs deleted
2026-04-21T17:28:18.461408Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:22.068097Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:24.604711Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:27.608060Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:33.774822Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:36.697278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:39.729251Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:42.728755Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:45.748204Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:48.768910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:51.814752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:54.970698Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:57.869874Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:00.913837Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:07.461529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:10.043928Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:13.182411Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:16.080133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:19.108570Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:22.322033Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:25.172666Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:28.398354Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:31.249083Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:34.289745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:40.303310Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:43.308015Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:46.360649Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:49.356069Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:52.450205Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:55.422975Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:58.446390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:01.491253Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:04.500380Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:16.830925Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:19.856895Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:23.100486Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:25.938910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:28.953603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:32.061536Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:35.030958Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:38.162895Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:41.148165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:44.019513Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:50.259576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:53.148070Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:56.309979Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:59.185610Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:02.278235Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:05.287341Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:08.409426Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:11.489977Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:14.319338Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:17.348153Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:23.351025Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:26.427529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:29.337254Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:32.386165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:35.653387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:38.430216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:41.428909Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:44.432459Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:47.448603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:50.432780Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:56.535727Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:59.590792Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:32:02.621444Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:32:05.627964Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:32:08.710139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:32:11.765247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:32:14.787638Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:32:17.876480Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)
2026-04-21T17:32:20.977937Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)
2026-04-21T17:32:29.888970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8116870867026519513, trigger=click)
2026-04-21T17:32:33.123648Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)
2026-04-21T17:33:03.355082Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)
2026-04-21T17:33:05.517897Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=click)
2026-04-21T17:33:06.399783Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)
2026-04-21T17:33:09.478894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)
2026-04-21T17:33:19.151217Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
2026-04-21T17:33:21.431006Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6379516332769645744, trigger=visual_change)
2026-04-21T17:33:33.494463Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7500553589467718193, trigger=visual_change)
2026-04-21T17:34:00.725974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2275300387038012183, trigger=click)
2026-04-21T17:34:07.214867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2063499064757931498, trigger=visual_change)
2026-04-21T17:34:31.480257Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=visual_change)
2026-04-21T17:34:34.482370Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=visual_change)
2026-04-21T17:35:53.801549Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7652433743467416760, trigger=click)
2026-04-21T17:35:53.954311Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7652433743467416760, trigger=click)
2026-04-21T17:35:54.740695Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7652433743467416760, trigger=click)
2026-04-21T17:36:06.295752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5335392039126841536, trigger=visual_change)
2026-04-21T17:36:28.893337Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5927780310531960690, trigger=visual_change)
2026-04-21T17:38:15.647110Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)
2026-04-21T17:38:17.801901Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)
2026-04-21T17:38:17.962831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)
2026-04-21T17:38:22.819710Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7137414965816212018, trigger=click)
2026-04-21T17:38:22.917176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=click)
2026-04-21T17:38:23.042830Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=28 elapsed=3.882772625s
2026-04-21T17:38:23.042920Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames
2026-04-21T17:38:24.717251Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 2.8MB → 0.4MB (6.3x), 18 JPEGs deleted
2026-04-21T17:38:26.727027Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.1MB → 0.2MB (5.7x), 10 JPEGs deleted
2026-04-21T17:38:35.971287Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=click)
2026-04-21T17:38:36.106246Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7137414965816212018, trigger=click)
2026-04-21T17:38:37.368009Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=visual_change)
2026-04-21T17:38:43.431620Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8741356672789266752, trigger=visual_change)
2026-04-21T17:38:49.319886Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5149767057649118192, trigger=click)
2026-04-21T17:38:49.477325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5149767057649118192, trigger=click)
2026-04-21T17:38:51.019231Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5149767057649118192, trigger=visual_change)
2026-04-21T17:39:04.249890Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7355944135161080033, trigger=click)
2026-04-21T17:39:23.256256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4983811095206295613, trigger=click)
2026-04-21T17:39:23.385820Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4983811095206295613, trigger=click)
2026-04-21T17:39:24.367407Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4983811095206295613, trigger=visual_change)
2026-04-21T17:39:24.895784Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4983811095206295613, trigger=click)
2026-04-21T17:39:46.438272Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=372069959735326508, trigger=visual_change)
2026-04-21T17:39:49.101085Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4964238948655865655, trigger=visual_change)
2026-04-21T17:39:58.083750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)
2026-04-21T17:40:01.375315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)
2026-04-21T17:40:04.195859Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)
2026-04-21T17:40:12.117004Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2989278587618621353, trigger=click)
2026-04-21T17:40:12.244666Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2989278587618621353, trigger=click)
2026-04-21T17:40:13.925024Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2989278587618621353, trigger=visual_change)
2026-04-21T17:40:23.294147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=visual_change)
2026-04-21T17:40:55.989498Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3182674559678505325, trigger=click)
2026-04-21T17:40:58.413325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3182674559678505325, trigger=visual_change)
2026-04-21T17:41:23.101094Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5616874458658671741, trigger=visual_change)
2026-04-21T17:41:29.504783Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2744778324521007391, trigger=visual_change)
2026-04-21T17:42:13.830352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6664909184667365933, trigger=click)
2026-04-21T17:42:13.905614Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=click)
2026-04-21T17:42:14.689622Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6664909184667365933, trigger=click)
2026-04-21T17:43:13.738786Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5563100798252317961, trigger=visual_change)
2026-04-21T17:43:31.769731Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=40 elapsed=4.870364084s
2026-04-21T17:43:31.770321Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames
2026-04-21T17:43:32.514133Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.1MB → 0.1MB (8.9x), 11 JPEGs deleted
2026-04-21T17:43:34.391762Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 3.0MB → 0.5MB (5.9x), 27 JPEGs deleted
2026-04-21T17:44:19.021163Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-263228306577803226, trigger=click)
2026-04-21T17:44:32.036390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8360298266192684601, trigger=click)
2026-04-21T17:44:33.859332Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8360298266192684601, trigger=visual_change)
2026-04-21T17:44:42.936361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=visual_change)
2026-04-21T17:44:46.420662Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=visual_change)
2026-04-21T17:46:17.725934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7286082578618580481, trigger=click)
2026-04-21T17:46:18.733766Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=click)
2026-04-21T17:46:19.506484Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7286082578618580481, trigger=click)
2026-04-21T17:46:20.729229Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=click)
2026-04-21T17:46:27.956655Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8942982652250876029, trigger=click)
2026-04-21T17:46:29.490950Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8942982652250876029, trigger=click)
2026-04-21T17:46:45.634752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5761541209609855314, trigger=click)
2026-04-21T17:46:45.971315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5761541209609855314, trigger=click)
2026-04-21T17:46:50.988867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5607564885929685542, trigger=click)
2026-04-21T17:46:51.601750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5607564885929685542, trigger=click)
2026-04-21T17:46:56.353647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4497988824039212795, trigger=click)
2026-04-21T17:47:24.716661Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4864885406063659925, trigger=visual_change)
2026-04-21T17:47:29.793942Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:30.097043Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)
2026-04-21T17:47:30.960214Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:32.707746Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)
2026-04-21T17:47:36.181007Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:36.362574Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:37.093511Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:41.720206Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)
2026-04-21T17:47:44.706704Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)
2026-04-21T17:47:48.602580Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:48.776278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:52.582982Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5658848090639979218, trigger=click)
2026-04-21T17:47:57.282103Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8902771592702756196, trigger=click)
2026-04-21T17:48:06.880071Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8902771592702756196, trigger=click)
2026-04-21T17:48:07.656377Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8902771592702756196, trigger=click)
2026-04-21T17:48:23.785117Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:48:24.032602Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:48:26.587906Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:48:32.180582Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)
2026-04-21T17:48:34.022831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:48:34.363583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:48:39.363585Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=83 elapsed=4.983598708s
2026-04-21T17:48:39.363733Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 83 eligible frames
2026-04-21T17:48:41.479158Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 3.3MB → 0.2MB (17.7x), 31 JPEGs deleted
2026-04-21T17:48:44.682560Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 50 frames, 6.5MB → 2.0MB (3.3x), 50 JPEGs deleted
2026-04-21T17:48:53.828851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)
2026-04-21T17:48:56.563636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)
2026-04-21T17:48:59.291654Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:48:59.467275Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:00.295226Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:00.453357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=visual_change)
2026-04-21T17:49:13.301518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)
2026-04-21T17:49:16.454207Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)
2026-04-21T17:49:16.837288Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:18.900202Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:19.229376Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:20.418502Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:20.706966Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:21.269855Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:22.896443Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:23.115745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:29.927553Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1234240076182081719, trigger=click)
2026-04-21T17:49:40.567042Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1506528968255096811, trigger=click)
2026-04-21T17:49:40.722412Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1506528968255096811, trigger=click)
2026-04-21T17:49:44.790415Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1506528968255096811, trigger=visual_change)
2026-04-21T17:49:44.983133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1506528968255096811, trigger=visual_change)
2026-04-21T17:51:50.315220Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)
2026-04-21T17:51:53.337571Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)
2026-04-21T17:51:59.473328Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)
2026-04-21T17:52:02.455277Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)
2026-04-21T17:52:05.862297Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)
2026-04-21T17:52:07.729450Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)
2026-04-21T17:52:16.901254Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)
2026-04-21T17:52:29.702852Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)
2026-04-21T17:52:36.533775Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)
2026-04-21T17:52:39.599515Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)
2026-04-21T17:52:45.700237Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)
2026-04-21T17:52:48.638819Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)
2026-04-21T17:52:54...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"2026-04-21T16:41:35.133385Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:43:15.919099Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8254246256813675665, trigger=click)\n2026-04-21T16:43:44.014066Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8254246256813675665, trigger=visual_change)\n2026-04-21T16:44:45.410923Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=35 elapsed=2.419201375s\n2026-04-21T16:44:45.411045Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 35 eligible frames\n2026-04-21T16:44:46.383629Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.8MB → 0.3MB (9.5x), 15 JPEGs deleted\n2026-04-21T16:44:47.792527Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.6MB → 0.8MB (4.3x), 18 JPEGs deleted\n2026-04-21T16:49:53.308820Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=47 elapsed=5.487768917s\n2026-04-21T16:49:53.309371Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 47 eligible frames\n2026-04-21T16:49:54.673701Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.9MB → 0.3MB (13.1x), 21 JPEGs deleted\n2026-04-21T16:49:56.314871Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.7MB → 1.2MB (4.0x), 24 JPEGs deleted\n2026-04-21T16:54:59.385017Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=62 elapsed=3.057419917s\n2026-04-21T16:54:59.385210Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 62 eligible frames\n2026-04-21T16:55:00.998239Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.8MB → 0.5MB (10.3x), 26 JPEGs deleted\n2026-04-21T16:55:03.739041Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 34 frames, 5.8MB → 2.6MB (2.2x), 34 JPEGs deleted\n2026-04-21T16:55:17.768634Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)\n2026-04-21T17:23:59.183039Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)\n2026-04-21T17:23:59.216966Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2\n2026-04-21T17:24:00.832399Z INFO screenpipe_engine::vision_manager::monitor_watcher: Monitor 2 disconnected, stopping recording\n2026-04-21T17:24:00.832464Z INFO screenpipe_engine::vision_manager::manager: Stopping vision recording for monitor 2\n2026-04-21T17:24:00.832336Z INFO sck_rs::stream_manager: stopped 2 persistent stream(s)\n2026-04-21T17:24:04.654209Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-21T17:24:30.699969Z ERROR screenpipe_engine::resource_monitor: Failed to send resource usage to PostHog: error sending request for url (https://us.i.posthog.com/capture/)\n2026-04-21T17:25:01.085383Z INFO screenpipe_engine::vision_manager::monitor_watcher: Monitor 2 reconnected, resuming recording\n2026-04-21T17:25:01.273818Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-21T17:25:01.273870Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-21T17:25:01.273896Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-21T17:25:02.310236Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-21T17:25:02.808234Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=66228, dur=365ms\n2026-04-21T17:25:04.889075Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:07.887565Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:10.918390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:14.039034Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:17.160521Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:26.096276Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:29.061270Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:32.067380Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:35.263701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:41.164753Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:44.239172Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:47.149320Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:50.242915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:53.308794Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:56.218138Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:59.144297Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:26:05.965946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:08.584110Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:11.350189Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:14.339609Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:17.398251Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:20.782119Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:23.385506Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:26.427626Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:29.573661Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:32.450744Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:38.464132Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:41.456915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:44.496278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:47.541313Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:50.596256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:53.597171Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:56.764522Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:59.751576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:02.719391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:08.829090Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:11.800601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:14.811724Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:17.855339Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:26.878741Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:29.933020Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:32.947216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:36.041239Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:38.993657Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:42.039373Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:45.172399Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:48.081804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:51.142939Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:54.169253Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:00.341347Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:03.322832Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:06.631198Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:09.537232Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:12.406113Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:15.381764Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:15.806839Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=44 elapsed=5.777403s\n2026-04-21T17:28:15.806951Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 44 eligible frames\n2026-04-21T17:28:17.108106Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.9MB → 0.3MB (13.1x), 21 JPEGs deleted\n2026-04-21T17:28:18.370832Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.6MB → 0.5MB (7.8x), 21 JPEGs deleted\n2026-04-21T17:28:18.461408Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:22.068097Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:24.604711Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:27.608060Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:33.774822Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:36.697278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:39.729251Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:42.728755Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:45.748204Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:48.768910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:51.814752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:54.970698Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:57.869874Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:00.913837Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:07.461529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:10.043928Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:13.182411Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:16.080133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:19.108570Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:22.322033Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:25.172666Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:28.398354Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:31.249083Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:34.289745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:40.303310Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:43.308015Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:46.360649Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:49.356069Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:52.450205Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:55.422975Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:58.446390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:01.491253Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:04.500380Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:16.830925Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:19.856895Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:23.100486Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:25.938910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:28.953603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:32.061536Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:35.030958Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:38.162895Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:41.148165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:44.019513Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:50.259576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:53.148070Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:56.309979Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:59.185610Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:02.278235Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:05.287341Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:08.409426Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:11.489977Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:14.319338Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:17.348153Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:23.351025Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:26.427529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:29.337254Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:32.386165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:35.653387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:38.430216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:41.428909Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:44.432459Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:47.448603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:50.432780Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:56.535727Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:59.590792Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:02.621444Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:05.627964Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:08.710139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:11.765247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:14.787638Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:17.876480Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)\n2026-04-21T17:32:20.977937Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)\n2026-04-21T17:32:29.888970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8116870867026519513, trigger=click)\n2026-04-21T17:32:33.123648Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)\n2026-04-21T17:33:03.355082Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)\n2026-04-21T17:33:05.517897Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=click)\n2026-04-21T17:33:06.399783Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)\n2026-04-21T17:33:09.478894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)\n2026-04-21T17:33:19.151217Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-21T17:33:21.431006Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6379516332769645744, trigger=visual_change)\n2026-04-21T17:33:33.494463Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7500553589467718193, trigger=visual_change)\n2026-04-21T17:34:00.725974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2275300387038012183, trigger=click)\n2026-04-21T17:34:07.214867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2063499064757931498, trigger=visual_change)\n2026-04-21T17:34:31.480257Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=visual_change)\n2026-04-21T17:34:34.482370Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=visual_change)\n2026-04-21T17:35:53.801549Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7652433743467416760, trigger=click)\n2026-04-21T17:35:53.954311Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7652433743467416760, trigger=click)\n2026-04-21T17:35:54.740695Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7652433743467416760, trigger=click)\n2026-04-21T17:36:06.295752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5335392039126841536, trigger=visual_change)\n2026-04-21T17:36:28.893337Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5927780310531960690, trigger=visual_change)\n2026-04-21T17:38:15.647110Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)\n2026-04-21T17:38:17.801901Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)\n2026-04-21T17:38:17.962831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)\n2026-04-21T17:38:22.819710Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7137414965816212018, trigger=click)\n2026-04-21T17:38:22.917176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=click)\n2026-04-21T17:38:23.042830Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=28 elapsed=3.882772625s\n2026-04-21T17:38:23.042920Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames\n2026-04-21T17:38:24.717251Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 2.8MB → 0.4MB (6.3x), 18 JPEGs deleted\n2026-04-21T17:38:26.727027Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.1MB → 0.2MB (5.7x), 10 JPEGs deleted\n2026-04-21T17:38:35.971287Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=click)\n2026-04-21T17:38:36.106246Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7137414965816212018, trigger=click)\n2026-04-21T17:38:37.368009Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=visual_change)\n2026-04-21T17:38:43.431620Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8741356672789266752, trigger=visual_change)\n2026-04-21T17:38:49.319886Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5149767057649118192, trigger=click)\n2026-04-21T17:38:49.477325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5149767057649118192, trigger=click)\n2026-04-21T17:38:51.019231Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5149767057649118192, trigger=visual_change)\n2026-04-21T17:39:04.249890Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7355944135161080033, trigger=click)\n2026-04-21T17:39:23.256256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4983811095206295613, trigger=click)\n2026-04-21T17:39:23.385820Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4983811095206295613, trigger=click)\n2026-04-21T17:39:24.367407Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4983811095206295613, trigger=visual_change)\n2026-04-21T17:39:24.895784Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4983811095206295613, trigger=click)\n2026-04-21T17:39:46.438272Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=372069959735326508, trigger=visual_change)\n2026-04-21T17:39:49.101085Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4964238948655865655, trigger=visual_change)\n2026-04-21T17:39:58.083750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)\n2026-04-21T17:40:01.375315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)\n2026-04-21T17:40:04.195859Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)\n2026-04-21T17:40:12.117004Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2989278587618621353, trigger=click)\n2026-04-21T17:40:12.244666Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2989278587618621353, trigger=click)\n2026-04-21T17:40:13.925024Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2989278587618621353, trigger=visual_change)\n2026-04-21T17:40:23.294147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=visual_change)\n2026-04-21T17:40:55.989498Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3182674559678505325, trigger=click)\n2026-04-21T17:40:58.413325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3182674559678505325, trigger=visual_change)\n2026-04-21T17:41:23.101094Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5616874458658671741, trigger=visual_change)\n2026-04-21T17:41:29.504783Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2744778324521007391, trigger=visual_change)\n2026-04-21T17:42:13.830352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6664909184667365933, trigger=click)\n2026-04-21T17:42:13.905614Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=click)\n2026-04-21T17:42:14.689622Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6664909184667365933, trigger=click)\n2026-04-21T17:43:13.738786Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5563100798252317961, trigger=visual_change)\n2026-04-21T17:43:31.769731Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=40 elapsed=4.870364084s\n2026-04-21T17:43:31.770321Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames\n2026-04-21T17:43:32.514133Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.1MB → 0.1MB (8.9x), 11 JPEGs deleted\n2026-04-21T17:43:34.391762Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 3.0MB → 0.5MB (5.9x), 27 JPEGs deleted\n2026-04-21T17:44:19.021163Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-263228306577803226, trigger=click)\n2026-04-21T17:44:32.036390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8360298266192684601, trigger=click)\n2026-04-21T17:44:33.859332Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8360298266192684601, trigger=visual_change)\n2026-04-21T17:44:42.936361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=visual_change)\n2026-04-21T17:44:46.420662Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=visual_change)\n2026-04-21T17:46:17.725934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7286082578618580481, trigger=click)\n2026-04-21T17:46:18.733766Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=click)\n2026-04-21T17:46:19.506484Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7286082578618580481, trigger=click)\n2026-04-21T17:46:20.729229Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=click)\n2026-04-21T17:46:27.956655Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8942982652250876029, trigger=click)\n2026-04-21T17:46:29.490950Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8942982652250876029, trigger=click)\n2026-04-21T17:46:45.634752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5761541209609855314, trigger=click)\n2026-04-21T17:46:45.971315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5761541209609855314, trigger=click)\n2026-04-21T17:46:50.988867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5607564885929685542, trigger=click)\n2026-04-21T17:46:51.601750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5607564885929685542, trigger=click)\n2026-04-21T17:46:56.353647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4497988824039212795, trigger=click)\n2026-04-21T17:47:24.716661Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4864885406063659925, trigger=visual_change)\n2026-04-21T17:47:29.793942Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:30.097043Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)\n2026-04-21T17:47:30.960214Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:32.707746Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)\n2026-04-21T17:47:36.181007Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:36.362574Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:37.093511Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:41.720206Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)\n2026-04-21T17:47:44.706704Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)\n2026-04-21T17:47:48.602580Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:48.776278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:52.582982Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5658848090639979218, trigger=click)\n2026-04-21T17:47:57.282103Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8902771592702756196, trigger=click)\n2026-04-21T17:48:06.880071Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8902771592702756196, trigger=click)\n2026-04-21T17:48:07.656377Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8902771592702756196, trigger=click)\n2026-04-21T17:48:23.785117Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:24.032602Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:26.587906Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:32.180582Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:48:34.022831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:34.363583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:39.363585Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=83 elapsed=4.983598708s\n2026-04-21T17:48:39.363733Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 83 eligible frames\n2026-04-21T17:48:41.479158Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 3.3MB → 0.2MB (17.7x), 31 JPEGs deleted\n2026-04-21T17:48:44.682560Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 50 frames, 6.5MB → 2.0MB (3.3x), 50 JPEGs deleted\n2026-04-21T17:48:53.828851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:48:56.563636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:48:59.291654Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:59.467275Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:00.295226Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:00.453357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:49:13.301518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:49:16.454207Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:49:16.837288Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:18.900202Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:19.229376Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:20.418502Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:20.706966Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:21.269855Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:22.896443Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:23.115745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:29.927553Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1234240076182081719, trigger=click)\n2026-04-21T17:49:40.567042Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1506528968255096811, trigger=click)\n2026-04-21T17:49:40.722412Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1506528968255096811, trigger=click)\n2026-04-21T17:49:44.790415Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1506528968255096811, trigger=visual_change)\n2026-04-21T17:49:44.983133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1506528968255096811, trigger=visual_change)\n2026-04-21T17:51:50.315220Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)\n2026-04-21T17:51:53.337571Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)\n2026-04-21T17:51:59.473328Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)\n2026-04-21T17:52:02.455277Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)\n2026-04-21T17:52:05.862297Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:52:07.729450Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:52:16.901254Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:52:29.702852Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:52:36.533775Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:39.599515Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:45.700237Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:48.638819Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:54.704399Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:57.751791Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:53:10.186965Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:53:46.867091Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=116 elapsed=2.178958s\n2026-04-21T17:53:46.867199Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 116 eligible frames\n2026-04-21T17:53:49.254310Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:53:50.410056Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 56 frames, 12.3MB → 3.7MB (3.3x), 56 JPEGs deleted\n2026-04-21T17:53:51.388237Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:53:53.983042Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 58 frames, 9.0MB → 2.6MB (3.5x), 58 JPEGs deleted\n2026-04-21T17:53:56.223709Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:25.250317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:54:25.727105Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:54:32.633019Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:33.984547Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:54:35.401305Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:35.511290Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:38.494935Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:38.630637Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:41.245537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:54:45.441966Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:54:50.148639Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:50.313941Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:51.769427Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:51.915582Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:58.755543Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:55:01.758776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:55:25.745659Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3428322026263856254, trigger=click)\n2026-04-21T17:55:27.298490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3428322026263856254, trigger=visual_change)\n2026-04-21T17:55:33.297808Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3428322026263856254, trigger=visual_change)\n2026-04-21T17:55:48.491529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7233070170495400552, trigger=visual_change)\n2026-04-21T17:55:49.809101Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7233070170495400552, trigger=visual_change)\n2026-04-21T17:55:54.025243Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7233070170495400552, trigger=click)\n2026-04-21T17:55:54.165626Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7233070170495400552, trigger=click)\n2026-04-21T17:55:58.086411Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1463712168180952345, trigger=visual_change)\n2026-04-21T17:56:04.943502Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7233070170495400552, trigger=visual_change)\n2026-04-21T17:57:22.021701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:23.588692Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:30.517012Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:31.818301Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:31.972732Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:40.727074Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:42.330179Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:42.494853Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:45.528669Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:46.132479Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:46.358876Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:58:36.946109Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6074307134448385817, trigger=visual_change)\n2026-04-21T17:58:57.225929Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=117 elapsed=3.2365965s\n2026-04-21T17:58:57.226687Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 117 eligible frames\n2026-04-21T17:59:01.078632Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 58 frames, 12.8MB → 4.3MB (3.0x), 58 JPEGs deleted\n2026-04-21T17:59:04.938676Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 57 frames, 10.8MB → 4.0MB (2.7x), 57 JPEGs deleted\n2026-04-21T18:00:27.589643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9170086261988994041, trigger=click)\n2026-04-21T18:00:28.469646Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9170086261988994041, trigger=visual_change)\n2026-04-21T18:00:37.318027Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=9170086261988994041, trigger=click)\n2026-04-21T18:00:42.194585Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=9170086261988994041, trigger=click)\n2026-04-21T18:00:42.367049Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9170086261988994041, trigger=click)\n2026-04-21T18:01:07.200973Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:08.642294Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:08.873831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=visual_change)\n2026-04-21T18:01:09.931490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:10.189484Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:11.594292Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=visual_change)\n2026-04-21T18:01:12.844254Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:13.095866Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:49.712611Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5610420548393517496, trigger=click)\n2026-04-21T18:01:49.878502Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5610420548393517496, trigger=click)\n2026-04-21T18:01:54.385999Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4075180225844497251, trigger=click)\n2026-04-21T18:02:03.320721Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:04.589973Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:06.402101Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:08.459207Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:17.915785Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:20.289378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:53.363091Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:59.854804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6485088808083200508, trigger=visual_change)\n2026-04-21T18:03:23.692602Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2923142241079919801, trigger=visual_change)\n2026-04-21T18:03:38.383745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:03:38.666324Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:03:40.611795Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:03:46.691879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:03:49.696169Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:03:58.796193Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:10.455866Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=65 elapsed=5.507644708s\n2026-04-21T18:04:10.456994Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 65 eligible frames\n2026-04-21T18:04:10.784720Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:12.979583Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 8.1MB → 3.1MB (2.6x), 36 JPEGs deleted\n2026-04-21T18:04:13.808201Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:15.311040Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 5.7MB → 2.1MB (2.7x), 27 JPEGs deleted\n2026-04-21T18:04:22.870405Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:25.858949Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:47.178867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:47.409147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:48.621959Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:48.823996Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:49.613197Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:49.840589Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:54.113636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:54.333250Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:56.158603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:56.345340Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:24.653256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2923142241079919801, trigger=visual_change)\n2026-04-21T18:05:27.506644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2923142241079919801, trigger=visual_change)\n2026-04-21T18:05:52.127185Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:52.385537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:54.464579Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:54.740600Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:06:01.884193Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:06:04.917243Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:06:15.788550Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:06:16.090123Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:06:17.179267Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:07:04.992532Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:08.003078Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:17.121489Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:17.302355Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:27.025619Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:29.771279Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:31.137970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:36.086848Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:36.306717Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:37.369851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:37.634865Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:38.805129Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:39.104738Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:40.060624Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:08:30.262801Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:08:45.022177Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8543293535466770858, trigger=click)\n2026-04-21T18:09:22.083704Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=74 elapsed=6.715953125s\n2026-04-21T18:09:22.084245Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 74 eligible frames\n2026-04-21T18:09:29.000281Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 43 frames, 9.6MB → 4.0MB (2.4x), 43 JPEGs deleted\n2026-04-21T18:09:33.280652Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 5.8MB → 1.9MB (3.1x), 29 JPEGs deleted\n2026-04-21T18:10:45.149443Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:11:39.313378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=745086096190842156, trigger=visual_change)\n2026-04-21T18:11:42.305757Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=745086096190842156, trigger=click)\n2026-04-21T18:11:46.031853Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=745086096190842156, trigger=click)\n2026-04-21T18:11:46.095029Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=745086096190842156, trigger=click)\n2026-04-21T18:14:41.494244Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=68 elapsed=8.195880125s\n2026-04-21T18:14:41.495608Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 68 eligible frames\n2026-04-21T18:14:48.613051Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 8.2MB → 3.4MB (2.5x), 36 JPEGs deleted\n2026-04-21T18:14:55.232583Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 5.5MB → 2.6MB (2.1x), 30 JPEGs deleted\n2026-04-21T18:19:19.967211Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2899189334056575250, trigger=click)\n2026-04-21T18:19:20.363463Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2899189334056575250, trigger=click)\n2026-04-21T18:19:59.298075Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=53 elapsed=4.000910792s\n2026-04-21T18:19:59.298190Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 53 eligible frames\n2026-04-21T18:20:02.044649Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 5.1MB → 3.5MB (1.5x), 26 JPEGs deleted\n2026-04-21T18:20:04.900441Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.7MB → 2.4MB (1.9x), 25 JPEGs deleted\n2026-04-21T18:20:23.742659Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:27.660528Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:34.896769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:35.220946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:40.886719Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:44.353070Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:47.046701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:48.003863Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:22:59.673927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2006451494811625283, trigger=click)\n2026-04-21T18:23:02.374154Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2006451494811625283, trigger=visual_change)\n2026-04-21T18:24:55.480969Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:24:55.713808Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:25:06.770660Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=745086096190842156, trigger=click)\n2026-04-21T18:25:10.431473Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=69 elapsed=5.123936292s\n2026-04-21T18:25:10.432665Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 69 eligible frames\n2026-04-21T18:25:12.020960Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.7MB → 0.4MB (10.8x), 24 JPEGs deleted\n2026-04-21T18:25:16.809118Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 43 frames, 7.5MB → 3.7MB (2.0x), 43 JPEGs deleted\n2026-04-21T18:27:20.032159Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-868697608726996264, trigger=click)\n2026-04-21T18:27:27.209581Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5262134208844209929, trigger=click)\n2026-04-21T18:30:23.556529Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=60 elapsed=6.732438875s\n2026-04-21T18:30:23.556849Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 60 eligible frames\n2026-04-21T18:30:25.836587Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 5.3MB → 0.4MB (12.5x), 27 JPEGs deleted\n2026-04-21T18:30:29.251794Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 5.4MB → 2.7MB (2.0x), 31 JPEGs deleted\n2026-04-21T18:34:42.383568Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1898158487632236470, trigger=click)\n2026-04-21T18:35:29.435858Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 84 eligible frames\n2026-04-21T18:35:31.507303Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 35 frames, 6.8MB → 0.3MB (21.3x), 35 JPEGs deleted\n2026-04-21T18:35:34.821718Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 47 frames, 8.8MB → 3.6MB (2.4x), 47 JPEGs deleted\n2026-04-21T18:37:57.032414Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3231955623713121874, trigger=click)\n2026-04-21T18:40:36.969380Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=205 elapsed=2.13815675s\n2026-04-21T18:40:36.969491Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 205 eligible frames\n2026-04-21T18:40:42.234686Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 90 frames, 17.5MB → 0.4MB (49.4x), 90 JPEGs deleted\n2026-04-21T18:40:48.296945Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 99 frames, 14.9MB → 5.7MB (2.6x), 99 JPEGs deleted\n2026-04-21T18:40:49.626073Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 1.8MB → 0.7MB (2.8x), 14 JPEGs deleted\n2026-04-21T18:41:16.858046Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5262134208844209929, trigger=click)\n2026-04-21T18:41:18.719527Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5262134208844209929, trigger=click)\n2026-04-21T18:41:20.650032Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6762752836329409782, trigger=click)\n2026-04-21T18:42:40.957654Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7949512313665335161, trigger=visual_change)\n2026-04-21T18:42:42.714242Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7949512313665335161, trigger=click)\n2026-04-21T18:44:54.833923Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7610506607449357182, trigger=click)\n2026-04-21T18:44:55.013934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7610506607449357182, trigger=click)\n2026-04-21T18:45:54.320505Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=145 elapsed=4.6846185s\n2026-04-21T18:45:54.321215Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 145 eligible frames\n2026-04-21T18:45:58.288822Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 64 frames, 12.5MB → 0.5MB (23.2x), 64 JPEGs deleted\n2026-04-21T18:46:02.956701Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 78 frames, 11.5MB → 3.3MB (3.5x), 78 JPEGs deleted\n2026-04-21T18:48:10.510139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4242937607805845066, trigger=click)\n2026-04-21T18:48:37.207446Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5152173808593872338, trigger=visual_change)\n2026-04-21T18:49:27.537635Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5244088376274895156, trigger=click)\n2026-04-21T18:49:33.724367Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5262134208844209929, trigger=click)\n2026-04-21T18:49:44.747739Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8298107678328947062, trigger=click)\n2026-04-21T18:50:45.073176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:50:45.427101Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:50:48.592273Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:50:49.492676Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:51:01.193858Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:51:05.888682Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=50 elapsed=2.917680375s\n2026-04-21T18:51:05.889014Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 50 eligible frames\n2026-04-21T18:51:06.016628Z WARN sqlx::query: summary=\"PRAGMA wal_checkpoint(TRUNCATE)\" db.statement=\"\" rows_affected=0 rows_returned=1 elapsed=2.157649083s\n2026-04-21T18:51:06.079565Z WARN sqlx::query: summary=\"BEGIN IMMEDIATE\" db.statement=\"\" rows_affected=1 rows_returned=0 elapsed=1.385088167s\n2026-04-21T18:51:07.829374Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 3.9MB → 0.4MB (11.0x), 20 JPEGs deleted\n2026-04-21T18:51:09.736739Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 5.0MB → 1.8MB (2.7x), 28 JPEGs deleted\n2026-04-21T18:51:22.360027Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2872311122120998867, trigger=click)\n2026-04-21T18:51:22.556670Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2872311122120998867, trigger=click)\n2026-04-21T18:51:38.819030Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7947558874471225541, trigger=click)\n2026-04-21T18:51:57.414061Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:51:59.012068Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:51:59.285931Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:01.767745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:02.028355Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:05.460776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=visual_change)\n2026-04-21T18:52:07.087479Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:07.314492Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:10.214922Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:10.537340Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:13.867159Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:14.152331Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:20.367281Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:26.127826Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1650348556715134220, trigger=click)\n2026-04-21T18:52:37.517700Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=visual_change)\n2026-04-21T18:52:42.329057Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:52:42.556779Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:52:44.386173Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:52:44.700511Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:52:45.210674Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:53:17.193415Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6757993062848436258, trigger=visual_change)\n2026-04-21T18:53:30.834059Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-228480120308125164, trigger=click)\n2026-04-21T18:53:38.030882Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7225077546439863627, trigger=click)\n2026-04-21T18:53:56.421537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6437320026671683644, trigger=click)\n2026-04-21T18:54:11.726528Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1667437155962702753, trigger=visual_change)\n2026-04-21T18:54:12.117525Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1667437155962702753, trigger=click)\n2026-04-21T18:54:18.659686Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:54:19.077258Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:54:29.973760Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:56:07.789768Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6757993062848436258, trigger=click)\n2026-04-21T18:56:08.791400Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6757993062848436258, trigger=click)\n2026-04-21T18:56:14.153615Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=80 elapsed=4.402661042s\n2026-04-21T18:56:14.153722Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 80 eligible frames\n2026-04-21T18:56:16.685912Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 6.2MB → 0.7MB (8.9x), 32 JPEGs deleted\n2026-04-21T18:56:21.263739Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 46 frames, 8.2MB → 2.8MB (2.9x), 46 JPEGs deleted\n2026-04-21T18:56:25.279306Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7906564822731502105, trigger=click)\n2026-04-21T18:56:33.734840Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8817586097865472869, trigger=click)\n2026-04-21T18:56:33.980908Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8817586097865472869, trigger=click)\n2026-04-21T18:56:35.972959Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8817586097865472869, trigger=click)\n2026-04-21T18:56:40.545963Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8587160525579598601, trigger=click)\n2026-04-21T18:56:41.913814Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8587160525579598601, trigger=visual_change)\n2026-04-21T18:56:45.516942Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1910160977377320534, trigger=click)\n2026-04-21T18:56:48.740431Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1910160977377320534, trigger=click)\n2026-04-21T18:56:50.439568Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1910160977377320534, trigger=click)\n2026-04-21T18:56:50.692218Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1910160977377320534, trigger=click)\n2026-04-21T18:57:12.321118Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:12.578681Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:24.290583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:24.543696Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:34.571768Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:36.227688Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:36.475151Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:42.338601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:42.559967Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:52.824809Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:53.145543Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:59.463043Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:59.717475Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:58:00.742137Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:58:01.061497Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:59:33.960291Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9203182216527106315, trigger=visual_change)\n2026-04-21T18:59:55.990167Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T18:59:59.103830Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=visual_change)\n2026-04-21T19:00:16.116927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:00:45.352689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:00:49.596644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:00:50.432181Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:07.992732Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:08.484066Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:10.538762Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:18.922398Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:28.361625Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=84 elapsed=6.9360265s\n2026-04-21T19:01:28.362070Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 84 eligible frames\n2026-04-21T19:01:32.723075Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 33 frames, 6.4MB → 0.3MB (19.7x), 33 JPEGs deleted\n2026-04-21T19:01:42.130490Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 7.8MB → 3.3MB (2.4x), 49 JPEGs deleted\n2026-04-21T19:02:09.991879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:12.577587Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:12.835924Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:15.635601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:18.720475Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:21.708351Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:22.061150Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:28.684303Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3995027160269120472, trigger=click)\n2026-04-21T19:02:41.434491Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:41.724904Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:43.112974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:43.410843Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:47.501924Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:47.761592Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:54.205542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:54.441326Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:56.601490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:56.921256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:03:15.988643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:03:16.236342Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:03:28.508616Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:00.462064Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:01.516168Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:01.856315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:03.246448Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:03.735029Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:09.818135Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:05:03.118616Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:03.393788Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:21.352722Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=visual_change)\n2026-04-21T19:05:43.751309Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:44.029500Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:45.626672Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:45.899754Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:48.206587Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:48.449043Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:06:22.834938Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7947558874471225541, trigger=click)\n2026-04-21T19:06:52.937779Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=114 elapsed=10.747243125s\n2026-04-21T19:06:52.938152Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 114 eligible frames\n2026-04-21T19:06:57.942457Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 45 frames, 8.8MB → 0.3MB (27.2x), 45 JPEGs deleted\n2026-04-21T19:07:05.853054Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 67 frames, 10.5MB → 5.2MB (2.0x), 67 JPEGs deleted\n2026-04-21T19:07:45.088797Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:07:48.052391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6936634780821666458, trigger=click)\n2026-04-21T19:08:59.593467Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5629560013928052473, trigger=click)\n2026-04-21T19:09:29.443711Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:42.998313Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8043719072324535154, trigger=visual_change)\n2026-04-21T19:09:50.759516Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:51.052544Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:51.892698Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:09:52.651776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:55.476431Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:55.898195Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:09:58.077337Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:10:01.103980Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:10:03.105423Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:10:03.448049Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:10:08.548130Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6051188157141408655, trigger=click)\n2026-04-21T19:12:12.330759Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=70 elapsed=6.458002417s\n2026-04-21T19:12:12.332545Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 70 eligible frames\n2026-04-21T19:12:14.243079Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 5.5MB → 0.3MB (17.2x), 28 JPEGs deleted\n2026-04-21T19:12:17.558334Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 40 frames, 7.4MB → 3.6MB (2.1x), 40 JPEGs deleted\n2026-04-21T19:16:51.045938Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1370319459641728815, trigger=click)\n2026-04-21T19:16:51.249993Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1370319459641728815, trigger=click)\n2026-04-21T19:17:21.603564Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=40 elapsed=4.036037791s\n2026-04-21T19:17:21.604357Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames\n2026-04-21T19:17:22.750174Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.5MB → 0.3MB (11.2x), 18 JPEGs deleted\n2026-04-21T19:17:24.332098Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.2MB → 1.3MB (3.2x), 20 JPEGs deleted\n2026-04-21T19:22:25.748871Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=49 elapsed=1.406664416s\n2026-04-21T19:22:25.749095Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 49 eligible frames\n2026-04-21T19:22:27.704722Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 3.7MB → 0.8MB (4.5x), 22 JPEGs deleted\n2026-04-21T19:22:29.535330Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.2MB → 1.7MB (3.0x), 25 JPEGs deleted\n2026-04-21T19:23:29.233846Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9146581369053060363, trigger=click)\n2026-04-21T19:23:31.995034Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9146581369053060363, trigger=visual_change)\n2026-04-21T19:23:37.213396Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9146581369053060363, trigger=visual_change)\n2026-04-21T19:23:40.288223Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9146581369053060363, trigger=visual_change)\n2026-04-21T19:23:44.197738Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9146581369053060363, trigger=visual_change)\n2026-04-21T19:23:45.228572Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9146581369053060363, trigger=click)\n2026-04-21T19:23:56.251033Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:24:06.580019Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=335 elapsed=1.644312167s\n2026-04-21T19:24:28.860436Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:24:32.226944Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:24:32.476075Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:03.902521Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:19.205245Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:25.098627Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:36.013866Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:37.355954Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:41.831265Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:46.247585Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:46.619106Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:48.284769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:48.534452Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:49.421920Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:49.752264Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:54.600720Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:55.072357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:26:19.446041Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:26:22.718352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:27:38.437704Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=28 elapsed=8.833634334s\n2026-04-21T19:27:38.438043Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames\n2026-04-21T19:27:39.763901Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 1.9MB → 0.3MB (7.6x), 12 JPEGs deleted\n2026-04-21T19:27:41.220664Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.1MB → 0.9MB (2.2x), 14 JPEGs deleted\n2026-04-21T19:28:22.708791Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:28:23.849452Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:28:24.119301Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:14.209016Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:16.415693Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:21.726815Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:23.890645Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:24.239058Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:29.790006Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:33.098495Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:38.065869Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:44.089028Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:47.272131Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:53.977951Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:57.274496Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:30:11.986797Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:30:13.530455Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:30:28.332451Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:30:37.204947Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:26.255340Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:26.592983Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:30.448912Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:35.747969Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:37.783849Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:38.061197Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:43.216365Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:43.885407Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:46.680745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:52.971450Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:58.468469Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:58.624833Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:03.362210Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:12.706102Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:15.172982Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:23.020508Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:23.199312Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:25.387097Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:25.764201Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:30.336940Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:30.810971Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:39.812820Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:42.409145Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:44.386326Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:48.880648Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=47 elapsed=7.499136792s\n2026-04-21T19:32:48.880949Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 47 eligible frames\n2026-04-21T19:32:51.249469Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.2MB → 0.3MB (8.9x), 14 JPEGs deleted\n2026-04-21T19:32:55.969183Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 3.8MB → 1.9MB (2.0x), 31 JPEGs deleted\n2026-04-21T19:32:59.734686Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:33:00.098925Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:33:05.951997Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:34:07.213420Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:34:09.264586Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:34:16.527425Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:34:19.513647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:34:32.889780Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1128757073350665914, trigger=click)\n2026-04-21T19:34:56.078651Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4993766851008728916, trigger=click)\n2026-04-21T19:34:56.296542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4993766851008728916, trigger=click)\n2026-04-21T19:35:02.344819Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:35:05.237721Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:35:07.518599Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:35:09.938481Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:35:10.408295Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:35:26.864482Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:35:33.001733Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:35:36.479802Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:36:20.043835Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4526067242477956280, trigger=visual_change)\n2026-04-21T19:36:47.029303Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4526067242477956280, trigger=visual_change)\n2026-04-21T19:36:57.077150Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:37:33.348160Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:37:33.742029Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:37:36.579915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:37:39.754974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:38:04.951324Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=101 elapsed=8.9666755s\n2026-04-21T19:38:04.953527Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 101 eligible frames\n2026-04-21T19:38:13.751166Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 38 frames, 8.0MB → 3.5MB (2.3x), 38 JPEGs deleted\n2026-04-21T19:38:29.817220Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 61 frames, 9.7MB → 5.2MB (1.9x), 61 JPEGs deleted\n2026-04-21T19:40:34.255930Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=342 elapsed=1.0699005s\n2026-04-21T19:42:32.961192Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:42:33.305572Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:42:40.179851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=visual_change)\n2026-04-21T19:42:41.405781Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:42:41.720845Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:43:02.251464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=visual_change)\n2026-04-21T19:43:11.622532Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:43:36.525920Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=85 elapsed=6.634896167s\n2026-04-21T19:43:36.526454Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 85 eligible frames\n2026-04-21T19:43:39.459999Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 8.0MB → 3.4MB (2.3x), 36 JPEGs deleted\n2026-04-21T19:43:43.505640Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 47 frames, 7.9MB → 3.9MB (2.0x), 47 JPEGs deleted\n2026-04-21T19:44:05.999282Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=visual_change)\n2026-04-21T19:45:08.065595Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2712812971723964739, trigger=click)\n2026-04-21T19:45:46.266141Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:48:51.569666Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=64 elapsed=8.039671791s\n2026-04-21T19:48:51.570457Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 64 eligible frames\n2026-04-21T19:48:58.738540Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 7.2MB → 2.4MB (2.9x), 32 JPEGs deleted\n2026-04-21T19:49:05.383193Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 5.9MB → 2.5MB (2.4x), 30 JPEGs deleted\n2026-04-21T19:51:14.064760Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2572721248839450970, trigger=visual_change)\n2026-04-21T19:54:08.518415Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=346 elapsed=1.026887875s\n2026-04-21T19:54:12.872902Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=61 elapsed=7.44778675s\n2026-04-21T19:54:12.873164Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 61 eligible frames\n2026-04-21T19:54:16.348511Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.6MB → 1.4MB (4.1x), 25 JPEGs deleted\n2026-04-21T19:54:24.102233Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 34 frames, 6.2MB → 3.6MB (1.7x), 34 JPEGs deleted\n2026-04-21T19:59:32.063421Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=346 elapsed=1.165878958s\n2026-04-21T19:59:32.818884Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=31 elapsed=8.661332917s\n2026-04-21T19:59:32.819629Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 31 eligible frames\n2026-04-21T19:59:35.810838Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.9MB → 0.7MB (3.9x), 16 JPEGs deleted\n2026-04-21T19:59:38.924596Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.9MB → 1.5MB (2.0x), 13 JPEGs deleted\n2026-04-21T20:01:55.709776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1382976804061127003, trigger=click)\n2026-04-21T20:04:27.572999Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7658911549706194190, trigger=click)\n2026-04-21T20:04:46.630063Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=57 elapsed=7.045125334s\n2026-04-21T20:04:46.631081Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 57 eligible frames\n2026-04-21T20:04:49.684796Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 2.5MB → 0.8MB (3.2x), 23 JPEGs deleted\n2026-04-21T20:04:56.073590Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 5.7MB → 3.1MB (1.8x), 32 JPEGs deleted\n2026-04-21T20:05:04.129844Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-446124678591544690, trigger=click)\n2026-04-21T20:05:04.425723Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-446124678591544690, trigger=click)\n2026-04-21T20:09:59.238939Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=30 elapsed=2.058497125s\n2026-04-21T20:09:59.239075Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 30 eligible frames\n2026-04-21T20:10:00.874153Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.3MB → 0.2MB (5.8x), 13 JPEGs deleted\n2026-04-21T20:10:03.326064Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 1.8MB → 0.6MB (2.8x), 15 JPEGs deleted\n2026-04-21T20:15:07.129653Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=58 elapsed=3.763973459s\n2026-04-21T20:15:07.130598Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 58 eligible frames\n2026-04-21T20:15:09.088400Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 3.7MB → 0.6MB (5.9x), 26 JPEGs deleted\n2026-04-21T20:15:10.858868Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 3.9MB → 1.0MB (3.9x), 30 JPEGs deleted\n2026-04-21T20:18:21.110736Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=354 elapsed=1.169721666s\nzsh: terminated npx screenpipe@latest record --disable-audio --ignored-windows \"Boosteroid\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-start\ndetected hardware tier: Mid\nwarning: parakeet is not supported on this platform, using whisper-tiny instead\n2026-04-22T09:15:19.880360Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store\nchecking permissions...\n screen recording: ok\n accessibility: ok\n2026-04-22T09:15:19.951248Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6\n2026-04-22T09:15:20.675958Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor\n2026-04-22T09:15:20.677447Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)\n2026-04-22T09:15:20.677800Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)\n2026-04-22T09:15:20.709542Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true\n2026-04-22T09:15:20.709596Z INFO screenpipe: meeting detector enabled — independent of transcription mode\n2026-04-22T09:15:20.709849Z INFO screenpipe: API server listening on 127.0.0.1:3030 (localhost only)\n2026-04-22T09:15:20.709774Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)\n2026-04-22T09:15:20.709806Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)\n2026-04-22T09:15:20.709863Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key\n2026-04-22T09:15:20.709908Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager\n2026-04-22T09:15:20.721517Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-22T09:15:20.725781Z INFO screenpipe_core::pipes: loaded pipe: day-recap\n2026-04-22T09:15:20.725991Z INFO screenpipe_core::pipes: loaded pipe: standup-update\n2026-04-22T09:15:20.726387Z INFO screenpipe_core::pipes: loaded pipe: ai-habits\n2026-04-22T09:15:20.726548Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown\n2026-04-22T09:15:20.726690Z INFO screenpipe_core::pipes: loaded pipe: video-export\n2026-04-22T09:15:20.727224Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary\n2026-04-22T09:15:20.727242Z INFO screenpipe_core::pipes: loaded 6 pipes from \"/Users/lukas/.screenpipe/pipes\"\n\n\n\n _ \n __________________ ___ ____ ____ (_____ ___ \n / ___/ ___/ ___/ _ \\/ _ \\/ __ \\ / __ \\/ / __ \\/ _ \\\n (__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/\n/____/\\___/_/ \\___/\\___/_/ /_/ / .___/_/ .___/\\___/ \n /_/ /_/ \n\n\n\npower AI by everything you've seen, said or heard\nopen source | runs locally | developer friendly\n\n\n┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ true │\n│ vision disabled │ false │\n│ pause on DRM content │ false │\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n│ ignored windows │ [\"Boosteroid\"] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n2026-04-22T09:15:20.728614Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n│ api auth │ enabled │\n2026-04-22T09:15:20.742172Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n│ encrypt secrets │ disabled │\n│ retention days │ 14 │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ id: 1 │\n│ │ id: 2 │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ disabled │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-22T09:15:20.742788Z INFO screenpipe: starting UI event capture\n2026-04-22T09:15:20.755824Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-22T09:15:20.769629Z INFO screenpipe_engine::ui_recorder: UI recording session started: e7729066-2ab4-4bf0-9d48-0c9790a4ee79\n2026-04-22T09:15:20.769680Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-22T09:15:20.769789Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-21 06:15:20.769785 UTC to 2026-04-22 06:15:20.769785 UTC)\n2026-04-22T09:15:20.770644Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-22T09:15:20.778181Z INFO screenpipe_engine::server: Server listening on 127.0.0.1:3030\n2026-04-22T09:15:20.789960Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-22T09:15:21.591614Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-22T09:15:21.591646Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-22T09:15:21.591751Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-22T09:15:21.919088Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-22T09:15:21.919141Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-22T09:15:21.919158Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)\n2026-04-22T09:15:21.919163Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-22T09:15:21.919167Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)\n2026-04-22T09:15:23.315305Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-22T09:15:23.445619Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=68471, dur=74ms\n2026-04-22T09:15:23.697846Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-22T09:15:23.856559Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=68472, dur=115ms\n2026-04-22T09:15:23.858032Z INFO sck_rs::stream_manager: invalidated persistent stream for display 2\n2026-04-22T09:15:25.542035Z WARN sqlx::query: summary=\"SELECT f.id, f.timestamp, f.offset_index, …\" db.statement=\"\\n\\nSELECT\\n f.id,\\n f.timestamp,\\n f.offset_index,\\n COALESCE(\\n SUBSTR(f.full_text, 1, 200),\\n SUBSTR(f.accessibility_text, 1, 200),\\n (\\n SELECT\\n SUBSTR(ot.text, 1, 200)\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as text,\\n COALESCE(\\n f.app_name,\\n (\\n SELECT\\n ot.app_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as app_name,\\n COALESCE(\\n f.window_name,\\n (\\n SELECT\\n ot.window_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as window_name,\\n COALESCE(vc.device_name, f.device_name) as screen_device,\\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\\n COALESCE(vc.fps, 0.033) as chunk_fps,\\n f.browser_url,\\n f.machine_id\\nFROM\\n frames f\\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\\nWHERE\\n f.timestamp >= ?1\\n AND f.timestamp <= ?2\\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\\nORDER BY\\n f.timestamp DESC,\\n f.offset_index DESC\\nLIMIT\\n 10000\\n\" rows_affected=0 rows_returned=7744 elapsed=4.771776083s\n2026-04-22T09:15:25.568771Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 7744 frame entries, coverage from 2026-04-21 06:15:20.769785 UTC\n2026-04-22T09:15:32.415224Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)","depth":4,"value":"2026-04-21T16:41:35.133385Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:43:15.919099Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8254246256813675665, trigger=click)\n2026-04-21T16:43:44.014066Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8254246256813675665, trigger=visual_change)\n2026-04-21T16:44:45.410923Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=35 elapsed=2.419201375s\n2026-04-21T16:44:45.411045Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 35 eligible frames\n2026-04-21T16:44:46.383629Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.8MB → 0.3MB (9.5x), 15 JPEGs deleted\n2026-04-21T16:44:47.792527Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.6MB → 0.8MB (4.3x), 18 JPEGs deleted\n2026-04-21T16:49:53.308820Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=47 elapsed=5.487768917s\n2026-04-21T16:49:53.309371Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 47 eligible frames\n2026-04-21T16:49:54.673701Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.9MB → 0.3MB (13.1x), 21 JPEGs deleted\n2026-04-21T16:49:56.314871Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.7MB → 1.2MB (4.0x), 24 JPEGs deleted\n2026-04-21T16:54:59.385017Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=62 elapsed=3.057419917s\n2026-04-21T16:54:59.385210Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 62 eligible frames\n2026-04-21T16:55:00.998239Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.8MB → 0.5MB (10.3x), 26 JPEGs deleted\n2026-04-21T16:55:03.739041Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 34 frames, 5.8MB → 2.6MB (2.2x), 34 JPEGs deleted\n2026-04-21T16:55:17.768634Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)\n2026-04-21T17:23:59.183039Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)\n2026-04-21T17:23:59.216966Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2\n2026-04-21T17:24:00.832399Z INFO screenpipe_engine::vision_manager::monitor_watcher: Monitor 2 disconnected, stopping recording\n2026-04-21T17:24:00.832464Z INFO screenpipe_engine::vision_manager::manager: Stopping vision recording for monitor 2\n2026-04-21T17:24:00.832336Z INFO sck_rs::stream_manager: stopped 2 persistent stream(s)\n2026-04-21T17:24:04.654209Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-21T17:24:30.699969Z ERROR screenpipe_engine::resource_monitor: Failed to send resource usage to PostHog: error sending request for url (https://us.i.posthog.com/capture/)\n2026-04-21T17:25:01.085383Z INFO screenpipe_engine::vision_manager::monitor_watcher: Monitor 2 reconnected, resuming recording\n2026-04-21T17:25:01.273818Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-21T17:25:01.273870Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-21T17:25:01.273896Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-21T17:25:02.310236Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-21T17:25:02.808234Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=66228, dur=365ms\n2026-04-21T17:25:04.889075Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:07.887565Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:10.918390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:14.039034Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:17.160521Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:26.096276Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:29.061270Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:32.067380Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:35.263701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:41.164753Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:44.239172Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:47.149320Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:50.242915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:53.308794Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:56.218138Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:59.144297Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:26:05.965946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:08.584110Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:11.350189Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:14.339609Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:17.398251Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:20.782119Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:23.385506Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:26.427626Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:29.573661Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:32.450744Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:38.464132Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:41.456915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:44.496278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:47.541313Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:50.596256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:53.597171Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:56.764522Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:59.751576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:02.719391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:08.829090Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:11.800601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:14.811724Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:17.855339Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:26.878741Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:29.933020Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:32.947216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:36.041239Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:38.993657Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:42.039373Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:45.172399Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:48.081804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:51.142939Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:54.169253Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:00.341347Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:03.322832Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:06.631198Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:09.537232Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:12.406113Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:15.381764Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:15.806839Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=44 elapsed=5.777403s\n2026-04-21T17:28:15.806951Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 44 eligible frames\n2026-04-21T17:28:17.108106Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.9MB → 0.3MB (13.1x), 21 JPEGs deleted\n2026-04-21T17:28:18.370832Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.6MB → 0.5MB (7.8x), 21 JPEGs deleted\n2026-04-21T17:28:18.461408Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:22.068097Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:24.604711Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:27.608060Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:33.774822Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:36.697278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:39.729251Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:42.728755Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:45.748204Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:48.768910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:51.814752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:54.970698Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:57.869874Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:00.913837Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:07.461529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:10.043928Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:13.182411Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:16.080133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:19.108570Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:22.322033Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:25.172666Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:28.398354Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:31.249083Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:34.289745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:40.303310Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:43.308015Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:46.360649Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:49.356069Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:52.450205Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:55.422975Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:58.446390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:01.491253Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:04.500380Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:16.830925Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:19.856895Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:23.100486Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:25.938910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:28.953603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:32.061536Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:35.030958Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:38.162895Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:41.148165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:44.019513Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:50.259576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:53.148070Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:56.309979Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:59.185610Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:02.278235Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:05.287341Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:08.409426Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:11.489977Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:14.319338Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:17.348153Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:23.351025Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:26.427529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:29.337254Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:32.386165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:35.653387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:38.430216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:41.428909Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:44.432459Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:47.448603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:50.432780Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:56.535727Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:59.590792Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:02.621444Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:05.627964Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:08.710139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:11.765247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:14.787638Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:17.876480Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)\n2026-04-21T17:32:20.977937Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)\n2026-04-21T17:32:29.888970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8116870867026519513, trigger=click)\n2026-04-21T17:32:33.123648Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)\n2026-04-21T17:33:03.355082Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)\n2026-04-21T17:33:05.517897Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=click)\n2026-04-21T17:33:06.399783Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)\n2026-04-21T17:33:09.478894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)\n2026-04-21T17:33:19.151217Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-21T17:33:21.431006Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6379516332769645744, trigger=visual_change)\n2026-04-21T17:33:33.494463Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7500553589467718193, trigger=visual_change)\n2026-04-21T17:34:00.725974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2275300387038012183, trigger=click)\n2026-04-21T17:34:07.214867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2063499064757931498, trigger=visual_change)\n2026-04-21T17:34:31.480257Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=visual_change)\n2026-04-21T17:34:34.482370Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=visual_change)\n2026-04-21T17:35:53.801549Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7652433743467416760, trigger=click)\n2026-04-21T17:35:53.954311Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7652433743467416760, trigger=click)\n2026-04-21T17:35:54.740695Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7652433743467416760, trigger=click)\n2026-04-21T17:36:06.295752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5335392039126841536, trigger=visual_change)\n2026-04-21T17:36:28.893337Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5927780310531960690, trigger=visual_change)\n2026-04-21T17:38:15.647110Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)\n2026-04-21T17:38:17.801901Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)\n2026-04-21T17:38:17.962831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)\n2026-04-21T17:38:22.819710Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7137414965816212018, trigger=click)\n2026-04-21T17:38:22.917176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=click)\n2026-04-21T17:38:23.042830Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=28 elapsed=3.882772625s\n2026-04-21T17:38:23.042920Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames\n2026-04-21T17:38:24.717251Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 2.8MB → 0.4MB (6.3x), 18 JPEGs deleted\n2026-04-21T17:38:26.727027Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.1MB → 0.2MB (5.7x), 10 JPEGs deleted\n2026-04-21T17:38:35.971287Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=click)\n2026-04-21T17:38:36.106246Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7137414965816212018, trigger=click)\n2026-04-21T17:38:37.368009Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=visual_change)\n2026-04-21T17:38:43.431620Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8741356672789266752, trigger=visual_change)\n2026-04-21T17:38:49.319886Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5149767057649118192, trigger=click)\n2026-04-21T17:38:49.477325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5149767057649118192, trigger=click)\n2026-04-21T17:38:51.019231Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5149767057649118192, trigger=visual_change)\n2026-04-21T17:39:04.249890Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7355944135161080033, trigger=click)\n2026-04-21T17:39:23.256256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4983811095206295613, trigger=click)\n2026-04-21T17:39:23.385820Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4983811095206295613, trigger=click)\n2026-04-21T17:39:24.367407Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4983811095206295613, trigger=visual_change)\n2026-04-21T17:39:24.895784Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4983811095206295613, trigger=click)\n2026-04-21T17:39:46.438272Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=372069959735326508, trigger=visual_change)\n2026-04-21T17:39:49.101085Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4964238948655865655, trigger=visual_change)\n2026-04-21T17:39:58.083750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)\n2026-04-21T17:40:01.375315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)\n2026-04-21T17:40:04.195859Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)\n2026-04-21T17:40:12.117004Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2989278587618621353, trigger=click)\n2026-04-21T17:40:12.244666Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2989278587618621353, trigger=click)\n2026-04-21T17:40:13.925024Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2989278587618621353, trigger=visual_change)\n2026-04-21T17:40:23.294147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=visual_change)\n2026-04-21T17:40:55.989498Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3182674559678505325, trigger=click)\n2026-04-21T17:40:58.413325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3182674559678505325, trigger=visual_change)\n2026-04-21T17:41:23.101094Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5616874458658671741, trigger=visual_change)\n2026-04-21T17:41:29.504783Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2744778324521007391, trigger=visual_change)\n2026-04-21T17:42:13.830352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6664909184667365933, trigger=click)\n2026-04-21T17:42:13.905614Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=click)\n2026-04-21T17:42:14.689622Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6664909184667365933, trigger=click)\n2026-04-21T17:43:13.738786Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5563100798252317961, trigger=visual_change)\n2026-04-21T17:43:31.769731Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=40 elapsed=4.870364084s\n2026-04-21T17:43:31.770321Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames\n2026-04-21T17:43:32.514133Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.1MB → 0.1MB (8.9x), 11 JPEGs deleted\n2026-04-21T17:43:34.391762Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 3.0MB → 0.5MB (5.9x), 27 JPEGs deleted\n2026-04-21T17:44:19.021163Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-263228306577803226, trigger=click)\n2026-04-21T17:44:32.036390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8360298266192684601, trigger=click)\n2026-04-21T17:44:33.859332Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8360298266192684601, trigger=visual_change)\n2026-04-21T17:44:42.936361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=visual_change)\n2026-04-21T17:44:46.420662Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=visual_change)\n2026-04-21T17:46:17.725934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7286082578618580481, trigger=click)\n2026-04-21T17:46:18.733766Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=click)\n2026-04-21T17:46:19.506484Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7286082578618580481, trigger=click)\n2026-04-21T17:46:20.729229Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=click)\n2026-04-21T17:46:27.956655Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8942982652250876029, trigger=click)\n2026-04-21T17:46:29.490950Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8942982652250876029, trigger=click)\n2026-04-21T17:46:45.634752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5761541209609855314, trigger=click)\n2026-04-21T17:46:45.971315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5761541209609855314, trigger=click)\n2026-04-21T17:46:50.988867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5607564885929685542, trigger=click)\n2026-04-21T17:46:51.601750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5607564885929685542, trigger=click)\n2026-04-21T17:46:56.353647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4497988824039212795, trigger=click)\n2026-04-21T17:47:24.716661Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4864885406063659925, trigger=visual_change)\n2026-04-21T17:47:29.793942Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:30.097043Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)\n2026-04-21T17:47:30.960214Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:32.707746Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)\n2026-04-21T17:47:36.181007Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:36.362574Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:37.093511Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:41.720206Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)\n2026-04-21T17:47:44.706704Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)\n2026-04-21T17:47:48.602580Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:48.776278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:52.582982Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5658848090639979218, trigger=click)\n2026-04-21T17:47:57.282103Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8902771592702756196, trigger=click)\n2026-04-21T17:48:06.880071Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8902771592702756196, trigger=click)\n2026-04-21T17:48:07.656377Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8902771592702756196, trigger=click)\n2026-04-21T17:48:23.785117Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:24.032602Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:26.587906Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:32.180582Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:48:34.022831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:34.363583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:39.363585Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=83 elapsed=4.983598708s\n2026-04-21T17:48:39.363733Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 83 eligible frames\n2026-04-21T17:48:41.479158Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 3.3MB → 0.2MB (17.7x), 31 JPEGs deleted\n2026-04-21T17:48:44.682560Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 50 frames, 6.5MB → 2.0MB (3.3x), 50 JPEGs deleted\n2026-04-21T17:48:53.828851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:48:56.563636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:48:59.291654Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:59.467275Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:00.295226Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:00.453357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:49:13.301518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:49:16.454207Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:49:16.837288Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:18.900202Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:19.229376Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:20.418502Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:20.706966Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:21.269855Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:22.896443Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:23.115745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:29.927553Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1234240076182081719, trigger=click)\n2026-04-21T17:49:40.567042Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1506528968255096811, trigger=click)\n2026-04-21T17:49:40.722412Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1506528968255096811, trigger=click)\n2026-04-21T17:49:44.790415Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1506528968255096811, trigger=visual_change)\n2026-04-21T17:49:44.983133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1506528968255096811, trigger=visual_change)\n2026-04-21T17:51:50.315220Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)\n2026-04-21T17:51:53.337571Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)\n2026-04-21T17:51:59.473328Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)\n2026-04-21T17:52:02.455277Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)\n2026-04-21T17:52:05.862297Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:52:07.729450Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:52:16.901254Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:52:29.702852Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:52:36.533775Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:39.599515Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:45.700237Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:48.638819Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:54.704399Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:57.751791Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:53:10.186965Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:53:46.867091Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=116 elapsed=2.178958s\n2026-04-21T17:53:46.867199Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 116 eligible frames\n2026-04-21T17:53:49.254310Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:53:50.410056Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 56 frames, 12.3MB → 3.7MB (3.3x), 56 JPEGs deleted\n2026-04-21T17:53:51.388237Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:53:53.983042Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 58 frames, 9.0MB → 2.6MB (3.5x), 58 JPEGs deleted\n2026-04-21T17:53:56.223709Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:25.250317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:54:25.727105Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:54:32.633019Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:33.984547Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:54:35.401305Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:35.511290Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:38.494935Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:38.630637Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:41.245537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:54:45.441966Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:54:50.148639Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:50.313941Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:51.769427Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:51.915582Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:58.755543Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:55:01.758776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:55:25.745659Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3428322026263856254, trigger=click)\n2026-04-21T17:55:27.298490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3428322026263856254, trigger=visual_change)\n2026-04-21T17:55:33.297808Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3428322026263856254, trigger=visual_change)\n2026-04-21T17:55:48.491529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7233070170495400552, trigger=visual_change)\n2026-04-21T17:55:49.809101Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7233070170495400552, trigger=visual_change)\n2026-04-21T17:55:54.025243Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7233070170495400552, trigger=click)\n2026-04-21T17:55:54.165626Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7233070170495400552, trigger=click)\n2026-04-21T17:55:58.086411Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1463712168180952345, trigger=visual_change)\n2026-04-21T17:56:04.943502Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7233070170495400552, trigger=visual_change)\n2026-04-21T17:57:22.021701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:23.588692Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:30.517012Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:31.818301Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:31.972732Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:40.727074Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:42.330179Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:42.494853Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:45.528669Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:46.132479Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:46.358876Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:58:36.946109Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6074307134448385817, trigger=visual_change)\n2026-04-21T17:58:57.225929Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=117 elapsed=3.2365965s\n2026-04-21T17:58:57.226687Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 117 eligible frames\n2026-04-21T17:59:01.078632Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 58 frames, 12.8MB → 4.3MB (3.0x), 58 JPEGs deleted\n2026-04-21T17:59:04.938676Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 57 frames, 10.8MB → 4.0MB (2.7x), 57 JPEGs deleted\n2026-04-21T18:00:27.589643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9170086261988994041, trigger=click)\n2026-04-21T18:00:28.469646Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9170086261988994041, trigger=visual_change)\n2026-04-21T18:00:37.318027Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=9170086261988994041, trigger=click)\n2026-04-21T18:00:42.194585Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=9170086261988994041, trigger=click)\n2026-04-21T18:00:42.367049Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9170086261988994041, trigger=click)\n2026-04-21T18:01:07.200973Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:08.642294Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:08.873831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=visual_change)\n2026-04-21T18:01:09.931490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:10.189484Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:11.594292Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=visual_change)\n2026-04-21T18:01:12.844254Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:13.095866Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:49.712611Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5610420548393517496, trigger=click)\n2026-04-21T18:01:49.878502Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5610420548393517496, trigger=click)\n2026-04-21T18:01:54.385999Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4075180225844497251, trigger=click)\n2026-04-21T18:02:03.320721Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:04.589973Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:06.402101Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:08.459207Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:17.915785Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:20.289378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:53.363091Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:59.854804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6485088808083200508, trigger=visual_change)\n2026-04-21T18:03:23.692602Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2923142241079919801, trigger=visual_change)\n2026-04-21T18:03:38.383745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:03:38.666324Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:03:40.611795Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:03:46.691879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:03:49.696169Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:03:58.796193Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:10.455866Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=65 elapsed=5.507644708s\n2026-04-21T18:04:10.456994Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 65 eligible frames\n2026-04-21T18:04:10.784720Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:12.979583Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 8.1MB → 3.1MB (2.6x), 36 JPEGs deleted\n2026-04-21T18:04:13.808201Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:15.311040Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 5.7MB → 2.1MB (2.7x), 27 JPEGs deleted\n2026-04-21T18:04:22.870405Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:25.858949Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:47.178867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:47.409147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:48.621959Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:48.823996Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:49.613197Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:49.840589Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:54.113636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:54.333250Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:56.158603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:56.345340Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:24.653256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2923142241079919801, trigger=visual_change)\n2026-04-21T18:05:27.506644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2923142241079919801, trigger=visual_change)\n2026-04-21T18:05:52.127185Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:52.385537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:54.464579Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:54.740600Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:06:01.884193Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:06:04.917243Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:06:15.788550Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:06:16.090123Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:06:17.179267Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:07:04.992532Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:08.003078Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:17.121489Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:17.302355Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:27.025619Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:29.771279Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:31.137970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:36.086848Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:36.306717Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:37.369851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:37.634865Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:38.805129Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:39.104738Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:40.060624Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:08:30.262801Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:08:45.022177Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8543293535466770858, trigger=click)\n2026-04-21T18:09:22.083704Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=74 elapsed=6.715953125s\n2026-04-21T18:09:22.084245Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 74 eligible frames\n2026-04-21T18:09:29.000281Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 43 frames, 9.6MB → 4.0MB (2.4x), 43 JPEGs deleted\n2026-04-21T18:09:33.280652Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 5.8MB → 1.9MB (3.1x), 29 JPEGs deleted\n2026-04-21T18:10:45.149443Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:11:39.313378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=745086096190842156, trigger=visual_change)\n2026-04-21T18:11:42.305757Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=745086096190842156, trigger=click)\n2026-04-21T18:11:46.031853Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=745086096190842156, trigger=click)\n2026-04-21T18:11:46.095029Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=745086096190842156, trigger=click)\n2026-04-21T18:14:41.494244Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=68 elapsed=8.195880125s\n2026-04-21T18:14:41.495608Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 68 eligible frames\n2026-04-21T18:14:48.613051Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 8.2MB → 3.4MB (2.5x), 36 JPEGs deleted\n2026-04-21T18:14:55.232583Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 5.5MB → 2.6MB (2.1x), 30 JPEGs deleted\n2026-04-21T18:19:19.967211Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2899189334056575250, trigger=click)\n2026-04-21T18:19:20.363463Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2899189334056575250, trigger=click)\n2026-04-21T18:19:59.298075Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=53 elapsed=4.000910792s\n2026-04-21T18:19:59.298190Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 53 eligible frames\n2026-04-21T18:20:02.044649Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 5.1MB → 3.5MB (1.5x), 26 JPEGs deleted\n2026-04-21T18:20:04.900441Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.7MB → 2.4MB (1.9x), 25 JPEGs deleted\n2026-04-21T18:20:23.742659Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:27.660528Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:34.896769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:35.220946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:40.886719Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:44.353070Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:47.046701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:48.003863Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:22:59.673927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2006451494811625283, trigger=click)\n2026-04-21T18:23:02.374154Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2006451494811625283, trigger=visual_change)\n2026-04-21T18:24:55.480969Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:24:55.713808Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:25:06.770660Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=745086096190842156, trigger=click)\n2026-04-21T18:25:10.431473Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=69 elapsed=5.123936292s\n2026-04-21T18:25:10.432665Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 69 eligible frames\n2026-04-21T18:25:12.020960Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.7MB → 0.4MB (10.8x), 24 JPEGs deleted\n2026-04-21T18:25:16.809118Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 43 frames, 7.5MB → 3.7MB (2.0x), 43 JPEGs deleted\n2026-04-21T18:27:20.032159Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-868697608726996264, trigger=click)\n2026-04-21T18:27:27.209581Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5262134208844209929, trigger=click)\n2026-04-21T18:30:23.556529Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=60 elapsed=6.732438875s\n2026-04-21T18:30:23.556849Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 60 eligible frames\n2026-04-21T18:30:25.836587Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 5.3MB → 0.4MB (12.5x), 27 JPEGs deleted\n2026-04-21T18:30:29.251794Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 5.4MB → 2.7MB (2.0x), 31 JPEGs deleted\n2026-04-21T18:34:42.383568Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1898158487632236470, trigger=click)\n2026-04-21T18:35:29.435858Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 84 eligible frames\n2026-04-21T18:35:31.507303Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 35 frames, 6.8MB → 0.3MB (21.3x), 35 JPEGs deleted\n2026-04-21T18:35:34.821718Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 47 frames, 8.8MB → 3.6MB (2.4x), 47 JPEGs deleted\n2026-04-21T18:37:57.032414Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3231955623713121874, trigger=click)\n2026-04-21T18:40:36.969380Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=205 elapsed=2.13815675s\n2026-04-21T18:40:36.969491Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 205 eligible frames\n2026-04-21T18:40:42.234686Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 90 frames, 17.5MB → 0.4MB (49.4x), 90 JPEGs deleted\n2026-04-21T18:40:48.296945Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 99 frames, 14.9MB → 5.7MB (2.6x), 99 JPEGs deleted\n2026-04-21T18:40:49.626073Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 1.8MB → 0.7MB (2.8x), 14 JPEGs deleted\n2026-04-21T18:41:16.858046Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5262134208844209929, trigger=click)\n2026-04-21T18:41:18.719527Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5262134208844209929, trigger=click)\n2026-04-21T18:41:20.650032Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6762752836329409782, trigger=click)\n2026-04-21T18:42:40.957654Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7949512313665335161, trigger=visual_change)\n2026-04-21T18:42:42.714242Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7949512313665335161, trigger=click)\n2026-04-21T18:44:54.833923Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7610506607449357182, trigger=click)\n2026-04-21T18:44:55.013934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7610506607449357182, trigger=click)\n2026-04-21T18:45:54.320505Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=145 elapsed=4.6846185s\n2026-04-21T18:45:54.321215Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 145 eligible frames\n2026-04-21T18:45:58.288822Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 64 frames, 12.5MB → 0.5MB (23.2x), 64 JPEGs deleted\n2026-04-21T18:46:02.956701Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 78 frames, 11.5MB → 3.3MB (3.5x), 78 JPEGs deleted\n2026-04-21T18:48:10.510139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4242937607805845066, trigger=click)\n2026-04-21T18:48:37.207446Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5152173808593872338, trigger=visual_change)\n2026-04-21T18:49:27.537635Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5244088376274895156, trigger=click)\n2026-04-21T18:49:33.724367Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5262134208844209929, trigger=click)\n2026-04-21T18:49:44.747739Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8298107678328947062, trigger=click)\n2026-04-21T18:50:45.073176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:50:45.427101Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:50:48.592273Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:50:49.492676Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:51:01.193858Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:51:05.888682Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=50 elapsed=2.917680375s\n2026-04-21T18:51:05.889014Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 50 eligible frames\n2026-04-21T18:51:06.016628Z WARN sqlx::query: summary=\"PRAGMA wal_checkpoint(TRUNCATE)\" db.statement=\"\" rows_affected=0 rows_returned=1 elapsed=2.157649083s\n2026-04-21T18:51:06.079565Z WARN sqlx::query: summary=\"BEGIN IMMEDIATE\" db.statement=\"\" rows_affected=1 rows_returned=0 elapsed=1.385088167s\n2026-04-21T18:51:07.829374Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 3.9MB → 0.4MB (11.0x), 20 JPEGs deleted\n2026-04-21T18:51:09.736739Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 5.0MB → 1.8MB (2.7x), 28 JPEGs deleted\n2026-04-21T18:51:22.360027Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2872311122120998867, trigger=click)\n2026-04-21T18:51:22.556670Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2872311122120998867, trigger=click)\n2026-04-21T18:51:38.819030Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7947558874471225541, trigger=click)\n2026-04-21T18:51:57.414061Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:51:59.012068Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:51:59.285931Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:01.767745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:02.028355Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:05.460776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=visual_change)\n2026-04-21T18:52:07.087479Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:07.314492Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:10.214922Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:10.537340Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:13.867159Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:14.152331Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:20.367281Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:26.127826Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1650348556715134220, trigger=click)\n2026-04-21T18:52:37.517700Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=visual_change)\n2026-04-21T18:52:42.329057Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:52:42.556779Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:52:44.386173Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:52:44.700511Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:52:45.210674Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:53:17.193415Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6757993062848436258, trigger=visual_change)\n2026-04-21T18:53:30.834059Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-228480120308125164, trigger=click)\n2026-04-21T18:53:38.030882Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7225077546439863627, trigger=click)\n2026-04-21T18:53:56.421537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6437320026671683644, trigger=click)\n2026-04-21T18:54:11.726528Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1667437155962702753, trigger=visual_change)\n2026-04-21T18:54:12.117525Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1667437155962702753, trigger=click)\n2026-04-21T18:54:18.659686Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:54:19.077258Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:54:29.973760Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:56:07.789768Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6757993062848436258, trigger=click)\n2026-04-21T18:56:08.791400Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6757993062848436258, trigger=click)\n2026-04-21T18:56:14.153615Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=80 elapsed=4.402661042s\n2026-04-21T18:56:14.153722Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 80 eligible frames\n2026-04-21T18:56:16.685912Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 6.2MB → 0.7MB (8.9x), 32 JPEGs deleted\n2026-04-21T18:56:21.263739Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 46 frames, 8.2MB → 2.8MB (2.9x), 46 JPEGs deleted\n2026-04-21T18:56:25.279306Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7906564822731502105, trigger=click)\n2026-04-21T18:56:33.734840Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8817586097865472869, trigger=click)\n2026-04-21T18:56:33.980908Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8817586097865472869, trigger=click)\n2026-04-21T18:56:35.972959Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8817586097865472869, trigger=click)\n2026-04-21T18:56:40.545963Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8587160525579598601, trigger=click)\n2026-04-21T18:56:41.913814Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8587160525579598601, trigger=visual_change)\n2026-04-21T18:56:45.516942Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1910160977377320534, trigger=click)\n2026-04-21T18:56:48.740431Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1910160977377320534, trigger=click)\n2026-04-21T18:56:50.439568Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1910160977377320534, trigger=click)\n2026-04-21T18:56:50.692218Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1910160977377320534, trigger=click)\n2026-04-21T18:57:12.321118Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:12.578681Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:24.290583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:24.543696Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:34.571768Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:36.227688Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:36.475151Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:42.338601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:42.559967Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:52.824809Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:53.145543Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:59.463043Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:59.717475Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:58:00.742137Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:58:01.061497Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:59:33.960291Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9203182216527106315, trigger=visual_change)\n2026-04-21T18:59:55.990167Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T18:59:59.103830Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=visual_change)\n2026-04-21T19:00:16.116927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:00:45.352689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:00:49.596644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:00:50.432181Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:07.992732Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:08.484066Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:10.538762Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:18.922398Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:28.361625Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=84 elapsed=6.9360265s\n2026-04-21T19:01:28.362070Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 84 eligible frames\n2026-04-21T19:01:32.723075Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 33 frames, 6.4MB → 0.3MB (19.7x), 33 JPEGs deleted\n2026-04-21T19:01:42.130490Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 7.8MB → 3.3MB (2.4x), 49 JPEGs deleted\n2026-04-21T19:02:09.991879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:12.577587Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:12.835924Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:15.635601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:18.720475Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:21.708351Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:22.061150Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:28.684303Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3995027160269120472, trigger=click)\n2026-04-21T19:02:41.434491Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:41.724904Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:43.112974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:43.410843Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:47.501924Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:47.761592Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:54.205542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:54.441326Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:56.601490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:56.921256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:03:15.988643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:03:16.236342Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:03:28.508616Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:00.462064Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:01.516168Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:01.856315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:03.246448Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:03.735029Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:09.818135Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:05:03.118616Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:03.393788Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:21.352722Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=visual_change)\n2026-04-21T19:05:43.751309Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:44.029500Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:45.626672Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:45.899754Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:48.206587Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:48.449043Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:06:22.834938Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7947558874471225541, trigger=click)\n2026-04-21T19:06:52.937779Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=114 elapsed=10.747243125s\n2026-04-21T19:06:52.938152Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 114 eligible frames\n2026-04-21T19:06:57.942457Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 45 frames, 8.8MB → 0.3MB (27.2x), 45 JPEGs deleted\n2026-04-21T19:07:05.853054Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 67 frames, 10.5MB → 5.2MB (2.0x), 67 JPEGs deleted\n2026-04-21T19:07:45.088797Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:07:48.052391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6936634780821666458, trigger=click)\n2026-04-21T19:08:59.593467Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5629560013928052473, trigger=click)\n2026-04-21T19:09:29.443711Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:42.998313Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8043719072324535154, trigger=visual_change)\n2026-04-21T19:09:50.759516Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:51.052544Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:51.892698Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:09:52.651776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:55.476431Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:55.898195Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:09:58.077337Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:10:01.103980Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:10:03.105423Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:10:03.448049Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:10:08.548130Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6051188157141408655, trigger=click)\n2026-04-21T19:12:12.330759Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=70 elapsed=6.458002417s\n2026-04-21T19:12:12.332545Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 70 eligible frames\n2026-04-21T19:12:14.243079Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 5.5MB → 0.3MB (17.2x), 28 JPEGs deleted\n2026-04-21T19:12:17.558334Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 40 frames, 7.4MB → 3.6MB (2.1x), 40 JPEGs deleted\n2026-04-21T19:16:51.045938Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1370319459641728815, trigger=click)\n2026-04-21T19:16:51.249993Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1370319459641728815, trigger=click)\n2026-04-21T19:17:21.603564Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=40 elapsed=4.036037791s\n2026-04-21T19:17:21.604357Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames\n2026-04-21T19:17:22.750174Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.5MB → 0.3MB (11.2x), 18 JPEGs deleted\n2026-04-21T19:17:24.332098Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.2MB → 1.3MB (3.2x), 20 JPEGs deleted\n2026-04-21T19:22:25.748871Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=49 elapsed=1.406664416s\n2026-04-21T19:22:25.749095Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 49 eligible frames\n2026-04-21T19:22:27.704722Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 3.7MB → 0.8MB (4.5x), 22 JPEGs deleted\n2026-04-21T19:22:29.535330Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.2MB → 1.7MB (3.0x), 25 JPEGs deleted\n2026-04-21T19:23:29.233846Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9146581369053060363, trigger=click)\n2026-04-21T19:23:31.995034Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9146581369053060363, trigger=visual_change)\n2026-04-21T19:23:37.213396Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9146581369053060363, trigger=visual_change)\n2026-04-21T19:23:40.288223Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9146581369053060363, trigger=visual_change)\n2026-04-21T19:23:44.197738Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9146581369053060363, trigger=visual_change)\n2026-04-21T19:23:45.228572Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9146581369053060363, trigger=click)\n2026-04-21T19:23:56.251033Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:24:06.580019Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=335 elapsed=1.644312167s\n2026-04-21T19:24:28.860436Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:24:32.226944Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:24:32.476075Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:03.902521Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:19.205245Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:25.098627Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:36.013866Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:37.355954Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:41.831265Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:46.247585Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:46.619106Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:48.284769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:48.534452Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:49.421920Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:49.752264Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:54.600720Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:55.072357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:26:19.446041Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:26:22.718352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:27:38.437704Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=28 elapsed=8.833634334s\n2026-04-21T19:27:38.438043Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames\n2026-04-21T19:27:39.763901Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 1.9MB → 0.3MB (7.6x), 12 JPEGs deleted\n2026-04-21T19:27:41.220664Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.1MB → 0.9MB (2.2x), 14 JPEGs deleted\n2026-04-21T19:28:22.708791Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:28:23.849452Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:28:24.119301Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:14.209016Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:16.415693Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:21.726815Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:23.890645Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:24.239058Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:29.790006Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:33.098495Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:38.065869Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:44.089028Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:47.272131Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:53.977951Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:57.274496Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:30:11.986797Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:30:13.530455Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:30:28.332451Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:30:37.204947Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:26.255340Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:26.592983Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:30.448912Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:35.747969Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:37.783849Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:38.061197Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:43.216365Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:43.885407Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:46.680745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:52.971450Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:58.468469Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:58.624833Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:03.362210Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:12.706102Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:15.172982Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:23.020508Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:23.199312Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:25.387097Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:25.764201Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:30.336940Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:30.810971Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:39.812820Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:42.409145Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:44.386326Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:48.880648Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=47 elapsed=7.499136792s\n2026-04-21T19:32:48.880949Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 47 eligible frames\n2026-04-21T19:32:51.249469Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.2MB → 0.3MB (8.9x), 14 JPEGs deleted\n2026-04-21T19:32:55.969183Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 3.8MB → 1.9MB (2.0x), 31 JPEGs deleted\n2026-04-21T19:32:59.734686Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:33:00.098925Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:33:05.951997Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:34:07.213420Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:34:09.264586Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:34:16.527425Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:34:19.513647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:34:32.889780Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1128757073350665914, trigger=click)\n2026-04-21T19:34:56.078651Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4993766851008728916, trigger=click)\n2026-04-21T19:34:56.296542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4993766851008728916, trigger=click)\n2026-04-21T19:35:02.344819Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:35:05.237721Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:35:07.518599Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:35:09.938481Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:35:10.408295Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:35:26.864482Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:35:33.001733Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:35:36.479802Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:36:20.043835Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4526067242477956280, trigger=visual_change)\n2026-04-21T19:36:47.029303Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4526067242477956280, trigger=visual_change)\n2026-04-21T19:36:57.077150Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:37:33.348160Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:37:33.742029Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:37:36.579915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:37:39.754974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:38:04.951324Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=101 elapsed=8.9666755s\n2026-04-21T19:38:04.953527Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 101 eligible frames\n2026-04-21T19:38:13.751166Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 38 frames, 8.0MB → 3.5MB (2.3x), 38 JPEGs deleted\n2026-04-21T19:38:29.817220Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 61 frames, 9.7MB → 5.2MB (1.9x), 61 JPEGs deleted\n2026-04-21T19:40:34.255930Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=342 elapsed=1.0699005s\n2026-04-21T19:42:32.961192Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:42:33.305572Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:42:40.179851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=visual_change)\n2026-04-21T19:42:41.405781Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:42:41.720845Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:43:02.251464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=visual_change)\n2026-04-21T19:43:11.622532Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:43:36.525920Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=85 elapsed=6.634896167s\n2026-04-21T19:43:36.526454Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 85 eligible frames\n2026-04-21T19:43:39.459999Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 8.0MB → 3.4MB (2.3x), 36 JPEGs deleted\n2026-04-21T19:43:43.505640Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 47 frames, 7.9MB → 3.9MB (2.0x), 47 JPEGs deleted\n2026-04-21T19:44:05.999282Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=visual_change)\n2026-04-21T19:45:08.065595Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2712812971723964739, trigger=click)\n2026-04-21T19:45:46.266141Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:48:51.569666Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=64 elapsed=8.039671791s\n2026-04-21T19:48:51.570457Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 64 eligible frames\n2026-04-21T19:48:58.738540Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 7.2MB → 2.4MB (2.9x), 32 JPEGs deleted\n2026-04-21T19:49:05.383193Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 5.9MB → 2.5MB (2.4x), 30 JPEGs deleted\n2026-04-21T19:51:14.064760Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2572721248839450970, trigger=visual_change)\n2026-04-21T19:54:08.518415Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=346 elapsed=1.026887875s\n2026-04-21T19:54:12.872902Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=61 elapsed=7.44778675s\n2026-04-21T19:54:12.873164Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 61 eligible frames\n2026-04-21T19:54:16.348511Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.6MB → 1.4MB (4.1x), 25 JPEGs deleted\n2026-04-21T19:54:24.102233Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 34 frames, 6.2MB → 3.6MB (1.7x), 34 JPEGs deleted\n2026-04-21T19:59:32.063421Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=346 elapsed=1.165878958s\n2026-04-21T19:59:32.818884Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=31 elapsed=8.661332917s\n2026-04-21T19:59:32.819629Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 31 eligible frames\n2026-04-21T19:59:35.810838Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.9MB → 0.7MB (3.9x), 16 JPEGs deleted\n2026-04-21T19:59:38.924596Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.9MB → 1.5MB (2.0x), 13 JPEGs deleted\n2026-04-21T20:01:55.709776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1382976804061127003, trigger=click)\n2026-04-21T20:04:27.572999Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7658911549706194190, trigger=click)\n2026-04-21T20:04:46.630063Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=57 elapsed=7.045125334s\n2026-04-21T20:04:46.631081Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 57 eligible frames\n2026-04-21T20:04:49.684796Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 2.5MB → 0.8MB (3.2x), 23 JPEGs deleted\n2026-04-21T20:04:56.073590Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 5.7MB → 3.1MB (1.8x), 32 JPEGs deleted\n2026-04-21T20:05:04.129844Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-446124678591544690, trigger=click)\n2026-04-21T20:05:04.425723Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-446124678591544690, trigger=click)\n2026-04-21T20:09:59.238939Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=30 elapsed=2.058497125s\n2026-04-21T20:09:59.239075Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 30 eligible frames\n2026-04-21T20:10:00.874153Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.3MB → 0.2MB (5.8x), 13 JPEGs deleted\n2026-04-21T20:10:03.326064Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 1.8MB → 0.6MB (2.8x), 15 JPEGs deleted\n2026-04-21T20:15:07.129653Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=58 elapsed=3.763973459s\n2026-04-21T20:15:07.130598Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 58 eligible frames\n2026-04-21T20:15:09.088400Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 3.7MB → 0.6MB (5.9x), 26 JPEGs deleted\n2026-04-21T20:15:10.858868Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 3.9MB → 1.0MB (3.9x), 30 JPEGs deleted\n2026-04-21T20:18:21.110736Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=354 elapsed=1.169721666s\nzsh: terminated npx screenpipe@latest record --disable-audio --ignored-windows \"Boosteroid\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-start\ndetected hardware tier: Mid\nwarning: parakeet is not supported on this platform, using whisper-tiny instead\n2026-04-22T09:15:19.880360Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store\nchecking permissions...\n screen recording: ok\n accessibility: ok\n2026-04-22T09:15:19.951248Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6\n2026-04-22T09:15:20.675958Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor\n2026-04-22T09:15:20.677447Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)\n2026-04-22T09:15:20.677800Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)\n2026-04-22T09:15:20.709542Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true\n2026-04-22T09:15:20.709596Z INFO screenpipe: meeting detector enabled — independent of transcription mode\n2026-04-22T09:15:20.709849Z INFO screenpipe: API server listening on 127.0.0.1:3030 (localhost only)\n2026-04-22T09:15:20.709774Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)\n2026-04-22T09:15:20.709806Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)\n2026-04-22T09:15:20.709863Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key\n2026-04-22T09:15:20.709908Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager\n2026-04-22T09:15:20.721517Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-22T09:15:20.725781Z INFO screenpipe_core::pipes: loaded pipe: day-recap\n2026-04-22T09:15:20.725991Z INFO screenpipe_core::pipes: loaded pipe: standup-update\n2026-04-22T09:15:20.726387Z INFO screenpipe_core::pipes: loaded pipe: ai-habits\n2026-04-22T09:15:20.726548Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown\n2026-04-22T09:15:20.726690Z INFO screenpipe_core::pipes: loaded pipe: video-export\n2026-04-22T09:15:20.727224Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary\n2026-04-22T09:15:20.727242Z INFO screenpipe_core::pipes: loaded 6 pipes from \"/Users/lukas/.screenpipe/pipes\"\n\n\n\n _ \n __________________ ___ ____ ____ (_____ ___ \n / ___/ ___/ ___/ _ \\/ _ \\/ __ \\ / __ \\/ / __ \\/ _ \\\n (__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/\n/____/\\___/_/ \\___/\\___/_/ /_/ / .___/_/ .___/\\___/ \n /_/ /_/ \n\n\n\npower AI by everything you've seen, said or heard\nopen source | runs locally | developer friendly\n\n\n┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ true │\n│ vision disabled │ false │\n│ pause on DRM content │ false │\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n│ ignored windows │ [\"Boosteroid\"] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n2026-04-22T09:15:20.728614Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n│ api auth │ enabled │\n2026-04-22T09:15:20.742172Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n│ encrypt secrets │ disabled │\n│ retention days │ 14 │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ id: 1 │\n│ │ id: 2 │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ disabled │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-22T09:15:20.742788Z INFO screenpipe: starting UI event capture\n2026-04-22T09:15:20.755824Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-22T09:15:20.769629Z INFO screenpipe_engine::ui_recorder: UI recording session started: e7729066-2ab4-4bf0-9d48-0c9790a4ee79\n2026-04-22T09:15:20.769680Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-22T09:15:20.769789Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-21 06:15:20.769785 UTC to 2026-04-22 06:15:20.769785 UTC)\n2026-04-22T09:15:20.770644Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-22T09:15:20.778181Z INFO screenpipe_engine::server: Server listening on 127.0.0.1:3030\n2026-04-22T09:15:20.789960Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-22T09:15:21.591614Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-22T09:15:21.591646Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-22T09:15:21.591751Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-22T09:15:21.919088Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-22T09:15:21.919141Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-22T09:15:21.919158Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)\n2026-04-22T09:15:21.919163Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-22T09:15:21.919167Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)\n2026-04-22T09:15:23.315305Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-22T09:15:23.445619Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=68471, dur=74ms\n2026-04-22T09:15:23.697846Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-22T09:15:23.856559Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=68472, dur=115ms\n2026-04-22T09:15:23.858032Z INFO sck_rs::stream_manager: invalidated persistent stream for display 2\n2026-04-22T09:15:25.542035Z WARN sqlx::query: summary=\"SELECT f.id, f.timestamp, f.offset_index, …\" db.statement=\"\\n\\nSELECT\\n f.id,\\n f.timestamp,\\n f.offset_index,\\n COALESCE(\\n SUBSTR(f.full_text, 1, 200),\\n SUBSTR(f.accessibility_text, 1, 200),\\n (\\n SELECT\\n SUBSTR(ot.text, 1, 200)\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as text,\\n COALESCE(\\n f.app_name,\\n (\\n SELECT\\n ot.app_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as app_name,\\n COALESCE(\\n f.window_name,\\n (\\n SELECT\\n ot.window_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as window_name,\\n COALESCE(vc.device_name, f.device_name) as screen_device,\\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\\n COALESCE(vc.fps, 0.033) as chunk_fps,\\n f.browser_url,\\n f.machine_id\\nFROM\\n frames f\\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\\nWHERE\\n f.timestamp >= ?1\\n AND f.timestamp <= ?2\\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\\nORDER BY\\n f.timestamp DESC,\\n f.offset_index DESC\\nLIMIT\\n 10000\\n\" rows_affected=0 rows_returned=7744 elapsed=4.771776083s\n2026-04-22T09:15:25.568771Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 7744 frame entries, coverage from 2026-04-21 06:15:20.769785 UTC\n2026-04-22T09:15:32.415224Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.058843084,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.32912233,"top":1.0,"width":0.058843084,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.33111703,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.3879654,"top":1.0,"width":0.058843084,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3899601,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"✳ Build full day activity summary from Screenpipe (claude)","depth":2,"bounds":{"left":0.44680852,"top":1.0,"width":0.058843084,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.4488032,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.5056516,"top":1.0,"width":0.058843084,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.50764626,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.56449467,"top":1.0,"width":0.058843084,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.56648934,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.62333775,"top":1.0,"width":0.058843084,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6253325,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"ec2-user@ip-10-30-159-186:~ (-zsh)","depth":2,"bounds":{"left":0.6821808,"top":1.0,"width":0.058843084,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.68417555,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7273936,"top":1.0,"width":0.01861702,"height":-0.023144484},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"screenpipe\"","depth":1,"bounds":{"left":0.4956782,"top":1.0,"width":0.027925532,"height":-0.02394259},"role_description":"text"}]...
|
5525956522504332492
|
2646348668002215289
|
app_switch
|
accessibility
|
NULL
|
2026-04-21T16:41:35.133385Z INFO screenpipe_engin 2026-04-21T16:41:35.133385Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)
2026-04-21T16:43:15.919099Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8254246256813675665, trigger=click)
2026-04-21T16:43:44.014066Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8254246256813675665, trigger=visual_change)
2026-04-21T16:44:45.410923Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=35 elapsed=2.419201375s
2026-04-21T16:44:45.411045Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 35 eligible frames
2026-04-21T16:44:46.383629Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.8MB → 0.3MB (9.5x), 15 JPEGs deleted
2026-04-21T16:44:47.792527Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.6MB → 0.8MB (4.3x), 18 JPEGs deleted
2026-04-21T16:49:53.308820Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=47 elapsed=5.487768917s
2026-04-21T16:49:53.309371Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 47 eligible frames
2026-04-21T16:49:54.673701Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.9MB → 0.3MB (13.1x), 21 JPEGs deleted
2026-04-21T16:49:56.314871Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.7MB → 1.2MB (4.0x), 24 JPEGs deleted
2026-04-21T16:54:59.385017Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=62 elapsed=3.057419917s
2026-04-21T16:54:59.385210Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 62 eligible frames
2026-04-21T16:55:00.998239Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.8MB → 0.5MB (10.3x), 26 JPEGs deleted
2026-04-21T16:55:03.739041Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 34 frames, 5.8MB → 2.6MB (2.2x), 34 JPEGs deleted
2026-04-21T16:55:17.768634Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)
2026-04-21T17:23:59.183039Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)
2026-04-21T17:23:59.216966Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2
2026-04-21T17:24:00.832399Z INFO screenpipe_engine::vision_manager::monitor_watcher: Monitor 2 disconnected, stopping recording
2026-04-21T17:24:00.832464Z INFO screenpipe_engine::vision_manager::manager: Stopping vision recording for monitor 2
2026-04-21T17:24:00.832336Z INFO sck_rs::stream_manager: stopped 2 persistent stream(s)
2026-04-21T17:24:04.654209Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)
2026-04-21T17:24:30.699969Z ERROR screenpipe_engine::resource_monitor: Failed to send resource usage to PostHog: error sending request for url (https://us.i.posthog.com/capture/)
2026-04-21T17:25:01.085383Z INFO screenpipe_engine::vision_manager::monitor_watcher: Monitor 2 reconnected, resuming recording
2026-04-21T17:25:01.273818Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-04-21T17:25:01.273870Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-04-21T17:25:01.273896Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-04-21T17:25:02.310236Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)
2026-04-21T17:25:02.808234Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=66228, dur=365ms
2026-04-21T17:25:04.889075Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:07.887565Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:10.918390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:14.039034Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:17.160521Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:26.096276Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:29.061270Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:32.067380Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:35.263701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:41.164753Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:25:44.239172Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:25:47.149320Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:25:50.242915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:25:53.308794Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:25:56.218138Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:25:59.144297Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:26:05.965946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:08.584110Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:11.350189Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:14.339609Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:17.398251Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:20.782119Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:23.385506Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:26.427626Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:29.573661Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:32.450744Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:38.464132Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:41.456915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:44.496278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:47.541313Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:50.596256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:53.597171Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:56.764522Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:59.751576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:02.719391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:08.829090Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:11.800601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:14.811724Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:17.855339Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:26.878741Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:29.933020Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:32.947216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:36.041239Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:38.993657Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:42.039373Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:45.172399Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:48.081804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:51.142939Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:54.169253Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:00.341347Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:03.322832Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:06.631198Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:09.537232Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:12.406113Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:15.381764Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:15.806839Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=44 elapsed=5.777403s
2026-04-21T17:28:15.806951Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 44 eligible frames
2026-04-21T17:28:17.108106Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.9MB → 0.3MB (13.1x), 21 JPEGs deleted
2026-04-21T17:28:18.370832Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.6MB → 0.5MB (7.8x), 21 JPEGs deleted
2026-04-21T17:28:18.461408Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:22.068097Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:24.604711Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:27.608060Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:33.774822Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:36.697278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:39.729251Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:42.728755Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:45.748204Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:48.768910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:51.814752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:54.970698Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:57.869874Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:00.913837Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:07.461529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:10.043928Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:13.182411Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:16.080133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:19.108570Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:22.322033Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:25.172666Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:28.398354Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:31.249083Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:34.289745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:40.303310Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:43.308015Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:46.360649Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:49.356069Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:52.450205Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:55.422975Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:58.446390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:01.491253Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:04.500380Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:16.830925Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:19.856895Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:23.100486Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:25.938910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:28.953603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:32.061536Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:35.030958Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:38.162895Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:41.148165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:44.019513Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:50.259576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:53.148070Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:56.309979Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:59.185610Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:02.278235Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:05.287341Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:08.409426Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:11.489977Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:14.319338Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:17.348153Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:23.351025Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:26.427529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:29.337254Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:32.386165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:35.653387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:38.430216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:41.428909Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:44.432459Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:47.448603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:50.432780Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:56.535727Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:59.590792Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:32:02.621444Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:32:05.627964Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:32:08.710139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:32:11.765247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:32:14.787638Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:32:17.876480Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)
2026-04-21T17:32:20.977937Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)
2026-04-21T17:32:29.888970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8116870867026519513, trigger=click)
2026-04-21T17:32:33.123648Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)
2026-04-21T17:33:03.355082Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)
2026-04-21T17:33:05.517897Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=click)
2026-04-21T17:33:06.399783Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)
2026-04-21T17:33:09.478894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)
2026-04-21T17:33:19.151217Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
2026-04-21T17:33:21.431006Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6379516332769645744, trigger=visual_change)
2026-04-21T17:33:33.494463Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7500553589467718193, trigger=visual_change)
2026-04-21T17:34:00.725974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2275300387038012183, trigger=click)
2026-04-21T17:34:07.214867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2063499064757931498, trigger=visual_change)
2026-04-21T17:34:31.480257Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=visual_change)
2026-04-21T17:34:34.482370Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=visual_change)
2026-04-21T17:35:53.801549Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7652433743467416760, trigger=click)
2026-04-21T17:35:53.954311Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7652433743467416760, trigger=click)
2026-04-21T17:35:54.740695Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7652433743467416760, trigger=click)
2026-04-21T17:36:06.295752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5335392039126841536, trigger=visual_change)
2026-04-21T17:36:28.893337Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5927780310531960690, trigger=visual_change)
2026-04-21T17:38:15.647110Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)
2026-04-21T17:38:17.801901Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)
2026-04-21T17:38:17.962831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)
2026-04-21T17:38:22.819710Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7137414965816212018, trigger=click)
2026-04-21T17:38:22.917176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=click)
2026-04-21T17:38:23.042830Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=28 elapsed=3.882772625s
2026-04-21T17:38:23.042920Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames
2026-04-21T17:38:24.717251Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 2.8MB → 0.4MB (6.3x), 18 JPEGs deleted
2026-04-21T17:38:26.727027Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.1MB → 0.2MB (5.7x), 10 JPEGs deleted
2026-04-21T17:38:35.971287Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=click)
2026-04-21T17:38:36.106246Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7137414965816212018, trigger=click)
2026-04-21T17:38:37.368009Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=visual_change)
2026-04-21T17:38:43.431620Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8741356672789266752, trigger=visual_change)
2026-04-21T17:38:49.319886Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5149767057649118192, trigger=click)
2026-04-21T17:38:49.477325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5149767057649118192, trigger=click)
2026-04-21T17:38:51.019231Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5149767057649118192, trigger=visual_change)
2026-04-21T17:39:04.249890Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7355944135161080033, trigger=click)
2026-04-21T17:39:23.256256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4983811095206295613, trigger=click)
2026-04-21T17:39:23.385820Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4983811095206295613, trigger=click)
2026-04-21T17:39:24.367407Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4983811095206295613, trigger=visual_change)
2026-04-21T17:39:24.895784Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4983811095206295613, trigger=click)
2026-04-21T17:39:46.438272Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=372069959735326508, trigger=visual_change)
2026-04-21T17:39:49.101085Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4964238948655865655, trigger=visual_change)
2026-04-21T17:39:58.083750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)
2026-04-21T17:40:01.375315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)
2026-04-21T17:40:04.195859Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)
2026-04-21T17:40:12.117004Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2989278587618621353, trigger=click)
2026-04-21T17:40:12.244666Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2989278587618621353, trigger=click)
2026-04-21T17:40:13.925024Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2989278587618621353, trigger=visual_change)
2026-04-21T17:40:23.294147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=visual_change)
2026-04-21T17:40:55.989498Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3182674559678505325, trigger=click)
2026-04-21T17:40:58.413325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3182674559678505325, trigger=visual_change)
2026-04-21T17:41:23.101094Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5616874458658671741, trigger=visual_change)
2026-04-21T17:41:29.504783Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2744778324521007391, trigger=visual_change)
2026-04-21T17:42:13.830352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6664909184667365933, trigger=click)
2026-04-21T17:42:13.905614Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=click)
2026-04-21T17:42:14.689622Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6664909184667365933, trigger=click)
2026-04-21T17:43:13.738786Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5563100798252317961, trigger=visual_change)
2026-04-21T17:43:31.769731Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=40 elapsed=4.870364084s
2026-04-21T17:43:31.770321Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames
2026-04-21T17:43:32.514133Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.1MB → 0.1MB (8.9x), 11 JPEGs deleted
2026-04-21T17:43:34.391762Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 3.0MB → 0.5MB (5.9x), 27 JPEGs deleted
2026-04-21T17:44:19.021163Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-263228306577803226, trigger=click)
2026-04-21T17:44:32.036390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8360298266192684601, trigger=click)
2026-04-21T17:44:33.859332Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8360298266192684601, trigger=visual_change)
2026-04-21T17:44:42.936361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=visual_change)
2026-04-21T17:44:46.420662Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=visual_change)
2026-04-21T17:46:17.725934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7286082578618580481, trigger=click)
2026-04-21T17:46:18.733766Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=click)
2026-04-21T17:46:19.506484Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7286082578618580481, trigger=click)
2026-04-21T17:46:20.729229Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=click)
2026-04-21T17:46:27.956655Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8942982652250876029, trigger=click)
2026-04-21T17:46:29.490950Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8942982652250876029, trigger=click)
2026-04-21T17:46:45.634752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5761541209609855314, trigger=click)
2026-04-21T17:46:45.971315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5761541209609855314, trigger=click)
2026-04-21T17:46:50.988867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5607564885929685542, trigger=click)
2026-04-21T17:46:51.601750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5607564885929685542, trigger=click)
2026-04-21T17:46:56.353647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4497988824039212795, trigger=click)
2026-04-21T17:47:24.716661Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4864885406063659925, trigger=visual_change)
2026-04-21T17:47:29.793942Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:30.097043Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)
2026-04-21T17:47:30.960214Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:32.707746Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)
2026-04-21T17:47:36.181007Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:36.362574Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:37.093511Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:41.720206Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)
2026-04-21T17:47:44.706704Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)
2026-04-21T17:47:48.602580Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:48.776278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:52.582982Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5658848090639979218, trigger=click)
2026-04-21T17:47:57.282103Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8902771592702756196, trigger=click)
2026-04-21T17:48:06.880071Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8902771592702756196, trigger=click)
2026-04-21T17:48:07.656377Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8902771592702756196, trigger=click)
2026-04-21T17:48:23.785117Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:48:24.032602Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:48:26.587906Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:48:32.180582Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)
2026-04-21T17:48:34.022831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:48:34.363583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:48:39.363585Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=83 elapsed=4.983598708s
2026-04-21T17:48:39.363733Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 83 eligible frames
2026-04-21T17:48:41.479158Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 3.3MB → 0.2MB (17.7x), 31 JPEGs deleted
2026-04-21T17:48:44.682560Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 50 frames, 6.5MB → 2.0MB (3.3x), 50 JPEGs deleted
2026-04-21T17:48:53.828851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)
2026-04-21T17:48:56.563636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)
2026-04-21T17:48:59.291654Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:48:59.467275Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:00.295226Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:00.453357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=visual_change)
2026-04-21T17:49:13.301518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)
2026-04-21T17:49:16.454207Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)
2026-04-21T17:49:16.837288Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:18.900202Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:19.229376Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:20.418502Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:20.706966Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:21.269855Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:22.896443Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:23.115745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:29.927553Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1234240076182081719, trigger=click)
2026-04-21T17:49:40.567042Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1506528968255096811, trigger=click)
2026-04-21T17:49:40.722412Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1506528968255096811, trigger=click)
2026-04-21T17:49:44.790415Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1506528968255096811, trigger=visual_change)
2026-04-21T17:49:44.983133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1506528968255096811, trigger=visual_change)
2026-04-21T17:51:50.315220Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)
2026-04-21T17:51:53.337571Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)
2026-04-21T17:51:59.473328Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)
2026-04-21T17:52:02.455277Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)
2026-04-21T17:52:05.862297Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)
2026-04-21T17:52:07.729450Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)
2026-04-21T17:52:16.901254Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)
2026-04-21T17:52:29.702852Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)
2026-04-21T17:52:36.533775Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)
2026-04-21T17:52:39.599515Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)
2026-04-21T17:52:45.700237Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)
2026-04-21T17:52:48.638819Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)
2026-04-21T17:52:54...
|
NULL
|
|
68474
|
1552
|
2
|
2026-04-22T06:15:28.039890+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-22/1776 /Users/lukas/.screenpipe/data/data/2026-04-22/1776838528039_m1.jpg...
|
iTerm2
|
screenpipe"
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
2026-04-21T16:41:34.967355Z INFO screenpipe_engin 2026-04-21T16:41:34.967355Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)
2026-04-21T16:41:35.133385Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)
2026-04-21T16:43:15.919099Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8254246256813675665, trigger=click)
2026-04-21T16:43:44.014066Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8254246256813675665, trigger=visual_change)
2026-04-21T16:44:45.410923Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=35 elapsed=2.419201375s
2026-04-21T16:44:45.411045Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 35 eligible frames
2026-04-21T16:44:46.383629Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.8MB → 0.3MB (9.5x), 15 JPEGs deleted
2026-04-21T16:44:47.792527Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.6MB → 0.8MB (4.3x), 18 JPEGs deleted
2026-04-21T16:49:53.308820Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=47 elapsed=5.487768917s
2026-04-21T16:49:53.309371Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 47 eligible frames
2026-04-21T16:49:54.673701Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.9MB → 0.3MB (13.1x), 21 JPEGs deleted
2026-04-21T16:49:56.314871Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.7MB → 1.2MB (4.0x), 24 JPEGs deleted
2026-04-21T16:54:59.385017Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=62 elapsed=3.057419917s
2026-04-21T16:54:59.385210Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 62 eligible frames
2026-04-21T16:55:00.998239Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.8MB → 0.5MB (10.3x), 26 JPEGs deleted
2026-04-21T16:55:03.739041Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 34 frames, 5.8MB → 2.6MB (2.2x), 34 JPEGs deleted
2026-04-21T16:55:17.768634Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)
2026-04-21T17:23:59.183039Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)
2026-04-21T17:23:59.216966Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2
2026-04-21T17:24:00.832399Z INFO screenpipe_engine::vision_manager::monitor_watcher: Monitor 2 disconnected, stopping recording
2026-04-21T17:24:00.832464Z INFO screenpipe_engine::vision_manager::manager: Stopping vision recording for monitor 2
2026-04-21T17:24:00.832336Z INFO sck_rs::stream_manager: stopped 2 persistent stream(s)
2026-04-21T17:24:04.654209Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)
2026-04-21T17:24:30.699969Z ERROR screenpipe_engine::resource_monitor: Failed to send resource usage to PostHog: error sending request for url (https://us.i.posthog.com/capture/)
2026-04-21T17:25:01.085383Z INFO screenpipe_engine::vision_manager::monitor_watcher: Monitor 2 reconnected, resuming recording
2026-04-21T17:25:01.273818Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-04-21T17:25:01.273870Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-04-21T17:25:01.273896Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-04-21T17:25:02.310236Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)
2026-04-21T17:25:02.808234Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=66228, dur=365ms
2026-04-21T17:25:04.889075Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:07.887565Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:10.918390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:14.039034Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:17.160521Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:26.096276Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:29.061270Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:32.067380Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:35.263701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:41.164753Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:25:44.239172Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:25:47.149320Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:25:50.242915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:25:53.308794Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:25:56.218138Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:25:59.144297Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:26:05.965946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:08.584110Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:11.350189Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:14.339609Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:17.398251Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:20.782119Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:23.385506Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:26.427626Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:29.573661Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:32.450744Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:38.464132Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:41.456915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:44.496278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:47.541313Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:50.596256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:53.597171Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:56.764522Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:59.751576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:02.719391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:08.829090Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:11.800601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:14.811724Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:17.855339Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:26.878741Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:29.933020Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:32.947216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:36.041239Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:38.993657Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:42.039373Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:45.172399Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:48.081804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:51.142939Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:54.169253Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:00.341347Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:03.322832Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:06.631198Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:09.537232Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:12.406113Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:15.381764Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:15.806839Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=44 elapsed=5.777403s
2026-04-21T17:28:15.806951Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 44 eligible frames
2026-04-21T17:28:17.108106Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.9MB → 0.3MB (13.1x), 21 JPEGs deleted
2026-04-21T17:28:18.370832Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.6MB → 0.5MB (7.8x), 21 JPEGs deleted
2026-04-21T17:28:18.461408Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:22.068097Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:24.604711Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:27.608060Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:33.774822Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:36.697278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:39.729251Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:42.728755Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:45.748204Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:48.768910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:51.814752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:54.970698Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:57.869874Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:00.913837Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:07.461529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:10.043928Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:13.182411Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:16.080133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:19.108570Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:22.322033Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:25.172666Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:28.398354Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:31.249083Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:34.289745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:40.303310Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:43.308015Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:46.360649Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:49.356069Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:52.450205Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:55.422975Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:58.446390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:01.491253Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:04.500380Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:16.830925Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:19.856895Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:23.100486Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:25.938910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:28.953603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:32.061536Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:35.030958Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:38.162895Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:41.148165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:44.019513Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:50.259576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:53.148070Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:56.309979Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:59.185610Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:02.278235Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:05.287341Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:08.409426Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:11.489977Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:14.319338Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:17.348153Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:23.351025Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:26.427529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:29.337254Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:32.386165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:35.653387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:38.430216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:41.428909Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:44.432459Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:47.448603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:50.432780Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:56.535727Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:59.590792Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:32:02.621444Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:32:05.627964Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:32:08.710139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:32:11.765247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:32:14.787638Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:32:17.876480Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)
2026-04-21T17:32:20.977937Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)
2026-04-21T17:32:29.888970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8116870867026519513, trigger=click)
2026-04-21T17:32:33.123648Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)
2026-04-21T17:33:03.355082Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)
2026-04-21T17:33:05.517897Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=click)
2026-04-21T17:33:06.399783Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)
2026-04-21T17:33:09.478894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)
2026-04-21T17:33:19.151217Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
2026-04-21T17:33:21.431006Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6379516332769645744, trigger=visual_change)
2026-04-21T17:33:33.494463Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7500553589467718193, trigger=visual_change)
2026-04-21T17:34:00.725974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2275300387038012183, trigger=click)
2026-04-21T17:34:07.214867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2063499064757931498, trigger=visual_change)
2026-04-21T17:34:31.480257Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=visual_change)
2026-04-21T17:34:34.482370Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=visual_change)
2026-04-21T17:35:53.801549Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7652433743467416760, trigger=click)
2026-04-21T17:35:53.954311Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7652433743467416760, trigger=click)
2026-04-21T17:35:54.740695Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7652433743467416760, trigger=click)
2026-04-21T17:36:06.295752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5335392039126841536, trigger=visual_change)
2026-04-21T17:36:28.893337Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5927780310531960690, trigger=visual_change)
2026-04-21T17:38:15.647110Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)
2026-04-21T17:38:17.801901Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)
2026-04-21T17:38:17.962831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)
2026-04-21T17:38:22.819710Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7137414965816212018, trigger=click)
2026-04-21T17:38:22.917176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=click)
2026-04-21T17:38:23.042830Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=28 elapsed=3.882772625s
2026-04-21T17:38:23.042920Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames
2026-04-21T17:38:24.717251Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 2.8MB → 0.4MB (6.3x), 18 JPEGs deleted
2026-04-21T17:38:26.727027Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.1MB → 0.2MB (5.7x), 10 JPEGs deleted
2026-04-21T17:38:35.971287Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=click)
2026-04-21T17:38:36.106246Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7137414965816212018, trigger=click)
2026-04-21T17:38:37.368009Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=visual_change)
2026-04-21T17:38:43.431620Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8741356672789266752, trigger=visual_change)
2026-04-21T17:38:49.319886Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5149767057649118192, trigger=click)
2026-04-21T17:38:49.477325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5149767057649118192, trigger=click)
2026-04-21T17:38:51.019231Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5149767057649118192, trigger=visual_change)
2026-04-21T17:39:04.249890Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7355944135161080033, trigger=click)
2026-04-21T17:39:23.256256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4983811095206295613, trigger=click)
2026-04-21T17:39:23.385820Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4983811095206295613, trigger=click)
2026-04-21T17:39:24.367407Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4983811095206295613, trigger=visual_change)
2026-04-21T17:39:24.895784Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4983811095206295613, trigger=click)
2026-04-21T17:39:46.438272Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=372069959735326508, trigger=visual_change)
2026-04-21T17:39:49.101085Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4964238948655865655, trigger=visual_change)
2026-04-21T17:39:58.083750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)
2026-04-21T17:40:01.375315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)
2026-04-21T17:40:04.195859Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)
2026-04-21T17:40:12.117004Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2989278587618621353, trigger=click)
2026-04-21T17:40:12.244666Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2989278587618621353, trigger=click)
2026-04-21T17:40:13.925024Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2989278587618621353, trigger=visual_change)
2026-04-21T17:40:23.294147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=visual_change)
2026-04-21T17:40:55.989498Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3182674559678505325, trigger=click)
2026-04-21T17:40:58.413325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3182674559678505325, trigger=visual_change)
2026-04-21T17:41:23.101094Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5616874458658671741, trigger=visual_change)
2026-04-21T17:41:29.504783Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2744778324521007391, trigger=visual_change)
2026-04-21T17:42:13.830352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6664909184667365933, trigger=click)
2026-04-21T17:42:13.905614Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=click)
2026-04-21T17:42:14.689622Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6664909184667365933, trigger=click)
2026-04-21T17:43:13.738786Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5563100798252317961, trigger=visual_change)
2026-04-21T17:43:31.769731Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=40 elapsed=4.870364084s
2026-04-21T17:43:31.770321Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames
2026-04-21T17:43:32.514133Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.1MB → 0.1MB (8.9x), 11 JPEGs deleted
2026-04-21T17:43:34.391762Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 3.0MB → 0.5MB (5.9x), 27 JPEGs deleted
2026-04-21T17:44:19.021163Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-263228306577803226, trigger=click)
2026-04-21T17:44:32.036390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8360298266192684601, trigger=click)
2026-04-21T17:44:33.859332Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8360298266192684601, trigger=visual_change)
2026-04-21T17:44:42.936361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=visual_change)
2026-04-21T17:44:46.420662Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=visual_change)
2026-04-21T17:46:17.725934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7286082578618580481, trigger=click)
2026-04-21T17:46:18.733766Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=click)
2026-04-21T17:46:19.506484Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7286082578618580481, trigger=click)
2026-04-21T17:46:20.729229Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=click)
2026-04-21T17:46:27.956655Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8942982652250876029, trigger=click)
2026-04-21T17:46:29.490950Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8942982652250876029, trigger=click)
2026-04-21T17:46:45.634752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5761541209609855314, trigger=click)
2026-04-21T17:46:45.971315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5761541209609855314, trigger=click)
2026-04-21T17:46:50.988867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5607564885929685542, trigger=click)
2026-04-21T17:46:51.601750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5607564885929685542, trigger=click)
2026-04-21T17:46:56.353647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4497988824039212795, trigger=click)
2026-04-21T17:47:24.716661Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4864885406063659925, trigger=visual_change)
2026-04-21T17:47:29.793942Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:30.097043Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)
2026-04-21T17:47:30.960214Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:32.707746Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)
2026-04-21T17:47:36.181007Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:36.362574Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:37.093511Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:41.720206Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)
2026-04-21T17:47:44.706704Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)
2026-04-21T17:47:48.602580Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:48.776278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:52.582982Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5658848090639979218, trigger=click)
2026-04-21T17:47:57.282103Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8902771592702756196, trigger=click)
2026-04-21T17:48:06.880071Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8902771592702756196, trigger=click)
2026-04-21T17:48:07.656377Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8902771592702756196, trigger=click)
2026-04-21T17:48:23.785117Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:48:24.032602Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:48:26.587906Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:48:32.180582Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)
2026-04-21T17:48:34.022831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:48:34.363583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:48:39.363585Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=83 elapsed=4.983598708s
2026-04-21T17:48:39.363733Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 83 eligible frames
2026-04-21T17:48:41.479158Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 3.3MB → 0.2MB (17.7x), 31 JPEGs deleted
2026-04-21T17:48:44.682560Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 50 frames, 6.5MB → 2.0MB (3.3x), 50 JPEGs deleted
2026-04-21T17:48:53.828851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)
2026-04-21T17:48:56.563636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)
2026-04-21T17:48:59.291654Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:48:59.467275Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:00.295226Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:00.453357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=visual_change)
2026-04-21T17:49:13.301518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)
2026-04-21T17:49:16.454207Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)
2026-04-21T17:49:16.837288Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:18.900202Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:19.229376Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:20.418502Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:20.706966Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:21.269855Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:22.896443Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:23.115745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:29.927553Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1234240076182081719, trigger=click)
2026-04-21T17:49:40.567042Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1506528968255096811, trigger=click)
2026-04-21T17:49:40.722412Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1506528968255096811, trigger=click)
2026-04-21T17:49:44.790415Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1506528968255096811, trigger=visual_change)
2026-04-21T17:49:44.983133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1506528968255096811, trigger=visual_change)
2026-04-21T17:51:50.315220Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)
2026-04-21T17:51:53.337571Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)
2026-04-21T17:51:59.473328Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)
2026-04-21T17:52:02.455277Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)
2026-04-21T17:52:05.862297Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)
2026-04-21T17:52:07.729450Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)
2026-04-21T17:52:16.901254Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)
2026-04-21T17:52:29.702852Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)
2026-04-21T17:52:36.533775Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)
2026-04-21T17:52:39.599515Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)
2026-04-21T17:52:45.700237Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)
2026-04-21T17:52:48.638819...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"2026-04-21T16:41:34.967355Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:41:35.133385Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:43:15.919099Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8254246256813675665, trigger=click)\n2026-04-21T16:43:44.014066Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8254246256813675665, trigger=visual_change)\n2026-04-21T16:44:45.410923Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=35 elapsed=2.419201375s\n2026-04-21T16:44:45.411045Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 35 eligible frames\n2026-04-21T16:44:46.383629Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.8MB → 0.3MB (9.5x), 15 JPEGs deleted\n2026-04-21T16:44:47.792527Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.6MB → 0.8MB (4.3x), 18 JPEGs deleted\n2026-04-21T16:49:53.308820Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=47 elapsed=5.487768917s\n2026-04-21T16:49:53.309371Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 47 eligible frames\n2026-04-21T16:49:54.673701Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.9MB → 0.3MB (13.1x), 21 JPEGs deleted\n2026-04-21T16:49:56.314871Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.7MB → 1.2MB (4.0x), 24 JPEGs deleted\n2026-04-21T16:54:59.385017Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=62 elapsed=3.057419917s\n2026-04-21T16:54:59.385210Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 62 eligible frames\n2026-04-21T16:55:00.998239Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.8MB → 0.5MB (10.3x), 26 JPEGs deleted\n2026-04-21T16:55:03.739041Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 34 frames, 5.8MB → 2.6MB (2.2x), 34 JPEGs deleted\n2026-04-21T16:55:17.768634Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)\n2026-04-21T17:23:59.183039Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)\n2026-04-21T17:23:59.216966Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2\n2026-04-21T17:24:00.832399Z INFO screenpipe_engine::vision_manager::monitor_watcher: Monitor 2 disconnected, stopping recording\n2026-04-21T17:24:00.832464Z INFO screenpipe_engine::vision_manager::manager: Stopping vision recording for monitor 2\n2026-04-21T17:24:00.832336Z INFO sck_rs::stream_manager: stopped 2 persistent stream(s)\n2026-04-21T17:24:04.654209Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-21T17:24:30.699969Z ERROR screenpipe_engine::resource_monitor: Failed to send resource usage to PostHog: error sending request for url (https://us.i.posthog.com/capture/)\n2026-04-21T17:25:01.085383Z INFO screenpipe_engine::vision_manager::monitor_watcher: Monitor 2 reconnected, resuming recording\n2026-04-21T17:25:01.273818Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-21T17:25:01.273870Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-21T17:25:01.273896Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-21T17:25:02.310236Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-21T17:25:02.808234Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=66228, dur=365ms\n2026-04-21T17:25:04.889075Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:07.887565Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:10.918390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:14.039034Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:17.160521Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:26.096276Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:29.061270Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:32.067380Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:35.263701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:41.164753Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:44.239172Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:47.149320Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:50.242915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:53.308794Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:56.218138Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:59.144297Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:26:05.965946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:08.584110Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:11.350189Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:14.339609Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:17.398251Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:20.782119Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:23.385506Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:26.427626Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:29.573661Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:32.450744Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:38.464132Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:41.456915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:44.496278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:47.541313Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:50.596256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:53.597171Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:56.764522Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:59.751576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:02.719391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:08.829090Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:11.800601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:14.811724Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:17.855339Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:26.878741Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:29.933020Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:32.947216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:36.041239Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:38.993657Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:42.039373Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:45.172399Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:48.081804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:51.142939Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:54.169253Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:00.341347Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:03.322832Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:06.631198Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:09.537232Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:12.406113Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:15.381764Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:15.806839Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=44 elapsed=5.777403s\n2026-04-21T17:28:15.806951Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 44 eligible frames\n2026-04-21T17:28:17.108106Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.9MB → 0.3MB (13.1x), 21 JPEGs deleted\n2026-04-21T17:28:18.370832Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.6MB → 0.5MB (7.8x), 21 JPEGs deleted\n2026-04-21T17:28:18.461408Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:22.068097Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:24.604711Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:27.608060Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:33.774822Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:36.697278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:39.729251Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:42.728755Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:45.748204Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:48.768910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:51.814752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:54.970698Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:57.869874Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:00.913837Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:07.461529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:10.043928Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:13.182411Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:16.080133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:19.108570Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:22.322033Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:25.172666Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:28.398354Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:31.249083Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:34.289745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:40.303310Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:43.308015Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:46.360649Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:49.356069Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:52.450205Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:55.422975Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:58.446390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:01.491253Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:04.500380Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:16.830925Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:19.856895Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:23.100486Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:25.938910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:28.953603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:32.061536Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:35.030958Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:38.162895Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:41.148165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:44.019513Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:50.259576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:53.148070Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:56.309979Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:59.185610Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:02.278235Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:05.287341Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:08.409426Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:11.489977Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:14.319338Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:17.348153Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:23.351025Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:26.427529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:29.337254Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:32.386165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:35.653387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:38.430216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:41.428909Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:44.432459Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:47.448603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:50.432780Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:56.535727Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:59.590792Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:02.621444Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:05.627964Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:08.710139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:11.765247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:14.787638Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:17.876480Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)\n2026-04-21T17:32:20.977937Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)\n2026-04-21T17:32:29.888970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8116870867026519513, trigger=click)\n2026-04-21T17:32:33.123648Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)\n2026-04-21T17:33:03.355082Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)\n2026-04-21T17:33:05.517897Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=click)\n2026-04-21T17:33:06.399783Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)\n2026-04-21T17:33:09.478894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)\n2026-04-21T17:33:19.151217Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-21T17:33:21.431006Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6379516332769645744, trigger=visual_change)\n2026-04-21T17:33:33.494463Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7500553589467718193, trigger=visual_change)\n2026-04-21T17:34:00.725974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2275300387038012183, trigger=click)\n2026-04-21T17:34:07.214867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2063499064757931498, trigger=visual_change)\n2026-04-21T17:34:31.480257Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=visual_change)\n2026-04-21T17:34:34.482370Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=visual_change)\n2026-04-21T17:35:53.801549Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7652433743467416760, trigger=click)\n2026-04-21T17:35:53.954311Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7652433743467416760, trigger=click)\n2026-04-21T17:35:54.740695Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7652433743467416760, trigger=click)\n2026-04-21T17:36:06.295752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5335392039126841536, trigger=visual_change)\n2026-04-21T17:36:28.893337Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5927780310531960690, trigger=visual_change)\n2026-04-21T17:38:15.647110Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)\n2026-04-21T17:38:17.801901Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)\n2026-04-21T17:38:17.962831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)\n2026-04-21T17:38:22.819710Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7137414965816212018, trigger=click)\n2026-04-21T17:38:22.917176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=click)\n2026-04-21T17:38:23.042830Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=28 elapsed=3.882772625s\n2026-04-21T17:38:23.042920Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames\n2026-04-21T17:38:24.717251Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 2.8MB → 0.4MB (6.3x), 18 JPEGs deleted\n2026-04-21T17:38:26.727027Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.1MB → 0.2MB (5.7x), 10 JPEGs deleted\n2026-04-21T17:38:35.971287Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=click)\n2026-04-21T17:38:36.106246Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7137414965816212018, trigger=click)\n2026-04-21T17:38:37.368009Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=visual_change)\n2026-04-21T17:38:43.431620Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8741356672789266752, trigger=visual_change)\n2026-04-21T17:38:49.319886Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5149767057649118192, trigger=click)\n2026-04-21T17:38:49.477325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5149767057649118192, trigger=click)\n2026-04-21T17:38:51.019231Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5149767057649118192, trigger=visual_change)\n2026-04-21T17:39:04.249890Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7355944135161080033, trigger=click)\n2026-04-21T17:39:23.256256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4983811095206295613, trigger=click)\n2026-04-21T17:39:23.385820Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4983811095206295613, trigger=click)\n2026-04-21T17:39:24.367407Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4983811095206295613, trigger=visual_change)\n2026-04-21T17:39:24.895784Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4983811095206295613, trigger=click)\n2026-04-21T17:39:46.438272Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=372069959735326508, trigger=visual_change)\n2026-04-21T17:39:49.101085Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4964238948655865655, trigger=visual_change)\n2026-04-21T17:39:58.083750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)\n2026-04-21T17:40:01.375315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)\n2026-04-21T17:40:04.195859Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)\n2026-04-21T17:40:12.117004Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2989278587618621353, trigger=click)\n2026-04-21T17:40:12.244666Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2989278587618621353, trigger=click)\n2026-04-21T17:40:13.925024Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2989278587618621353, trigger=visual_change)\n2026-04-21T17:40:23.294147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=visual_change)\n2026-04-21T17:40:55.989498Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3182674559678505325, trigger=click)\n2026-04-21T17:40:58.413325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3182674559678505325, trigger=visual_change)\n2026-04-21T17:41:23.101094Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5616874458658671741, trigger=visual_change)\n2026-04-21T17:41:29.504783Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2744778324521007391, trigger=visual_change)\n2026-04-21T17:42:13.830352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6664909184667365933, trigger=click)\n2026-04-21T17:42:13.905614Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=click)\n2026-04-21T17:42:14.689622Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6664909184667365933, trigger=click)\n2026-04-21T17:43:13.738786Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5563100798252317961, trigger=visual_change)\n2026-04-21T17:43:31.769731Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=40 elapsed=4.870364084s\n2026-04-21T17:43:31.770321Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames\n2026-04-21T17:43:32.514133Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.1MB → 0.1MB (8.9x), 11 JPEGs deleted\n2026-04-21T17:43:34.391762Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 3.0MB → 0.5MB (5.9x), 27 JPEGs deleted\n2026-04-21T17:44:19.021163Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-263228306577803226, trigger=click)\n2026-04-21T17:44:32.036390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8360298266192684601, trigger=click)\n2026-04-21T17:44:33.859332Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8360298266192684601, trigger=visual_change)\n2026-04-21T17:44:42.936361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=visual_change)\n2026-04-21T17:44:46.420662Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=visual_change)\n2026-04-21T17:46:17.725934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7286082578618580481, trigger=click)\n2026-04-21T17:46:18.733766Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=click)\n2026-04-21T17:46:19.506484Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7286082578618580481, trigger=click)\n2026-04-21T17:46:20.729229Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=click)\n2026-04-21T17:46:27.956655Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8942982652250876029, trigger=click)\n2026-04-21T17:46:29.490950Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8942982652250876029, trigger=click)\n2026-04-21T17:46:45.634752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5761541209609855314, trigger=click)\n2026-04-21T17:46:45.971315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5761541209609855314, trigger=click)\n2026-04-21T17:46:50.988867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5607564885929685542, trigger=click)\n2026-04-21T17:46:51.601750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5607564885929685542, trigger=click)\n2026-04-21T17:46:56.353647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4497988824039212795, trigger=click)\n2026-04-21T17:47:24.716661Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4864885406063659925, trigger=visual_change)\n2026-04-21T17:47:29.793942Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:30.097043Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)\n2026-04-21T17:47:30.960214Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:32.707746Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)\n2026-04-21T17:47:36.181007Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:36.362574Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:37.093511Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:41.720206Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)\n2026-04-21T17:47:44.706704Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)\n2026-04-21T17:47:48.602580Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:48.776278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:52.582982Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5658848090639979218, trigger=click)\n2026-04-21T17:47:57.282103Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8902771592702756196, trigger=click)\n2026-04-21T17:48:06.880071Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8902771592702756196, trigger=click)\n2026-04-21T17:48:07.656377Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8902771592702756196, trigger=click)\n2026-04-21T17:48:23.785117Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:24.032602Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:26.587906Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:32.180582Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:48:34.022831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:34.363583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:39.363585Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=83 elapsed=4.983598708s\n2026-04-21T17:48:39.363733Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 83 eligible frames\n2026-04-21T17:48:41.479158Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 3.3MB → 0.2MB (17.7x), 31 JPEGs deleted\n2026-04-21T17:48:44.682560Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 50 frames, 6.5MB → 2.0MB (3.3x), 50 JPEGs deleted\n2026-04-21T17:48:53.828851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:48:56.563636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:48:59.291654Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:59.467275Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:00.295226Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:00.453357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:49:13.301518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:49:16.454207Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:49:16.837288Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:18.900202Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:19.229376Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:20.418502Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:20.706966Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:21.269855Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:22.896443Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:23.115745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:29.927553Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1234240076182081719, trigger=click)\n2026-04-21T17:49:40.567042Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1506528968255096811, trigger=click)\n2026-04-21T17:49:40.722412Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1506528968255096811, trigger=click)\n2026-04-21T17:49:44.790415Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1506528968255096811, trigger=visual_change)\n2026-04-21T17:49:44.983133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1506528968255096811, trigger=visual_change)\n2026-04-21T17:51:50.315220Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)\n2026-04-21T17:51:53.337571Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)\n2026-04-21T17:51:59.473328Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)\n2026-04-21T17:52:02.455277Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)\n2026-04-21T17:52:05.862297Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:52:07.729450Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:52:16.901254Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:52:29.702852Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:52:36.533775Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:39.599515Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:45.700237Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:48.638819Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:54.704399Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:57.751791Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:53:10.186965Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:53:46.867091Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=116 elapsed=2.178958s\n2026-04-21T17:53:46.867199Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 116 eligible frames\n2026-04-21T17:53:49.254310Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:53:50.410056Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 56 frames, 12.3MB → 3.7MB (3.3x), 56 JPEGs deleted\n2026-04-21T17:53:51.388237Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:53:53.983042Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 58 frames, 9.0MB → 2.6MB (3.5x), 58 JPEGs deleted\n2026-04-21T17:53:56.223709Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:25.250317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:54:25.727105Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:54:32.633019Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:33.984547Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:54:35.401305Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:35.511290Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:38.494935Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:38.630637Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:41.245537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:54:45.441966Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:54:50.148639Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:50.313941Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:51.769427Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:51.915582Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:58.755543Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:55:01.758776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:55:25.745659Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3428322026263856254, trigger=click)\n2026-04-21T17:55:27.298490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3428322026263856254, trigger=visual_change)\n2026-04-21T17:55:33.297808Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3428322026263856254, trigger=visual_change)\n2026-04-21T17:55:48.491529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7233070170495400552, trigger=visual_change)\n2026-04-21T17:55:49.809101Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7233070170495400552, trigger=visual_change)\n2026-04-21T17:55:54.025243Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7233070170495400552, trigger=click)\n2026-04-21T17:55:54.165626Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7233070170495400552, trigger=click)\n2026-04-21T17:55:58.086411Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1463712168180952345, trigger=visual_change)\n2026-04-21T17:56:04.943502Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7233070170495400552, trigger=visual_change)\n2026-04-21T17:57:22.021701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:23.588692Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:30.517012Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:31.818301Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:31.972732Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:40.727074Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:42.330179Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:42.494853Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:45.528669Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:46.132479Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:46.358876Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:58:36.946109Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6074307134448385817, trigger=visual_change)\n2026-04-21T17:58:57.225929Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=117 elapsed=3.2365965s\n2026-04-21T17:58:57.226687Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 117 eligible frames\n2026-04-21T17:59:01.078632Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 58 frames, 12.8MB → 4.3MB (3.0x), 58 JPEGs deleted\n2026-04-21T17:59:04.938676Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 57 frames, 10.8MB → 4.0MB (2.7x), 57 JPEGs deleted\n2026-04-21T18:00:27.589643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9170086261988994041, trigger=click)\n2026-04-21T18:00:28.469646Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9170086261988994041, trigger=visual_change)\n2026-04-21T18:00:37.318027Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=9170086261988994041, trigger=click)\n2026-04-21T18:00:42.194585Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=9170086261988994041, trigger=click)\n2026-04-21T18:00:42.367049Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9170086261988994041, trigger=click)\n2026-04-21T18:01:07.200973Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:08.642294Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:08.873831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=visual_change)\n2026-04-21T18:01:09.931490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:10.189484Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:11.594292Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=visual_change)\n2026-04-21T18:01:12.844254Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:13.095866Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:49.712611Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5610420548393517496, trigger=click)\n2026-04-21T18:01:49.878502Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5610420548393517496, trigger=click)\n2026-04-21T18:01:54.385999Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4075180225844497251, trigger=click)\n2026-04-21T18:02:03.320721Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:04.589973Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:06.402101Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:08.459207Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:17.915785Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:20.289378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:53.363091Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:59.854804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6485088808083200508, trigger=visual_change)\n2026-04-21T18:03:23.692602Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2923142241079919801, trigger=visual_change)\n2026-04-21T18:03:38.383745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:03:38.666324Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:03:40.611795Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:03:46.691879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:03:49.696169Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:03:58.796193Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:10.455866Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=65 elapsed=5.507644708s\n2026-04-21T18:04:10.456994Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 65 eligible frames\n2026-04-21T18:04:10.784720Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:12.979583Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 8.1MB → 3.1MB (2.6x), 36 JPEGs deleted\n2026-04-21T18:04:13.808201Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:15.311040Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 5.7MB → 2.1MB (2.7x), 27 JPEGs deleted\n2026-04-21T18:04:22.870405Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:25.858949Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:47.178867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:47.409147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:48.621959Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:48.823996Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:49.613197Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:49.840589Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:54.113636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:54.333250Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:56.158603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:56.345340Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:24.653256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2923142241079919801, trigger=visual_change)\n2026-04-21T18:05:27.506644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2923142241079919801, trigger=visual_change)\n2026-04-21T18:05:52.127185Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:52.385537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:54.464579Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:54.740600Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:06:01.884193Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:06:04.917243Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:06:15.788550Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:06:16.090123Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:06:17.179267Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:07:04.992532Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:08.003078Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:17.121489Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:17.302355Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:27.025619Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:29.771279Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:31.137970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:36.086848Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:36.306717Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:37.369851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:37.634865Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:38.805129Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:39.104738Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:40.060624Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:08:30.262801Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:08:45.022177Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8543293535466770858, trigger=click)\n2026-04-21T18:09:22.083704Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=74 elapsed=6.715953125s\n2026-04-21T18:09:22.084245Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 74 eligible frames\n2026-04-21T18:09:29.000281Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 43 frames, 9.6MB → 4.0MB (2.4x), 43 JPEGs deleted\n2026-04-21T18:09:33.280652Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 5.8MB → 1.9MB (3.1x), 29 JPEGs deleted\n2026-04-21T18:10:45.149443Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:11:39.313378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=745086096190842156, trigger=visual_change)\n2026-04-21T18:11:42.305757Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=745086096190842156, trigger=click)\n2026-04-21T18:11:46.031853Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=745086096190842156, trigger=click)\n2026-04-21T18:11:46.095029Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=745086096190842156, trigger=click)\n2026-04-21T18:14:41.494244Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=68 elapsed=8.195880125s\n2026-04-21T18:14:41.495608Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 68 eligible frames\n2026-04-21T18:14:48.613051Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 8.2MB → 3.4MB (2.5x), 36 JPEGs deleted\n2026-04-21T18:14:55.232583Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 5.5MB → 2.6MB (2.1x), 30 JPEGs deleted\n2026-04-21T18:19:19.967211Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2899189334056575250, trigger=click)\n2026-04-21T18:19:20.363463Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2899189334056575250, trigger=click)\n2026-04-21T18:19:59.298075Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=53 elapsed=4.000910792s\n2026-04-21T18:19:59.298190Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 53 eligible frames\n2026-04-21T18:20:02.044649Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 5.1MB → 3.5MB (1.5x), 26 JPEGs deleted\n2026-04-21T18:20:04.900441Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.7MB → 2.4MB (1.9x), 25 JPEGs deleted\n2026-04-21T18:20:23.742659Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:27.660528Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:34.896769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:35.220946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:40.886719Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:44.353070Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:47.046701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:48.003863Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:22:59.673927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2006451494811625283, trigger=click)\n2026-04-21T18:23:02.374154Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2006451494811625283, trigger=visual_change)\n2026-04-21T18:24:55.480969Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:24:55.713808Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:25:06.770660Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=745086096190842156, trigger=click)\n2026-04-21T18:25:10.431473Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=69 elapsed=5.123936292s\n2026-04-21T18:25:10.432665Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 69 eligible frames\n2026-04-21T18:25:12.020960Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.7MB → 0.4MB (10.8x), 24 JPEGs deleted\n2026-04-21T18:25:16.809118Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 43 frames, 7.5MB → 3.7MB (2.0x), 43 JPEGs deleted\n2026-04-21T18:27:20.032159Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-868697608726996264, trigger=click)\n2026-04-21T18:27:27.209581Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5262134208844209929, trigger=click)\n2026-04-21T18:30:23.556529Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=60 elapsed=6.732438875s\n2026-04-21T18:30:23.556849Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 60 eligible frames\n2026-04-21T18:30:25.836587Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 5.3MB → 0.4MB (12.5x), 27 JPEGs deleted\n2026-04-21T18:30:29.251794Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 5.4MB → 2.7MB (2.0x), 31 JPEGs deleted\n2026-04-21T18:34:42.383568Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1898158487632236470, trigger=click)\n2026-04-21T18:35:29.435858Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 84 eligible frames\n2026-04-21T18:35:31.507303Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 35 frames, 6.8MB → 0.3MB (21.3x), 35 JPEGs deleted\n2026-04-21T18:35:34.821718Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 47 frames, 8.8MB → 3.6MB (2.4x), 47 JPEGs deleted\n2026-04-21T18:37:57.032414Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3231955623713121874, trigger=click)\n2026-04-21T18:40:36.969380Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=205 elapsed=2.13815675s\n2026-04-21T18:40:36.969491Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 205 eligible frames\n2026-04-21T18:40:42.234686Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 90 frames, 17.5MB → 0.4MB (49.4x), 90 JPEGs deleted\n2026-04-21T18:40:48.296945Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 99 frames, 14.9MB → 5.7MB (2.6x), 99 JPEGs deleted\n2026-04-21T18:40:49.626073Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 1.8MB → 0.7MB (2.8x), 14 JPEGs deleted\n2026-04-21T18:41:16.858046Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5262134208844209929, trigger=click)\n2026-04-21T18:41:18.719527Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5262134208844209929, trigger=click)\n2026-04-21T18:41:20.650032Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6762752836329409782, trigger=click)\n2026-04-21T18:42:40.957654Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7949512313665335161, trigger=visual_change)\n2026-04-21T18:42:42.714242Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7949512313665335161, trigger=click)\n2026-04-21T18:44:54.833923Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7610506607449357182, trigger=click)\n2026-04-21T18:44:55.013934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7610506607449357182, trigger=click)\n2026-04-21T18:45:54.320505Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=145 elapsed=4.6846185s\n2026-04-21T18:45:54.321215Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 145 eligible frames\n2026-04-21T18:45:58.288822Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 64 frames, 12.5MB → 0.5MB (23.2x), 64 JPEGs deleted\n2026-04-21T18:46:02.956701Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 78 frames, 11.5MB → 3.3MB (3.5x), 78 JPEGs deleted\n2026-04-21T18:48:10.510139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4242937607805845066, trigger=click)\n2026-04-21T18:48:37.207446Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5152173808593872338, trigger=visual_change)\n2026-04-21T18:49:27.537635Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5244088376274895156, trigger=click)\n2026-04-21T18:49:33.724367Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5262134208844209929, trigger=click)\n2026-04-21T18:49:44.747739Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8298107678328947062, trigger=click)\n2026-04-21T18:50:45.073176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:50:45.427101Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:50:48.592273Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:50:49.492676Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:51:01.193858Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:51:05.888682Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=50 elapsed=2.917680375s\n2026-04-21T18:51:05.889014Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 50 eligible frames\n2026-04-21T18:51:06.016628Z WARN sqlx::query: summary=\"PRAGMA wal_checkpoint(TRUNCATE)\" db.statement=\"\" rows_affected=0 rows_returned=1 elapsed=2.157649083s\n2026-04-21T18:51:06.079565Z WARN sqlx::query: summary=\"BEGIN IMMEDIATE\" db.statement=\"\" rows_affected=1 rows_returned=0 elapsed=1.385088167s\n2026-04-21T18:51:07.829374Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 3.9MB → 0.4MB (11.0x), 20 JPEGs deleted\n2026-04-21T18:51:09.736739Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 5.0MB → 1.8MB (2.7x), 28 JPEGs deleted\n2026-04-21T18:51:22.360027Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2872311122120998867, trigger=click)\n2026-04-21T18:51:22.556670Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2872311122120998867, trigger=click)\n2026-04-21T18:51:38.819030Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7947558874471225541, trigger=click)\n2026-04-21T18:51:57.414061Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:51:59.012068Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:51:59.285931Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:01.767745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:02.028355Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:05.460776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=visual_change)\n2026-04-21T18:52:07.087479Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:07.314492Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:10.214922Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:10.537340Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:13.867159Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:14.152331Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:20.367281Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:26.127826Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1650348556715134220, trigger=click)\n2026-04-21T18:52:37.517700Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=visual_change)\n2026-04-21T18:52:42.329057Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:52:42.556779Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:52:44.386173Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:52:44.700511Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:52:45.210674Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:53:17.193415Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6757993062848436258, trigger=visual_change)\n2026-04-21T18:53:30.834059Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-228480120308125164, trigger=click)\n2026-04-21T18:53:38.030882Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7225077546439863627, trigger=click)\n2026-04-21T18:53:56.421537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6437320026671683644, trigger=click)\n2026-04-21T18:54:11.726528Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1667437155962702753, trigger=visual_change)\n2026-04-21T18:54:12.117525Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1667437155962702753, trigger=click)\n2026-04-21T18:54:18.659686Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:54:19.077258Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:54:29.973760Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:56:07.789768Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6757993062848436258, trigger=click)\n2026-04-21T18:56:08.791400Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6757993062848436258, trigger=click)\n2026-04-21T18:56:14.153615Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=80 elapsed=4.402661042s\n2026-04-21T18:56:14.153722Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 80 eligible frames\n2026-04-21T18:56:16.685912Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 6.2MB → 0.7MB (8.9x), 32 JPEGs deleted\n2026-04-21T18:56:21.263739Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 46 frames, 8.2MB → 2.8MB (2.9x), 46 JPEGs deleted\n2026-04-21T18:56:25.279306Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7906564822731502105, trigger=click)\n2026-04-21T18:56:33.734840Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8817586097865472869, trigger=click)\n2026-04-21T18:56:33.980908Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8817586097865472869, trigger=click)\n2026-04-21T18:56:35.972959Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8817586097865472869, trigger=click)\n2026-04-21T18:56:40.545963Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8587160525579598601, trigger=click)\n2026-04-21T18:56:41.913814Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8587160525579598601, trigger=visual_change)\n2026-04-21T18:56:45.516942Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1910160977377320534, trigger=click)\n2026-04-21T18:56:48.740431Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1910160977377320534, trigger=click)\n2026-04-21T18:56:50.439568Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1910160977377320534, trigger=click)\n2026-04-21T18:56:50.692218Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1910160977377320534, trigger=click)\n2026-04-21T18:57:12.321118Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:12.578681Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:24.290583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:24.543696Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:34.571768Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:36.227688Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:36.475151Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:42.338601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:42.559967Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:52.824809Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:53.145543Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:59.463043Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:59.717475Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:58:00.742137Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:58:01.061497Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:59:33.960291Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9203182216527106315, trigger=visual_change)\n2026-04-21T18:59:55.990167Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T18:59:59.103830Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=visual_change)\n2026-04-21T19:00:16.116927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:00:45.352689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:00:49.596644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:00:50.432181Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:07.992732Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:08.484066Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:10.538762Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:18.922398Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:28.361625Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=84 elapsed=6.9360265s\n2026-04-21T19:01:28.362070Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 84 eligible frames\n2026-04-21T19:01:32.723075Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 33 frames, 6.4MB → 0.3MB (19.7x), 33 JPEGs deleted\n2026-04-21T19:01:42.130490Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 7.8MB → 3.3MB (2.4x), 49 JPEGs deleted\n2026-04-21T19:02:09.991879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:12.577587Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:12.835924Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:15.635601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:18.720475Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:21.708351Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:22.061150Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:28.684303Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3995027160269120472, trigger=click)\n2026-04-21T19:02:41.434491Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:41.724904Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:43.112974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:43.410843Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:47.501924Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:47.761592Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:54.205542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:54.441326Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:56.601490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:56.921256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:03:15.988643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:03:16.236342Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:03:28.508616Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:00.462064Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:01.516168Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:01.856315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:03.246448Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:03.735029Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:09.818135Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:05:03.118616Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:03.393788Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:21.352722Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=visual_change)\n2026-04-21T19:05:43.751309Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:44.029500Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:45.626672Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:45.899754Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:48.206587Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:48.449043Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:06:22.834938Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7947558874471225541, trigger=click)\n2026-04-21T19:06:52.937779Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=114 elapsed=10.747243125s\n2026-04-21T19:06:52.938152Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 114 eligible frames\n2026-04-21T19:06:57.942457Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 45 frames, 8.8MB → 0.3MB (27.2x), 45 JPEGs deleted\n2026-04-21T19:07:05.853054Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 67 frames, 10.5MB → 5.2MB (2.0x), 67 JPEGs deleted\n2026-04-21T19:07:45.088797Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:07:48.052391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6936634780821666458, trigger=click)\n2026-04-21T19:08:59.593467Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5629560013928052473, trigger=click)\n2026-04-21T19:09:29.443711Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:42.998313Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8043719072324535154, trigger=visual_change)\n2026-04-21T19:09:50.759516Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:51.052544Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:51.892698Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:09:52.651776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:55.476431Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:55.898195Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:09:58.077337Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:10:01.103980Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:10:03.105423Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:10:03.448049Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:10:08.548130Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6051188157141408655, trigger=click)\n2026-04-21T19:12:12.330759Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=70 elapsed=6.458002417s\n2026-04-21T19:12:12.332545Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 70 eligible frames\n2026-04-21T19:12:14.243079Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 5.5MB → 0.3MB (17.2x), 28 JPEGs deleted\n2026-04-21T19:12:17.558334Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 40 frames, 7.4MB → 3.6MB (2.1x), 40 JPEGs deleted\n2026-04-21T19:16:51.045938Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1370319459641728815, trigger=click)\n2026-04-21T19:16:51.249993Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1370319459641728815, trigger=click)\n2026-04-21T19:17:21.603564Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=40 elapsed=4.036037791s\n2026-04-21T19:17:21.604357Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames\n2026-04-21T19:17:22.750174Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.5MB → 0.3MB (11.2x), 18 JPEGs deleted\n2026-04-21T19:17:24.332098Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.2MB → 1.3MB (3.2x), 20 JPEGs deleted\n2026-04-21T19:22:25.748871Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=49 elapsed=1.406664416s\n2026-04-21T19:22:25.749095Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 49 eligible frames\n2026-04-21T19:22:27.704722Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 3.7MB → 0.8MB (4.5x), 22 JPEGs deleted\n2026-04-21T19:22:29.535330Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.2MB → 1.7MB (3.0x), 25 JPEGs deleted\n2026-04-21T19:23:29.233846Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9146581369053060363, trigger=click)\n2026-04-21T19:23:31.995034Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9146581369053060363, trigger=visual_change)\n2026-04-21T19:23:37.213396Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9146581369053060363, trigger=visual_change)\n2026-04-21T19:23:40.288223Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9146581369053060363, trigger=visual_change)\n2026-04-21T19:23:44.197738Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9146581369053060363, trigger=visual_change)\n2026-04-21T19:23:45.228572Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9146581369053060363, trigger=click)\n2026-04-21T19:23:56.251033Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:24:06.580019Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=335 elapsed=1.644312167s\n2026-04-21T19:24:28.860436Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:24:32.226944Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:24:32.476075Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:03.902521Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:19.205245Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:25.098627Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:36.013866Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:37.355954Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:41.831265Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:46.247585Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:46.619106Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:48.284769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:48.534452Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:49.421920Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:49.752264Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:54.600720Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:55.072357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:26:19.446041Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:26:22.718352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:27:38.437704Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=28 elapsed=8.833634334s\n2026-04-21T19:27:38.438043Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames\n2026-04-21T19:27:39.763901Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 1.9MB → 0.3MB (7.6x), 12 JPEGs deleted\n2026-04-21T19:27:41.220664Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.1MB → 0.9MB (2.2x), 14 JPEGs deleted\n2026-04-21T19:28:22.708791Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:28:23.849452Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:28:24.119301Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:14.209016Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:16.415693Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:21.726815Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:23.890645Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:24.239058Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:29.790006Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:33.098495Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:38.065869Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:44.089028Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:47.272131Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:53.977951Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:57.274496Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:30:11.986797Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:30:13.530455Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:30:28.332451Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:30:37.204947Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:26.255340Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:26.592983Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:30.448912Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:35.747969Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:37.783849Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:38.061197Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:43.216365Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:43.885407Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:46.680745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:52.971450Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:58.468469Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:58.624833Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:03.362210Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:12.706102Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:15.172982Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:23.020508Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:23.199312Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:25.387097Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:25.764201Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:30.336940Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:30.810971Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:39.812820Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:42.409145Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:44.386326Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:48.880648Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=47 elapsed=7.499136792s\n2026-04-21T19:32:48.880949Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 47 eligible frames\n2026-04-21T19:32:51.249469Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.2MB → 0.3MB (8.9x), 14 JPEGs deleted\n2026-04-21T19:32:55.969183Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 3.8MB → 1.9MB (2.0x), 31 JPEGs deleted\n2026-04-21T19:32:59.734686Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:33:00.098925Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:33:05.951997Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:34:07.213420Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:34:09.264586Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:34:16.527425Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:34:19.513647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:34:32.889780Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1128757073350665914, trigger=click)\n2026-04-21T19:34:56.078651Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4993766851008728916, trigger=click)\n2026-04-21T19:34:56.296542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4993766851008728916, trigger=click)\n2026-04-21T19:35:02.344819Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:35:05.237721Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:35:07.518599Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:35:09.938481Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:35:10.408295Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:35:26.864482Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:35:33.001733Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:35:36.479802Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:36:20.043835Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4526067242477956280, trigger=visual_change)\n2026-04-21T19:36:47.029303Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4526067242477956280, trigger=visual_change)\n2026-04-21T19:36:57.077150Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:37:33.348160Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:37:33.742029Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:37:36.579915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:37:39.754974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:38:04.951324Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=101 elapsed=8.9666755s\n2026-04-21T19:38:04.953527Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 101 eligible frames\n2026-04-21T19:38:13.751166Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 38 frames, 8.0MB → 3.5MB (2.3x), 38 JPEGs deleted\n2026-04-21T19:38:29.817220Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 61 frames, 9.7MB → 5.2MB (1.9x), 61 JPEGs deleted\n2026-04-21T19:40:34.255930Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=342 elapsed=1.0699005s\n2026-04-21T19:42:32.961192Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:42:33.305572Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:42:40.179851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=visual_change)\n2026-04-21T19:42:41.405781Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:42:41.720845Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:43:02.251464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=visual_change)\n2026-04-21T19:43:11.622532Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:43:36.525920Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=85 elapsed=6.634896167s\n2026-04-21T19:43:36.526454Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 85 eligible frames\n2026-04-21T19:43:39.459999Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 8.0MB → 3.4MB (2.3x), 36 JPEGs deleted\n2026-04-21T19:43:43.505640Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 47 frames, 7.9MB → 3.9MB (2.0x), 47 JPEGs deleted\n2026-04-21T19:44:05.999282Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=visual_change)\n2026-04-21T19:45:08.065595Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2712812971723964739, trigger=click)\n2026-04-21T19:45:46.266141Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:48:51.569666Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=64 elapsed=8.039671791s\n2026-04-21T19:48:51.570457Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 64 eligible frames\n2026-04-21T19:48:58.738540Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 7.2MB → 2.4MB (2.9x), 32 JPEGs deleted\n2026-04-21T19:49:05.383193Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 5.9MB → 2.5MB (2.4x), 30 JPEGs deleted\n2026-04-21T19:51:14.064760Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2572721248839450970, trigger=visual_change)\n2026-04-21T19:54:08.518415Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=346 elapsed=1.026887875s\n2026-04-21T19:54:12.872902Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=61 elapsed=7.44778675s\n2026-04-21T19:54:12.873164Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 61 eligible frames\n2026-04-21T19:54:16.348511Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.6MB → 1.4MB (4.1x), 25 JPEGs deleted\n2026-04-21T19:54:24.102233Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 34 frames, 6.2MB → 3.6MB (1.7x), 34 JPEGs deleted\n2026-04-21T19:59:32.063421Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=346 elapsed=1.165878958s\n2026-04-21T19:59:32.818884Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=31 elapsed=8.661332917s\n2026-04-21T19:59:32.819629Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 31 eligible frames\n2026-04-21T19:59:35.810838Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.9MB → 0.7MB (3.9x), 16 JPEGs deleted\n2026-04-21T19:59:38.924596Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.9MB → 1.5MB (2.0x), 13 JPEGs deleted\n2026-04-21T20:01:55.709776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1382976804061127003, trigger=click)\n2026-04-21T20:04:27.572999Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7658911549706194190, trigger=click)\n2026-04-21T20:04:46.630063Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=57 elapsed=7.045125334s\n2026-04-21T20:04:46.631081Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 57 eligible frames\n2026-04-21T20:04:49.684796Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 2.5MB → 0.8MB (3.2x), 23 JPEGs deleted\n2026-04-21T20:04:56.073590Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 5.7MB → 3.1MB (1.8x), 32 JPEGs deleted\n2026-04-21T20:05:04.129844Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-446124678591544690, trigger=click)\n2026-04-21T20:05:04.425723Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-446124678591544690, trigger=click)\n2026-04-21T20:09:59.238939Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=30 elapsed=2.058497125s\n2026-04-21T20:09:59.239075Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 30 eligible frames\n2026-04-21T20:10:00.874153Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.3MB → 0.2MB (5.8x), 13 JPEGs deleted\n2026-04-21T20:10:03.326064Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 1.8MB → 0.6MB (2.8x), 15 JPEGs deleted\n2026-04-21T20:15:07.129653Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=58 elapsed=3.763973459s\n2026-04-21T20:15:07.130598Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 58 eligible frames\n2026-04-21T20:15:09.088400Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 3.7MB → 0.6MB (5.9x), 26 JPEGs deleted\n2026-04-21T20:15:10.858868Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 3.9MB → 1.0MB (3.9x), 30 JPEGs deleted\n2026-04-21T20:18:21.110736Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=354 elapsed=1.169721666s\nzsh: terminated npx screenpipe@latest record --disable-audio --ignored-windows \"Boosteroid\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-start\ndetected hardware tier: Mid\nwarning: parakeet is not supported on this platform, using whisper-tiny instead\n2026-04-22T09:15:19.880360Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store\nchecking permissions...\n screen recording: ok\n accessibility: ok\n2026-04-22T09:15:19.951248Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6\n2026-04-22T09:15:20.675958Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor\n2026-04-22T09:15:20.677447Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)\n2026-04-22T09:15:20.677800Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)\n2026-04-22T09:15:20.709542Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true\n2026-04-22T09:15:20.709596Z INFO screenpipe: meeting detector enabled — independent of transcription mode\n2026-04-22T09:15:20.709849Z INFO screenpipe: API server listening on 127.0.0.1:3030 (localhost only)\n2026-04-22T09:15:20.709774Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)\n2026-04-22T09:15:20.709806Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)\n2026-04-22T09:15:20.709863Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key\n2026-04-22T09:15:20.709908Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager\n2026-04-22T09:15:20.721517Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-22T09:15:20.725781Z INFO screenpipe_core::pipes: loaded pipe: day-recap\n2026-04-22T09:15:20.725991Z INFO screenpipe_core::pipes: loaded pipe: standup-update\n2026-04-22T09:15:20.726387Z INFO screenpipe_core::pipes: loaded pipe: ai-habits\n2026-04-22T09:15:20.726548Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown\n2026-04-22T09:15:20.726690Z INFO screenpipe_core::pipes: loaded pipe: video-export\n2026-04-22T09:15:20.727224Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary\n2026-04-22T09:15:20.727242Z INFO screenpipe_core::pipes: loaded 6 pipes from \"/Users/lukas/.screenpipe/pipes\"\n\n\n\n _ \n __________________ ___ ____ ____ (_____ ___ \n / ___/ ___/ ___/ _ \\/ _ \\/ __ \\ / __ \\/ / __ \\/ _ \\\n (__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/\n/____/\\___/_/ \\___/\\___/_/ /_/ / .___/_/ .___/\\___/ \n /_/ /_/ \n\n\n\npower AI by everything you've seen, said or heard\nopen source | runs locally | developer friendly\n\n\n┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ true │\n│ vision disabled │ false │\n│ pause on DRM content │ false │\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n│ ignored windows │ [\"Boosteroid\"] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n2026-04-22T09:15:20.728614Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n│ api auth │ enabled │\n2026-04-22T09:15:20.742172Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n│ encrypt secrets │ disabled │\n│ retention days │ 14 │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ id: 1 │\n│ │ id: 2 │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ disabled │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-22T09:15:20.742788Z INFO screenpipe: starting UI event capture\n2026-04-22T09:15:20.755824Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-22T09:15:20.769629Z INFO screenpipe_engine::ui_recorder: UI recording session started: e7729066-2ab4-4bf0-9d48-0c9790a4ee79\n2026-04-22T09:15:20.769680Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-22T09:15:20.769789Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-21 06:15:20.769785 UTC to 2026-04-22 06:15:20.769785 UTC)\n2026-04-22T09:15:20.770644Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-22T09:15:20.778181Z INFO screenpipe_engine::server: Server listening on 127.0.0.1:3030\n2026-04-22T09:15:20.789960Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-22T09:15:21.591614Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-22T09:15:21.591646Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-22T09:15:21.591751Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-22T09:15:21.919088Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-22T09:15:21.919141Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-22T09:15:21.919158Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)\n2026-04-22T09:15:21.919163Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-22T09:15:21.919167Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)\n2026-04-22T09:15:23.315305Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-22T09:15:23.445619Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=68471, dur=74ms\n2026-04-22T09:15:23.697846Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-22T09:15:23.856559Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=68472, dur=115ms\n2026-04-22T09:15:23.858032Z INFO sck_rs::stream_manager: invalidated persistent stream for display 2\n2026-04-22T09:15:25.542035Z WARN sqlx::query: summary=\"SELECT f.id, f.timestamp, f.offset_index, …\" db.statement=\"\\n\\nSELECT\\n f.id,\\n f.timestamp,\\n f.offset_index,\\n COALESCE(\\n SUBSTR(f.full_text, 1, 200),\\n SUBSTR(f.accessibility_text, 1, 200),\\n (\\n SELECT\\n SUBSTR(ot.text, 1, 200)\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as text,\\n COALESCE(\\n f.app_name,\\n (\\n SELECT\\n ot.app_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as app_name,\\n COALESCE(\\n f.window_name,\\n (\\n SELECT\\n ot.window_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as window_name,\\n COALESCE(vc.device_name, f.device_name) as screen_device,\\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\\n COALESCE(vc.fps, 0.033) as chunk_fps,\\n f.browser_url,\\n f.machine_id\\nFROM\\n frames f\\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\\nWHERE\\n f.timestamp >= ?1\\n AND f.timestamp <= ?2\\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\\nORDER BY\\n f.timestamp DESC,\\n f.offset_index DESC\\nLIMIT\\n 10000\\n\" rows_affected=0 rows_returned=7744 elapsed=4.771776083s\n2026-04-22T09:15:25.568771Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 7744 frame entries, coverage from 2026-04-21 06:15:20.769785 UTC","depth":4,"value":"2026-04-21T16:41:34.967355Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:41:35.133385Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:43:15.919099Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8254246256813675665, trigger=click)\n2026-04-21T16:43:44.014066Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8254246256813675665, trigger=visual_change)\n2026-04-21T16:44:45.410923Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=35 elapsed=2.419201375s\n2026-04-21T16:44:45.411045Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 35 eligible frames\n2026-04-21T16:44:46.383629Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.8MB → 0.3MB (9.5x), 15 JPEGs deleted\n2026-04-21T16:44:47.792527Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.6MB → 0.8MB (4.3x), 18 JPEGs deleted\n2026-04-21T16:49:53.308820Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=47 elapsed=5.487768917s\n2026-04-21T16:49:53.309371Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 47 eligible frames\n2026-04-21T16:49:54.673701Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.9MB → 0.3MB (13.1x), 21 JPEGs deleted\n2026-04-21T16:49:56.314871Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.7MB → 1.2MB (4.0x), 24 JPEGs deleted\n2026-04-21T16:54:59.385017Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=62 elapsed=3.057419917s\n2026-04-21T16:54:59.385210Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 62 eligible frames\n2026-04-21T16:55:00.998239Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.8MB → 0.5MB (10.3x), 26 JPEGs deleted\n2026-04-21T16:55:03.739041Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 34 frames, 5.8MB → 2.6MB (2.2x), 34 JPEGs deleted\n2026-04-21T16:55:17.768634Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)\n2026-04-21T17:23:59.183039Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)\n2026-04-21T17:23:59.216966Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2\n2026-04-21T17:24:00.832399Z INFO screenpipe_engine::vision_manager::monitor_watcher: Monitor 2 disconnected, stopping recording\n2026-04-21T17:24:00.832464Z INFO screenpipe_engine::vision_manager::manager: Stopping vision recording for monitor 2\n2026-04-21T17:24:00.832336Z INFO sck_rs::stream_manager: stopped 2 persistent stream(s)\n2026-04-21T17:24:04.654209Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-21T17:24:30.699969Z ERROR screenpipe_engine::resource_monitor: Failed to send resource usage to PostHog: error sending request for url (https://us.i.posthog.com/capture/)\n2026-04-21T17:25:01.085383Z INFO screenpipe_engine::vision_manager::monitor_watcher: Monitor 2 reconnected, resuming recording\n2026-04-21T17:25:01.273818Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-21T17:25:01.273870Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-21T17:25:01.273896Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-21T17:25:02.310236Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-21T17:25:02.808234Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=66228, dur=365ms\n2026-04-21T17:25:04.889075Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:07.887565Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:10.918390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:14.039034Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:17.160521Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:26.096276Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:29.061270Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:32.067380Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:35.263701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:41.164753Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:44.239172Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:47.149320Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:50.242915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:53.308794Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:56.218138Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:59.144297Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:26:05.965946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:08.584110Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:11.350189Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:14.339609Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:17.398251Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:20.782119Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:23.385506Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:26.427626Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:29.573661Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:32.450744Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:38.464132Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:41.456915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:44.496278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:47.541313Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:50.596256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:53.597171Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:56.764522Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:59.751576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:02.719391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:08.829090Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:11.800601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:14.811724Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:17.855339Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:26.878741Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:29.933020Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:32.947216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:36.041239Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:38.993657Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:42.039373Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:45.172399Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:48.081804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:51.142939Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:54.169253Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:00.341347Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:03.322832Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:06.631198Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:09.537232Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:12.406113Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:15.381764Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:15.806839Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=44 elapsed=5.777403s\n2026-04-21T17:28:15.806951Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 44 eligible frames\n2026-04-21T17:28:17.108106Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.9MB → 0.3MB (13.1x), 21 JPEGs deleted\n2026-04-21T17:28:18.370832Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.6MB → 0.5MB (7.8x), 21 JPEGs deleted\n2026-04-21T17:28:18.461408Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:22.068097Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:24.604711Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:27.608060Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:33.774822Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:36.697278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:39.729251Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:42.728755Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:45.748204Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:48.768910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:51.814752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:54.970698Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:57.869874Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:00.913837Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:07.461529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:10.043928Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:13.182411Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:16.080133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:19.108570Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:22.322033Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:25.172666Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:28.398354Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:31.249083Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:34.289745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:40.303310Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:43.308015Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:46.360649Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:49.356069Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:52.450205Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:55.422975Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:58.446390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:01.491253Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:04.500380Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:16.830925Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:19.856895Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:23.100486Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:25.938910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:28.953603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:32.061536Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:35.030958Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:38.162895Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:41.148165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:44.019513Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:50.259576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:53.148070Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:56.309979Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:59.185610Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:02.278235Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:05.287341Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:08.409426Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:11.489977Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:14.319338Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:17.348153Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:23.351025Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:26.427529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:29.337254Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:32.386165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:35.653387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:38.430216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:41.428909Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:44.432459Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:47.448603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:50.432780Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:56.535727Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:59.590792Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:02.621444Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:05.627964Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:08.710139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:11.765247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:14.787638Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:17.876480Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)\n2026-04-21T17:32:20.977937Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)\n2026-04-21T17:32:29.888970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8116870867026519513, trigger=click)\n2026-04-21T17:32:33.123648Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)\n2026-04-21T17:33:03.355082Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)\n2026-04-21T17:33:05.517897Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=click)\n2026-04-21T17:33:06.399783Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)\n2026-04-21T17:33:09.478894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)\n2026-04-21T17:33:19.151217Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-21T17:33:21.431006Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6379516332769645744, trigger=visual_change)\n2026-04-21T17:33:33.494463Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7500553589467718193, trigger=visual_change)\n2026-04-21T17:34:00.725974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2275300387038012183, trigger=click)\n2026-04-21T17:34:07.214867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2063499064757931498, trigger=visual_change)\n2026-04-21T17:34:31.480257Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=visual_change)\n2026-04-21T17:34:34.482370Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=visual_change)\n2026-04-21T17:35:53.801549Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7652433743467416760, trigger=click)\n2026-04-21T17:35:53.954311Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7652433743467416760, trigger=click)\n2026-04-21T17:35:54.740695Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7652433743467416760, trigger=click)\n2026-04-21T17:36:06.295752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5335392039126841536, trigger=visual_change)\n2026-04-21T17:36:28.893337Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5927780310531960690, trigger=visual_change)\n2026-04-21T17:38:15.647110Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)\n2026-04-21T17:38:17.801901Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)\n2026-04-21T17:38:17.962831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)\n2026-04-21T17:38:22.819710Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7137414965816212018, trigger=click)\n2026-04-21T17:38:22.917176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=click)\n2026-04-21T17:38:23.042830Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=28 elapsed=3.882772625s\n2026-04-21T17:38:23.042920Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames\n2026-04-21T17:38:24.717251Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 2.8MB → 0.4MB (6.3x), 18 JPEGs deleted\n2026-04-21T17:38:26.727027Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.1MB → 0.2MB (5.7x), 10 JPEGs deleted\n2026-04-21T17:38:35.971287Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=click)\n2026-04-21T17:38:36.106246Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7137414965816212018, trigger=click)\n2026-04-21T17:38:37.368009Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=visual_change)\n2026-04-21T17:38:43.431620Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8741356672789266752, trigger=visual_change)\n2026-04-21T17:38:49.319886Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5149767057649118192, trigger=click)\n2026-04-21T17:38:49.477325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5149767057649118192, trigger=click)\n2026-04-21T17:38:51.019231Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5149767057649118192, trigger=visual_change)\n2026-04-21T17:39:04.249890Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7355944135161080033, trigger=click)\n2026-04-21T17:39:23.256256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4983811095206295613, trigger=click)\n2026-04-21T17:39:23.385820Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4983811095206295613, trigger=click)\n2026-04-21T17:39:24.367407Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4983811095206295613, trigger=visual_change)\n2026-04-21T17:39:24.895784Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4983811095206295613, trigger=click)\n2026-04-21T17:39:46.438272Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=372069959735326508, trigger=visual_change)\n2026-04-21T17:39:49.101085Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4964238948655865655, trigger=visual_change)\n2026-04-21T17:39:58.083750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)\n2026-04-21T17:40:01.375315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)\n2026-04-21T17:40:04.195859Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)\n2026-04-21T17:40:12.117004Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2989278587618621353, trigger=click)\n2026-04-21T17:40:12.244666Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2989278587618621353, trigger=click)\n2026-04-21T17:40:13.925024Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2989278587618621353, trigger=visual_change)\n2026-04-21T17:40:23.294147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=visual_change)\n2026-04-21T17:40:55.989498Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3182674559678505325, trigger=click)\n2026-04-21T17:40:58.413325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3182674559678505325, trigger=visual_change)\n2026-04-21T17:41:23.101094Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5616874458658671741, trigger=visual_change)\n2026-04-21T17:41:29.504783Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2744778324521007391, trigger=visual_change)\n2026-04-21T17:42:13.830352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6664909184667365933, trigger=click)\n2026-04-21T17:42:13.905614Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=click)\n2026-04-21T17:42:14.689622Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6664909184667365933, trigger=click)\n2026-04-21T17:43:13.738786Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5563100798252317961, trigger=visual_change)\n2026-04-21T17:43:31.769731Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=40 elapsed=4.870364084s\n2026-04-21T17:43:31.770321Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames\n2026-04-21T17:43:32.514133Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.1MB → 0.1MB (8.9x), 11 JPEGs deleted\n2026-04-21T17:43:34.391762Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 3.0MB → 0.5MB (5.9x), 27 JPEGs deleted\n2026-04-21T17:44:19.021163Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-263228306577803226, trigger=click)\n2026-04-21T17:44:32.036390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8360298266192684601, trigger=click)\n2026-04-21T17:44:33.859332Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8360298266192684601, trigger=visual_change)\n2026-04-21T17:44:42.936361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=visual_change)\n2026-04-21T17:44:46.420662Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=visual_change)\n2026-04-21T17:46:17.725934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7286082578618580481, trigger=click)\n2026-04-21T17:46:18.733766Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=click)\n2026-04-21T17:46:19.506484Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7286082578618580481, trigger=click)\n2026-04-21T17:46:20.729229Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=click)\n2026-04-21T17:46:27.956655Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8942982652250876029, trigger=click)\n2026-04-21T17:46:29.490950Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8942982652250876029, trigger=click)\n2026-04-21T17:46:45.634752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5761541209609855314, trigger=click)\n2026-04-21T17:46:45.971315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5761541209609855314, trigger=click)\n2026-04-21T17:46:50.988867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5607564885929685542, trigger=click)\n2026-04-21T17:46:51.601750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5607564885929685542, trigger=click)\n2026-04-21T17:46:56.353647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4497988824039212795, trigger=click)\n2026-04-21T17:47:24.716661Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4864885406063659925, trigger=visual_change)\n2026-04-21T17:47:29.793942Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:30.097043Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)\n2026-04-21T17:47:30.960214Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:32.707746Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)\n2026-04-21T17:47:36.181007Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:36.362574Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:37.093511Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:41.720206Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)\n2026-04-21T17:47:44.706704Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)\n2026-04-21T17:47:48.602580Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:48.776278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:52.582982Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5658848090639979218, trigger=click)\n2026-04-21T17:47:57.282103Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8902771592702756196, trigger=click)\n2026-04-21T17:48:06.880071Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8902771592702756196, trigger=click)\n2026-04-21T17:48:07.656377Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8902771592702756196, trigger=click)\n2026-04-21T17:48:23.785117Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:24.032602Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:26.587906Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:32.180582Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:48:34.022831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:34.363583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:39.363585Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=83 elapsed=4.983598708s\n2026-04-21T17:48:39.363733Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 83 eligible frames\n2026-04-21T17:48:41.479158Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 3.3MB → 0.2MB (17.7x), 31 JPEGs deleted\n2026-04-21T17:48:44.682560Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 50 frames, 6.5MB → 2.0MB (3.3x), 50 JPEGs deleted\n2026-04-21T17:48:53.828851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:48:56.563636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:48:59.291654Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:59.467275Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:00.295226Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:00.453357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:49:13.301518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:49:16.454207Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:49:16.837288Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:18.900202Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:19.229376Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:20.418502Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:20.706966Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:21.269855Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:22.896443Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:23.115745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:29.927553Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1234240076182081719, trigger=click)\n2026-04-21T17:49:40.567042Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1506528968255096811, trigger=click)\n2026-04-21T17:49:40.722412Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1506528968255096811, trigger=click)\n2026-04-21T17:49:44.790415Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1506528968255096811, trigger=visual_change)\n2026-04-21T17:49:44.983133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1506528968255096811, trigger=visual_change)\n2026-04-21T17:51:50.315220Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)\n2026-04-21T17:51:53.337571Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)\n2026-04-21T17:51:59.473328Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)\n2026-04-21T17:52:02.455277Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)\n2026-04-21T17:52:05.862297Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:52:07.729450Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:52:16.901254Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:52:29.702852Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:52:36.533775Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:39.599515Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:45.700237Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:48.638819Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:54.704399Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:57.751791Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:53:10.186965Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:53:46.867091Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=116 elapsed=2.178958s\n2026-04-21T17:53:46.867199Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 116 eligible frames\n2026-04-21T17:53:49.254310Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:53:50.410056Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 56 frames, 12.3MB → 3.7MB (3.3x), 56 JPEGs deleted\n2026-04-21T17:53:51.388237Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:53:53.983042Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 58 frames, 9.0MB → 2.6MB (3.5x), 58 JPEGs deleted\n2026-04-21T17:53:56.223709Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:25.250317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:54:25.727105Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:54:32.633019Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:33.984547Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:54:35.401305Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:35.511290Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:38.494935Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:38.630637Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:41.245537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:54:45.441966Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:54:50.148639Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:50.313941Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:51.769427Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:51.915582Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:58.755543Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:55:01.758776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:55:25.745659Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3428322026263856254, trigger=click)\n2026-04-21T17:55:27.298490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3428322026263856254, trigger=visual_change)\n2026-04-21T17:55:33.297808Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3428322026263856254, trigger=visual_change)\n2026-04-21T17:55:48.491529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7233070170495400552, trigger=visual_change)\n2026-04-21T17:55:49.809101Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7233070170495400552, trigger=visual_change)\n2026-04-21T17:55:54.025243Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7233070170495400552, trigger=click)\n2026-04-21T17:55:54.165626Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7233070170495400552, trigger=click)\n2026-04-21T17:55:58.086411Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1463712168180952345, trigger=visual_change)\n2026-04-21T17:56:04.943502Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7233070170495400552, trigger=visual_change)\n2026-04-21T17:57:22.021701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:23.588692Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:30.517012Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:31.818301Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:31.972732Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:40.727074Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:42.330179Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:42.494853Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:45.528669Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:46.132479Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:46.358876Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:58:36.946109Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6074307134448385817, trigger=visual_change)\n2026-04-21T17:58:57.225929Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=117 elapsed=3.2365965s\n2026-04-21T17:58:57.226687Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 117 eligible frames\n2026-04-21T17:59:01.078632Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 58 frames, 12.8MB → 4.3MB (3.0x), 58 JPEGs deleted\n2026-04-21T17:59:04.938676Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 57 frames, 10.8MB → 4.0MB (2.7x), 57 JPEGs deleted\n2026-04-21T18:00:27.589643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9170086261988994041, trigger=click)\n2026-04-21T18:00:28.469646Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9170086261988994041, trigger=visual_change)\n2026-04-21T18:00:37.318027Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=9170086261988994041, trigger=click)\n2026-04-21T18:00:42.194585Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=9170086261988994041, trigger=click)\n2026-04-21T18:00:42.367049Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9170086261988994041, trigger=click)\n2026-04-21T18:01:07.200973Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:08.642294Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:08.873831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=visual_change)\n2026-04-21T18:01:09.931490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:10.189484Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:11.594292Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=visual_change)\n2026-04-21T18:01:12.844254Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:13.095866Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:49.712611Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5610420548393517496, trigger=click)\n2026-04-21T18:01:49.878502Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5610420548393517496, trigger=click)\n2026-04-21T18:01:54.385999Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4075180225844497251, trigger=click)\n2026-04-21T18:02:03.320721Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:04.589973Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:06.402101Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:08.459207Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:17.915785Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:20.289378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:53.363091Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:59.854804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6485088808083200508, trigger=visual_change)\n2026-04-21T18:03:23.692602Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2923142241079919801, trigger=visual_change)\n2026-04-21T18:03:38.383745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:03:38.666324Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:03:40.611795Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:03:46.691879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:03:49.696169Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:03:58.796193Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:10.455866Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=65 elapsed=5.507644708s\n2026-04-21T18:04:10.456994Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 65 eligible frames\n2026-04-21T18:04:10.784720Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:12.979583Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 8.1MB → 3.1MB (2.6x), 36 JPEGs deleted\n2026-04-21T18:04:13.808201Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:15.311040Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 5.7MB → 2.1MB (2.7x), 27 JPEGs deleted\n2026-04-21T18:04:22.870405Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:25.858949Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:47.178867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:47.409147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:48.621959Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:48.823996Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:49.613197Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:49.840589Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:54.113636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:54.333250Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:56.158603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:56.345340Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:24.653256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2923142241079919801, trigger=visual_change)\n2026-04-21T18:05:27.506644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2923142241079919801, trigger=visual_change)\n2026-04-21T18:05:52.127185Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:52.385537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:54.464579Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:54.740600Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:06:01.884193Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:06:04.917243Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:06:15.788550Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:06:16.090123Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:06:17.179267Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:07:04.992532Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:08.003078Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:17.121489Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:17.302355Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:27.025619Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:29.771279Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:31.137970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:36.086848Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:36.306717Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:37.369851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:37.634865Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:38.805129Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:39.104738Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:40.060624Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:08:30.262801Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:08:45.022177Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8543293535466770858, trigger=click)\n2026-04-21T18:09:22.083704Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=74 elapsed=6.715953125s\n2026-04-21T18:09:22.084245Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 74 eligible frames\n2026-04-21T18:09:29.000281Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 43 frames, 9.6MB → 4.0MB (2.4x), 43 JPEGs deleted\n2026-04-21T18:09:33.280652Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 5.8MB → 1.9MB (3.1x), 29 JPEGs deleted\n2026-04-21T18:10:45.149443Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:11:39.313378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=745086096190842156, trigger=visual_change)\n2026-04-21T18:11:42.305757Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=745086096190842156, trigger=click)\n2026-04-21T18:11:46.031853Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=745086096190842156, trigger=click)\n2026-04-21T18:11:46.095029Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=745086096190842156, trigger=click)\n2026-04-21T18:14:41.494244Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=68 elapsed=8.195880125s\n2026-04-21T18:14:41.495608Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 68 eligible frames\n2026-04-21T18:14:48.613051Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 8.2MB → 3.4MB (2.5x), 36 JPEGs deleted\n2026-04-21T18:14:55.232583Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 5.5MB → 2.6MB (2.1x), 30 JPEGs deleted\n2026-04-21T18:19:19.967211Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2899189334056575250, trigger=click)\n2026-04-21T18:19:20.363463Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2899189334056575250, trigger=click)\n2026-04-21T18:19:59.298075Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=53 elapsed=4.000910792s\n2026-04-21T18:19:59.298190Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 53 eligible frames\n2026-04-21T18:20:02.044649Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 5.1MB → 3.5MB (1.5x), 26 JPEGs deleted\n2026-04-21T18:20:04.900441Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.7MB → 2.4MB (1.9x), 25 JPEGs deleted\n2026-04-21T18:20:23.742659Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:27.660528Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:34.896769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:35.220946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:40.886719Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:44.353070Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:47.046701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:48.003863Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:22:59.673927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2006451494811625283, trigger=click)\n2026-04-21T18:23:02.374154Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2006451494811625283, trigger=visual_change)\n2026-04-21T18:24:55.480969Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:24:55.713808Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:25:06.770660Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=745086096190842156, trigger=click)\n2026-04-21T18:25:10.431473Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=69 elapsed=5.123936292s\n2026-04-21T18:25:10.432665Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 69 eligible frames\n2026-04-21T18:25:12.020960Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.7MB → 0.4MB (10.8x), 24 JPEGs deleted\n2026-04-21T18:25:16.809118Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 43 frames, 7.5MB → 3.7MB (2.0x), 43 JPEGs deleted\n2026-04-21T18:27:20.032159Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-868697608726996264, trigger=click)\n2026-04-21T18:27:27.209581Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5262134208844209929, trigger=click)\n2026-04-21T18:30:23.556529Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=60 elapsed=6.732438875s\n2026-04-21T18:30:23.556849Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 60 eligible frames\n2026-04-21T18:30:25.836587Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 5.3MB → 0.4MB (12.5x), 27 JPEGs deleted\n2026-04-21T18:30:29.251794Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 5.4MB → 2.7MB (2.0x), 31 JPEGs deleted\n2026-04-21T18:34:42.383568Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1898158487632236470, trigger=click)\n2026-04-21T18:35:29.435858Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 84 eligible frames\n2026-04-21T18:35:31.507303Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 35 frames, 6.8MB → 0.3MB (21.3x), 35 JPEGs deleted\n2026-04-21T18:35:34.821718Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 47 frames, 8.8MB → 3.6MB (2.4x), 47 JPEGs deleted\n2026-04-21T18:37:57.032414Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3231955623713121874, trigger=click)\n2026-04-21T18:40:36.969380Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=205 elapsed=2.13815675s\n2026-04-21T18:40:36.969491Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 205 eligible frames\n2026-04-21T18:40:42.234686Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 90 frames, 17.5MB → 0.4MB (49.4x), 90 JPEGs deleted\n2026-04-21T18:40:48.296945Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 99 frames, 14.9MB → 5.7MB (2.6x), 99 JPEGs deleted\n2026-04-21T18:40:49.626073Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 1.8MB → 0.7MB (2.8x), 14 JPEGs deleted\n2026-04-21T18:41:16.858046Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5262134208844209929, trigger=click)\n2026-04-21T18:41:18.719527Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5262134208844209929, trigger=click)\n2026-04-21T18:41:20.650032Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6762752836329409782, trigger=click)\n2026-04-21T18:42:40.957654Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7949512313665335161, trigger=visual_change)\n2026-04-21T18:42:42.714242Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7949512313665335161, trigger=click)\n2026-04-21T18:44:54.833923Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7610506607449357182, trigger=click)\n2026-04-21T18:44:55.013934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7610506607449357182, trigger=click)\n2026-04-21T18:45:54.320505Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=145 elapsed=4.6846185s\n2026-04-21T18:45:54.321215Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 145 eligible frames\n2026-04-21T18:45:58.288822Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 64 frames, 12.5MB → 0.5MB (23.2x), 64 JPEGs deleted\n2026-04-21T18:46:02.956701Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 78 frames, 11.5MB → 3.3MB (3.5x), 78 JPEGs deleted\n2026-04-21T18:48:10.510139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4242937607805845066, trigger=click)\n2026-04-21T18:48:37.207446Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5152173808593872338, trigger=visual_change)\n2026-04-21T18:49:27.537635Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5244088376274895156, trigger=click)\n2026-04-21T18:49:33.724367Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5262134208844209929, trigger=click)\n2026-04-21T18:49:44.747739Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8298107678328947062, trigger=click)\n2026-04-21T18:50:45.073176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:50:45.427101Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:50:48.592273Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:50:49.492676Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:51:01.193858Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:51:05.888682Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=50 elapsed=2.917680375s\n2026-04-21T18:51:05.889014Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 50 eligible frames\n2026-04-21T18:51:06.016628Z WARN sqlx::query: summary=\"PRAGMA wal_checkpoint(TRUNCATE)\" db.statement=\"\" rows_affected=0 rows_returned=1 elapsed=2.157649083s\n2026-04-21T18:51:06.079565Z WARN sqlx::query: summary=\"BEGIN IMMEDIATE\" db.statement=\"\" rows_affected=1 rows_returned=0 elapsed=1.385088167s\n2026-04-21T18:51:07.829374Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 3.9MB → 0.4MB (11.0x), 20 JPEGs deleted\n2026-04-21T18:51:09.736739Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 5.0MB → 1.8MB (2.7x), 28 JPEGs deleted\n2026-04-21T18:51:22.360027Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2872311122120998867, trigger=click)\n2026-04-21T18:51:22.556670Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2872311122120998867, trigger=click)\n2026-04-21T18:51:38.819030Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7947558874471225541, trigger=click)\n2026-04-21T18:51:57.414061Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:51:59.012068Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:51:59.285931Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:01.767745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:02.028355Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:05.460776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=visual_change)\n2026-04-21T18:52:07.087479Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:07.314492Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:10.214922Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:10.537340Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:13.867159Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:14.152331Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:20.367281Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:26.127826Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1650348556715134220, trigger=click)\n2026-04-21T18:52:37.517700Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=visual_change)\n2026-04-21T18:52:42.329057Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:52:42.556779Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:52:44.386173Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:52:44.700511Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:52:45.210674Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:53:17.193415Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6757993062848436258, trigger=visual_change)\n2026-04-21T18:53:30.834059Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-228480120308125164, trigger=click)\n2026-04-21T18:53:38.030882Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7225077546439863627, trigger=click)\n2026-04-21T18:53:56.421537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6437320026671683644, trigger=click)\n2026-04-21T18:54:11.726528Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1667437155962702753, trigger=visual_change)\n2026-04-21T18:54:12.117525Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1667437155962702753, trigger=click)\n2026-04-21T18:54:18.659686Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:54:19.077258Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:54:29.973760Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:56:07.789768Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6757993062848436258, trigger=click)\n2026-04-21T18:56:08.791400Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6757993062848436258, trigger=click)\n2026-04-21T18:56:14.153615Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=80 elapsed=4.402661042s\n2026-04-21T18:56:14.153722Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 80 eligible frames\n2026-04-21T18:56:16.685912Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 6.2MB → 0.7MB (8.9x), 32 JPEGs deleted\n2026-04-21T18:56:21.263739Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 46 frames, 8.2MB → 2.8MB (2.9x), 46 JPEGs deleted\n2026-04-21T18:56:25.279306Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7906564822731502105, trigger=click)\n2026-04-21T18:56:33.734840Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8817586097865472869, trigger=click)\n2026-04-21T18:56:33.980908Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8817586097865472869, trigger=click)\n2026-04-21T18:56:35.972959Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8817586097865472869, trigger=click)\n2026-04-21T18:56:40.545963Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8587160525579598601, trigger=click)\n2026-04-21T18:56:41.913814Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8587160525579598601, trigger=visual_change)\n2026-04-21T18:56:45.516942Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1910160977377320534, trigger=click)\n2026-04-21T18:56:48.740431Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1910160977377320534, trigger=click)\n2026-04-21T18:56:50.439568Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1910160977377320534, trigger=click)\n2026-04-21T18:56:50.692218Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1910160977377320534, trigger=click)\n2026-04-21T18:57:12.321118Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:12.578681Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:24.290583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:24.543696Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:34.571768Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:36.227688Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:36.475151Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:42.338601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:42.559967Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:52.824809Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:53.145543Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:59.463043Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:59.717475Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:58:00.742137Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:58:01.061497Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:59:33.960291Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9203182216527106315, trigger=visual_change)\n2026-04-21T18:59:55.990167Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T18:59:59.103830Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=visual_change)\n2026-04-21T19:00:16.116927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:00:45.352689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:00:49.596644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:00:50.432181Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:07.992732Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:08.484066Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:10.538762Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:18.922398Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:28.361625Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=84 elapsed=6.9360265s\n2026-04-21T19:01:28.362070Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 84 eligible frames\n2026-04-21T19:01:32.723075Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 33 frames, 6.4MB → 0.3MB (19.7x), 33 JPEGs deleted\n2026-04-21T19:01:42.130490Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 7.8MB → 3.3MB (2.4x), 49 JPEGs deleted\n2026-04-21T19:02:09.991879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:12.577587Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:12.835924Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:15.635601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:18.720475Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:21.708351Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:22.061150Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:28.684303Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3995027160269120472, trigger=click)\n2026-04-21T19:02:41.434491Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:41.724904Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:43.112974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:43.410843Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:47.501924Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:47.761592Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:54.205542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:54.441326Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:56.601490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:56.921256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:03:15.988643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:03:16.236342Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:03:28.508616Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:00.462064Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:01.516168Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:01.856315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:03.246448Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:03.735029Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:09.818135Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:05:03.118616Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:03.393788Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:21.352722Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=visual_change)\n2026-04-21T19:05:43.751309Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:44.029500Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:45.626672Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:45.899754Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:48.206587Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:48.449043Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:06:22.834938Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7947558874471225541, trigger=click)\n2026-04-21T19:06:52.937779Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=114 elapsed=10.747243125s\n2026-04-21T19:06:52.938152Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 114 eligible frames\n2026-04-21T19:06:57.942457Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 45 frames, 8.8MB → 0.3MB (27.2x), 45 JPEGs deleted\n2026-04-21T19:07:05.853054Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 67 frames, 10.5MB → 5.2MB (2.0x), 67 JPEGs deleted\n2026-04-21T19:07:45.088797Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:07:48.052391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6936634780821666458, trigger=click)\n2026-04-21T19:08:59.593467Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5629560013928052473, trigger=click)\n2026-04-21T19:09:29.443711Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:42.998313Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8043719072324535154, trigger=visual_change)\n2026-04-21T19:09:50.759516Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:51.052544Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:51.892698Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:09:52.651776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:55.476431Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:55.898195Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:09:58.077337Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:10:01.103980Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:10:03.105423Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:10:03.448049Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:10:08.548130Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6051188157141408655, trigger=click)\n2026-04-21T19:12:12.330759Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=70 elapsed=6.458002417s\n2026-04-21T19:12:12.332545Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 70 eligible frames\n2026-04-21T19:12:14.243079Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 5.5MB → 0.3MB (17.2x), 28 JPEGs deleted\n2026-04-21T19:12:17.558334Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 40 frames, 7.4MB → 3.6MB (2.1x), 40 JPEGs deleted\n2026-04-21T19:16:51.045938Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1370319459641728815, trigger=click)\n2026-04-21T19:16:51.249993Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1370319459641728815, trigger=click)\n2026-04-21T19:17:21.603564Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=40 elapsed=4.036037791s\n2026-04-21T19:17:21.604357Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames\n2026-04-21T19:17:22.750174Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.5MB → 0.3MB (11.2x), 18 JPEGs deleted\n2026-04-21T19:17:24.332098Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.2MB → 1.3MB (3.2x), 20 JPEGs deleted\n2026-04-21T19:22:25.748871Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=49 elapsed=1.406664416s\n2026-04-21T19:22:25.749095Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 49 eligible frames\n2026-04-21T19:22:27.704722Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 3.7MB → 0.8MB (4.5x), 22 JPEGs deleted\n2026-04-21T19:22:29.535330Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.2MB → 1.7MB (3.0x), 25 JPEGs deleted\n2026-04-21T19:23:29.233846Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9146581369053060363, trigger=click)\n2026-04-21T19:23:31.995034Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9146581369053060363, trigger=visual_change)\n2026-04-21T19:23:37.213396Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9146581369053060363, trigger=visual_change)\n2026-04-21T19:23:40.288223Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9146581369053060363, trigger=visual_change)\n2026-04-21T19:23:44.197738Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9146581369053060363, trigger=visual_change)\n2026-04-21T19:23:45.228572Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9146581369053060363, trigger=click)\n2026-04-21T19:23:56.251033Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:24:06.580019Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=335 elapsed=1.644312167s\n2026-04-21T19:24:28.860436Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:24:32.226944Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:24:32.476075Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:03.902521Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:19.205245Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:25.098627Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:36.013866Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:37.355954Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:41.831265Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:46.247585Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:46.619106Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:48.284769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:48.534452Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:49.421920Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:49.752264Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:54.600720Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:55.072357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:26:19.446041Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:26:22.718352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:27:38.437704Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=28 elapsed=8.833634334s\n2026-04-21T19:27:38.438043Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames\n2026-04-21T19:27:39.763901Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 1.9MB → 0.3MB (7.6x), 12 JPEGs deleted\n2026-04-21T19:27:41.220664Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.1MB → 0.9MB (2.2x), 14 JPEGs deleted\n2026-04-21T19:28:22.708791Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:28:23.849452Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:28:24.119301Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:14.209016Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:16.415693Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:21.726815Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:23.890645Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:24.239058Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:29.790006Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:33.098495Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:38.065869Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:44.089028Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:47.272131Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:53.977951Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:57.274496Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:30:11.986797Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:30:13.530455Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:30:28.332451Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:30:37.204947Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:26.255340Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:26.592983Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:30.448912Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:35.747969Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:37.783849Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:38.061197Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:43.216365Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:43.885407Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:46.680745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:52.971450Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:58.468469Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:58.624833Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:03.362210Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:12.706102Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:15.172982Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:23.020508Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:23.199312Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:25.387097Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:25.764201Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:30.336940Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:30.810971Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:39.812820Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:42.409145Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:44.386326Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:48.880648Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=47 elapsed=7.499136792s\n2026-04-21T19:32:48.880949Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 47 eligible frames\n2026-04-21T19:32:51.249469Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.2MB → 0.3MB (8.9x), 14 JPEGs deleted\n2026-04-21T19:32:55.969183Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 3.8MB → 1.9MB (2.0x), 31 JPEGs deleted\n2026-04-21T19:32:59.734686Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:33:00.098925Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:33:05.951997Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:34:07.213420Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:34:09.264586Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:34:16.527425Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:34:19.513647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:34:32.889780Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1128757073350665914, trigger=click)\n2026-04-21T19:34:56.078651Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4993766851008728916, trigger=click)\n2026-04-21T19:34:56.296542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4993766851008728916, trigger=click)\n2026-04-21T19:35:02.344819Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:35:05.237721Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:35:07.518599Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:35:09.938481Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:35:10.408295Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:35:26.864482Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:35:33.001733Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:35:36.479802Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:36:20.043835Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4526067242477956280, trigger=visual_change)\n2026-04-21T19:36:47.029303Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4526067242477956280, trigger=visual_change)\n2026-04-21T19:36:57.077150Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:37:33.348160Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:37:33.742029Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:37:36.579915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:37:39.754974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:38:04.951324Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=101 elapsed=8.9666755s\n2026-04-21T19:38:04.953527Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 101 eligible frames\n2026-04-21T19:38:13.751166Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 38 frames, 8.0MB → 3.5MB (2.3x), 38 JPEGs deleted\n2026-04-21T19:38:29.817220Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 61 frames, 9.7MB → 5.2MB (1.9x), 61 JPEGs deleted\n2026-04-21T19:40:34.255930Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=342 elapsed=1.0699005s\n2026-04-21T19:42:32.961192Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:42:33.305572Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:42:40.179851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=visual_change)\n2026-04-21T19:42:41.405781Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:42:41.720845Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:43:02.251464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=visual_change)\n2026-04-21T19:43:11.622532Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:43:36.525920Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=85 elapsed=6.634896167s\n2026-04-21T19:43:36.526454Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 85 eligible frames\n2026-04-21T19:43:39.459999Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 8.0MB → 3.4MB (2.3x), 36 JPEGs deleted\n2026-04-21T19:43:43.505640Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 47 frames, 7.9MB → 3.9MB (2.0x), 47 JPEGs deleted\n2026-04-21T19:44:05.999282Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=visual_change)\n2026-04-21T19:45:08.065595Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2712812971723964739, trigger=click)\n2026-04-21T19:45:46.266141Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:48:51.569666Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=64 elapsed=8.039671791s\n2026-04-21T19:48:51.570457Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 64 eligible frames\n2026-04-21T19:48:58.738540Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 7.2MB → 2.4MB (2.9x), 32 JPEGs deleted\n2026-04-21T19:49:05.383193Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 5.9MB → 2.5MB (2.4x), 30 JPEGs deleted\n2026-04-21T19:51:14.064760Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2572721248839450970, trigger=visual_change)\n2026-04-21T19:54:08.518415Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=346 elapsed=1.026887875s\n2026-04-21T19:54:12.872902Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=61 elapsed=7.44778675s\n2026-04-21T19:54:12.873164Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 61 eligible frames\n2026-04-21T19:54:16.348511Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.6MB → 1.4MB (4.1x), 25 JPEGs deleted\n2026-04-21T19:54:24.102233Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 34 frames, 6.2MB → 3.6MB (1.7x), 34 JPEGs deleted\n2026-04-21T19:59:32.063421Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=346 elapsed=1.165878958s\n2026-04-21T19:59:32.818884Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=31 elapsed=8.661332917s\n2026-04-21T19:59:32.819629Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 31 eligible frames\n2026-04-21T19:59:35.810838Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.9MB → 0.7MB (3.9x), 16 JPEGs deleted\n2026-04-21T19:59:38.924596Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.9MB → 1.5MB (2.0x), 13 JPEGs deleted\n2026-04-21T20:01:55.709776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1382976804061127003, trigger=click)\n2026-04-21T20:04:27.572999Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7658911549706194190, trigger=click)\n2026-04-21T20:04:46.630063Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=57 elapsed=7.045125334s\n2026-04-21T20:04:46.631081Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 57 eligible frames\n2026-04-21T20:04:49.684796Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 2.5MB → 0.8MB (3.2x), 23 JPEGs deleted\n2026-04-21T20:04:56.073590Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 5.7MB → 3.1MB (1.8x), 32 JPEGs deleted\n2026-04-21T20:05:04.129844Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-446124678591544690, trigger=click)\n2026-04-21T20:05:04.425723Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-446124678591544690, trigger=click)\n2026-04-21T20:09:59.238939Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=30 elapsed=2.058497125s\n2026-04-21T20:09:59.239075Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 30 eligible frames\n2026-04-21T20:10:00.874153Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.3MB → 0.2MB (5.8x), 13 JPEGs deleted\n2026-04-21T20:10:03.326064Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 1.8MB → 0.6MB (2.8x), 15 JPEGs deleted\n2026-04-21T20:15:07.129653Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=58 elapsed=3.763973459s\n2026-04-21T20:15:07.130598Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 58 eligible frames\n2026-04-21T20:15:09.088400Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 3.7MB → 0.6MB (5.9x), 26 JPEGs deleted\n2026-04-21T20:15:10.858868Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 3.9MB → 1.0MB (3.9x), 30 JPEGs deleted\n2026-04-21T20:18:21.110736Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=354 elapsed=1.169721666s\nzsh: terminated npx screenpipe@latest record --disable-audio --ignored-windows \"Boosteroid\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-start\ndetected hardware tier: Mid\nwarning: parakeet is not supported on this platform, using whisper-tiny instead\n2026-04-22T09:15:19.880360Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store\nchecking permissions...\n screen recording: ok\n accessibility: ok\n2026-04-22T09:15:19.951248Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6\n2026-04-22T09:15:20.675958Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor\n2026-04-22T09:15:20.677447Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)\n2026-04-22T09:15:20.677800Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)\n2026-04-22T09:15:20.709542Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true\n2026-04-22T09:15:20.709596Z INFO screenpipe: meeting detector enabled — independent of transcription mode\n2026-04-22T09:15:20.709849Z INFO screenpipe: API server listening on 127.0.0.1:3030 (localhost only)\n2026-04-22T09:15:20.709774Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)\n2026-04-22T09:15:20.709806Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)\n2026-04-22T09:15:20.709863Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key\n2026-04-22T09:15:20.709908Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager\n2026-04-22T09:15:20.721517Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-22T09:15:20.725781Z INFO screenpipe_core::pipes: loaded pipe: day-recap\n2026-04-22T09:15:20.725991Z INFO screenpipe_core::pipes: loaded pipe: standup-update\n2026-04-22T09:15:20.726387Z INFO screenpipe_core::pipes: loaded pipe: ai-habits\n2026-04-22T09:15:20.726548Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown\n2026-04-22T09:15:20.726690Z INFO screenpipe_core::pipes: loaded pipe: video-export\n2026-04-22T09:15:20.727224Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary\n2026-04-22T09:15:20.727242Z INFO screenpipe_core::pipes: loaded 6 pipes from \"/Users/lukas/.screenpipe/pipes\"\n\n\n\n _ \n __________________ ___ ____ ____ (_____ ___ \n / ___/ ___/ ___/ _ \\/ _ \\/ __ \\ / __ \\/ / __ \\/ _ \\\n (__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/\n/____/\\___/_/ \\___/\\___/_/ /_/ / .___/_/ .___/\\___/ \n /_/ /_/ \n\n\n\npower AI by everything you've seen, said or heard\nopen source | runs locally | developer friendly\n\n\n┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ true │\n│ vision disabled │ false │\n│ pause on DRM content │ false │\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n│ ignored windows │ [\"Boosteroid\"] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n2026-04-22T09:15:20.728614Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n│ api auth │ enabled │\n2026-04-22T09:15:20.742172Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n│ encrypt secrets │ disabled │\n│ retention days │ 14 │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ id: 1 │\n│ │ id: 2 │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ disabled │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-22T09:15:20.742788Z INFO screenpipe: starting UI event capture\n2026-04-22T09:15:20.755824Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-22T09:15:20.769629Z INFO screenpipe_engine::ui_recorder: UI recording session started: e7729066-2ab4-4bf0-9d48-0c9790a4ee79\n2026-04-22T09:15:20.769680Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-22T09:15:20.769789Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-21 06:15:20.769785 UTC to 2026-04-22 06:15:20.769785 UTC)\n2026-04-22T09:15:20.770644Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-22T09:15:20.778181Z INFO screenpipe_engine::server: Server listening on 127.0.0.1:3030\n2026-04-22T09:15:20.789960Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-22T09:15:21.591614Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-22T09:15:21.591646Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-22T09:15:21.591751Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-22T09:15:21.919088Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-22T09:15:21.919141Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-22T09:15:21.919158Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)\n2026-04-22T09:15:21.919163Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-22T09:15:21.919167Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)\n2026-04-22T09:15:23.315305Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-22T09:15:23.445619Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=68471, dur=74ms\n2026-04-22T09:15:23.697846Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-22T09:15:23.856559Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=68472, dur=115ms\n2026-04-22T09:15:23.858032Z INFO sck_rs::stream_manager: invalidated persistent stream for display 2\n2026-04-22T09:15:25.542035Z WARN sqlx::query: summary=\"SELECT f.id, f.timestamp, f.offset_index, …\" db.statement=\"\\n\\nSELECT\\n f.id,\\n f.timestamp,\\n f.offset_index,\\n COALESCE(\\n SUBSTR(f.full_text, 1, 200),\\n SUBSTR(f.accessibility_text, 1, 200),\\n (\\n SELECT\\n SUBSTR(ot.text, 1, 200)\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as text,\\n COALESCE(\\n f.app_name,\\n (\\n SELECT\\n ot.app_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as app_name,\\n COALESCE(\\n f.window_name,\\n (\\n SELECT\\n ot.window_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as window_name,\\n COALESCE(vc.device_name, f.device_name) as screen_device,\\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\\n COALESCE(vc.fps, 0.033) as chunk_fps,\\n f.browser_url,\\n f.machine_id\\nFROM\\n frames f\\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\\nWHERE\\n f.timestamp >= ?1\\n AND f.timestamp <= ?2\\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\\nORDER BY\\n f.timestamp DESC,\\n f.offset_index DESC\\nLIMIT\\n 10000\\n\" rows_affected=0 rows_returned=7744 elapsed=4.771776083s\n2026-04-22T09:15:25.568771Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 7744 frame entries, coverage from 2026-04-21 06:15:20.769785 UTC","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.12291667,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.12708333,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.24583334,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.25,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"✳ Build full day activity summary from Screenpipe (claude)","depth":2,"bounds":{"left":0.36875,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.37291667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.49166667,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.49583334,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.6145833,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.61875,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.7375,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.7416667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"ec2-user@ip-10-30-159-186:~ (-zsh)","depth":2,"bounds":{"left":0.86041665,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.8645833,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.9548611,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"screenpipe\"","depth":1,"bounds":{"left":0.47083333,"top":0.033333335,"width":0.058333334,"height":0.017777778},"role_description":"text"}]...
|
-6925786283960583444
|
2646348668002215289
|
visual_change
|
accessibility
|
NULL
|
2026-04-21T16:41:34.967355Z INFO screenpipe_engin 2026-04-21T16:41:34.967355Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)
2026-04-21T16:41:35.133385Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)
2026-04-21T16:43:15.919099Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8254246256813675665, trigger=click)
2026-04-21T16:43:44.014066Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8254246256813675665, trigger=visual_change)
2026-04-21T16:44:45.410923Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=35 elapsed=2.419201375s
2026-04-21T16:44:45.411045Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 35 eligible frames
2026-04-21T16:44:46.383629Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.8MB → 0.3MB (9.5x), 15 JPEGs deleted
2026-04-21T16:44:47.792527Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.6MB → 0.8MB (4.3x), 18 JPEGs deleted
2026-04-21T16:49:53.308820Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=47 elapsed=5.487768917s
2026-04-21T16:49:53.309371Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 47 eligible frames
2026-04-21T16:49:54.673701Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.9MB → 0.3MB (13.1x), 21 JPEGs deleted
2026-04-21T16:49:56.314871Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.7MB → 1.2MB (4.0x), 24 JPEGs deleted
2026-04-21T16:54:59.385017Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=62 elapsed=3.057419917s
2026-04-21T16:54:59.385210Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 62 eligible frames
2026-04-21T16:55:00.998239Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.8MB → 0.5MB (10.3x), 26 JPEGs deleted
2026-04-21T16:55:03.739041Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 34 frames, 5.8MB → 2.6MB (2.2x), 34 JPEGs deleted
2026-04-21T16:55:17.768634Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)
2026-04-21T17:23:59.183039Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)
2026-04-21T17:23:59.216966Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2
2026-04-21T17:24:00.832399Z INFO screenpipe_engine::vision_manager::monitor_watcher: Monitor 2 disconnected, stopping recording
2026-04-21T17:24:00.832464Z INFO screenpipe_engine::vision_manager::manager: Stopping vision recording for monitor 2
2026-04-21T17:24:00.832336Z INFO sck_rs::stream_manager: stopped 2 persistent stream(s)
2026-04-21T17:24:04.654209Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)
2026-04-21T17:24:30.699969Z ERROR screenpipe_engine::resource_monitor: Failed to send resource usage to PostHog: error sending request for url (https://us.i.posthog.com/capture/)
2026-04-21T17:25:01.085383Z INFO screenpipe_engine::vision_manager::monitor_watcher: Monitor 2 reconnected, resuming recording
2026-04-21T17:25:01.273818Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-04-21T17:25:01.273870Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-04-21T17:25:01.273896Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-04-21T17:25:02.310236Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)
2026-04-21T17:25:02.808234Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=66228, dur=365ms
2026-04-21T17:25:04.889075Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:07.887565Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:10.918390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:14.039034Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:17.160521Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:26.096276Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:29.061270Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:32.067380Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:35.263701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:41.164753Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:25:44.239172Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:25:47.149320Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:25:50.242915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:25:53.308794Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:25:56.218138Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:25:59.144297Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:26:05.965946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:08.584110Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:11.350189Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:14.339609Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:17.398251Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:20.782119Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:23.385506Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:26.427626Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:29.573661Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:32.450744Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:38.464132Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:41.456915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:44.496278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:47.541313Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:50.596256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:53.597171Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:56.764522Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:59.751576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:02.719391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:08.829090Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:11.800601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:14.811724Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:17.855339Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:26.878741Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:29.933020Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:32.947216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:36.041239Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:38.993657Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:42.039373Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:45.172399Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:48.081804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:51.142939Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:54.169253Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:00.341347Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:03.322832Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:06.631198Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:09.537232Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:12.406113Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:15.381764Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:15.806839Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=44 elapsed=5.777403s
2026-04-21T17:28:15.806951Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 44 eligible frames
2026-04-21T17:28:17.108106Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.9MB → 0.3MB (13.1x), 21 JPEGs deleted
2026-04-21T17:28:18.370832Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.6MB → 0.5MB (7.8x), 21 JPEGs deleted
2026-04-21T17:28:18.461408Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:22.068097Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:24.604711Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:27.608060Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:33.774822Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:36.697278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:39.729251Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:42.728755Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:45.748204Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:48.768910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:51.814752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:54.970698Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:57.869874Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:00.913837Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:07.461529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:10.043928Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:13.182411Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:16.080133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:19.108570Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:22.322033Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:25.172666Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:28.398354Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:31.249083Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:34.289745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:40.303310Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:43.308015Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:46.360649Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:49.356069Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:52.450205Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:55.422975Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:58.446390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:01.491253Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:04.500380Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:16.830925Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:19.856895Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:23.100486Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:25.938910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:28.953603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:32.061536Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:35.030958Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:38.162895Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:41.148165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:44.019513Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:50.259576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:53.148070Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:56.309979Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:59.185610Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:02.278235Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:05.287341Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:08.409426Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:11.489977Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:14.319338Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:17.348153Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:23.351025Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:26.427529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:29.337254Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:32.386165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:35.653387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:38.430216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:41.428909Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:44.432459Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:47.448603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:50.432780Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:56.535727Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:59.590792Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:32:02.621444Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:32:05.627964Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:32:08.710139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:32:11.765247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:32:14.787638Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:32:17.876480Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)
2026-04-21T17:32:20.977937Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)
2026-04-21T17:32:29.888970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8116870867026519513, trigger=click)
2026-04-21T17:32:33.123648Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)
2026-04-21T17:33:03.355082Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)
2026-04-21T17:33:05.517897Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=click)
2026-04-21T17:33:06.399783Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)
2026-04-21T17:33:09.478894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)
2026-04-21T17:33:19.151217Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
2026-04-21T17:33:21.431006Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6379516332769645744, trigger=visual_change)
2026-04-21T17:33:33.494463Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7500553589467718193, trigger=visual_change)
2026-04-21T17:34:00.725974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2275300387038012183, trigger=click)
2026-04-21T17:34:07.214867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2063499064757931498, trigger=visual_change)
2026-04-21T17:34:31.480257Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=visual_change)
2026-04-21T17:34:34.482370Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=visual_change)
2026-04-21T17:35:53.801549Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7652433743467416760, trigger=click)
2026-04-21T17:35:53.954311Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7652433743467416760, trigger=click)
2026-04-21T17:35:54.740695Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7652433743467416760, trigger=click)
2026-04-21T17:36:06.295752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5335392039126841536, trigger=visual_change)
2026-04-21T17:36:28.893337Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5927780310531960690, trigger=visual_change)
2026-04-21T17:38:15.647110Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)
2026-04-21T17:38:17.801901Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)
2026-04-21T17:38:17.962831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)
2026-04-21T17:38:22.819710Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7137414965816212018, trigger=click)
2026-04-21T17:38:22.917176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=click)
2026-04-21T17:38:23.042830Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=28 elapsed=3.882772625s
2026-04-21T17:38:23.042920Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames
2026-04-21T17:38:24.717251Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 2.8MB → 0.4MB (6.3x), 18 JPEGs deleted
2026-04-21T17:38:26.727027Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.1MB → 0.2MB (5.7x), 10 JPEGs deleted
2026-04-21T17:38:35.971287Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=click)
2026-04-21T17:38:36.106246Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7137414965816212018, trigger=click)
2026-04-21T17:38:37.368009Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=visual_change)
2026-04-21T17:38:43.431620Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8741356672789266752, trigger=visual_change)
2026-04-21T17:38:49.319886Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5149767057649118192, trigger=click)
2026-04-21T17:38:49.477325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5149767057649118192, trigger=click)
2026-04-21T17:38:51.019231Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5149767057649118192, trigger=visual_change)
2026-04-21T17:39:04.249890Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7355944135161080033, trigger=click)
2026-04-21T17:39:23.256256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4983811095206295613, trigger=click)
2026-04-21T17:39:23.385820Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4983811095206295613, trigger=click)
2026-04-21T17:39:24.367407Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4983811095206295613, trigger=visual_change)
2026-04-21T17:39:24.895784Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4983811095206295613, trigger=click)
2026-04-21T17:39:46.438272Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=372069959735326508, trigger=visual_change)
2026-04-21T17:39:49.101085Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4964238948655865655, trigger=visual_change)
2026-04-21T17:39:58.083750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)
2026-04-21T17:40:01.375315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)
2026-04-21T17:40:04.195859Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)
2026-04-21T17:40:12.117004Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2989278587618621353, trigger=click)
2026-04-21T17:40:12.244666Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2989278587618621353, trigger=click)
2026-04-21T17:40:13.925024Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2989278587618621353, trigger=visual_change)
2026-04-21T17:40:23.294147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=visual_change)
2026-04-21T17:40:55.989498Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3182674559678505325, trigger=click)
2026-04-21T17:40:58.413325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3182674559678505325, trigger=visual_change)
2026-04-21T17:41:23.101094Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5616874458658671741, trigger=visual_change)
2026-04-21T17:41:29.504783Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2744778324521007391, trigger=visual_change)
2026-04-21T17:42:13.830352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6664909184667365933, trigger=click)
2026-04-21T17:42:13.905614Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=click)
2026-04-21T17:42:14.689622Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6664909184667365933, trigger=click)
2026-04-21T17:43:13.738786Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5563100798252317961, trigger=visual_change)
2026-04-21T17:43:31.769731Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=40 elapsed=4.870364084s
2026-04-21T17:43:31.770321Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames
2026-04-21T17:43:32.514133Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.1MB → 0.1MB (8.9x), 11 JPEGs deleted
2026-04-21T17:43:34.391762Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 3.0MB → 0.5MB (5.9x), 27 JPEGs deleted
2026-04-21T17:44:19.021163Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-263228306577803226, trigger=click)
2026-04-21T17:44:32.036390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8360298266192684601, trigger=click)
2026-04-21T17:44:33.859332Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8360298266192684601, trigger=visual_change)
2026-04-21T17:44:42.936361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=visual_change)
2026-04-21T17:44:46.420662Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=visual_change)
2026-04-21T17:46:17.725934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7286082578618580481, trigger=click)
2026-04-21T17:46:18.733766Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=click)
2026-04-21T17:46:19.506484Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7286082578618580481, trigger=click)
2026-04-21T17:46:20.729229Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=click)
2026-04-21T17:46:27.956655Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8942982652250876029, trigger=click)
2026-04-21T17:46:29.490950Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8942982652250876029, trigger=click)
2026-04-21T17:46:45.634752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5761541209609855314, trigger=click)
2026-04-21T17:46:45.971315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5761541209609855314, trigger=click)
2026-04-21T17:46:50.988867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5607564885929685542, trigger=click)
2026-04-21T17:46:51.601750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5607564885929685542, trigger=click)
2026-04-21T17:46:56.353647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4497988824039212795, trigger=click)
2026-04-21T17:47:24.716661Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4864885406063659925, trigger=visual_change)
2026-04-21T17:47:29.793942Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:30.097043Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)
2026-04-21T17:47:30.960214Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:32.707746Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)
2026-04-21T17:47:36.181007Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:36.362574Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:37.093511Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:41.720206Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)
2026-04-21T17:47:44.706704Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)
2026-04-21T17:47:48.602580Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:48.776278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:52.582982Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5658848090639979218, trigger=click)
2026-04-21T17:47:57.282103Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8902771592702756196, trigger=click)
2026-04-21T17:48:06.880071Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8902771592702756196, trigger=click)
2026-04-21T17:48:07.656377Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8902771592702756196, trigger=click)
2026-04-21T17:48:23.785117Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:48:24.032602Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:48:26.587906Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:48:32.180582Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)
2026-04-21T17:48:34.022831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:48:34.363583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:48:39.363585Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=83 elapsed=4.983598708s
2026-04-21T17:48:39.363733Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 83 eligible frames
2026-04-21T17:48:41.479158Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 3.3MB → 0.2MB (17.7x), 31 JPEGs deleted
2026-04-21T17:48:44.682560Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 50 frames, 6.5MB → 2.0MB (3.3x), 50 JPEGs deleted
2026-04-21T17:48:53.828851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)
2026-04-21T17:48:56.563636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)
2026-04-21T17:48:59.291654Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:48:59.467275Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:00.295226Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:00.453357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=visual_change)
2026-04-21T17:49:13.301518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)
2026-04-21T17:49:16.454207Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)
2026-04-21T17:49:16.837288Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:18.900202Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:19.229376Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:20.418502Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:20.706966Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:21.269855Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:22.896443Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:23.115745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:29.927553Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1234240076182081719, trigger=click)
2026-04-21T17:49:40.567042Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1506528968255096811, trigger=click)
2026-04-21T17:49:40.722412Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1506528968255096811, trigger=click)
2026-04-21T17:49:44.790415Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1506528968255096811, trigger=visual_change)
2026-04-21T17:49:44.983133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1506528968255096811, trigger=visual_change)
2026-04-21T17:51:50.315220Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)
2026-04-21T17:51:53.337571Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)
2026-04-21T17:51:59.473328Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)
2026-04-21T17:52:02.455277Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)
2026-04-21T17:52:05.862297Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)
2026-04-21T17:52:07.729450Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)
2026-04-21T17:52:16.901254Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)
2026-04-21T17:52:29.702852Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)
2026-04-21T17:52:36.533775Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)
2026-04-21T17:52:39.599515Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)
2026-04-21T17:52:45.700237Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)
2026-04-21T17:52:48.638819...
|
NULL
|
|
68473
|
1552
|
1
|
2026-04-22T06:15:24.954243+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-22/1776 /Users/lukas/.screenpipe/data/data/2026-04-22/1776838524954_m1.jpg...
|
iTerm2
|
screenpipe"
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
2026-04-21T16:39:31.752392Z INFO screenpipe_engin 2026-04-21T16:39:31.752392Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4079194444055345358, trigger=click)
2026-04-21T16:39:31.941130Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4079194444055345358, trigger=click)
2026-04-21T16:39:37.082813Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=50 elapsed=2.555752875s
2026-04-21T16:39:37.082914Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 50 eligible frames
2026-04-21T16:39:39.896800Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.4MB → 0.9MB (4.9x), 24 JPEGs deleted
2026-04-21T16:39:42.979598Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.6MB → 1.9MB (2.5x), 24 JPEGs deleted
2026-04-21T16:39:54.138147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=869328293033429183, trigger=click)
2026-04-21T16:41:34.967355Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)
2026-04-21T16:41:35.133385Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)
2026-04-21T16:43:15.919099Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8254246256813675665, trigger=click)
2026-04-21T16:43:44.014066Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8254246256813675665, trigger=visual_change)
2026-04-21T16:44:45.410923Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=35 elapsed=2.419201375s
2026-04-21T16:44:45.411045Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 35 eligible frames
2026-04-21T16:44:46.383629Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.8MB → 0.3MB (9.5x), 15 JPEGs deleted
2026-04-21T16:44:47.792527Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.6MB → 0.8MB (4.3x), 18 JPEGs deleted
2026-04-21T16:49:53.308820Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=47 elapsed=5.487768917s
2026-04-21T16:49:53.309371Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 47 eligible frames
2026-04-21T16:49:54.673701Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.9MB → 0.3MB (13.1x), 21 JPEGs deleted
2026-04-21T16:49:56.314871Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.7MB → 1.2MB (4.0x), 24 JPEGs deleted
2026-04-21T16:54:59.385017Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=62 elapsed=3.057419917s
2026-04-21T16:54:59.385210Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 62 eligible frames
2026-04-21T16:55:00.998239Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.8MB → 0.5MB (10.3x), 26 JPEGs deleted
2026-04-21T16:55:03.739041Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 34 frames, 5.8MB → 2.6MB (2.2x), 34 JPEGs deleted
2026-04-21T16:55:17.768634Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)
2026-04-21T17:23:59.183039Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)
2026-04-21T17:23:59.216966Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2
2026-04-21T17:24:00.832399Z INFO screenpipe_engine::vision_manager::monitor_watcher: Monitor 2 disconnected, stopping recording
2026-04-21T17:24:00.832464Z INFO screenpipe_engine::vision_manager::manager: Stopping vision recording for monitor 2
2026-04-21T17:24:00.832336Z INFO sck_rs::stream_manager: stopped 2 persistent stream(s)
2026-04-21T17:24:04.654209Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)
2026-04-21T17:24:30.699969Z ERROR screenpipe_engine::resource_monitor: Failed to send resource usage to PostHog: error sending request for url (https://us.i.posthog.com/capture/)
2026-04-21T17:25:01.085383Z INFO screenpipe_engine::vision_manager::monitor_watcher: Monitor 2 reconnected, resuming recording
2026-04-21T17:25:01.273818Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-04-21T17:25:01.273870Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-04-21T17:25:01.273896Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-04-21T17:25:02.310236Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)
2026-04-21T17:25:02.808234Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=66228, dur=365ms
2026-04-21T17:25:04.889075Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:07.887565Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:10.918390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:14.039034Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:17.160521Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:26.096276Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:29.061270Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:32.067380Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:35.263701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:41.164753Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:25:44.239172Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:25:47.149320Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:25:50.242915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:25:53.308794Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:25:56.218138Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:25:59.144297Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:26:05.965946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:08.584110Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:11.350189Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:14.339609Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:17.398251Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:20.782119Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:23.385506Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:26.427626Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:29.573661Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:32.450744Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:38.464132Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:41.456915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:44.496278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:47.541313Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:50.596256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:53.597171Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:56.764522Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:59.751576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:02.719391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:08.829090Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:11.800601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:14.811724Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:17.855339Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:26.878741Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:29.933020Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:32.947216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:36.041239Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:38.993657Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:42.039373Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:45.172399Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:48.081804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:51.142939Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:54.169253Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:00.341347Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:03.322832Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:06.631198Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:09.537232Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:12.406113Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:15.381764Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:15.806839Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=44 elapsed=5.777403s
2026-04-21T17:28:15.806951Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 44 eligible frames
2026-04-21T17:28:17.108106Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.9MB → 0.3MB (13.1x), 21 JPEGs deleted
2026-04-21T17:28:18.370832Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.6MB → 0.5MB (7.8x), 21 JPEGs deleted
2026-04-21T17:28:18.461408Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:22.068097Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:24.604711Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:27.608060Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:33.774822Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:36.697278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:39.729251Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:42.728755Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:45.748204Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:48.768910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:51.814752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:54.970698Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:57.869874Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:00.913837Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:07.461529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:10.043928Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:13.182411Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:16.080133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:19.108570Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:22.322033Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:25.172666Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:28.398354Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:31.249083Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:34.289745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:40.303310Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:43.308015Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:46.360649Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:49.356069Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:52.450205Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:55.422975Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:58.446390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:01.491253Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:04.500380Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:16.830925Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:19.856895Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:23.100486Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:25.938910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:28.953603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:32.061536Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:35.030958Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:38.162895Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:41.148165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:44.019513Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:50.259576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:53.148070Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:56.309979Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:59.185610Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:02.278235Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:05.287341Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:08.409426Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:11.489977Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:14.319338Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:17.348153Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:23.351025Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:26.427529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:29.337254Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:32.386165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:35.653387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:38.430216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:41.428909Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:44.432459Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:47.448603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:50.432780Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:56.535727Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:59.590792Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:32:02.621444Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:32:05.627964Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:32:08.710139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:32:11.765247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:32:14.787638Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:32:17.876480Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)
2026-04-21T17:32:20.977937Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)
2026-04-21T17:32:29.888970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8116870867026519513, trigger=click)
2026-04-21T17:32:33.123648Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)
2026-04-21T17:33:03.355082Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)
2026-04-21T17:33:05.517897Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=click)
2026-04-21T17:33:06.399783Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)
2026-04-21T17:33:09.478894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)
2026-04-21T17:33:19.151217Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
2026-04-21T17:33:21.431006Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6379516332769645744, trigger=visual_change)
2026-04-21T17:33:33.494463Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7500553589467718193, trigger=visual_change)
2026-04-21T17:34:00.725974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2275300387038012183, trigger=click)
2026-04-21T17:34:07.214867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2063499064757931498, trigger=visual_change)
2026-04-21T17:34:31.480257Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=visual_change)
2026-04-21T17:34:34.482370Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=visual_change)
2026-04-21T17:35:53.801549Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7652433743467416760, trigger=click)
2026-04-21T17:35:53.954311Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7652433743467416760, trigger=click)
2026-04-21T17:35:54.740695Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7652433743467416760, trigger=click)
2026-04-21T17:36:06.295752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5335392039126841536, trigger=visual_change)
2026-04-21T17:36:28.893337Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5927780310531960690, trigger=visual_change)
2026-04-21T17:38:15.647110Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)
2026-04-21T17:38:17.801901Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)
2026-04-21T17:38:17.962831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)
2026-04-21T17:38:22.819710Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7137414965816212018, trigger=click)
2026-04-21T17:38:22.917176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=click)
2026-04-21T17:38:23.042830Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=28 elapsed=3.882772625s
2026-04-21T17:38:23.042920Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames
2026-04-21T17:38:24.717251Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 2.8MB → 0.4MB (6.3x), 18 JPEGs deleted
2026-04-21T17:38:26.727027Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.1MB → 0.2MB (5.7x), 10 JPEGs deleted
2026-04-21T17:38:35.971287Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=click)
2026-04-21T17:38:36.106246Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7137414965816212018, trigger=click)
2026-04-21T17:38:37.368009Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=visual_change)
2026-04-21T17:38:43.431620Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8741356672789266752, trigger=visual_change)
2026-04-21T17:38:49.319886Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5149767057649118192, trigger=click)
2026-04-21T17:38:49.477325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5149767057649118192, trigger=click)
2026-04-21T17:38:51.019231Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5149767057649118192, trigger=visual_change)
2026-04-21T17:39:04.249890Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7355944135161080033, trigger=click)
2026-04-21T17:39:23.256256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4983811095206295613, trigger=click)
2026-04-21T17:39:23.385820Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4983811095206295613, trigger=click)
2026-04-21T17:39:24.367407Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4983811095206295613, trigger=visual_change)
2026-04-21T17:39:24.895784Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4983811095206295613, trigger=click)
2026-04-21T17:39:46.438272Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=372069959735326508, trigger=visual_change)
2026-04-21T17:39:49.101085Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4964238948655865655, trigger=visual_change)
2026-04-21T17:39:58.083750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)
2026-04-21T17:40:01.375315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)
2026-04-21T17:40:04.195859Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)
2026-04-21T17:40:12.117004Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2989278587618621353, trigger=click)
2026-04-21T17:40:12.244666Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2989278587618621353, trigger=click)
2026-04-21T17:40:13.925024Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2989278587618621353, trigger=visual_change)
2026-04-21T17:40:23.294147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=visual_change)
2026-04-21T17:40:55.989498Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3182674559678505325, trigger=click)
2026-04-21T17:40:58.413325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3182674559678505325, trigger=visual_change)
2026-04-21T17:41:23.101094Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5616874458658671741, trigger=visual_change)
2026-04-21T17:41:29.504783Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2744778324521007391, trigger=visual_change)
2026-04-21T17:42:13.830352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6664909184667365933, trigger=click)
2026-04-21T17:42:13.905614Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=click)
2026-04-21T17:42:14.689622Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6664909184667365933, trigger=click)
2026-04-21T17:43:13.738786Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5563100798252317961, trigger=visual_change)
2026-04-21T17:43:31.769731Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=40 elapsed=4.870364084s
2026-04-21T17:43:31.770321Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames
2026-04-21T17:43:32.514133Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.1MB → 0.1MB (8.9x), 11 JPEGs deleted
2026-04-21T17:43:34.391762Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 3.0MB → 0.5MB (5.9x), 27 JPEGs deleted
2026-04-21T17:44:19.021163Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-263228306577803226, trigger=click)
2026-04-21T17:44:32.036390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8360298266192684601, trigger=click)
2026-04-21T17:44:33.859332Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8360298266192684601, trigger=visual_change)
2026-04-21T17:44:42.936361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=visual_change)
2026-04-21T17:44:46.420662Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=visual_change)
2026-04-21T17:46:17.725934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7286082578618580481, trigger=click)
2026-04-21T17:46:18.733766Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=click)
2026-04-21T17:46:19.506484Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7286082578618580481, trigger=click)
2026-04-21T17:46:20.729229Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=click)
2026-04-21T17:46:27.956655Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8942982652250876029, trigger=click)
2026-04-21T17:46:29.490950Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8942982652250876029, trigger=click)
2026-04-21T17:46:45.634752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5761541209609855314, trigger=click)
2026-04-21T17:46:45.971315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5761541209609855314, trigger=click)
2026-04-21T17:46:50.988867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5607564885929685542, trigger=click)
2026-04-21T17:46:51.601750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5607564885929685542, trigger=click)
2026-04-21T17:46:56.353647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4497988824039212795, trigger=click)
2026-04-21T17:47:24.716661Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4864885406063659925, trigger=visual_change)
2026-04-21T17:47:29.793942Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:30.097043Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)
2026-04-21T17:47:30.960214Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:32.707746Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)
2026-04-21T17:47:36.181007Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:36.362574Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:37.093511Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:41.720206Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)
2026-04-21T17:47:44.706704Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)
2026-04-21T17:47:48.602580Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:48.776278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:52.582982Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5658848090639979218, trigger=click)
2026-04-21T17:47:57.282103Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8902771592702756196, trigger=click)
2026-04-21T17:48:06.880071Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8902771592702756196, trigger=click)
2026-04-21T17:48:07.656377Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8902771592702756196, trigger=click)
2026-04-21T17:48:23.785117Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:48:24.032602Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:48:26.587906Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:48:32.180582Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)
2026-04-21T17:48:34.022831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:48:34.363583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:48:39.363585Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=83 elapsed=4.983598708s
2026-04-21T17:48:39.363733Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 83 eligible frames
2026-04-21T17:48:41.479158Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 3.3MB → 0.2MB (17.7x), 31 JPEGs deleted
2026-04-21T17:48:44.682560Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 50 frames, 6.5MB → 2.0MB (3.3x), 50 JPEGs deleted
2026-04-21T17:48:53.828851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)
2026-04-21T17:48:56.563636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)
2026-04-21T17:48:59.291654Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:48:59.467275Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:00.295226Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:00.453357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=visual_change)
2026-04-21T17:49:13.301518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)
2026-04-21T17:49:16.454207Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)
2026-04-21T17:49:16.837288Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:18.900202Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:19.229376Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:20.418502Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:20.706966Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:21.269855Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:22.896443Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:23.115745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:29.927553Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1234240076182081719, trigger=click)
2026-04-21T17:49:40.567042Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1506528968255096811, trigger=click)
2026-04-21T17:49:40.722412Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1506528968255096811, trigger=click)
2026-04-21T17:49:44.790415Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1506528968255096811, trigger=visual_change)
2026-04-21T17:49:44.983133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1506528968255096811, trigger=visual_change)
2026-04-21T17:51:50.315220Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)
2026-04-21T17:51:53.337571Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)
2026-04-21T17:51:59.473328Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)
2026-04-21T17:52:02.455277Z INFO screenpipe_engine::event_driven_capture: content dedup: skippi...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"2026-04-21T16:39:31.752392Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4079194444055345358, trigger=click)\n2026-04-21T16:39:31.941130Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4079194444055345358, trigger=click)\n2026-04-21T16:39:37.082813Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=50 elapsed=2.555752875s\n2026-04-21T16:39:37.082914Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 50 eligible frames\n2026-04-21T16:39:39.896800Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.4MB → 0.9MB (4.9x), 24 JPEGs deleted\n2026-04-21T16:39:42.979598Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.6MB → 1.9MB (2.5x), 24 JPEGs deleted\n2026-04-21T16:39:54.138147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=869328293033429183, trigger=click)\n2026-04-21T16:41:34.967355Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:41:35.133385Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:43:15.919099Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8254246256813675665, trigger=click)\n2026-04-21T16:43:44.014066Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8254246256813675665, trigger=visual_change)\n2026-04-21T16:44:45.410923Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=35 elapsed=2.419201375s\n2026-04-21T16:44:45.411045Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 35 eligible frames\n2026-04-21T16:44:46.383629Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.8MB → 0.3MB (9.5x), 15 JPEGs deleted\n2026-04-21T16:44:47.792527Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.6MB → 0.8MB (4.3x), 18 JPEGs deleted\n2026-04-21T16:49:53.308820Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=47 elapsed=5.487768917s\n2026-04-21T16:49:53.309371Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 47 eligible frames\n2026-04-21T16:49:54.673701Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.9MB → 0.3MB (13.1x), 21 JPEGs deleted\n2026-04-21T16:49:56.314871Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.7MB → 1.2MB (4.0x), 24 JPEGs deleted\n2026-04-21T16:54:59.385017Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=62 elapsed=3.057419917s\n2026-04-21T16:54:59.385210Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 62 eligible frames\n2026-04-21T16:55:00.998239Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.8MB → 0.5MB (10.3x), 26 JPEGs deleted\n2026-04-21T16:55:03.739041Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 34 frames, 5.8MB → 2.6MB (2.2x), 34 JPEGs deleted\n2026-04-21T16:55:17.768634Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)\n2026-04-21T17:23:59.183039Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)\n2026-04-21T17:23:59.216966Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2\n2026-04-21T17:24:00.832399Z INFO screenpipe_engine::vision_manager::monitor_watcher: Monitor 2 disconnected, stopping recording\n2026-04-21T17:24:00.832464Z INFO screenpipe_engine::vision_manager::manager: Stopping vision recording for monitor 2\n2026-04-21T17:24:00.832336Z INFO sck_rs::stream_manager: stopped 2 persistent stream(s)\n2026-04-21T17:24:04.654209Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-21T17:24:30.699969Z ERROR screenpipe_engine::resource_monitor: Failed to send resource usage to PostHog: error sending request for url (https://us.i.posthog.com/capture/)\n2026-04-21T17:25:01.085383Z INFO screenpipe_engine::vision_manager::monitor_watcher: Monitor 2 reconnected, resuming recording\n2026-04-21T17:25:01.273818Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-21T17:25:01.273870Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-21T17:25:01.273896Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-21T17:25:02.310236Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-21T17:25:02.808234Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=66228, dur=365ms\n2026-04-21T17:25:04.889075Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:07.887565Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:10.918390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:14.039034Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:17.160521Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:26.096276Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:29.061270Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:32.067380Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:35.263701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:41.164753Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:44.239172Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:47.149320Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:50.242915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:53.308794Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:56.218138Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:59.144297Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:26:05.965946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:08.584110Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:11.350189Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:14.339609Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:17.398251Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:20.782119Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:23.385506Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:26.427626Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:29.573661Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:32.450744Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:38.464132Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:41.456915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:44.496278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:47.541313Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:50.596256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:53.597171Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:56.764522Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:59.751576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:02.719391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:08.829090Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:11.800601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:14.811724Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:17.855339Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:26.878741Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:29.933020Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:32.947216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:36.041239Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:38.993657Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:42.039373Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:45.172399Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:48.081804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:51.142939Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:54.169253Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:00.341347Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:03.322832Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:06.631198Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:09.537232Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:12.406113Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:15.381764Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:15.806839Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=44 elapsed=5.777403s\n2026-04-21T17:28:15.806951Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 44 eligible frames\n2026-04-21T17:28:17.108106Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.9MB → 0.3MB (13.1x), 21 JPEGs deleted\n2026-04-21T17:28:18.370832Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.6MB → 0.5MB (7.8x), 21 JPEGs deleted\n2026-04-21T17:28:18.461408Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:22.068097Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:24.604711Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:27.608060Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:33.774822Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:36.697278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:39.729251Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:42.728755Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:45.748204Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:48.768910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:51.814752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:54.970698Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:57.869874Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:00.913837Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:07.461529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:10.043928Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:13.182411Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:16.080133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:19.108570Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:22.322033Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:25.172666Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:28.398354Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:31.249083Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:34.289745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:40.303310Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:43.308015Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:46.360649Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:49.356069Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:52.450205Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:55.422975Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:58.446390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:01.491253Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:04.500380Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:16.830925Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:19.856895Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:23.100486Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:25.938910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:28.953603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:32.061536Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:35.030958Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:38.162895Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:41.148165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:44.019513Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:50.259576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:53.148070Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:56.309979Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:59.185610Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:02.278235Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:05.287341Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:08.409426Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:11.489977Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:14.319338Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:17.348153Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:23.351025Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:26.427529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:29.337254Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:32.386165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:35.653387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:38.430216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:41.428909Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:44.432459Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:47.448603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:50.432780Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:56.535727Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:59.590792Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:02.621444Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:05.627964Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:08.710139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:11.765247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:14.787638Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:17.876480Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)\n2026-04-21T17:32:20.977937Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)\n2026-04-21T17:32:29.888970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8116870867026519513, trigger=click)\n2026-04-21T17:32:33.123648Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)\n2026-04-21T17:33:03.355082Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)\n2026-04-21T17:33:05.517897Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=click)\n2026-04-21T17:33:06.399783Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)\n2026-04-21T17:33:09.478894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)\n2026-04-21T17:33:19.151217Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-21T17:33:21.431006Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6379516332769645744, trigger=visual_change)\n2026-04-21T17:33:33.494463Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7500553589467718193, trigger=visual_change)\n2026-04-21T17:34:00.725974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2275300387038012183, trigger=click)\n2026-04-21T17:34:07.214867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2063499064757931498, trigger=visual_change)\n2026-04-21T17:34:31.480257Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=visual_change)\n2026-04-21T17:34:34.482370Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=visual_change)\n2026-04-21T17:35:53.801549Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7652433743467416760, trigger=click)\n2026-04-21T17:35:53.954311Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7652433743467416760, trigger=click)\n2026-04-21T17:35:54.740695Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7652433743467416760, trigger=click)\n2026-04-21T17:36:06.295752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5335392039126841536, trigger=visual_change)\n2026-04-21T17:36:28.893337Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5927780310531960690, trigger=visual_change)\n2026-04-21T17:38:15.647110Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)\n2026-04-21T17:38:17.801901Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)\n2026-04-21T17:38:17.962831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)\n2026-04-21T17:38:22.819710Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7137414965816212018, trigger=click)\n2026-04-21T17:38:22.917176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=click)\n2026-04-21T17:38:23.042830Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=28 elapsed=3.882772625s\n2026-04-21T17:38:23.042920Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames\n2026-04-21T17:38:24.717251Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 2.8MB → 0.4MB (6.3x), 18 JPEGs deleted\n2026-04-21T17:38:26.727027Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.1MB → 0.2MB (5.7x), 10 JPEGs deleted\n2026-04-21T17:38:35.971287Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=click)\n2026-04-21T17:38:36.106246Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7137414965816212018, trigger=click)\n2026-04-21T17:38:37.368009Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=visual_change)\n2026-04-21T17:38:43.431620Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8741356672789266752, trigger=visual_change)\n2026-04-21T17:38:49.319886Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5149767057649118192, trigger=click)\n2026-04-21T17:38:49.477325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5149767057649118192, trigger=click)\n2026-04-21T17:38:51.019231Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5149767057649118192, trigger=visual_change)\n2026-04-21T17:39:04.249890Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7355944135161080033, trigger=click)\n2026-04-21T17:39:23.256256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4983811095206295613, trigger=click)\n2026-04-21T17:39:23.385820Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4983811095206295613, trigger=click)\n2026-04-21T17:39:24.367407Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4983811095206295613, trigger=visual_change)\n2026-04-21T17:39:24.895784Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4983811095206295613, trigger=click)\n2026-04-21T17:39:46.438272Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=372069959735326508, trigger=visual_change)\n2026-04-21T17:39:49.101085Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4964238948655865655, trigger=visual_change)\n2026-04-21T17:39:58.083750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)\n2026-04-21T17:40:01.375315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)\n2026-04-21T17:40:04.195859Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)\n2026-04-21T17:40:12.117004Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2989278587618621353, trigger=click)\n2026-04-21T17:40:12.244666Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2989278587618621353, trigger=click)\n2026-04-21T17:40:13.925024Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2989278587618621353, trigger=visual_change)\n2026-04-21T17:40:23.294147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=visual_change)\n2026-04-21T17:40:55.989498Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3182674559678505325, trigger=click)\n2026-04-21T17:40:58.413325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3182674559678505325, trigger=visual_change)\n2026-04-21T17:41:23.101094Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5616874458658671741, trigger=visual_change)\n2026-04-21T17:41:29.504783Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2744778324521007391, trigger=visual_change)\n2026-04-21T17:42:13.830352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6664909184667365933, trigger=click)\n2026-04-21T17:42:13.905614Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=click)\n2026-04-21T17:42:14.689622Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6664909184667365933, trigger=click)\n2026-04-21T17:43:13.738786Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5563100798252317961, trigger=visual_change)\n2026-04-21T17:43:31.769731Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=40 elapsed=4.870364084s\n2026-04-21T17:43:31.770321Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames\n2026-04-21T17:43:32.514133Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.1MB → 0.1MB (8.9x), 11 JPEGs deleted\n2026-04-21T17:43:34.391762Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 3.0MB → 0.5MB (5.9x), 27 JPEGs deleted\n2026-04-21T17:44:19.021163Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-263228306577803226, trigger=click)\n2026-04-21T17:44:32.036390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8360298266192684601, trigger=click)\n2026-04-21T17:44:33.859332Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8360298266192684601, trigger=visual_change)\n2026-04-21T17:44:42.936361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=visual_change)\n2026-04-21T17:44:46.420662Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=visual_change)\n2026-04-21T17:46:17.725934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7286082578618580481, trigger=click)\n2026-04-21T17:46:18.733766Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=click)\n2026-04-21T17:46:19.506484Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7286082578618580481, trigger=click)\n2026-04-21T17:46:20.729229Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=click)\n2026-04-21T17:46:27.956655Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8942982652250876029, trigger=click)\n2026-04-21T17:46:29.490950Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8942982652250876029, trigger=click)\n2026-04-21T17:46:45.634752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5761541209609855314, trigger=click)\n2026-04-21T17:46:45.971315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5761541209609855314, trigger=click)\n2026-04-21T17:46:50.988867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5607564885929685542, trigger=click)\n2026-04-21T17:46:51.601750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5607564885929685542, trigger=click)\n2026-04-21T17:46:56.353647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4497988824039212795, trigger=click)\n2026-04-21T17:47:24.716661Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4864885406063659925, trigger=visual_change)\n2026-04-21T17:47:29.793942Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:30.097043Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)\n2026-04-21T17:47:30.960214Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:32.707746Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)\n2026-04-21T17:47:36.181007Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:36.362574Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:37.093511Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:41.720206Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)\n2026-04-21T17:47:44.706704Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)\n2026-04-21T17:47:48.602580Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:48.776278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:52.582982Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5658848090639979218, trigger=click)\n2026-04-21T17:47:57.282103Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8902771592702756196, trigger=click)\n2026-04-21T17:48:06.880071Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8902771592702756196, trigger=click)\n2026-04-21T17:48:07.656377Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8902771592702756196, trigger=click)\n2026-04-21T17:48:23.785117Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:24.032602Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:26.587906Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:32.180582Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:48:34.022831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:34.363583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:39.363585Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=83 elapsed=4.983598708s\n2026-04-21T17:48:39.363733Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 83 eligible frames\n2026-04-21T17:48:41.479158Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 3.3MB → 0.2MB (17.7x), 31 JPEGs deleted\n2026-04-21T17:48:44.682560Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 50 frames, 6.5MB → 2.0MB (3.3x), 50 JPEGs deleted\n2026-04-21T17:48:53.828851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:48:56.563636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:48:59.291654Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:59.467275Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:00.295226Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:00.453357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:49:13.301518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:49:16.454207Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:49:16.837288Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:18.900202Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:19.229376Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:20.418502Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:20.706966Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:21.269855Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:22.896443Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:23.115745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:29.927553Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1234240076182081719, trigger=click)\n2026-04-21T17:49:40.567042Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1506528968255096811, trigger=click)\n2026-04-21T17:49:40.722412Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1506528968255096811, trigger=click)\n2026-04-21T17:49:44.790415Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1506528968255096811, trigger=visual_change)\n2026-04-21T17:49:44.983133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1506528968255096811, trigger=visual_change)\n2026-04-21T17:51:50.315220Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)\n2026-04-21T17:51:53.337571Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)\n2026-04-21T17:51:59.473328Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)\n2026-04-21T17:52:02.455277Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)\n2026-04-21T17:52:05.862297Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:52:07.729450Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:52:16.901254Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:52:29.702852Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:52:36.533775Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:39.599515Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:45.700237Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:48.638819Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:54.704399Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:57.751791Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:53:10.186965Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:53:46.867091Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=116 elapsed=2.178958s\n2026-04-21T17:53:46.867199Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 116 eligible frames\n2026-04-21T17:53:49.254310Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:53:50.410056Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 56 frames, 12.3MB → 3.7MB (3.3x), 56 JPEGs deleted\n2026-04-21T17:53:51.388237Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:53:53.983042Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 58 frames, 9.0MB → 2.6MB (3.5x), 58 JPEGs deleted\n2026-04-21T17:53:56.223709Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:25.250317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:54:25.727105Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:54:32.633019Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:33.984547Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:54:35.401305Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:35.511290Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:38.494935Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:38.630637Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:41.245537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:54:45.441966Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:54:50.148639Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:50.313941Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:51.769427Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:51.915582Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:58.755543Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:55:01.758776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:55:25.745659Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3428322026263856254, trigger=click)\n2026-04-21T17:55:27.298490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3428322026263856254, trigger=visual_change)\n2026-04-21T17:55:33.297808Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3428322026263856254, trigger=visual_change)\n2026-04-21T17:55:48.491529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7233070170495400552, trigger=visual_change)\n2026-04-21T17:55:49.809101Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7233070170495400552, trigger=visual_change)\n2026-04-21T17:55:54.025243Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7233070170495400552, trigger=click)\n2026-04-21T17:55:54.165626Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7233070170495400552, trigger=click)\n2026-04-21T17:55:58.086411Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1463712168180952345, trigger=visual_change)\n2026-04-21T17:56:04.943502Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7233070170495400552, trigger=visual_change)\n2026-04-21T17:57:22.021701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:23.588692Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:30.517012Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:31.818301Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:31.972732Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:40.727074Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:42.330179Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:42.494853Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:45.528669Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:46.132479Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:46.358876Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:58:36.946109Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6074307134448385817, trigger=visual_change)\n2026-04-21T17:58:57.225929Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=117 elapsed=3.2365965s\n2026-04-21T17:58:57.226687Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 117 eligible frames\n2026-04-21T17:59:01.078632Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 58 frames, 12.8MB → 4.3MB (3.0x), 58 JPEGs deleted\n2026-04-21T17:59:04.938676Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 57 frames, 10.8MB → 4.0MB (2.7x), 57 JPEGs deleted\n2026-04-21T18:00:27.589643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9170086261988994041, trigger=click)\n2026-04-21T18:00:28.469646Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9170086261988994041, trigger=visual_change)\n2026-04-21T18:00:37.318027Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=9170086261988994041, trigger=click)\n2026-04-21T18:00:42.194585Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=9170086261988994041, trigger=click)\n2026-04-21T18:00:42.367049Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9170086261988994041, trigger=click)\n2026-04-21T18:01:07.200973Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:08.642294Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:08.873831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=visual_change)\n2026-04-21T18:01:09.931490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:10.189484Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:11.594292Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=visual_change)\n2026-04-21T18:01:12.844254Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:13.095866Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:49.712611Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5610420548393517496, trigger=click)\n2026-04-21T18:01:49.878502Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5610420548393517496, trigger=click)\n2026-04-21T18:01:54.385999Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4075180225844497251, trigger=click)\n2026-04-21T18:02:03.320721Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:04.589973Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:06.402101Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:08.459207Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:17.915785Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:20.289378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:53.363091Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:59.854804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6485088808083200508, trigger=visual_change)\n2026-04-21T18:03:23.692602Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2923142241079919801, trigger=visual_change)\n2026-04-21T18:03:38.383745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:03:38.666324Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:03:40.611795Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:03:46.691879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:03:49.696169Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:03:58.796193Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:10.455866Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=65 elapsed=5.507644708s\n2026-04-21T18:04:10.456994Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 65 eligible frames\n2026-04-21T18:04:10.784720Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:12.979583Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 8.1MB → 3.1MB (2.6x), 36 JPEGs deleted\n2026-04-21T18:04:13.808201Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:15.311040Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 5.7MB → 2.1MB (2.7x), 27 JPEGs deleted\n2026-04-21T18:04:22.870405Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:25.858949Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:47.178867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:47.409147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:48.621959Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:48.823996Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:49.613197Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:49.840589Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:54.113636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:54.333250Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:56.158603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:56.345340Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:24.653256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2923142241079919801, trigger=visual_change)\n2026-04-21T18:05:27.506644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2923142241079919801, trigger=visual_change)\n2026-04-21T18:05:52.127185Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:52.385537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:54.464579Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:54.740600Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:06:01.884193Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:06:04.917243Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:06:15.788550Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:06:16.090123Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:06:17.179267Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:07:04.992532Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:08.003078Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:17.121489Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:17.302355Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:27.025619Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:29.771279Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:31.137970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:36.086848Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:36.306717Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:37.369851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:37.634865Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:38.805129Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:39.104738Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:40.060624Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:08:30.262801Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:08:45.022177Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8543293535466770858, trigger=click)\n2026-04-21T18:09:22.083704Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=74 elapsed=6.715953125s\n2026-04-21T18:09:22.084245Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 74 eligible frames\n2026-04-21T18:09:29.000281Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 43 frames, 9.6MB → 4.0MB (2.4x), 43 JPEGs deleted\n2026-04-21T18:09:33.280652Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 5.8MB → 1.9MB (3.1x), 29 JPEGs deleted\n2026-04-21T18:10:45.149443Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:11:39.313378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=745086096190842156, trigger=visual_change)\n2026-04-21T18:11:42.305757Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=745086096190842156, trigger=click)\n2026-04-21T18:11:46.031853Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=745086096190842156, trigger=click)\n2026-04-21T18:11:46.095029Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=745086096190842156, trigger=click)\n2026-04-21T18:14:41.494244Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=68 elapsed=8.195880125s\n2026-04-21T18:14:41.495608Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 68 eligible frames\n2026-04-21T18:14:48.613051Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 8.2MB → 3.4MB (2.5x), 36 JPEGs deleted\n2026-04-21T18:14:55.232583Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 5.5MB → 2.6MB (2.1x), 30 JPEGs deleted\n2026-04-21T18:19:19.967211Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2899189334056575250, trigger=click)\n2026-04-21T18:19:20.363463Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2899189334056575250, trigger=click)\n2026-04-21T18:19:59.298075Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=53 elapsed=4.000910792s\n2026-04-21T18:19:59.298190Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 53 eligible frames\n2026-04-21T18:20:02.044649Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 5.1MB → 3.5MB (1.5x), 26 JPEGs deleted\n2026-04-21T18:20:04.900441Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.7MB → 2.4MB (1.9x), 25 JPEGs deleted\n2026-04-21T18:20:23.742659Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:27.660528Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:34.896769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:35.220946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:40.886719Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:44.353070Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:47.046701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:48.003863Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:22:59.673927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2006451494811625283, trigger=click)\n2026-04-21T18:23:02.374154Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2006451494811625283, trigger=visual_change)\n2026-04-21T18:24:55.480969Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:24:55.713808Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:25:06.770660Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=745086096190842156, trigger=click)\n2026-04-21T18:25:10.431473Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=69 elapsed=5.123936292s\n2026-04-21T18:25:10.432665Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 69 eligible frames\n2026-04-21T18:25:12.020960Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.7MB → 0.4MB (10.8x), 24 JPEGs deleted\n2026-04-21T18:25:16.809118Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 43 frames, 7.5MB → 3.7MB (2.0x), 43 JPEGs deleted\n2026-04-21T18:27:20.032159Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-868697608726996264, trigger=click)\n2026-04-21T18:27:27.209581Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5262134208844209929, trigger=click)\n2026-04-21T18:30:23.556529Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=60 elapsed=6.732438875s\n2026-04-21T18:30:23.556849Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 60 eligible frames\n2026-04-21T18:30:25.836587Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 5.3MB → 0.4MB (12.5x), 27 JPEGs deleted\n2026-04-21T18:30:29.251794Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 5.4MB → 2.7MB (2.0x), 31 JPEGs deleted\n2026-04-21T18:34:42.383568Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1898158487632236470, trigger=click)\n2026-04-21T18:35:29.435858Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 84 eligible frames\n2026-04-21T18:35:31.507303Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 35 frames, 6.8MB → 0.3MB (21.3x), 35 JPEGs deleted\n2026-04-21T18:35:34.821718Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 47 frames, 8.8MB → 3.6MB (2.4x), 47 JPEGs deleted\n2026-04-21T18:37:57.032414Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3231955623713121874, trigger=click)\n2026-04-21T18:40:36.969380Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=205 elapsed=2.13815675s\n2026-04-21T18:40:36.969491Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 205 eligible frames\n2026-04-21T18:40:42.234686Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 90 frames, 17.5MB → 0.4MB (49.4x), 90 JPEGs deleted\n2026-04-21T18:40:48.296945Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 99 frames, 14.9MB → 5.7MB (2.6x), 99 JPEGs deleted\n2026-04-21T18:40:49.626073Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 1.8MB → 0.7MB (2.8x), 14 JPEGs deleted\n2026-04-21T18:41:16.858046Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5262134208844209929, trigger=click)\n2026-04-21T18:41:18.719527Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5262134208844209929, trigger=click)\n2026-04-21T18:41:20.650032Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6762752836329409782, trigger=click)\n2026-04-21T18:42:40.957654Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7949512313665335161, trigger=visual_change)\n2026-04-21T18:42:42.714242Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7949512313665335161, trigger=click)\n2026-04-21T18:44:54.833923Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7610506607449357182, trigger=click)\n2026-04-21T18:44:55.013934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7610506607449357182, trigger=click)\n2026-04-21T18:45:54.320505Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=145 elapsed=4.6846185s\n2026-04-21T18:45:54.321215Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 145 eligible frames\n2026-04-21T18:45:58.288822Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 64 frames, 12.5MB → 0.5MB (23.2x), 64 JPEGs deleted\n2026-04-21T18:46:02.956701Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 78 frames, 11.5MB → 3.3MB (3.5x), 78 JPEGs deleted\n2026-04-21T18:48:10.510139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4242937607805845066, trigger=click)\n2026-04-21T18:48:37.207446Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5152173808593872338, trigger=visual_change)\n2026-04-21T18:49:27.537635Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5244088376274895156, trigger=click)\n2026-04-21T18:49:33.724367Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5262134208844209929, trigger=click)\n2026-04-21T18:49:44.747739Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8298107678328947062, trigger=click)\n2026-04-21T18:50:45.073176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:50:45.427101Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:50:48.592273Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:50:49.492676Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:51:01.193858Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:51:05.888682Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=50 elapsed=2.917680375s\n2026-04-21T18:51:05.889014Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 50 eligible frames\n2026-04-21T18:51:06.016628Z WARN sqlx::query: summary=\"PRAGMA wal_checkpoint(TRUNCATE)\" db.statement=\"\" rows_affected=0 rows_returned=1 elapsed=2.157649083s\n2026-04-21T18:51:06.079565Z WARN sqlx::query: summary=\"BEGIN IMMEDIATE\" db.statement=\"\" rows_affected=1 rows_returned=0 elapsed=1.385088167s\n2026-04-21T18:51:07.829374Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 3.9MB → 0.4MB (11.0x), 20 JPEGs deleted\n2026-04-21T18:51:09.736739Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 5.0MB → 1.8MB (2.7x), 28 JPEGs deleted\n2026-04-21T18:51:22.360027Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2872311122120998867, trigger=click)\n2026-04-21T18:51:22.556670Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2872311122120998867, trigger=click)\n2026-04-21T18:51:38.819030Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7947558874471225541, trigger=click)\n2026-04-21T18:51:57.414061Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:51:59.012068Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:51:59.285931Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:01.767745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:02.028355Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:05.460776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=visual_change)\n2026-04-21T18:52:07.087479Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:07.314492Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:10.214922Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:10.537340Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:13.867159Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:14.152331Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:20.367281Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:26.127826Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1650348556715134220, trigger=click)\n2026-04-21T18:52:37.517700Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=visual_change)\n2026-04-21T18:52:42.329057Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:52:42.556779Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:52:44.386173Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:52:44.700511Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:52:45.210674Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:53:17.193415Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6757993062848436258, trigger=visual_change)\n2026-04-21T18:53:30.834059Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-228480120308125164, trigger=click)\n2026-04-21T18:53:38.030882Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7225077546439863627, trigger=click)\n2026-04-21T18:53:56.421537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6437320026671683644, trigger=click)\n2026-04-21T18:54:11.726528Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1667437155962702753, trigger=visual_change)\n2026-04-21T18:54:12.117525Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1667437155962702753, trigger=click)\n2026-04-21T18:54:18.659686Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:54:19.077258Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:54:29.973760Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:56:07.789768Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6757993062848436258, trigger=click)\n2026-04-21T18:56:08.791400Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6757993062848436258, trigger=click)\n2026-04-21T18:56:14.153615Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=80 elapsed=4.402661042s\n2026-04-21T18:56:14.153722Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 80 eligible frames\n2026-04-21T18:56:16.685912Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 6.2MB → 0.7MB (8.9x), 32 JPEGs deleted\n2026-04-21T18:56:21.263739Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 46 frames, 8.2MB → 2.8MB (2.9x), 46 JPEGs deleted\n2026-04-21T18:56:25.279306Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7906564822731502105, trigger=click)\n2026-04-21T18:56:33.734840Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8817586097865472869, trigger=click)\n2026-04-21T18:56:33.980908Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8817586097865472869, trigger=click)\n2026-04-21T18:56:35.972959Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8817586097865472869, trigger=click)\n2026-04-21T18:56:40.545963Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8587160525579598601, trigger=click)\n2026-04-21T18:56:41.913814Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8587160525579598601, trigger=visual_change)\n2026-04-21T18:56:45.516942Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1910160977377320534, trigger=click)\n2026-04-21T18:56:48.740431Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1910160977377320534, trigger=click)\n2026-04-21T18:56:50.439568Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1910160977377320534, trigger=click)\n2026-04-21T18:56:50.692218Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1910160977377320534, trigger=click)\n2026-04-21T18:57:12.321118Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:12.578681Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:24.290583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:24.543696Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:34.571768Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:36.227688Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:36.475151Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:42.338601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:42.559967Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:52.824809Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:53.145543Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:59.463043Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:59.717475Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:58:00.742137Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:58:01.061497Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:59:33.960291Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9203182216527106315, trigger=visual_change)\n2026-04-21T18:59:55.990167Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T18:59:59.103830Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=visual_change)\n2026-04-21T19:00:16.116927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:00:45.352689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:00:49.596644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:00:50.432181Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:07.992732Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:08.484066Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:10.538762Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:18.922398Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:28.361625Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=84 elapsed=6.9360265s\n2026-04-21T19:01:28.362070Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 84 eligible frames\n2026-04-21T19:01:32.723075Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 33 frames, 6.4MB → 0.3MB (19.7x), 33 JPEGs deleted\n2026-04-21T19:01:42.130490Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 7.8MB → 3.3MB (2.4x), 49 JPEGs deleted\n2026-04-21T19:02:09.991879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:12.577587Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:12.835924Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:15.635601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:18.720475Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:21.708351Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:22.061150Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:28.684303Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3995027160269120472, trigger=click)\n2026-04-21T19:02:41.434491Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:41.724904Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:43.112974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:43.410843Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:47.501924Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:47.761592Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:54.205542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:54.441326Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:56.601490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:56.921256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:03:15.988643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:03:16.236342Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:03:28.508616Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:00.462064Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:01.516168Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:01.856315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:03.246448Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:03.735029Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:09.818135Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:05:03.118616Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:03.393788Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:21.352722Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=visual_change)\n2026-04-21T19:05:43.751309Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:44.029500Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:45.626672Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:45.899754Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:48.206587Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:48.449043Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:06:22.834938Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7947558874471225541, trigger=click)\n2026-04-21T19:06:52.937779Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=114 elapsed=10.747243125s\n2026-04-21T19:06:52.938152Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 114 eligible frames\n2026-04-21T19:06:57.942457Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 45 frames, 8.8MB → 0.3MB (27.2x), 45 JPEGs deleted\n2026-04-21T19:07:05.853054Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 67 frames, 10.5MB → 5.2MB (2.0x), 67 JPEGs deleted\n2026-04-21T19:07:45.088797Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:07:48.052391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6936634780821666458, trigger=click)\n2026-04-21T19:08:59.593467Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5629560013928052473, trigger=click)\n2026-04-21T19:09:29.443711Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:42.998313Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8043719072324535154, trigger=visual_change)\n2026-04-21T19:09:50.759516Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:51.052544Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:51.892698Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:09:52.651776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:55.476431Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:55.898195Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:09:58.077337Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:10:01.103980Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:10:03.105423Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:10:03.448049Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:10:08.548130Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6051188157141408655, trigger=click)\n2026-04-21T19:12:12.330759Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=70 elapsed=6.458002417s\n2026-04-21T19:12:12.332545Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 70 eligible frames\n2026-04-21T19:12:14.243079Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 5.5MB → 0.3MB (17.2x), 28 JPEGs deleted\n2026-04-21T19:12:17.558334Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 40 frames, 7.4MB → 3.6MB (2.1x), 40 JPEGs deleted\n2026-04-21T19:16:51.045938Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1370319459641728815, trigger=click)\n2026-04-21T19:16:51.249993Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1370319459641728815, trigger=click)\n2026-04-21T19:17:21.603564Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=40 elapsed=4.036037791s\n2026-04-21T19:17:21.604357Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames\n2026-04-21T19:17:22.750174Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.5MB → 0.3MB (11.2x), 18 JPEGs deleted\n2026-04-21T19:17:24.332098Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.2MB → 1.3MB (3.2x), 20 JPEGs deleted\n2026-04-21T19:22:25.748871Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=49 elapsed=1.406664416s\n2026-04-21T19:22:25.749095Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 49 eligible frames\n2026-04-21T19:22:27.704722Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 3.7MB → 0.8MB (4.5x), 22 JPEGs deleted\n2026-04-21T19:22:29.535330Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.2MB → 1.7MB (3.0x), 25 JPEGs deleted\n2026-04-21T19:23:29.233846Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9146581369053060363, trigger=click)\n2026-04-21T19:23:31.995034Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9146581369053060363, trigger=visual_change)\n2026-04-21T19:23:37.213396Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9146581369053060363, trigger=visual_change)\n2026-04-21T19:23:40.288223Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9146581369053060363, trigger=visual_change)\n2026-04-21T19:23:44.197738Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9146581369053060363, trigger=visual_change)\n2026-04-21T19:23:45.228572Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9146581369053060363, trigger=click)\n2026-04-21T19:23:56.251033Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:24:06.580019Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=335 elapsed=1.644312167s\n2026-04-21T19:24:28.860436Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:24:32.226944Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:24:32.476075Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:03.902521Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:19.205245Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:25.098627Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:36.013866Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:37.355954Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:41.831265Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:46.247585Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:46.619106Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:48.284769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:48.534452Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:49.421920Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:49.752264Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:54.600720Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:55.072357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:26:19.446041Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:26:22.718352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:27:38.437704Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=28 elapsed=8.833634334s\n2026-04-21T19:27:38.438043Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames\n2026-04-21T19:27:39.763901Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 1.9MB → 0.3MB (7.6x), 12 JPEGs deleted\n2026-04-21T19:27:41.220664Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.1MB → 0.9MB (2.2x), 14 JPEGs deleted\n2026-04-21T19:28:22.708791Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:28:23.849452Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:28:24.119301Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:14.209016Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:16.415693Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:21.726815Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:23.890645Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:24.239058Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:29.790006Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:33.098495Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:38.065869Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:44.089028Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:47.272131Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:53.977951Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:57.274496Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:30:11.986797Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:30:13.530455Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:30:28.332451Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:30:37.204947Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:26.255340Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:26.592983Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:30.448912Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:35.747969Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:37.783849Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:38.061197Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:43.216365Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:43.885407Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:46.680745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:52.971450Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:58.468469Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:58.624833Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:03.362210Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:12.706102Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:15.172982Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:23.020508Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:23.199312Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:25.387097Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:25.764201Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:30.336940Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:30.810971Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:39.812820Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:42.409145Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:44.386326Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:48.880648Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=47 elapsed=7.499136792s\n2026-04-21T19:32:48.880949Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 47 eligible frames\n2026-04-21T19:32:51.249469Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.2MB → 0.3MB (8.9x), 14 JPEGs deleted\n2026-04-21T19:32:55.969183Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 3.8MB → 1.9MB (2.0x), 31 JPEGs deleted\n2026-04-21T19:32:59.734686Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:33:00.098925Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:33:05.951997Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:34:07.213420Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:34:09.264586Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:34:16.527425Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:34:19.513647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:34:32.889780Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1128757073350665914, trigger=click)\n2026-04-21T19:34:56.078651Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4993766851008728916, trigger=click)\n2026-04-21T19:34:56.296542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4993766851008728916, trigger=click)\n2026-04-21T19:35:02.344819Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:35:05.237721Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:35:07.518599Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:35:09.938481Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:35:10.408295Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:35:26.864482Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:35:33.001733Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:35:36.479802Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:36:20.043835Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4526067242477956280, trigger=visual_change)\n2026-04-21T19:36:47.029303Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4526067242477956280, trigger=visual_change)\n2026-04-21T19:36:57.077150Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:37:33.348160Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:37:33.742029Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:37:36.579915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:37:39.754974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:38:04.951324Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=101 elapsed=8.9666755s\n2026-04-21T19:38:04.953527Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 101 eligible frames\n2026-04-21T19:38:13.751166Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 38 frames, 8.0MB → 3.5MB (2.3x), 38 JPEGs deleted\n2026-04-21T19:38:29.817220Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 61 frames, 9.7MB → 5.2MB (1.9x), 61 JPEGs deleted\n2026-04-21T19:40:34.255930Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=342 elapsed=1.0699005s\n2026-04-21T19:42:32.961192Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:42:33.305572Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:42:40.179851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=visual_change)\n2026-04-21T19:42:41.405781Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:42:41.720845Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:43:02.251464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=visual_change)\n2026-04-21T19:43:11.622532Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:43:36.525920Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=85 elapsed=6.634896167s\n2026-04-21T19:43:36.526454Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 85 eligible frames\n2026-04-21T19:43:39.459999Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 8.0MB → 3.4MB (2.3x), 36 JPEGs deleted\n2026-04-21T19:43:43.505640Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 47 frames, 7.9MB → 3.9MB (2.0x), 47 JPEGs deleted\n2026-04-21T19:44:05.999282Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=visual_change)\n2026-04-21T19:45:08.065595Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2712812971723964739, trigger=click)\n2026-04-21T19:45:46.266141Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:48:51.569666Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=64 elapsed=8.039671791s\n2026-04-21T19:48:51.570457Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 64 eligible frames\n2026-04-21T19:48:58.738540Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 7.2MB → 2.4MB (2.9x), 32 JPEGs deleted\n2026-04-21T19:49:05.383193Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 5.9MB → 2.5MB (2.4x), 30 JPEGs deleted\n2026-04-21T19:51:14.064760Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2572721248839450970, trigger=visual_change)\n2026-04-21T19:54:08.518415Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=346 elapsed=1.026887875s\n2026-04-21T19:54:12.872902Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=61 elapsed=7.44778675s\n2026-04-21T19:54:12.873164Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 61 eligible frames\n2026-04-21T19:54:16.348511Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.6MB → 1.4MB (4.1x), 25 JPEGs deleted\n2026-04-21T19:54:24.102233Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 34 frames, 6.2MB → 3.6MB (1.7x), 34 JPEGs deleted\n2026-04-21T19:59:32.063421Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=346 elapsed=1.165878958s\n2026-04-21T19:59:32.818884Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=31 elapsed=8.661332917s\n2026-04-21T19:59:32.819629Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 31 eligible frames\n2026-04-21T19:59:35.810838Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.9MB → 0.7MB (3.9x), 16 JPEGs deleted\n2026-04-21T19:59:38.924596Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.9MB → 1.5MB (2.0x), 13 JPEGs deleted\n2026-04-21T20:01:55.709776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1382976804061127003, trigger=click)\n2026-04-21T20:04:27.572999Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7658911549706194190, trigger=click)\n2026-04-21T20:04:46.630063Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=57 elapsed=7.045125334s\n2026-04-21T20:04:46.631081Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 57 eligible frames\n2026-04-21T20:04:49.684796Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 2.5MB → 0.8MB (3.2x), 23 JPEGs deleted\n2026-04-21T20:04:56.073590Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 5.7MB → 3.1MB (1.8x), 32 JPEGs deleted\n2026-04-21T20:05:04.129844Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-446124678591544690, trigger=click)\n2026-04-21T20:05:04.425723Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-446124678591544690, trigger=click)\n2026-04-21T20:09:59.238939Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=30 elapsed=2.058497125s\n2026-04-21T20:09:59.239075Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 30 eligible frames\n2026-04-21T20:10:00.874153Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.3MB → 0.2MB (5.8x), 13 JPEGs deleted\n2026-04-21T20:10:03.326064Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 1.8MB → 0.6MB (2.8x), 15 JPEGs deleted\n2026-04-21T20:15:07.129653Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=58 elapsed=3.763973459s\n2026-04-21T20:15:07.130598Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 58 eligible frames\n2026-04-21T20:15:09.088400Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 3.7MB → 0.6MB (5.9x), 26 JPEGs deleted\n2026-04-21T20:15:10.858868Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 3.9MB → 1.0MB (3.9x), 30 JPEGs deleted\n2026-04-21T20:18:21.110736Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=354 elapsed=1.169721666s\nzsh: terminated npx screenpipe@latest record --disable-audio --ignored-windows \"Boosteroid\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-start\ndetected hardware tier: Mid\nwarning: parakeet is not supported on this platform, using whisper-tiny instead\n2026-04-22T09:15:19.880360Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store\nchecking permissions...\n screen recording: ok\n accessibility: ok\n2026-04-22T09:15:19.951248Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6\n2026-04-22T09:15:20.675958Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor\n2026-04-22T09:15:20.677447Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)\n2026-04-22T09:15:20.677800Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)\n2026-04-22T09:15:20.709542Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true\n2026-04-22T09:15:20.709596Z INFO screenpipe: meeting detector enabled — independent of transcription mode\n2026-04-22T09:15:20.709849Z INFO screenpipe: API server listening on 127.0.0.1:3030 (localhost only)\n2026-04-22T09:15:20.709774Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)\n2026-04-22T09:15:20.709806Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)\n2026-04-22T09:15:20.709863Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key\n2026-04-22T09:15:20.709908Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager\n2026-04-22T09:15:20.721517Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-22T09:15:20.725781Z INFO screenpipe_core::pipes: loaded pipe: day-recap\n2026-04-22T09:15:20.725991Z INFO screenpipe_core::pipes: loaded pipe: standup-update\n2026-04-22T09:15:20.726387Z INFO screenpipe_core::pipes: loaded pipe: ai-habits\n2026-04-22T09:15:20.726548Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown\n2026-04-22T09:15:20.726690Z INFO screenpipe_core::pipes: loaded pipe: video-export\n2026-04-22T09:15:20.727224Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary\n2026-04-22T09:15:20.727242Z INFO screenpipe_core::pipes: loaded 6 pipes from \"/Users/lukas/.screenpipe/pipes\"\n\n\n\n _ \n __________________ ___ ____ ____ (_____ ___ \n / ___/ ___/ ___/ _ \\/ _ \\/ __ \\ / __ \\/ / __ \\/ _ \\\n (__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/\n/____/\\___/_/ \\___/\\___/_/ /_/ / .___/_/ .___/\\___/ \n /_/ /_/ \n\n\n\npower AI by everything you've seen, said or heard\nopen source | runs locally | developer friendly\n\n\n┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ true │\n│ vision disabled │ false │\n│ pause on DRM content │ false │\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n│ ignored windows │ [\"Boosteroid\"] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n2026-04-22T09:15:20.728614Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n│ api auth │ enabled │\n2026-04-22T09:15:20.742172Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n│ encrypt secrets │ disabled │\n│ retention days │ 14 │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ id: 1 │\n│ │ id: 2 │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ disabled │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-22T09:15:20.742788Z INFO screenpipe: starting UI event capture\n2026-04-22T09:15:20.755824Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-22T09:15:20.769629Z INFO screenpipe_engine::ui_recorder: UI recording session started: e7729066-2ab4-4bf0-9d48-0c9790a4ee79\n2026-04-22T09:15:20.769680Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-22T09:15:20.769789Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-21 06:15:20.769785 UTC to 2026-04-22 06:15:20.769785 UTC)\n2026-04-22T09:15:20.770644Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-22T09:15:20.778181Z INFO screenpipe_engine::server: Server listening on 127.0.0.1:3030\n2026-04-22T09:15:20.789960Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-22T09:15:21.591614Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-22T09:15:21.591646Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-22T09:15:21.591751Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-22T09:15:21.919088Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-22T09:15:21.919141Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-22T09:15:21.919158Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)\n2026-04-22T09:15:21.919163Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-22T09:15:21.919167Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)\n2026-04-22T09:15:23.315305Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-22T09:15:23.445619Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=68471, dur=74ms\n2026-04-22T09:15:23.697846Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-22T09:15:23.856559Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=68472, dur=115ms\n2026-04-22T09:15:23.858032Z INFO sck_rs::stream_manager: invalidated persistent stream for display 2","depth":4,"value":"2026-04-21T16:39:31.752392Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4079194444055345358, trigger=click)\n2026-04-21T16:39:31.941130Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4079194444055345358, trigger=click)\n2026-04-21T16:39:37.082813Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=50 elapsed=2.555752875s\n2026-04-21T16:39:37.082914Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 50 eligible frames\n2026-04-21T16:39:39.896800Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.4MB → 0.9MB (4.9x), 24 JPEGs deleted\n2026-04-21T16:39:42.979598Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.6MB → 1.9MB (2.5x), 24 JPEGs deleted\n2026-04-21T16:39:54.138147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=869328293033429183, trigger=click)\n2026-04-21T16:41:34.967355Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:41:35.133385Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:43:15.919099Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8254246256813675665, trigger=click)\n2026-04-21T16:43:44.014066Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8254246256813675665, trigger=visual_change)\n2026-04-21T16:44:45.410923Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=35 elapsed=2.419201375s\n2026-04-21T16:44:45.411045Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 35 eligible frames\n2026-04-21T16:44:46.383629Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.8MB → 0.3MB (9.5x), 15 JPEGs deleted\n2026-04-21T16:44:47.792527Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.6MB → 0.8MB (4.3x), 18 JPEGs deleted\n2026-04-21T16:49:53.308820Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=47 elapsed=5.487768917s\n2026-04-21T16:49:53.309371Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 47 eligible frames\n2026-04-21T16:49:54.673701Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.9MB → 0.3MB (13.1x), 21 JPEGs deleted\n2026-04-21T16:49:56.314871Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.7MB → 1.2MB (4.0x), 24 JPEGs deleted\n2026-04-21T16:54:59.385017Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=62 elapsed=3.057419917s\n2026-04-21T16:54:59.385210Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 62 eligible frames\n2026-04-21T16:55:00.998239Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.8MB → 0.5MB (10.3x), 26 JPEGs deleted\n2026-04-21T16:55:03.739041Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 34 frames, 5.8MB → 2.6MB (2.2x), 34 JPEGs deleted\n2026-04-21T16:55:17.768634Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)\n2026-04-21T17:23:59.183039Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)\n2026-04-21T17:23:59.216966Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2\n2026-04-21T17:24:00.832399Z INFO screenpipe_engine::vision_manager::monitor_watcher: Monitor 2 disconnected, stopping recording\n2026-04-21T17:24:00.832464Z INFO screenpipe_engine::vision_manager::manager: Stopping vision recording for monitor 2\n2026-04-21T17:24:00.832336Z INFO sck_rs::stream_manager: stopped 2 persistent stream(s)\n2026-04-21T17:24:04.654209Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-21T17:24:30.699969Z ERROR screenpipe_engine::resource_monitor: Failed to send resource usage to PostHog: error sending request for url (https://us.i.posthog.com/capture/)\n2026-04-21T17:25:01.085383Z INFO screenpipe_engine::vision_manager::monitor_watcher: Monitor 2 reconnected, resuming recording\n2026-04-21T17:25:01.273818Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-21T17:25:01.273870Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-21T17:25:01.273896Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-21T17:25:02.310236Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-21T17:25:02.808234Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=66228, dur=365ms\n2026-04-21T17:25:04.889075Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:07.887565Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:10.918390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:14.039034Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:17.160521Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:26.096276Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:29.061270Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:32.067380Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:35.263701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:41.164753Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:44.239172Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:47.149320Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:50.242915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:53.308794Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:56.218138Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:59.144297Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:26:05.965946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:08.584110Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:11.350189Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:14.339609Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:17.398251Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:20.782119Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:23.385506Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:26.427626Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:29.573661Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:32.450744Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:38.464132Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:41.456915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:44.496278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:47.541313Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:50.596256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:53.597171Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:56.764522Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:59.751576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:02.719391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:08.829090Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:11.800601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:14.811724Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:17.855339Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:26.878741Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:29.933020Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:32.947216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:36.041239Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:38.993657Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:42.039373Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:45.172399Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:48.081804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:51.142939Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:54.169253Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:00.341347Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:03.322832Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:06.631198Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:09.537232Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:12.406113Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:15.381764Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:15.806839Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=44 elapsed=5.777403s\n2026-04-21T17:28:15.806951Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 44 eligible frames\n2026-04-21T17:28:17.108106Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.9MB → 0.3MB (13.1x), 21 JPEGs deleted\n2026-04-21T17:28:18.370832Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.6MB → 0.5MB (7.8x), 21 JPEGs deleted\n2026-04-21T17:28:18.461408Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:22.068097Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:24.604711Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:27.608060Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:33.774822Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:36.697278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:39.729251Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:42.728755Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:45.748204Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:48.768910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:51.814752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:54.970698Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:57.869874Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:00.913837Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:07.461529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:10.043928Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:13.182411Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:16.080133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:19.108570Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:22.322033Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:25.172666Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:28.398354Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:31.249083Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:34.289745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:40.303310Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:43.308015Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:46.360649Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:49.356069Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:52.450205Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:55.422975Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:58.446390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:01.491253Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:04.500380Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:16.830925Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:19.856895Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:23.100486Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:25.938910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:28.953603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:32.061536Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:35.030958Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:38.162895Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:41.148165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:44.019513Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:50.259576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:53.148070Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:56.309979Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:59.185610Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:02.278235Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:05.287341Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:08.409426Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:11.489977Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:14.319338Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:17.348153Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:23.351025Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:26.427529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:29.337254Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:32.386165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:35.653387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:38.430216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:41.428909Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:44.432459Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:47.448603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:50.432780Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:56.535727Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:59.590792Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:02.621444Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:05.627964Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:08.710139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:11.765247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:14.787638Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:17.876480Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)\n2026-04-21T17:32:20.977937Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)\n2026-04-21T17:32:29.888970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8116870867026519513, trigger=click)\n2026-04-21T17:32:33.123648Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)\n2026-04-21T17:33:03.355082Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)\n2026-04-21T17:33:05.517897Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=click)\n2026-04-21T17:33:06.399783Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)\n2026-04-21T17:33:09.478894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)\n2026-04-21T17:33:19.151217Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-21T17:33:21.431006Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6379516332769645744, trigger=visual_change)\n2026-04-21T17:33:33.494463Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7500553589467718193, trigger=visual_change)\n2026-04-21T17:34:00.725974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2275300387038012183, trigger=click)\n2026-04-21T17:34:07.214867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2063499064757931498, trigger=visual_change)\n2026-04-21T17:34:31.480257Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=visual_change)\n2026-04-21T17:34:34.482370Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=visual_change)\n2026-04-21T17:35:53.801549Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7652433743467416760, trigger=click)\n2026-04-21T17:35:53.954311Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7652433743467416760, trigger=click)\n2026-04-21T17:35:54.740695Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7652433743467416760, trigger=click)\n2026-04-21T17:36:06.295752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5335392039126841536, trigger=visual_change)\n2026-04-21T17:36:28.893337Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5927780310531960690, trigger=visual_change)\n2026-04-21T17:38:15.647110Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)\n2026-04-21T17:38:17.801901Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)\n2026-04-21T17:38:17.962831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)\n2026-04-21T17:38:22.819710Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7137414965816212018, trigger=click)\n2026-04-21T17:38:22.917176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=click)\n2026-04-21T17:38:23.042830Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=28 elapsed=3.882772625s\n2026-04-21T17:38:23.042920Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames\n2026-04-21T17:38:24.717251Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 2.8MB → 0.4MB (6.3x), 18 JPEGs deleted\n2026-04-21T17:38:26.727027Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.1MB → 0.2MB (5.7x), 10 JPEGs deleted\n2026-04-21T17:38:35.971287Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=click)\n2026-04-21T17:38:36.106246Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7137414965816212018, trigger=click)\n2026-04-21T17:38:37.368009Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=visual_change)\n2026-04-21T17:38:43.431620Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8741356672789266752, trigger=visual_change)\n2026-04-21T17:38:49.319886Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5149767057649118192, trigger=click)\n2026-04-21T17:38:49.477325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5149767057649118192, trigger=click)\n2026-04-21T17:38:51.019231Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5149767057649118192, trigger=visual_change)\n2026-04-21T17:39:04.249890Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7355944135161080033, trigger=click)\n2026-04-21T17:39:23.256256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4983811095206295613, trigger=click)\n2026-04-21T17:39:23.385820Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4983811095206295613, trigger=click)\n2026-04-21T17:39:24.367407Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4983811095206295613, trigger=visual_change)\n2026-04-21T17:39:24.895784Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4983811095206295613, trigger=click)\n2026-04-21T17:39:46.438272Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=372069959735326508, trigger=visual_change)\n2026-04-21T17:39:49.101085Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4964238948655865655, trigger=visual_change)\n2026-04-21T17:39:58.083750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)\n2026-04-21T17:40:01.375315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)\n2026-04-21T17:40:04.195859Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)\n2026-04-21T17:40:12.117004Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2989278587618621353, trigger=click)\n2026-04-21T17:40:12.244666Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2989278587618621353, trigger=click)\n2026-04-21T17:40:13.925024Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2989278587618621353, trigger=visual_change)\n2026-04-21T17:40:23.294147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=visual_change)\n2026-04-21T17:40:55.989498Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3182674559678505325, trigger=click)\n2026-04-21T17:40:58.413325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3182674559678505325, trigger=visual_change)\n2026-04-21T17:41:23.101094Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5616874458658671741, trigger=visual_change)\n2026-04-21T17:41:29.504783Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2744778324521007391, trigger=visual_change)\n2026-04-21T17:42:13.830352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6664909184667365933, trigger=click)\n2026-04-21T17:42:13.905614Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=click)\n2026-04-21T17:42:14.689622Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6664909184667365933, trigger=click)\n2026-04-21T17:43:13.738786Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5563100798252317961, trigger=visual_change)\n2026-04-21T17:43:31.769731Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=40 elapsed=4.870364084s\n2026-04-21T17:43:31.770321Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames\n2026-04-21T17:43:32.514133Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.1MB → 0.1MB (8.9x), 11 JPEGs deleted\n2026-04-21T17:43:34.391762Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 3.0MB → 0.5MB (5.9x), 27 JPEGs deleted\n2026-04-21T17:44:19.021163Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-263228306577803226, trigger=click)\n2026-04-21T17:44:32.036390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8360298266192684601, trigger=click)\n2026-04-21T17:44:33.859332Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8360298266192684601, trigger=visual_change)\n2026-04-21T17:44:42.936361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=visual_change)\n2026-04-21T17:44:46.420662Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=visual_change)\n2026-04-21T17:46:17.725934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7286082578618580481, trigger=click)\n2026-04-21T17:46:18.733766Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=click)\n2026-04-21T17:46:19.506484Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7286082578618580481, trigger=click)\n2026-04-21T17:46:20.729229Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=click)\n2026-04-21T17:46:27.956655Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8942982652250876029, trigger=click)\n2026-04-21T17:46:29.490950Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8942982652250876029, trigger=click)\n2026-04-21T17:46:45.634752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5761541209609855314, trigger=click)\n2026-04-21T17:46:45.971315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5761541209609855314, trigger=click)\n2026-04-21T17:46:50.988867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5607564885929685542, trigger=click)\n2026-04-21T17:46:51.601750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5607564885929685542, trigger=click)\n2026-04-21T17:46:56.353647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4497988824039212795, trigger=click)\n2026-04-21T17:47:24.716661Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4864885406063659925, trigger=visual_change)\n2026-04-21T17:47:29.793942Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:30.097043Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)\n2026-04-21T17:47:30.960214Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:32.707746Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)\n2026-04-21T17:47:36.181007Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:36.362574Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:37.093511Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:41.720206Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)\n2026-04-21T17:47:44.706704Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)\n2026-04-21T17:47:48.602580Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:48.776278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:52.582982Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5658848090639979218, trigger=click)\n2026-04-21T17:47:57.282103Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8902771592702756196, trigger=click)\n2026-04-21T17:48:06.880071Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8902771592702756196, trigger=click)\n2026-04-21T17:48:07.656377Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8902771592702756196, trigger=click)\n2026-04-21T17:48:23.785117Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:24.032602Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:26.587906Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:32.180582Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:48:34.022831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:34.363583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:39.363585Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=83 elapsed=4.983598708s\n2026-04-21T17:48:39.363733Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 83 eligible frames\n2026-04-21T17:48:41.479158Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 3.3MB → 0.2MB (17.7x), 31 JPEGs deleted\n2026-04-21T17:48:44.682560Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 50 frames, 6.5MB → 2.0MB (3.3x), 50 JPEGs deleted\n2026-04-21T17:48:53.828851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:48:56.563636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:48:59.291654Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:59.467275Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:00.295226Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:00.453357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:49:13.301518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:49:16.454207Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:49:16.837288Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:18.900202Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:19.229376Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:20.418502Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:20.706966Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:21.269855Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:22.896443Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:23.115745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:29.927553Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1234240076182081719, trigger=click)\n2026-04-21T17:49:40.567042Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1506528968255096811, trigger=click)\n2026-04-21T17:49:40.722412Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1506528968255096811, trigger=click)\n2026-04-21T17:49:44.790415Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1506528968255096811, trigger=visual_change)\n2026-04-21T17:49:44.983133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1506528968255096811, trigger=visual_change)\n2026-04-21T17:51:50.315220Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)\n2026-04-21T17:51:53.337571Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)\n2026-04-21T17:51:59.473328Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)\n2026-04-21T17:52:02.455277Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)\n2026-04-21T17:52:05.862297Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:52:07.729450Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:52:16.901254Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:52:29.702852Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:52:36.533775Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:39.599515Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:45.700237Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:48.638819Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:54.704399Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:57.751791Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:53:10.186965Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:53:46.867091Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=116 elapsed=2.178958s\n2026-04-21T17:53:46.867199Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 116 eligible frames\n2026-04-21T17:53:49.254310Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:53:50.410056Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 56 frames, 12.3MB → 3.7MB (3.3x), 56 JPEGs deleted\n2026-04-21T17:53:51.388237Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:53:53.983042Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 58 frames, 9.0MB → 2.6MB (3.5x), 58 JPEGs deleted\n2026-04-21T17:53:56.223709Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:25.250317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:54:25.727105Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:54:32.633019Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:33.984547Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:54:35.401305Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:35.511290Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:38.494935Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:38.630637Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:41.245537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:54:45.441966Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:54:50.148639Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:50.313941Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:51.769427Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:51.915582Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:58.755543Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:55:01.758776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:55:25.745659Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3428322026263856254, trigger=click)\n2026-04-21T17:55:27.298490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3428322026263856254, trigger=visual_change)\n2026-04-21T17:55:33.297808Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3428322026263856254, trigger=visual_change)\n2026-04-21T17:55:48.491529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7233070170495400552, trigger=visual_change)\n2026-04-21T17:55:49.809101Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7233070170495400552, trigger=visual_change)\n2026-04-21T17:55:54.025243Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7233070170495400552, trigger=click)\n2026-04-21T17:55:54.165626Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7233070170495400552, trigger=click)\n2026-04-21T17:55:58.086411Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1463712168180952345, trigger=visual_change)\n2026-04-21T17:56:04.943502Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7233070170495400552, trigger=visual_change)\n2026-04-21T17:57:22.021701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:23.588692Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:30.517012Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:31.818301Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:31.972732Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:40.727074Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:42.330179Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:42.494853Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:45.528669Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:46.132479Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:46.358876Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:58:36.946109Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6074307134448385817, trigger=visual_change)\n2026-04-21T17:58:57.225929Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=117 elapsed=3.2365965s\n2026-04-21T17:58:57.226687Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 117 eligible frames\n2026-04-21T17:59:01.078632Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 58 frames, 12.8MB → 4.3MB (3.0x), 58 JPEGs deleted\n2026-04-21T17:59:04.938676Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 57 frames, 10.8MB → 4.0MB (2.7x), 57 JPEGs deleted\n2026-04-21T18:00:27.589643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9170086261988994041, trigger=click)\n2026-04-21T18:00:28.469646Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9170086261988994041, trigger=visual_change)\n2026-04-21T18:00:37.318027Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=9170086261988994041, trigger=click)\n2026-04-21T18:00:42.194585Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=9170086261988994041, trigger=click)\n2026-04-21T18:00:42.367049Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9170086261988994041, trigger=click)\n2026-04-21T18:01:07.200973Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:08.642294Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:08.873831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=visual_change)\n2026-04-21T18:01:09.931490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:10.189484Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:11.594292Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=visual_change)\n2026-04-21T18:01:12.844254Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:13.095866Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:49.712611Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5610420548393517496, trigger=click)\n2026-04-21T18:01:49.878502Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5610420548393517496, trigger=click)\n2026-04-21T18:01:54.385999Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4075180225844497251, trigger=click)\n2026-04-21T18:02:03.320721Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:04.589973Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:06.402101Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:08.459207Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:17.915785Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:20.289378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:53.363091Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:59.854804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6485088808083200508, trigger=visual_change)\n2026-04-21T18:03:23.692602Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2923142241079919801, trigger=visual_change)\n2026-04-21T18:03:38.383745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:03:38.666324Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:03:40.611795Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:03:46.691879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:03:49.696169Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:03:58.796193Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:10.455866Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=65 elapsed=5.507644708s\n2026-04-21T18:04:10.456994Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 65 eligible frames\n2026-04-21T18:04:10.784720Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:12.979583Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 8.1MB → 3.1MB (2.6x), 36 JPEGs deleted\n2026-04-21T18:04:13.808201Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:15.311040Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 5.7MB → 2.1MB (2.7x), 27 JPEGs deleted\n2026-04-21T18:04:22.870405Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:25.858949Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:47.178867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:47.409147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:48.621959Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:48.823996Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:49.613197Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:49.840589Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:54.113636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:54.333250Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:56.158603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:56.345340Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:24.653256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2923142241079919801, trigger=visual_change)\n2026-04-21T18:05:27.506644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2923142241079919801, trigger=visual_change)\n2026-04-21T18:05:52.127185Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:52.385537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:54.464579Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:54.740600Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:06:01.884193Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:06:04.917243Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:06:15.788550Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:06:16.090123Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:06:17.179267Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:07:04.992532Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:08.003078Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:17.121489Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:17.302355Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:27.025619Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:29.771279Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:31.137970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:36.086848Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:36.306717Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:37.369851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:37.634865Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:38.805129Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:39.104738Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:40.060624Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:08:30.262801Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:08:45.022177Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8543293535466770858, trigger=click)\n2026-04-21T18:09:22.083704Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=74 elapsed=6.715953125s\n2026-04-21T18:09:22.084245Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 74 eligible frames\n2026-04-21T18:09:29.000281Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 43 frames, 9.6MB → 4.0MB (2.4x), 43 JPEGs deleted\n2026-04-21T18:09:33.280652Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 5.8MB → 1.9MB (3.1x), 29 JPEGs deleted\n2026-04-21T18:10:45.149443Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:11:39.313378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=745086096190842156, trigger=visual_change)\n2026-04-21T18:11:42.305757Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=745086096190842156, trigger=click)\n2026-04-21T18:11:46.031853Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=745086096190842156, trigger=click)\n2026-04-21T18:11:46.095029Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=745086096190842156, trigger=click)\n2026-04-21T18:14:41.494244Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=68 elapsed=8.195880125s\n2026-04-21T18:14:41.495608Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 68 eligible frames\n2026-04-21T18:14:48.613051Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 8.2MB → 3.4MB (2.5x), 36 JPEGs deleted\n2026-04-21T18:14:55.232583Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 5.5MB → 2.6MB (2.1x), 30 JPEGs deleted\n2026-04-21T18:19:19.967211Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2899189334056575250, trigger=click)\n2026-04-21T18:19:20.363463Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2899189334056575250, trigger=click)\n2026-04-21T18:19:59.298075Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=53 elapsed=4.000910792s\n2026-04-21T18:19:59.298190Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 53 eligible frames\n2026-04-21T18:20:02.044649Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 5.1MB → 3.5MB (1.5x), 26 JPEGs deleted\n2026-04-21T18:20:04.900441Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.7MB → 2.4MB (1.9x), 25 JPEGs deleted\n2026-04-21T18:20:23.742659Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:27.660528Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:34.896769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:35.220946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:40.886719Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:44.353070Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:47.046701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:48.003863Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:22:59.673927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2006451494811625283, trigger=click)\n2026-04-21T18:23:02.374154Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2006451494811625283, trigger=visual_change)\n2026-04-21T18:24:55.480969Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:24:55.713808Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:25:06.770660Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=745086096190842156, trigger=click)\n2026-04-21T18:25:10.431473Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=69 elapsed=5.123936292s\n2026-04-21T18:25:10.432665Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 69 eligible frames\n2026-04-21T18:25:12.020960Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.7MB → 0.4MB (10.8x), 24 JPEGs deleted\n2026-04-21T18:25:16.809118Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 43 frames, 7.5MB → 3.7MB (2.0x), 43 JPEGs deleted\n2026-04-21T18:27:20.032159Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-868697608726996264, trigger=click)\n2026-04-21T18:27:27.209581Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5262134208844209929, trigger=click)\n2026-04-21T18:30:23.556529Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=60 elapsed=6.732438875s\n2026-04-21T18:30:23.556849Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 60 eligible frames\n2026-04-21T18:30:25.836587Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 5.3MB → 0.4MB (12.5x), 27 JPEGs deleted\n2026-04-21T18:30:29.251794Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 5.4MB → 2.7MB (2.0x), 31 JPEGs deleted\n2026-04-21T18:34:42.383568Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1898158487632236470, trigger=click)\n2026-04-21T18:35:29.435858Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 84 eligible frames\n2026-04-21T18:35:31.507303Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 35 frames, 6.8MB → 0.3MB (21.3x), 35 JPEGs deleted\n2026-04-21T18:35:34.821718Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 47 frames, 8.8MB → 3.6MB (2.4x), 47 JPEGs deleted\n2026-04-21T18:37:57.032414Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3231955623713121874, trigger=click)\n2026-04-21T18:40:36.969380Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=205 elapsed=2.13815675s\n2026-04-21T18:40:36.969491Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 205 eligible frames\n2026-04-21T18:40:42.234686Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 90 frames, 17.5MB → 0.4MB (49.4x), 90 JPEGs deleted\n2026-04-21T18:40:48.296945Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 99 frames, 14.9MB → 5.7MB (2.6x), 99 JPEGs deleted\n2026-04-21T18:40:49.626073Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 1.8MB → 0.7MB (2.8x), 14 JPEGs deleted\n2026-04-21T18:41:16.858046Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5262134208844209929, trigger=click)\n2026-04-21T18:41:18.719527Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5262134208844209929, trigger=click)\n2026-04-21T18:41:20.650032Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6762752836329409782, trigger=click)\n2026-04-21T18:42:40.957654Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7949512313665335161, trigger=visual_change)\n2026-04-21T18:42:42.714242Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7949512313665335161, trigger=click)\n2026-04-21T18:44:54.833923Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7610506607449357182, trigger=click)\n2026-04-21T18:44:55.013934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7610506607449357182, trigger=click)\n2026-04-21T18:45:54.320505Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=145 elapsed=4.6846185s\n2026-04-21T18:45:54.321215Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 145 eligible frames\n2026-04-21T18:45:58.288822Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 64 frames, 12.5MB → 0.5MB (23.2x), 64 JPEGs deleted\n2026-04-21T18:46:02.956701Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 78 frames, 11.5MB → 3.3MB (3.5x), 78 JPEGs deleted\n2026-04-21T18:48:10.510139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4242937607805845066, trigger=click)\n2026-04-21T18:48:37.207446Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5152173808593872338, trigger=visual_change)\n2026-04-21T18:49:27.537635Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5244088376274895156, trigger=click)\n2026-04-21T18:49:33.724367Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5262134208844209929, trigger=click)\n2026-04-21T18:49:44.747739Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8298107678328947062, trigger=click)\n2026-04-21T18:50:45.073176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:50:45.427101Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:50:48.592273Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:50:49.492676Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:51:01.193858Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:51:05.888682Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=50 elapsed=2.917680375s\n2026-04-21T18:51:05.889014Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 50 eligible frames\n2026-04-21T18:51:06.016628Z WARN sqlx::query: summary=\"PRAGMA wal_checkpoint(TRUNCATE)\" db.statement=\"\" rows_affected=0 rows_returned=1 elapsed=2.157649083s\n2026-04-21T18:51:06.079565Z WARN sqlx::query: summary=\"BEGIN IMMEDIATE\" db.statement=\"\" rows_affected=1 rows_returned=0 elapsed=1.385088167s\n2026-04-21T18:51:07.829374Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 3.9MB → 0.4MB (11.0x), 20 JPEGs deleted\n2026-04-21T18:51:09.736739Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 5.0MB → 1.8MB (2.7x), 28 JPEGs deleted\n2026-04-21T18:51:22.360027Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2872311122120998867, trigger=click)\n2026-04-21T18:51:22.556670Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2872311122120998867, trigger=click)\n2026-04-21T18:51:38.819030Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7947558874471225541, trigger=click)\n2026-04-21T18:51:57.414061Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:51:59.012068Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:51:59.285931Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:01.767745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:02.028355Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:05.460776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=visual_change)\n2026-04-21T18:52:07.087479Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:07.314492Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:10.214922Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:10.537340Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:13.867159Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:14.152331Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:20.367281Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:26.127826Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1650348556715134220, trigger=click)\n2026-04-21T18:52:37.517700Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=visual_change)\n2026-04-21T18:52:42.329057Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:52:42.556779Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:52:44.386173Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:52:44.700511Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:52:45.210674Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:53:17.193415Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6757993062848436258, trigger=visual_change)\n2026-04-21T18:53:30.834059Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-228480120308125164, trigger=click)\n2026-04-21T18:53:38.030882Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7225077546439863627, trigger=click)\n2026-04-21T18:53:56.421537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6437320026671683644, trigger=click)\n2026-04-21T18:54:11.726528Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1667437155962702753, trigger=visual_change)\n2026-04-21T18:54:12.117525Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1667437155962702753, trigger=click)\n2026-04-21T18:54:18.659686Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:54:19.077258Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:54:29.973760Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:56:07.789768Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6757993062848436258, trigger=click)\n2026-04-21T18:56:08.791400Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6757993062848436258, trigger=click)\n2026-04-21T18:56:14.153615Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=80 elapsed=4.402661042s\n2026-04-21T18:56:14.153722Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 80 eligible frames\n2026-04-21T18:56:16.685912Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 6.2MB → 0.7MB (8.9x), 32 JPEGs deleted\n2026-04-21T18:56:21.263739Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 46 frames, 8.2MB → 2.8MB (2.9x), 46 JPEGs deleted\n2026-04-21T18:56:25.279306Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7906564822731502105, trigger=click)\n2026-04-21T18:56:33.734840Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8817586097865472869, trigger=click)\n2026-04-21T18:56:33.980908Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8817586097865472869, trigger=click)\n2026-04-21T18:56:35.972959Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8817586097865472869, trigger=click)\n2026-04-21T18:56:40.545963Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8587160525579598601, trigger=click)\n2026-04-21T18:56:41.913814Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8587160525579598601, trigger=visual_change)\n2026-04-21T18:56:45.516942Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1910160977377320534, trigger=click)\n2026-04-21T18:56:48.740431Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1910160977377320534, trigger=click)\n2026-04-21T18:56:50.439568Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1910160977377320534, trigger=click)\n2026-04-21T18:56:50.692218Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1910160977377320534, trigger=click)\n2026-04-21T18:57:12.321118Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:12.578681Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:24.290583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:24.543696Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:34.571768Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:36.227688Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:36.475151Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:42.338601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:42.559967Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:52.824809Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:53.145543Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:59.463043Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:59.717475Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:58:00.742137Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:58:01.061497Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:59:33.960291Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9203182216527106315, trigger=visual_change)\n2026-04-21T18:59:55.990167Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T18:59:59.103830Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=visual_change)\n2026-04-21T19:00:16.116927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:00:45.352689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:00:49.596644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:00:50.432181Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:07.992732Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:08.484066Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:10.538762Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:18.922398Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:28.361625Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=84 elapsed=6.9360265s\n2026-04-21T19:01:28.362070Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 84 eligible frames\n2026-04-21T19:01:32.723075Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 33 frames, 6.4MB → 0.3MB (19.7x), 33 JPEGs deleted\n2026-04-21T19:01:42.130490Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 7.8MB → 3.3MB (2.4x), 49 JPEGs deleted\n2026-04-21T19:02:09.991879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:12.577587Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:12.835924Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:15.635601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:18.720475Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:21.708351Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:22.061150Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:28.684303Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3995027160269120472, trigger=click)\n2026-04-21T19:02:41.434491Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:41.724904Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:43.112974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:43.410843Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:47.501924Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:47.761592Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:54.205542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:54.441326Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:56.601490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:56.921256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:03:15.988643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:03:16.236342Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:03:28.508616Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:00.462064Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:01.516168Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:01.856315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:03.246448Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:03.735029Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:09.818135Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:05:03.118616Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:03.393788Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:21.352722Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=visual_change)\n2026-04-21T19:05:43.751309Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:44.029500Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:45.626672Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:45.899754Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:48.206587Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:48.449043Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:06:22.834938Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7947558874471225541, trigger=click)\n2026-04-21T19:06:52.937779Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=114 elapsed=10.747243125s\n2026-04-21T19:06:52.938152Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 114 eligible frames\n2026-04-21T19:06:57.942457Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 45 frames, 8.8MB → 0.3MB (27.2x), 45 JPEGs deleted\n2026-04-21T19:07:05.853054Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 67 frames, 10.5MB → 5.2MB (2.0x), 67 JPEGs deleted\n2026-04-21T19:07:45.088797Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:07:48.052391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6936634780821666458, trigger=click)\n2026-04-21T19:08:59.593467Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5629560013928052473, trigger=click)\n2026-04-21T19:09:29.443711Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:42.998313Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8043719072324535154, trigger=visual_change)\n2026-04-21T19:09:50.759516Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:51.052544Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:51.892698Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:09:52.651776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:55.476431Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:55.898195Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:09:58.077337Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:10:01.103980Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:10:03.105423Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:10:03.448049Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:10:08.548130Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6051188157141408655, trigger=click)\n2026-04-21T19:12:12.330759Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=70 elapsed=6.458002417s\n2026-04-21T19:12:12.332545Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 70 eligible frames\n2026-04-21T19:12:14.243079Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 5.5MB → 0.3MB (17.2x), 28 JPEGs deleted\n2026-04-21T19:12:17.558334Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 40 frames, 7.4MB → 3.6MB (2.1x), 40 JPEGs deleted\n2026-04-21T19:16:51.045938Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1370319459641728815, trigger=click)\n2026-04-21T19:16:51.249993Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1370319459641728815, trigger=click)\n2026-04-21T19:17:21.603564Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=40 elapsed=4.036037791s\n2026-04-21T19:17:21.604357Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames\n2026-04-21T19:17:22.750174Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.5MB → 0.3MB (11.2x), 18 JPEGs deleted\n2026-04-21T19:17:24.332098Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.2MB → 1.3MB (3.2x), 20 JPEGs deleted\n2026-04-21T19:22:25.748871Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=49 elapsed=1.406664416s\n2026-04-21T19:22:25.749095Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 49 eligible frames\n2026-04-21T19:22:27.704722Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 3.7MB → 0.8MB (4.5x), 22 JPEGs deleted\n2026-04-21T19:22:29.535330Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.2MB → 1.7MB (3.0x), 25 JPEGs deleted\n2026-04-21T19:23:29.233846Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9146581369053060363, trigger=click)\n2026-04-21T19:23:31.995034Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9146581369053060363, trigger=visual_change)\n2026-04-21T19:23:37.213396Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9146581369053060363, trigger=visual_change)\n2026-04-21T19:23:40.288223Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9146581369053060363, trigger=visual_change)\n2026-04-21T19:23:44.197738Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9146581369053060363, trigger=visual_change)\n2026-04-21T19:23:45.228572Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9146581369053060363, trigger=click)\n2026-04-21T19:23:56.251033Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:24:06.580019Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=335 elapsed=1.644312167s\n2026-04-21T19:24:28.860436Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:24:32.226944Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:24:32.476075Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:03.902521Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:19.205245Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:25.098627Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:36.013866Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:37.355954Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:41.831265Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:46.247585Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:46.619106Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:48.284769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:48.534452Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:49.421920Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:49.752264Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:54.600720Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:55.072357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:26:19.446041Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:26:22.718352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:27:38.437704Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=28 elapsed=8.833634334s\n2026-04-21T19:27:38.438043Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames\n2026-04-21T19:27:39.763901Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 1.9MB → 0.3MB (7.6x), 12 JPEGs deleted\n2026-04-21T19:27:41.220664Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.1MB → 0.9MB (2.2x), 14 JPEGs deleted\n2026-04-21T19:28:22.708791Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:28:23.849452Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:28:24.119301Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:14.209016Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:16.415693Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:21.726815Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:23.890645Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:24.239058Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:29.790006Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:33.098495Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:38.065869Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:44.089028Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:47.272131Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:53.977951Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:57.274496Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:30:11.986797Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:30:13.530455Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:30:28.332451Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:30:37.204947Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:26.255340Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:26.592983Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:30.448912Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:35.747969Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:37.783849Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:38.061197Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:43.216365Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:43.885407Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:46.680745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:52.971450Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:58.468469Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:58.624833Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:03.362210Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:12.706102Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:15.172982Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:23.020508Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:23.199312Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:25.387097Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:25.764201Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:30.336940Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:30.810971Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:39.812820Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:42.409145Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:44.386326Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:48.880648Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=47 elapsed=7.499136792s\n2026-04-21T19:32:48.880949Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 47 eligible frames\n2026-04-21T19:32:51.249469Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.2MB → 0.3MB (8.9x), 14 JPEGs deleted\n2026-04-21T19:32:55.969183Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 3.8MB → 1.9MB (2.0x), 31 JPEGs deleted\n2026-04-21T19:32:59.734686Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:33:00.098925Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:33:05.951997Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:34:07.213420Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:34:09.264586Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:34:16.527425Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:34:19.513647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:34:32.889780Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1128757073350665914, trigger=click)\n2026-04-21T19:34:56.078651Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4993766851008728916, trigger=click)\n2026-04-21T19:34:56.296542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4993766851008728916, trigger=click)\n2026-04-21T19:35:02.344819Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:35:05.237721Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:35:07.518599Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:35:09.938481Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:35:10.408295Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:35:26.864482Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:35:33.001733Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:35:36.479802Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:36:20.043835Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4526067242477956280, trigger=visual_change)\n2026-04-21T19:36:47.029303Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4526067242477956280, trigger=visual_change)\n2026-04-21T19:36:57.077150Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:37:33.348160Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:37:33.742029Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:37:36.579915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:37:39.754974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:38:04.951324Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=101 elapsed=8.9666755s\n2026-04-21T19:38:04.953527Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 101 eligible frames\n2026-04-21T19:38:13.751166Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 38 frames, 8.0MB → 3.5MB (2.3x), 38 JPEGs deleted\n2026-04-21T19:38:29.817220Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 61 frames, 9.7MB → 5.2MB (1.9x), 61 JPEGs deleted\n2026-04-21T19:40:34.255930Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=342 elapsed=1.0699005s\n2026-04-21T19:42:32.961192Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:42:33.305572Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:42:40.179851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=visual_change)\n2026-04-21T19:42:41.405781Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:42:41.720845Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:43:02.251464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=visual_change)\n2026-04-21T19:43:11.622532Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:43:36.525920Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=85 elapsed=6.634896167s\n2026-04-21T19:43:36.526454Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 85 eligible frames\n2026-04-21T19:43:39.459999Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 8.0MB → 3.4MB (2.3x), 36 JPEGs deleted\n2026-04-21T19:43:43.505640Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 47 frames, 7.9MB → 3.9MB (2.0x), 47 JPEGs deleted\n2026-04-21T19:44:05.999282Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=visual_change)\n2026-04-21T19:45:08.065595Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2712812971723964739, trigger=click)\n2026-04-21T19:45:46.266141Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:48:51.569666Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=64 elapsed=8.039671791s\n2026-04-21T19:48:51.570457Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 64 eligible frames\n2026-04-21T19:48:58.738540Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 7.2MB → 2.4MB (2.9x), 32 JPEGs deleted\n2026-04-21T19:49:05.383193Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 5.9MB → 2.5MB (2.4x), 30 JPEGs deleted\n2026-04-21T19:51:14.064760Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2572721248839450970, trigger=visual_change)\n2026-04-21T19:54:08.518415Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=346 elapsed=1.026887875s\n2026-04-21T19:54:12.872902Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=61 elapsed=7.44778675s\n2026-04-21T19:54:12.873164Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 61 eligible frames\n2026-04-21T19:54:16.348511Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.6MB → 1.4MB (4.1x), 25 JPEGs deleted\n2026-04-21T19:54:24.102233Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 34 frames, 6.2MB → 3.6MB (1.7x), 34 JPEGs deleted\n2026-04-21T19:59:32.063421Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=346 elapsed=1.165878958s\n2026-04-21T19:59:32.818884Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=31 elapsed=8.661332917s\n2026-04-21T19:59:32.819629Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 31 eligible frames\n2026-04-21T19:59:35.810838Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.9MB → 0.7MB (3.9x), 16 JPEGs deleted\n2026-04-21T19:59:38.924596Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.9MB → 1.5MB (2.0x), 13 JPEGs deleted\n2026-04-21T20:01:55.709776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1382976804061127003, trigger=click)\n2026-04-21T20:04:27.572999Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7658911549706194190, trigger=click)\n2026-04-21T20:04:46.630063Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=57 elapsed=7.045125334s\n2026-04-21T20:04:46.631081Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 57 eligible frames\n2026-04-21T20:04:49.684796Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 2.5MB → 0.8MB (3.2x), 23 JPEGs deleted\n2026-04-21T20:04:56.073590Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 5.7MB → 3.1MB (1.8x), 32 JPEGs deleted\n2026-04-21T20:05:04.129844Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-446124678591544690, trigger=click)\n2026-04-21T20:05:04.425723Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-446124678591544690, trigger=click)\n2026-04-21T20:09:59.238939Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=30 elapsed=2.058497125s\n2026-04-21T20:09:59.239075Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 30 eligible frames\n2026-04-21T20:10:00.874153Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.3MB → 0.2MB (5.8x), 13 JPEGs deleted\n2026-04-21T20:10:03.326064Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 1.8MB → 0.6MB (2.8x), 15 JPEGs deleted\n2026-04-21T20:15:07.129653Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=58 elapsed=3.763973459s\n2026-04-21T20:15:07.130598Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 58 eligible frames\n2026-04-21T20:15:09.088400Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 3.7MB → 0.6MB (5.9x), 26 JPEGs deleted\n2026-04-21T20:15:10.858868Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 3.9MB → 1.0MB (3.9x), 30 JPEGs deleted\n2026-04-21T20:18:21.110736Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=354 elapsed=1.169721666s\nzsh: terminated npx screenpipe@latest record --disable-audio --ignored-windows \"Boosteroid\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-start\ndetected hardware tier: Mid\nwarning: parakeet is not supported on this platform, using whisper-tiny instead\n2026-04-22T09:15:19.880360Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store\nchecking permissions...\n screen recording: ok\n accessibility: ok\n2026-04-22T09:15:19.951248Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6\n2026-04-22T09:15:20.675958Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor\n2026-04-22T09:15:20.677447Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)\n2026-04-22T09:15:20.677800Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)\n2026-04-22T09:15:20.709542Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true\n2026-04-22T09:15:20.709596Z INFO screenpipe: meeting detector enabled — independent of transcription mode\n2026-04-22T09:15:20.709849Z INFO screenpipe: API server listening on 127.0.0.1:3030 (localhost only)\n2026-04-22T09:15:20.709774Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)\n2026-04-22T09:15:20.709806Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)\n2026-04-22T09:15:20.709863Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key\n2026-04-22T09:15:20.709908Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager\n2026-04-22T09:15:20.721517Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-22T09:15:20.725781Z INFO screenpipe_core::pipes: loaded pipe: day-recap\n2026-04-22T09:15:20.725991Z INFO screenpipe_core::pipes: loaded pipe: standup-update\n2026-04-22T09:15:20.726387Z INFO screenpipe_core::pipes: loaded pipe: ai-habits\n2026-04-22T09:15:20.726548Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown\n2026-04-22T09:15:20.726690Z INFO screenpipe_core::pipes: loaded pipe: video-export\n2026-04-22T09:15:20.727224Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary\n2026-04-22T09:15:20.727242Z INFO screenpipe_core::pipes: loaded 6 pipes from \"/Users/lukas/.screenpipe/pipes\"\n\n\n\n _ \n __________________ ___ ____ ____ (_____ ___ \n / ___/ ___/ ___/ _ \\/ _ \\/ __ \\ / __ \\/ / __ \\/ _ \\\n (__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/\n/____/\\___/_/ \\___/\\___/_/ /_/ / .___/_/ .___/\\___/ \n /_/ /_/ \n\n\n\npower AI by everything you've seen, said or heard\nopen source | runs locally | developer friendly\n\n\n┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ true │\n│ vision disabled │ false │\n│ pause on DRM content │ false │\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n│ ignored windows │ [\"Boosteroid\"] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n2026-04-22T09:15:20.728614Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n│ api auth │ enabled │\n2026-04-22T09:15:20.742172Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n│ encrypt secrets │ disabled │\n│ retention days │ 14 │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ id: 1 │\n│ │ id: 2 │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ disabled │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-22T09:15:20.742788Z INFO screenpipe: starting UI event capture\n2026-04-22T09:15:20.755824Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-22T09:15:20.769629Z INFO screenpipe_engine::ui_recorder: UI recording session started: e7729066-2ab4-4bf0-9d48-0c9790a4ee79\n2026-04-22T09:15:20.769680Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-22T09:15:20.769789Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-21 06:15:20.769785 UTC to 2026-04-22 06:15:20.769785 UTC)\n2026-04-22T09:15:20.770644Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-22T09:15:20.778181Z INFO screenpipe_engine::server: Server listening on 127.0.0.1:3030\n2026-04-22T09:15:20.789960Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-22T09:15:21.591614Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-22T09:15:21.591646Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-22T09:15:21.591751Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-22T09:15:21.919088Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-22T09:15:21.919141Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-22T09:15:21.919158Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)\n2026-04-22T09:15:21.919163Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-22T09:15:21.919167Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)\n2026-04-22T09:15:23.315305Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-22T09:15:23.445619Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=68471, dur=74ms\n2026-04-22T09:15:23.697846Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-22T09:15:23.856559Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=68472, dur=115ms\n2026-04-22T09:15:23.858032Z INFO sck_rs::stream_manager: invalidated persistent stream for display 2","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.12291667,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.12708333,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.24583334,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.25,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"✳ Build full day activity summary from Screenpipe (claude)","depth":2,"bounds":{"left":0.36875,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.37291667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.49166667,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.49583334,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.6145833,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.61875,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.7375,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.7416667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"ec2-user@ip-10-30-159-186:~ (-zsh)","depth":2,"bounds":{"left":0.86041665,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.8645833,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.9548611,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"screenpipe\"","depth":1,"bounds":{"left":0.47083333,"top":0.033333335,"width":0.058333334,"height":0.017777778},"role_description":"text"}]...
|
4638311473313561985
|
2646348668002215289
|
visual_change
|
accessibility
|
NULL
|
2026-04-21T16:39:31.752392Z INFO screenpipe_engin 2026-04-21T16:39:31.752392Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4079194444055345358, trigger=click)
2026-04-21T16:39:31.941130Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4079194444055345358, trigger=click)
2026-04-21T16:39:37.082813Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=50 elapsed=2.555752875s
2026-04-21T16:39:37.082914Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 50 eligible frames
2026-04-21T16:39:39.896800Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.4MB → 0.9MB (4.9x), 24 JPEGs deleted
2026-04-21T16:39:42.979598Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.6MB → 1.9MB (2.5x), 24 JPEGs deleted
2026-04-21T16:39:54.138147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=869328293033429183, trigger=click)
2026-04-21T16:41:34.967355Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)
2026-04-21T16:41:35.133385Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)
2026-04-21T16:43:15.919099Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8254246256813675665, trigger=click)
2026-04-21T16:43:44.014066Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8254246256813675665, trigger=visual_change)
2026-04-21T16:44:45.410923Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=35 elapsed=2.419201375s
2026-04-21T16:44:45.411045Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 35 eligible frames
2026-04-21T16:44:46.383629Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.8MB → 0.3MB (9.5x), 15 JPEGs deleted
2026-04-21T16:44:47.792527Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.6MB → 0.8MB (4.3x), 18 JPEGs deleted
2026-04-21T16:49:53.308820Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=47 elapsed=5.487768917s
2026-04-21T16:49:53.309371Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 47 eligible frames
2026-04-21T16:49:54.673701Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.9MB → 0.3MB (13.1x), 21 JPEGs deleted
2026-04-21T16:49:56.314871Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.7MB → 1.2MB (4.0x), 24 JPEGs deleted
2026-04-21T16:54:59.385017Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=62 elapsed=3.057419917s
2026-04-21T16:54:59.385210Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 62 eligible frames
2026-04-21T16:55:00.998239Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.8MB → 0.5MB (10.3x), 26 JPEGs deleted
2026-04-21T16:55:03.739041Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 34 frames, 5.8MB → 2.6MB (2.2x), 34 JPEGs deleted
2026-04-21T16:55:17.768634Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)
2026-04-21T17:23:59.183039Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)
2026-04-21T17:23:59.216966Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2
2026-04-21T17:24:00.832399Z INFO screenpipe_engine::vision_manager::monitor_watcher: Monitor 2 disconnected, stopping recording
2026-04-21T17:24:00.832464Z INFO screenpipe_engine::vision_manager::manager: Stopping vision recording for monitor 2
2026-04-21T17:24:00.832336Z INFO sck_rs::stream_manager: stopped 2 persistent stream(s)
2026-04-21T17:24:04.654209Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)
2026-04-21T17:24:30.699969Z ERROR screenpipe_engine::resource_monitor: Failed to send resource usage to PostHog: error sending request for url (https://us.i.posthog.com/capture/)
2026-04-21T17:25:01.085383Z INFO screenpipe_engine::vision_manager::monitor_watcher: Monitor 2 reconnected, resuming recording
2026-04-21T17:25:01.273818Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-04-21T17:25:01.273870Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-04-21T17:25:01.273896Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-04-21T17:25:02.310236Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)
2026-04-21T17:25:02.808234Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=66228, dur=365ms
2026-04-21T17:25:04.889075Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:07.887565Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:10.918390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:14.039034Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:17.160521Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:26.096276Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:29.061270Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:32.067380Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:35.263701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:41.164753Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:25:44.239172Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:25:47.149320Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:25:50.242915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:25:53.308794Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:25:56.218138Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:25:59.144297Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:26:05.965946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:08.584110Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:11.350189Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:14.339609Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:17.398251Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:20.782119Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:23.385506Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:26.427626Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:29.573661Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:32.450744Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:38.464132Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:41.456915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:44.496278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:47.541313Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:50.596256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:53.597171Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:56.764522Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:59.751576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:02.719391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:08.829090Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:11.800601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:14.811724Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:17.855339Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:26.878741Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:29.933020Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:32.947216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:36.041239Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:38.993657Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:42.039373Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:45.172399Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:48.081804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:51.142939Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:54.169253Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:00.341347Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:03.322832Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:06.631198Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:09.537232Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:12.406113Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:15.381764Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:15.806839Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=44 elapsed=5.777403s
2026-04-21T17:28:15.806951Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 44 eligible frames
2026-04-21T17:28:17.108106Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.9MB → 0.3MB (13.1x), 21 JPEGs deleted
2026-04-21T17:28:18.370832Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.6MB → 0.5MB (7.8x), 21 JPEGs deleted
2026-04-21T17:28:18.461408Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:22.068097Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:24.604711Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:27.608060Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:33.774822Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:36.697278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:39.729251Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:42.728755Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:45.748204Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:48.768910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:51.814752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:54.970698Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:57.869874Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:00.913837Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:07.461529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:10.043928Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:13.182411Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:16.080133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:19.108570Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:22.322033Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:25.172666Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:28.398354Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:31.249083Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:34.289745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:40.303310Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:43.308015Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:46.360649Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:49.356069Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:52.450205Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:55.422975Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:58.446390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:01.491253Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:04.500380Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:16.830925Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:19.856895Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:23.100486Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:25.938910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:28.953603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:32.061536Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:35.030958Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:38.162895Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:41.148165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:44.019513Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:50.259576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:53.148070Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:56.309979Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:59.185610Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:02.278235Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:05.287341Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:08.409426Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:11.489977Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:14.319338Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:17.348153Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:23.351025Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:26.427529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:29.337254Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:32.386165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:35.653387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:38.430216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:41.428909Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:44.432459Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:47.448603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:50.432780Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:56.535727Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:59.590792Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:32:02.621444Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:32:05.627964Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:32:08.710139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:32:11.765247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:32:14.787638Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:32:17.876480Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)
2026-04-21T17:32:20.977937Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)
2026-04-21T17:32:29.888970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8116870867026519513, trigger=click)
2026-04-21T17:32:33.123648Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)
2026-04-21T17:33:03.355082Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)
2026-04-21T17:33:05.517897Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=click)
2026-04-21T17:33:06.399783Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)
2026-04-21T17:33:09.478894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)
2026-04-21T17:33:19.151217Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
2026-04-21T17:33:21.431006Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6379516332769645744, trigger=visual_change)
2026-04-21T17:33:33.494463Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7500553589467718193, trigger=visual_change)
2026-04-21T17:34:00.725974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2275300387038012183, trigger=click)
2026-04-21T17:34:07.214867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2063499064757931498, trigger=visual_change)
2026-04-21T17:34:31.480257Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=visual_change)
2026-04-21T17:34:34.482370Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=visual_change)
2026-04-21T17:35:53.801549Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7652433743467416760, trigger=click)
2026-04-21T17:35:53.954311Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7652433743467416760, trigger=click)
2026-04-21T17:35:54.740695Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7652433743467416760, trigger=click)
2026-04-21T17:36:06.295752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5335392039126841536, trigger=visual_change)
2026-04-21T17:36:28.893337Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5927780310531960690, trigger=visual_change)
2026-04-21T17:38:15.647110Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)
2026-04-21T17:38:17.801901Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)
2026-04-21T17:38:17.962831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)
2026-04-21T17:38:22.819710Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7137414965816212018, trigger=click)
2026-04-21T17:38:22.917176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=click)
2026-04-21T17:38:23.042830Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=28 elapsed=3.882772625s
2026-04-21T17:38:23.042920Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames
2026-04-21T17:38:24.717251Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 2.8MB → 0.4MB (6.3x), 18 JPEGs deleted
2026-04-21T17:38:26.727027Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.1MB → 0.2MB (5.7x), 10 JPEGs deleted
2026-04-21T17:38:35.971287Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=click)
2026-04-21T17:38:36.106246Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7137414965816212018, trigger=click)
2026-04-21T17:38:37.368009Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=visual_change)
2026-04-21T17:38:43.431620Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8741356672789266752, trigger=visual_change)
2026-04-21T17:38:49.319886Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5149767057649118192, trigger=click)
2026-04-21T17:38:49.477325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5149767057649118192, trigger=click)
2026-04-21T17:38:51.019231Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5149767057649118192, trigger=visual_change)
2026-04-21T17:39:04.249890Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7355944135161080033, trigger=click)
2026-04-21T17:39:23.256256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4983811095206295613, trigger=click)
2026-04-21T17:39:23.385820Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4983811095206295613, trigger=click)
2026-04-21T17:39:24.367407Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4983811095206295613, trigger=visual_change)
2026-04-21T17:39:24.895784Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4983811095206295613, trigger=click)
2026-04-21T17:39:46.438272Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=372069959735326508, trigger=visual_change)
2026-04-21T17:39:49.101085Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4964238948655865655, trigger=visual_change)
2026-04-21T17:39:58.083750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)
2026-04-21T17:40:01.375315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)
2026-04-21T17:40:04.195859Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)
2026-04-21T17:40:12.117004Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2989278587618621353, trigger=click)
2026-04-21T17:40:12.244666Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2989278587618621353, trigger=click)
2026-04-21T17:40:13.925024Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2989278587618621353, trigger=visual_change)
2026-04-21T17:40:23.294147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=visual_change)
2026-04-21T17:40:55.989498Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3182674559678505325, trigger=click)
2026-04-21T17:40:58.413325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3182674559678505325, trigger=visual_change)
2026-04-21T17:41:23.101094Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5616874458658671741, trigger=visual_change)
2026-04-21T17:41:29.504783Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2744778324521007391, trigger=visual_change)
2026-04-21T17:42:13.830352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6664909184667365933, trigger=click)
2026-04-21T17:42:13.905614Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=click)
2026-04-21T17:42:14.689622Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6664909184667365933, trigger=click)
2026-04-21T17:43:13.738786Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5563100798252317961, trigger=visual_change)
2026-04-21T17:43:31.769731Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=40 elapsed=4.870364084s
2026-04-21T17:43:31.770321Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames
2026-04-21T17:43:32.514133Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.1MB → 0.1MB (8.9x), 11 JPEGs deleted
2026-04-21T17:43:34.391762Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 3.0MB → 0.5MB (5.9x), 27 JPEGs deleted
2026-04-21T17:44:19.021163Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-263228306577803226, trigger=click)
2026-04-21T17:44:32.036390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8360298266192684601, trigger=click)
2026-04-21T17:44:33.859332Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8360298266192684601, trigger=visual_change)
2026-04-21T17:44:42.936361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=visual_change)
2026-04-21T17:44:46.420662Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=visual_change)
2026-04-21T17:46:17.725934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7286082578618580481, trigger=click)
2026-04-21T17:46:18.733766Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=click)
2026-04-21T17:46:19.506484Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7286082578618580481, trigger=click)
2026-04-21T17:46:20.729229Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=click)
2026-04-21T17:46:27.956655Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8942982652250876029, trigger=click)
2026-04-21T17:46:29.490950Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8942982652250876029, trigger=click)
2026-04-21T17:46:45.634752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5761541209609855314, trigger=click)
2026-04-21T17:46:45.971315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5761541209609855314, trigger=click)
2026-04-21T17:46:50.988867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5607564885929685542, trigger=click)
2026-04-21T17:46:51.601750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5607564885929685542, trigger=click)
2026-04-21T17:46:56.353647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4497988824039212795, trigger=click)
2026-04-21T17:47:24.716661Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4864885406063659925, trigger=visual_change)
2026-04-21T17:47:29.793942Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:30.097043Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)
2026-04-21T17:47:30.960214Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:32.707746Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)
2026-04-21T17:47:36.181007Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:36.362574Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:37.093511Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:41.720206Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)
2026-04-21T17:47:44.706704Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)
2026-04-21T17:47:48.602580Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:48.776278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:52.582982Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5658848090639979218, trigger=click)
2026-04-21T17:47:57.282103Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8902771592702756196, trigger=click)
2026-04-21T17:48:06.880071Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8902771592702756196, trigger=click)
2026-04-21T17:48:07.656377Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8902771592702756196, trigger=click)
2026-04-21T17:48:23.785117Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:48:24.032602Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:48:26.587906Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:48:32.180582Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)
2026-04-21T17:48:34.022831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:48:34.363583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:48:39.363585Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=83 elapsed=4.983598708s
2026-04-21T17:48:39.363733Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 83 eligible frames
2026-04-21T17:48:41.479158Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 3.3MB → 0.2MB (17.7x), 31 JPEGs deleted
2026-04-21T17:48:44.682560Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 50 frames, 6.5MB → 2.0MB (3.3x), 50 JPEGs deleted
2026-04-21T17:48:53.828851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)
2026-04-21T17:48:56.563636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)
2026-04-21T17:48:59.291654Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:48:59.467275Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:00.295226Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:00.453357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=visual_change)
2026-04-21T17:49:13.301518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)
2026-04-21T17:49:16.454207Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)
2026-04-21T17:49:16.837288Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:18.900202Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:19.229376Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:20.418502Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:20.706966Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:21.269855Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:22.896443Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:23.115745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:29.927553Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1234240076182081719, trigger=click)
2026-04-21T17:49:40.567042Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1506528968255096811, trigger=click)
2026-04-21T17:49:40.722412Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1506528968255096811, trigger=click)
2026-04-21T17:49:44.790415Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1506528968255096811, trigger=visual_change)
2026-04-21T17:49:44.983133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1506528968255096811, trigger=visual_change)
2026-04-21T17:51:50.315220Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)
2026-04-21T17:51:53.337571Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)
2026-04-21T17:51:59.473328Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)
2026-04-21T17:52:02.455277Z INFO screenpipe_engine::event_driven_capture: content dedup: skippi...
|
68471
|
|
68472
|
1553
|
0
|
2026-04-22T06:15:22.420295+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-22/1776 /Users/lukas/.screenpipe/data/data/2026-04-22/1776838522420_m2.jpg...
|
iTerm2
|
screenpipe"
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
2026-04-21T16:39:28.954550Z INFO screenpipe_engin 2026-04-21T16:39:28.954550Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=869328293033429183, trigger=click)
2026-04-21T16:39:29.084826Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=869328293033429183, trigger=click)
2026-04-21T16:39:31.752392Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4079194444055345358, trigger=click)
2026-04-21T16:39:31.941130Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4079194444055345358, trigger=click)
2026-04-21T16:39:37.082813Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=50 elapsed=2.555752875s
2026-04-21T16:39:37.082914Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 50 eligible frames
2026-04-21T16:39:39.896800Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.4MB → 0.9MB (4.9x), 24 JPEGs deleted
2026-04-21T16:39:42.979598Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.6MB → 1.9MB (2.5x), 24 JPEGs deleted
2026-04-21T16:39:54.138147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=869328293033429183, trigger=click)
2026-04-21T16:41:34.967355Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)
2026-04-21T16:41:35.133385Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)
2026-04-21T16:43:15.919099Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8254246256813675665, trigger=click)
2026-04-21T16:43:44.014066Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8254246256813675665, trigger=visual_change)
2026-04-21T16:44:45.410923Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=35 elapsed=2.419201375s
2026-04-21T16:44:45.411045Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 35 eligible frames
2026-04-21T16:44:46.383629Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.8MB → 0.3MB (9.5x), 15 JPEGs deleted
2026-04-21T16:44:47.792527Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.6MB → 0.8MB (4.3x), 18 JPEGs deleted
2026-04-21T16:49:53.308820Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=47 elapsed=5.487768917s
2026-04-21T16:49:53.309371Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 47 eligible frames
2026-04-21T16:49:54.673701Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.9MB → 0.3MB (13.1x), 21 JPEGs deleted
2026-04-21T16:49:56.314871Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.7MB → 1.2MB (4.0x), 24 JPEGs deleted
2026-04-21T16:54:59.385017Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=62 elapsed=3.057419917s
2026-04-21T16:54:59.385210Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 62 eligible frames
2026-04-21T16:55:00.998239Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.8MB → 0.5MB (10.3x), 26 JPEGs deleted
2026-04-21T16:55:03.739041Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 34 frames, 5.8MB → 2.6MB (2.2x), 34 JPEGs deleted
2026-04-21T16:55:17.768634Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)
2026-04-21T17:23:59.183039Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)
2026-04-21T17:23:59.216966Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2
2026-04-21T17:24:00.832399Z INFO screenpipe_engine::vision_manager::monitor_watcher: Monitor 2 disconnected, stopping recording
2026-04-21T17:24:00.832464Z INFO screenpipe_engine::vision_manager::manager: Stopping vision recording for monitor 2
2026-04-21T17:24:00.832336Z INFO sck_rs::stream_manager: stopped 2 persistent stream(s)
2026-04-21T17:24:04.654209Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)
2026-04-21T17:24:30.699969Z ERROR screenpipe_engine::resource_monitor: Failed to send resource usage to PostHog: error sending request for url (https://us.i.posthog.com/capture/)
2026-04-21T17:25:01.085383Z INFO screenpipe_engine::vision_manager::monitor_watcher: Monitor 2 reconnected, resuming recording
2026-04-21T17:25:01.273818Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-04-21T17:25:01.273870Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-04-21T17:25:01.273896Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-04-21T17:25:02.310236Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)
2026-04-21T17:25:02.808234Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=66228, dur=365ms
2026-04-21T17:25:04.889075Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:07.887565Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:10.918390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:14.039034Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:17.160521Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:26.096276Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:29.061270Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:32.067380Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:35.263701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:41.164753Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:25:44.239172Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:25:47.149320Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:25:50.242915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:25:53.308794Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:25:56.218138Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:25:59.144297Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:26:05.965946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:08.584110Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:11.350189Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:14.339609Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:17.398251Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:20.782119Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:23.385506Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:26.427626Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:29.573661Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:32.450744Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:38.464132Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:41.456915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:44.496278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:47.541313Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:50.596256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:53.597171Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:56.764522Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:59.751576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:02.719391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:08.829090Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:11.800601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:14.811724Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:17.855339Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:26.878741Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:29.933020Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:32.947216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:36.041239Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:38.993657Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:42.039373Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:45.172399Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:48.081804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:51.142939Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:54.169253Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:00.341347Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:03.322832Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:06.631198Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:09.537232Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:12.406113Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:15.381764Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:15.806839Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=44 elapsed=5.777403s
2026-04-21T17:28:15.806951Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 44 eligible frames
2026-04-21T17:28:17.108106Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.9MB → 0.3MB (13.1x), 21 JPEGs deleted
2026-04-21T17:28:18.370832Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.6MB → 0.5MB (7.8x), 21 JPEGs deleted
2026-04-21T17:28:18.461408Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:22.068097Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:24.604711Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:27.608060Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:33.774822Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:36.697278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:39.729251Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:42.728755Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:45.748204Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:48.768910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:51.814752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:54.970698Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:57.869874Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:00.913837Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:07.461529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:10.043928Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:13.182411Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:16.080133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:19.108570Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:22.322033Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:25.172666Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:28.398354Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:31.249083Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:34.289745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:40.303310Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:43.308015Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:46.360649Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:49.356069Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:52.450205Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:55.422975Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:58.446390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:01.491253Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:04.500380Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:16.830925Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:19.856895Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:23.100486Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:25.938910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:28.953603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:32.061536Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:35.030958Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:38.162895Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:41.148165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:44.019513Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:50.259576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:53.148070Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:56.309979Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:59.185610Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:02.278235Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:05.287341Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:08.409426Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:11.489977Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:14.319338Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:17.348153Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:23.351025Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:26.427529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:29.337254Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:32.386165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:35.653387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:38.430216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:41.428909Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:44.432459Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:47.448603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:50.432780Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:56.535727Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:59.590792Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:32:02.621444Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:32:05.627964Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:32:08.710139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:32:11.765247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:32:14.787638Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:32:17.876480Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)
2026-04-21T17:32:20.977937Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)
2026-04-21T17:32:29.888970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8116870867026519513, trigger=click)
2026-04-21T17:32:33.123648Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)
2026-04-21T17:33:03.355082Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)
2026-04-21T17:33:05.517897Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=click)
2026-04-21T17:33:06.399783Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)
2026-04-21T17:33:09.478894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)
2026-04-21T17:33:19.151217Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
2026-04-21T17:33:21.431006Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6379516332769645744, trigger=visual_change)
2026-04-21T17:33:33.494463Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7500553589467718193, trigger=visual_change)
2026-04-21T17:34:00.725974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2275300387038012183, trigger=click)
2026-04-21T17:34:07.214867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2063499064757931498, trigger=visual_change)
2026-04-21T17:34:31.480257Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=visual_change)
2026-04-21T17:34:34.482370Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=visual_change)
2026-04-21T17:35:53.801549Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7652433743467416760, trigger=click)
2026-04-21T17:35:53.954311Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7652433743467416760, trigger=click)
2026-04-21T17:35:54.740695Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7652433743467416760, trigger=click)
2026-04-21T17:36:06.295752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5335392039126841536, trigger=visual_change)
2026-04-21T17:36:28.893337Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5927780310531960690, trigger=visual_change)
2026-04-21T17:38:15.647110Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)
2026-04-21T17:38:17.801901Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)
2026-04-21T17:38:17.962831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)
2026-04-21T17:38:22.819710Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7137414965816212018, trigger=click)
2026-04-21T17:38:22.917176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=click)
2026-04-21T17:38:23.042830Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=28 elapsed=3.882772625s
2026-04-21T17:38:23.042920Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames
2026-04-21T17:38:24.717251Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 2.8MB → 0.4MB (6.3x), 18 JPEGs deleted
2026-04-21T17:38:26.727027Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.1MB → 0.2MB (5.7x), 10 JPEGs deleted
2026-04-21T17:38:35.971287Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=click)
2026-04-21T17:38:36.106246Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7137414965816212018, trigger=click)
2026-04-21T17:38:37.368009Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=visual_change)
2026-04-21T17:38:43.431620Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8741356672789266752, trigger=visual_change)
2026-04-21T17:38:49.319886Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5149767057649118192, trigger=click)
2026-04-21T17:38:49.477325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5149767057649118192, trigger=click)
2026-04-21T17:38:51.019231Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5149767057649118192, trigger=visual_change)
2026-04-21T17:39:04.249890Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7355944135161080033, trigger=click)
2026-04-21T17:39:23.256256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4983811095206295613, trigger=click)
2026-04-21T17:39:23.385820Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4983811095206295613, trigger=click)
2026-04-21T17:39:24.367407Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4983811095206295613, trigger=visual_change)
2026-04-21T17:39:24.895784Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4983811095206295613, trigger=click)
2026-04-21T17:39:46.438272Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=372069959735326508, trigger=visual_change)
2026-04-21T17:39:49.101085Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4964238948655865655, trigger=visual_change)
2026-04-21T17:39:58.083750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)
2026-04-21T17:40:01.375315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)
2026-04-21T17:40:04.195859Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)
2026-04-21T17:40:12.117004Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2989278587618621353, trigger=click)
2026-04-21T17:40:12.244666Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2989278587618621353, trigger=click)
2026-04-21T17:40:13.925024Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2989278587618621353, trigger=visual_change)
2026-04-21T17:40:23.294147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=visual_change)
2026-04-21T17:40:55.989498Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3182674559678505325, trigger=click)
2026-04-21T17:40:58.413325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3182674559678505325, trigger=visual_change)
2026-04-21T17:41:23.101094Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5616874458658671741, trigger=visual_change)
2026-04-21T17:41:29.504783Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2744778324521007391, trigger=visual_change)
2026-04-21T17:42:13.830352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6664909184667365933, trigger=click)
2026-04-21T17:42:13.905614Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=click)
2026-04-21T17:42:14.689622Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6664909184667365933, trigger=click)
2026-04-21T17:43:13.738786Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5563100798252317961, trigger=visual_change)
2026-04-21T17:43:31.769731Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=40 elapsed=4.870364084s
2026-04-21T17:43:31.770321Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames
2026-04-21T17:43:32.514133Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.1MB → 0.1MB (8.9x), 11 JPEGs deleted
2026-04-21T17:43:34.391762Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 3.0MB → 0.5MB (5.9x), 27 JPEGs deleted
2026-04-21T17:44:19.021163Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-263228306577803226, trigger=click)
2026-04-21T17:44:32.036390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8360298266192684601, trigger=click)
2026-04-21T17:44:33.859332Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8360298266192684601, trigger=visual_change)
2026-04-21T17:44:42.936361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=visual_change)
2026-04-21T17:44:46.420662Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=visual_change)
2026-04-21T17:46:17.725934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7286082578618580481, trigger=click)
2026-04-21T17:46:18.733766Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=click)
2026-04-21T17:46:19.506484Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7286082578618580481, trigger=click)
2026-04-21T17:46:20.729229Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=click)
2026-04-21T17:46:27.956655Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8942982652250876029, trigger=click)
2026-04-21T17:46:29.490950Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8942982652250876029, trigger=click)
2026-04-21T17:46:45.634752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5761541209609855314, trigger=click)
2026-04-21T17:46:45.971315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5761541209609855314, trigger=click)
2026-04-21T17:46:50.988867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5607564885929685542, trigger=click)
2026-04-21T17:46:51.601750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5607564885929685542, trigger=click)
2026-04-21T17:46:56.353647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4497988824039212795, trigger=click)
2026-04-21T17:47:24.716661Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4864885406063659925, trigger=visual_change)
2026-04-21T17:47:29.793942Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:30.097043Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)
2026-04-21T17:47:30.960214Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:32.707746Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)
2026-04-21T17:47:36.181007Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:36.362574Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:37.093511Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:41.720206Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)
2026-04-21T17:47:44.706704Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)
2026-04-21T17:47:48.602580Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:48.776278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:52.582982Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5658848090639979218, trigger=click)
2026-04-21T17:47:57.282103Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8902771592702756196, trigger=click)
2026-04-21T17:48:06.880071Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8902771592702756196, trigger=click)
2026-04-21T17:48:07.656377Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8902771592702756196, trigger=click)
2026-04-21T17:48:23.785117Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:48:24.032602Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:48:26.587906Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:48:32.180582Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)
2026-04-21T17:48:34.022831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:48:34.363583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:48:39.363585Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=83 elapsed=4.983598708s
2026-04-21T17:48:39.363733Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 83 eligible frames
2026-04-21T17:48:41.479158Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 3.3MB → 0.2MB (17.7x), 31 JPEGs deleted
2026-04-21T17:48:44.682560Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 50 frames, 6.5MB → 2.0MB (3.3x), 50 JPEGs deleted
2026-04-21T17:48:53.828851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)
2026-04-21T17:48:56.563636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)
2026-04-21T17:48:59.291654Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:48:59.467275Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:00.295226Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:00.453357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=visual_change)
2026-04-21T17:49:13.301518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)
2026-04-21T17:49:16.454207Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)
2026-04-21T17:49:16.837288Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:18.900202Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:19.229376Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:20.418502Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:20.706966Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:21.269855Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:22.896443Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:23.115745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:29.927553Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1234240076182081719, trigger=click)
2026-04-21T17:49:40.567042Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1506528968255096811, trigger=click)
2026-04-21T17:49:40.722412Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1506528968255096811, trigger=click)
2026-04-21T17:49:44.790415Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1506528968255096811, trigger=visual_change)
2026-04-21T17:49:44.983133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1506528968255096811, trigger=visual_change)
2026-04-21T17:51:50.315220Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)
2026-04-21T17:51:53.337571Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for mon...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"2026-04-21T16:39:28.954550Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=869328293033429183, trigger=click)\n2026-04-21T16:39:29.084826Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=869328293033429183, trigger=click)\n2026-04-21T16:39:31.752392Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4079194444055345358, trigger=click)\n2026-04-21T16:39:31.941130Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4079194444055345358, trigger=click)\n2026-04-21T16:39:37.082813Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=50 elapsed=2.555752875s\n2026-04-21T16:39:37.082914Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 50 eligible frames\n2026-04-21T16:39:39.896800Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.4MB → 0.9MB (4.9x), 24 JPEGs deleted\n2026-04-21T16:39:42.979598Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.6MB → 1.9MB (2.5x), 24 JPEGs deleted\n2026-04-21T16:39:54.138147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=869328293033429183, trigger=click)\n2026-04-21T16:41:34.967355Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:41:35.133385Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:43:15.919099Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8254246256813675665, trigger=click)\n2026-04-21T16:43:44.014066Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8254246256813675665, trigger=visual_change)\n2026-04-21T16:44:45.410923Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=35 elapsed=2.419201375s\n2026-04-21T16:44:45.411045Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 35 eligible frames\n2026-04-21T16:44:46.383629Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.8MB → 0.3MB (9.5x), 15 JPEGs deleted\n2026-04-21T16:44:47.792527Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.6MB → 0.8MB (4.3x), 18 JPEGs deleted\n2026-04-21T16:49:53.308820Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=47 elapsed=5.487768917s\n2026-04-21T16:49:53.309371Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 47 eligible frames\n2026-04-21T16:49:54.673701Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.9MB → 0.3MB (13.1x), 21 JPEGs deleted\n2026-04-21T16:49:56.314871Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.7MB → 1.2MB (4.0x), 24 JPEGs deleted\n2026-04-21T16:54:59.385017Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=62 elapsed=3.057419917s\n2026-04-21T16:54:59.385210Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 62 eligible frames\n2026-04-21T16:55:00.998239Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.8MB → 0.5MB (10.3x), 26 JPEGs deleted\n2026-04-21T16:55:03.739041Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 34 frames, 5.8MB → 2.6MB (2.2x), 34 JPEGs deleted\n2026-04-21T16:55:17.768634Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)\n2026-04-21T17:23:59.183039Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)\n2026-04-21T17:23:59.216966Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2\n2026-04-21T17:24:00.832399Z INFO screenpipe_engine::vision_manager::monitor_watcher: Monitor 2 disconnected, stopping recording\n2026-04-21T17:24:00.832464Z INFO screenpipe_engine::vision_manager::manager: Stopping vision recording for monitor 2\n2026-04-21T17:24:00.832336Z INFO sck_rs::stream_manager: stopped 2 persistent stream(s)\n2026-04-21T17:24:04.654209Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-21T17:24:30.699969Z ERROR screenpipe_engine::resource_monitor: Failed to send resource usage to PostHog: error sending request for url (https://us.i.posthog.com/capture/)\n2026-04-21T17:25:01.085383Z INFO screenpipe_engine::vision_manager::monitor_watcher: Monitor 2 reconnected, resuming recording\n2026-04-21T17:25:01.273818Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-21T17:25:01.273870Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-21T17:25:01.273896Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-21T17:25:02.310236Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-21T17:25:02.808234Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=66228, dur=365ms\n2026-04-21T17:25:04.889075Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:07.887565Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:10.918390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:14.039034Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:17.160521Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:26.096276Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:29.061270Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:32.067380Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:35.263701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:41.164753Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:44.239172Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:47.149320Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:50.242915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:53.308794Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:56.218138Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:59.144297Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:26:05.965946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:08.584110Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:11.350189Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:14.339609Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:17.398251Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:20.782119Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:23.385506Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:26.427626Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:29.573661Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:32.450744Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:38.464132Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:41.456915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:44.496278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:47.541313Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:50.596256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:53.597171Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:56.764522Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:59.751576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:02.719391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:08.829090Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:11.800601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:14.811724Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:17.855339Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:26.878741Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:29.933020Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:32.947216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:36.041239Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:38.993657Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:42.039373Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:45.172399Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:48.081804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:51.142939Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:54.169253Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:00.341347Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:03.322832Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:06.631198Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:09.537232Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:12.406113Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:15.381764Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:15.806839Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=44 elapsed=5.777403s\n2026-04-21T17:28:15.806951Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 44 eligible frames\n2026-04-21T17:28:17.108106Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.9MB → 0.3MB (13.1x), 21 JPEGs deleted\n2026-04-21T17:28:18.370832Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.6MB → 0.5MB (7.8x), 21 JPEGs deleted\n2026-04-21T17:28:18.461408Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:22.068097Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:24.604711Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:27.608060Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:33.774822Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:36.697278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:39.729251Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:42.728755Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:45.748204Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:48.768910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:51.814752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:54.970698Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:57.869874Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:00.913837Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:07.461529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:10.043928Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:13.182411Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:16.080133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:19.108570Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:22.322033Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:25.172666Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:28.398354Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:31.249083Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:34.289745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:40.303310Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:43.308015Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:46.360649Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:49.356069Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:52.450205Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:55.422975Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:58.446390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:01.491253Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:04.500380Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:16.830925Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:19.856895Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:23.100486Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:25.938910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:28.953603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:32.061536Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:35.030958Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:38.162895Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:41.148165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:44.019513Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:50.259576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:53.148070Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:56.309979Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:59.185610Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:02.278235Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:05.287341Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:08.409426Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:11.489977Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:14.319338Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:17.348153Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:23.351025Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:26.427529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:29.337254Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:32.386165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:35.653387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:38.430216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:41.428909Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:44.432459Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:47.448603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:50.432780Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:56.535727Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:59.590792Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:02.621444Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:05.627964Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:08.710139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:11.765247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:14.787638Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:17.876480Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)\n2026-04-21T17:32:20.977937Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)\n2026-04-21T17:32:29.888970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8116870867026519513, trigger=click)\n2026-04-21T17:32:33.123648Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)\n2026-04-21T17:33:03.355082Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)\n2026-04-21T17:33:05.517897Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=click)\n2026-04-21T17:33:06.399783Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)\n2026-04-21T17:33:09.478894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)\n2026-04-21T17:33:19.151217Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-21T17:33:21.431006Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6379516332769645744, trigger=visual_change)\n2026-04-21T17:33:33.494463Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7500553589467718193, trigger=visual_change)\n2026-04-21T17:34:00.725974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2275300387038012183, trigger=click)\n2026-04-21T17:34:07.214867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2063499064757931498, trigger=visual_change)\n2026-04-21T17:34:31.480257Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=visual_change)\n2026-04-21T17:34:34.482370Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=visual_change)\n2026-04-21T17:35:53.801549Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7652433743467416760, trigger=click)\n2026-04-21T17:35:53.954311Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7652433743467416760, trigger=click)\n2026-04-21T17:35:54.740695Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7652433743467416760, trigger=click)\n2026-04-21T17:36:06.295752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5335392039126841536, trigger=visual_change)\n2026-04-21T17:36:28.893337Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5927780310531960690, trigger=visual_change)\n2026-04-21T17:38:15.647110Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)\n2026-04-21T17:38:17.801901Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)\n2026-04-21T17:38:17.962831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)\n2026-04-21T17:38:22.819710Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7137414965816212018, trigger=click)\n2026-04-21T17:38:22.917176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=click)\n2026-04-21T17:38:23.042830Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=28 elapsed=3.882772625s\n2026-04-21T17:38:23.042920Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames\n2026-04-21T17:38:24.717251Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 2.8MB → 0.4MB (6.3x), 18 JPEGs deleted\n2026-04-21T17:38:26.727027Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.1MB → 0.2MB (5.7x), 10 JPEGs deleted\n2026-04-21T17:38:35.971287Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=click)\n2026-04-21T17:38:36.106246Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7137414965816212018, trigger=click)\n2026-04-21T17:38:37.368009Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=visual_change)\n2026-04-21T17:38:43.431620Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8741356672789266752, trigger=visual_change)\n2026-04-21T17:38:49.319886Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5149767057649118192, trigger=click)\n2026-04-21T17:38:49.477325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5149767057649118192, trigger=click)\n2026-04-21T17:38:51.019231Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5149767057649118192, trigger=visual_change)\n2026-04-21T17:39:04.249890Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7355944135161080033, trigger=click)\n2026-04-21T17:39:23.256256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4983811095206295613, trigger=click)\n2026-04-21T17:39:23.385820Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4983811095206295613, trigger=click)\n2026-04-21T17:39:24.367407Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4983811095206295613, trigger=visual_change)\n2026-04-21T17:39:24.895784Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4983811095206295613, trigger=click)\n2026-04-21T17:39:46.438272Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=372069959735326508, trigger=visual_change)\n2026-04-21T17:39:49.101085Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4964238948655865655, trigger=visual_change)\n2026-04-21T17:39:58.083750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)\n2026-04-21T17:40:01.375315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)\n2026-04-21T17:40:04.195859Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)\n2026-04-21T17:40:12.117004Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2989278587618621353, trigger=click)\n2026-04-21T17:40:12.244666Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2989278587618621353, trigger=click)\n2026-04-21T17:40:13.925024Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2989278587618621353, trigger=visual_change)\n2026-04-21T17:40:23.294147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=visual_change)\n2026-04-21T17:40:55.989498Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3182674559678505325, trigger=click)\n2026-04-21T17:40:58.413325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3182674559678505325, trigger=visual_change)\n2026-04-21T17:41:23.101094Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5616874458658671741, trigger=visual_change)\n2026-04-21T17:41:29.504783Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2744778324521007391, trigger=visual_change)\n2026-04-21T17:42:13.830352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6664909184667365933, trigger=click)\n2026-04-21T17:42:13.905614Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=click)\n2026-04-21T17:42:14.689622Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6664909184667365933, trigger=click)\n2026-04-21T17:43:13.738786Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5563100798252317961, trigger=visual_change)\n2026-04-21T17:43:31.769731Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=40 elapsed=4.870364084s\n2026-04-21T17:43:31.770321Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames\n2026-04-21T17:43:32.514133Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.1MB → 0.1MB (8.9x), 11 JPEGs deleted\n2026-04-21T17:43:34.391762Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 3.0MB → 0.5MB (5.9x), 27 JPEGs deleted\n2026-04-21T17:44:19.021163Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-263228306577803226, trigger=click)\n2026-04-21T17:44:32.036390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8360298266192684601, trigger=click)\n2026-04-21T17:44:33.859332Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8360298266192684601, trigger=visual_change)\n2026-04-21T17:44:42.936361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=visual_change)\n2026-04-21T17:44:46.420662Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=visual_change)\n2026-04-21T17:46:17.725934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7286082578618580481, trigger=click)\n2026-04-21T17:46:18.733766Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=click)\n2026-04-21T17:46:19.506484Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7286082578618580481, trigger=click)\n2026-04-21T17:46:20.729229Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=click)\n2026-04-21T17:46:27.956655Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8942982652250876029, trigger=click)\n2026-04-21T17:46:29.490950Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8942982652250876029, trigger=click)\n2026-04-21T17:46:45.634752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5761541209609855314, trigger=click)\n2026-04-21T17:46:45.971315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5761541209609855314, trigger=click)\n2026-04-21T17:46:50.988867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5607564885929685542, trigger=click)\n2026-04-21T17:46:51.601750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5607564885929685542, trigger=click)\n2026-04-21T17:46:56.353647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4497988824039212795, trigger=click)\n2026-04-21T17:47:24.716661Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4864885406063659925, trigger=visual_change)\n2026-04-21T17:47:29.793942Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:30.097043Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)\n2026-04-21T17:47:30.960214Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:32.707746Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)\n2026-04-21T17:47:36.181007Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:36.362574Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:37.093511Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:41.720206Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)\n2026-04-21T17:47:44.706704Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)\n2026-04-21T17:47:48.602580Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:48.776278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:52.582982Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5658848090639979218, trigger=click)\n2026-04-21T17:47:57.282103Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8902771592702756196, trigger=click)\n2026-04-21T17:48:06.880071Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8902771592702756196, trigger=click)\n2026-04-21T17:48:07.656377Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8902771592702756196, trigger=click)\n2026-04-21T17:48:23.785117Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:24.032602Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:26.587906Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:32.180582Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:48:34.022831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:34.363583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:39.363585Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=83 elapsed=4.983598708s\n2026-04-21T17:48:39.363733Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 83 eligible frames\n2026-04-21T17:48:41.479158Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 3.3MB → 0.2MB (17.7x), 31 JPEGs deleted\n2026-04-21T17:48:44.682560Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 50 frames, 6.5MB → 2.0MB (3.3x), 50 JPEGs deleted\n2026-04-21T17:48:53.828851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:48:56.563636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:48:59.291654Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:59.467275Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:00.295226Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:00.453357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:49:13.301518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:49:16.454207Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:49:16.837288Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:18.900202Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:19.229376Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:20.418502Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:20.706966Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:21.269855Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:22.896443Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:23.115745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:29.927553Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1234240076182081719, trigger=click)\n2026-04-21T17:49:40.567042Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1506528968255096811, trigger=click)\n2026-04-21T17:49:40.722412Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1506528968255096811, trigger=click)\n2026-04-21T17:49:44.790415Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1506528968255096811, trigger=visual_change)\n2026-04-21T17:49:44.983133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1506528968255096811, trigger=visual_change)\n2026-04-21T17:51:50.315220Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)\n2026-04-21T17:51:53.337571Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)\n2026-04-21T17:51:59.473328Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)\n2026-04-21T17:52:02.455277Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)\n2026-04-21T17:52:05.862297Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:52:07.729450Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:52:16.901254Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:52:29.702852Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:52:36.533775Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:39.599515Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:45.700237Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:48.638819Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:54.704399Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:57.751791Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:53:10.186965Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:53:46.867091Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=116 elapsed=2.178958s\n2026-04-21T17:53:46.867199Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 116 eligible frames\n2026-04-21T17:53:49.254310Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:53:50.410056Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 56 frames, 12.3MB → 3.7MB (3.3x), 56 JPEGs deleted\n2026-04-21T17:53:51.388237Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:53:53.983042Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 58 frames, 9.0MB → 2.6MB (3.5x), 58 JPEGs deleted\n2026-04-21T17:53:56.223709Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:25.250317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:54:25.727105Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:54:32.633019Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:33.984547Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:54:35.401305Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:35.511290Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:38.494935Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:38.630637Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:41.245537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:54:45.441966Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:54:50.148639Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:50.313941Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:51.769427Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:51.915582Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:58.755543Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:55:01.758776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:55:25.745659Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3428322026263856254, trigger=click)\n2026-04-21T17:55:27.298490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3428322026263856254, trigger=visual_change)\n2026-04-21T17:55:33.297808Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3428322026263856254, trigger=visual_change)\n2026-04-21T17:55:48.491529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7233070170495400552, trigger=visual_change)\n2026-04-21T17:55:49.809101Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7233070170495400552, trigger=visual_change)\n2026-04-21T17:55:54.025243Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7233070170495400552, trigger=click)\n2026-04-21T17:55:54.165626Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7233070170495400552, trigger=click)\n2026-04-21T17:55:58.086411Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1463712168180952345, trigger=visual_change)\n2026-04-21T17:56:04.943502Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7233070170495400552, trigger=visual_change)\n2026-04-21T17:57:22.021701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:23.588692Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:30.517012Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:31.818301Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:31.972732Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:40.727074Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:42.330179Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:42.494853Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:45.528669Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:46.132479Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:46.358876Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:58:36.946109Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6074307134448385817, trigger=visual_change)\n2026-04-21T17:58:57.225929Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=117 elapsed=3.2365965s\n2026-04-21T17:58:57.226687Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 117 eligible frames\n2026-04-21T17:59:01.078632Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 58 frames, 12.8MB → 4.3MB (3.0x), 58 JPEGs deleted\n2026-04-21T17:59:04.938676Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 57 frames, 10.8MB → 4.0MB (2.7x), 57 JPEGs deleted\n2026-04-21T18:00:27.589643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9170086261988994041, trigger=click)\n2026-04-21T18:00:28.469646Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9170086261988994041, trigger=visual_change)\n2026-04-21T18:00:37.318027Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=9170086261988994041, trigger=click)\n2026-04-21T18:00:42.194585Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=9170086261988994041, trigger=click)\n2026-04-21T18:00:42.367049Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9170086261988994041, trigger=click)\n2026-04-21T18:01:07.200973Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:08.642294Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:08.873831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=visual_change)\n2026-04-21T18:01:09.931490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:10.189484Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:11.594292Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=visual_change)\n2026-04-21T18:01:12.844254Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:13.095866Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:49.712611Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5610420548393517496, trigger=click)\n2026-04-21T18:01:49.878502Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5610420548393517496, trigger=click)\n2026-04-21T18:01:54.385999Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4075180225844497251, trigger=click)\n2026-04-21T18:02:03.320721Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:04.589973Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:06.402101Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:08.459207Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:17.915785Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:20.289378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:53.363091Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:59.854804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6485088808083200508, trigger=visual_change)\n2026-04-21T18:03:23.692602Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2923142241079919801, trigger=visual_change)\n2026-04-21T18:03:38.383745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:03:38.666324Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:03:40.611795Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:03:46.691879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:03:49.696169Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:03:58.796193Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:10.455866Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=65 elapsed=5.507644708s\n2026-04-21T18:04:10.456994Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 65 eligible frames\n2026-04-21T18:04:10.784720Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:12.979583Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 8.1MB → 3.1MB (2.6x), 36 JPEGs deleted\n2026-04-21T18:04:13.808201Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:15.311040Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 5.7MB → 2.1MB (2.7x), 27 JPEGs deleted\n2026-04-21T18:04:22.870405Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:25.858949Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:47.178867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:47.409147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:48.621959Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:48.823996Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:49.613197Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:49.840589Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:54.113636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:54.333250Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:56.158603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:56.345340Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:24.653256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2923142241079919801, trigger=visual_change)\n2026-04-21T18:05:27.506644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2923142241079919801, trigger=visual_change)\n2026-04-21T18:05:52.127185Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:52.385537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:54.464579Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:54.740600Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:06:01.884193Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:06:04.917243Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:06:15.788550Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:06:16.090123Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:06:17.179267Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:07:04.992532Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:08.003078Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:17.121489Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:17.302355Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:27.025619Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:29.771279Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:31.137970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:36.086848Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:36.306717Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:37.369851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:37.634865Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:38.805129Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:39.104738Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:40.060624Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:08:30.262801Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:08:45.022177Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8543293535466770858, trigger=click)\n2026-04-21T18:09:22.083704Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=74 elapsed=6.715953125s\n2026-04-21T18:09:22.084245Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 74 eligible frames\n2026-04-21T18:09:29.000281Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 43 frames, 9.6MB → 4.0MB (2.4x), 43 JPEGs deleted\n2026-04-21T18:09:33.280652Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 5.8MB → 1.9MB (3.1x), 29 JPEGs deleted\n2026-04-21T18:10:45.149443Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:11:39.313378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=745086096190842156, trigger=visual_change)\n2026-04-21T18:11:42.305757Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=745086096190842156, trigger=click)\n2026-04-21T18:11:46.031853Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=745086096190842156, trigger=click)\n2026-04-21T18:11:46.095029Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=745086096190842156, trigger=click)\n2026-04-21T18:14:41.494244Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=68 elapsed=8.195880125s\n2026-04-21T18:14:41.495608Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 68 eligible frames\n2026-04-21T18:14:48.613051Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 8.2MB → 3.4MB (2.5x), 36 JPEGs deleted\n2026-04-21T18:14:55.232583Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 5.5MB → 2.6MB (2.1x), 30 JPEGs deleted\n2026-04-21T18:19:19.967211Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2899189334056575250, trigger=click)\n2026-04-21T18:19:20.363463Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2899189334056575250, trigger=click)\n2026-04-21T18:19:59.298075Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=53 elapsed=4.000910792s\n2026-04-21T18:19:59.298190Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 53 eligible frames\n2026-04-21T18:20:02.044649Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 5.1MB → 3.5MB (1.5x), 26 JPEGs deleted\n2026-04-21T18:20:04.900441Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.7MB → 2.4MB (1.9x), 25 JPEGs deleted\n2026-04-21T18:20:23.742659Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:27.660528Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:34.896769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:35.220946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:40.886719Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:44.353070Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:47.046701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:48.003863Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:22:59.673927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2006451494811625283, trigger=click)\n2026-04-21T18:23:02.374154Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2006451494811625283, trigger=visual_change)\n2026-04-21T18:24:55.480969Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:24:55.713808Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:25:06.770660Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=745086096190842156, trigger=click)\n2026-04-21T18:25:10.431473Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=69 elapsed=5.123936292s\n2026-04-21T18:25:10.432665Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 69 eligible frames\n2026-04-21T18:25:12.020960Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.7MB → 0.4MB (10.8x), 24 JPEGs deleted\n2026-04-21T18:25:16.809118Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 43 frames, 7.5MB → 3.7MB (2.0x), 43 JPEGs deleted\n2026-04-21T18:27:20.032159Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-868697608726996264, trigger=click)\n2026-04-21T18:27:27.209581Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5262134208844209929, trigger=click)\n2026-04-21T18:30:23.556529Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=60 elapsed=6.732438875s\n2026-04-21T18:30:23.556849Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 60 eligible frames\n2026-04-21T18:30:25.836587Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 5.3MB → 0.4MB (12.5x), 27 JPEGs deleted\n2026-04-21T18:30:29.251794Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 5.4MB → 2.7MB (2.0x), 31 JPEGs deleted\n2026-04-21T18:34:42.383568Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1898158487632236470, trigger=click)\n2026-04-21T18:35:29.435858Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 84 eligible frames\n2026-04-21T18:35:31.507303Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 35 frames, 6.8MB → 0.3MB (21.3x), 35 JPEGs deleted\n2026-04-21T18:35:34.821718Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 47 frames, 8.8MB → 3.6MB (2.4x), 47 JPEGs deleted\n2026-04-21T18:37:57.032414Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3231955623713121874, trigger=click)\n2026-04-21T18:40:36.969380Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=205 elapsed=2.13815675s\n2026-04-21T18:40:36.969491Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 205 eligible frames\n2026-04-21T18:40:42.234686Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 90 frames, 17.5MB → 0.4MB (49.4x), 90 JPEGs deleted\n2026-04-21T18:40:48.296945Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 99 frames, 14.9MB → 5.7MB (2.6x), 99 JPEGs deleted\n2026-04-21T18:40:49.626073Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 1.8MB → 0.7MB (2.8x), 14 JPEGs deleted\n2026-04-21T18:41:16.858046Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5262134208844209929, trigger=click)\n2026-04-21T18:41:18.719527Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5262134208844209929, trigger=click)\n2026-04-21T18:41:20.650032Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6762752836329409782, trigger=click)\n2026-04-21T18:42:40.957654Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7949512313665335161, trigger=visual_change)\n2026-04-21T18:42:42.714242Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7949512313665335161, trigger=click)\n2026-04-21T18:44:54.833923Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7610506607449357182, trigger=click)\n2026-04-21T18:44:55.013934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7610506607449357182, trigger=click)\n2026-04-21T18:45:54.320505Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=145 elapsed=4.6846185s\n2026-04-21T18:45:54.321215Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 145 eligible frames\n2026-04-21T18:45:58.288822Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 64 frames, 12.5MB → 0.5MB (23.2x), 64 JPEGs deleted\n2026-04-21T18:46:02.956701Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 78 frames, 11.5MB → 3.3MB (3.5x), 78 JPEGs deleted\n2026-04-21T18:48:10.510139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4242937607805845066, trigger=click)\n2026-04-21T18:48:37.207446Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5152173808593872338, trigger=visual_change)\n2026-04-21T18:49:27.537635Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5244088376274895156, trigger=click)\n2026-04-21T18:49:33.724367Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5262134208844209929, trigger=click)\n2026-04-21T18:49:44.747739Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8298107678328947062, trigger=click)\n2026-04-21T18:50:45.073176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:50:45.427101Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:50:48.592273Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:50:49.492676Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:51:01.193858Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:51:05.888682Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=50 elapsed=2.917680375s\n2026-04-21T18:51:05.889014Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 50 eligible frames\n2026-04-21T18:51:06.016628Z WARN sqlx::query: summary=\"PRAGMA wal_checkpoint(TRUNCATE)\" db.statement=\"\" rows_affected=0 rows_returned=1 elapsed=2.157649083s\n2026-04-21T18:51:06.079565Z WARN sqlx::query: summary=\"BEGIN IMMEDIATE\" db.statement=\"\" rows_affected=1 rows_returned=0 elapsed=1.385088167s\n2026-04-21T18:51:07.829374Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 3.9MB → 0.4MB (11.0x), 20 JPEGs deleted\n2026-04-21T18:51:09.736739Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 5.0MB → 1.8MB (2.7x), 28 JPEGs deleted\n2026-04-21T18:51:22.360027Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2872311122120998867, trigger=click)\n2026-04-21T18:51:22.556670Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2872311122120998867, trigger=click)\n2026-04-21T18:51:38.819030Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7947558874471225541, trigger=click)\n2026-04-21T18:51:57.414061Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:51:59.012068Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:51:59.285931Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:01.767745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:02.028355Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:05.460776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=visual_change)\n2026-04-21T18:52:07.087479Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:07.314492Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:10.214922Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:10.537340Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:13.867159Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:14.152331Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:20.367281Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:26.127826Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1650348556715134220, trigger=click)\n2026-04-21T18:52:37.517700Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=visual_change)\n2026-04-21T18:52:42.329057Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:52:42.556779Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:52:44.386173Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:52:44.700511Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:52:45.210674Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:53:17.193415Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6757993062848436258, trigger=visual_change)\n2026-04-21T18:53:30.834059Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-228480120308125164, trigger=click)\n2026-04-21T18:53:38.030882Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7225077546439863627, trigger=click)\n2026-04-21T18:53:56.421537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6437320026671683644, trigger=click)\n2026-04-21T18:54:11.726528Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1667437155962702753, trigger=visual_change)\n2026-04-21T18:54:12.117525Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1667437155962702753, trigger=click)\n2026-04-21T18:54:18.659686Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:54:19.077258Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:54:29.973760Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:56:07.789768Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6757993062848436258, trigger=click)\n2026-04-21T18:56:08.791400Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6757993062848436258, trigger=click)\n2026-04-21T18:56:14.153615Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=80 elapsed=4.402661042s\n2026-04-21T18:56:14.153722Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 80 eligible frames\n2026-04-21T18:56:16.685912Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 6.2MB → 0.7MB (8.9x), 32 JPEGs deleted\n2026-04-21T18:56:21.263739Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 46 frames, 8.2MB → 2.8MB (2.9x), 46 JPEGs deleted\n2026-04-21T18:56:25.279306Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7906564822731502105, trigger=click)\n2026-04-21T18:56:33.734840Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8817586097865472869, trigger=click)\n2026-04-21T18:56:33.980908Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8817586097865472869, trigger=click)\n2026-04-21T18:56:35.972959Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8817586097865472869, trigger=click)\n2026-04-21T18:56:40.545963Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8587160525579598601, trigger=click)\n2026-04-21T18:56:41.913814Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8587160525579598601, trigger=visual_change)\n2026-04-21T18:56:45.516942Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1910160977377320534, trigger=click)\n2026-04-21T18:56:48.740431Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1910160977377320534, trigger=click)\n2026-04-21T18:56:50.439568Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1910160977377320534, trigger=click)\n2026-04-21T18:56:50.692218Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1910160977377320534, trigger=click)\n2026-04-21T18:57:12.321118Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:12.578681Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:24.290583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:24.543696Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:34.571768Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:36.227688Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:36.475151Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:42.338601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:42.559967Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:52.824809Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:53.145543Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:59.463043Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:59.717475Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:58:00.742137Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:58:01.061497Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:59:33.960291Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9203182216527106315, trigger=visual_change)\n2026-04-21T18:59:55.990167Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T18:59:59.103830Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=visual_change)\n2026-04-21T19:00:16.116927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:00:45.352689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:00:49.596644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:00:50.432181Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:07.992732Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:08.484066Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:10.538762Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:18.922398Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:28.361625Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=84 elapsed=6.9360265s\n2026-04-21T19:01:28.362070Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 84 eligible frames\n2026-04-21T19:01:32.723075Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 33 frames, 6.4MB → 0.3MB (19.7x), 33 JPEGs deleted\n2026-04-21T19:01:42.130490Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 7.8MB → 3.3MB (2.4x), 49 JPEGs deleted\n2026-04-21T19:02:09.991879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:12.577587Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:12.835924Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:15.635601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:18.720475Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:21.708351Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:22.061150Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:28.684303Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3995027160269120472, trigger=click)\n2026-04-21T19:02:41.434491Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:41.724904Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:43.112974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:43.410843Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:47.501924Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:47.761592Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:54.205542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:54.441326Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:56.601490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:56.921256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:03:15.988643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:03:16.236342Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:03:28.508616Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:00.462064Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:01.516168Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:01.856315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:03.246448Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:03.735029Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:09.818135Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:05:03.118616Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:03.393788Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:21.352722Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=visual_change)\n2026-04-21T19:05:43.751309Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:44.029500Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:45.626672Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:45.899754Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:48.206587Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:48.449043Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:06:22.834938Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7947558874471225541, trigger=click)\n2026-04-21T19:06:52.937779Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=114 elapsed=10.747243125s\n2026-04-21T19:06:52.938152Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 114 eligible frames\n2026-04-21T19:06:57.942457Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 45 frames, 8.8MB → 0.3MB (27.2x), 45 JPEGs deleted\n2026-04-21T19:07:05.853054Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 67 frames, 10.5MB → 5.2MB (2.0x), 67 JPEGs deleted\n2026-04-21T19:07:45.088797Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:07:48.052391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6936634780821666458, trigger=click)\n2026-04-21T19:08:59.593467Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5629560013928052473, trigger=click)\n2026-04-21T19:09:29.443711Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:42.998313Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8043719072324535154, trigger=visual_change)\n2026-04-21T19:09:50.759516Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:51.052544Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:51.892698Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:09:52.651776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:55.476431Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:55.898195Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:09:58.077337Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:10:01.103980Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:10:03.105423Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:10:03.448049Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:10:08.548130Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6051188157141408655, trigger=click)\n2026-04-21T19:12:12.330759Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=70 elapsed=6.458002417s\n2026-04-21T19:12:12.332545Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 70 eligible frames\n2026-04-21T19:12:14.243079Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 5.5MB → 0.3MB (17.2x), 28 JPEGs deleted\n2026-04-21T19:12:17.558334Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 40 frames, 7.4MB → 3.6MB (2.1x), 40 JPEGs deleted\n2026-04-21T19:16:51.045938Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1370319459641728815, trigger=click)\n2026-04-21T19:16:51.249993Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1370319459641728815, trigger=click)\n2026-04-21T19:17:21.603564Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=40 elapsed=4.036037791s\n2026-04-21T19:17:21.604357Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames\n2026-04-21T19:17:22.750174Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.5MB → 0.3MB (11.2x), 18 JPEGs deleted\n2026-04-21T19:17:24.332098Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.2MB → 1.3MB (3.2x), 20 JPEGs deleted\n2026-04-21T19:22:25.748871Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=49 elapsed=1.406664416s\n2026-04-21T19:22:25.749095Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 49 eligible frames\n2026-04-21T19:22:27.704722Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 3.7MB → 0.8MB (4.5x), 22 JPEGs deleted\n2026-04-21T19:22:29.535330Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.2MB → 1.7MB (3.0x), 25 JPEGs deleted\n2026-04-21T19:23:29.233846Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9146581369053060363, trigger=click)\n2026-04-21T19:23:31.995034Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9146581369053060363, trigger=visual_change)\n2026-04-21T19:23:37.213396Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9146581369053060363, trigger=visual_change)\n2026-04-21T19:23:40.288223Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9146581369053060363, trigger=visual_change)\n2026-04-21T19:23:44.197738Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9146581369053060363, trigger=visual_change)\n2026-04-21T19:23:45.228572Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9146581369053060363, trigger=click)\n2026-04-21T19:23:56.251033Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:24:06.580019Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=335 elapsed=1.644312167s\n2026-04-21T19:24:28.860436Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:24:32.226944Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:24:32.476075Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:03.902521Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:19.205245Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:25.098627Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:36.013866Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:37.355954Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:41.831265Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:46.247585Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:46.619106Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:48.284769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:48.534452Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:49.421920Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:49.752264Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:54.600720Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:55.072357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:26:19.446041Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:26:22.718352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:27:38.437704Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=28 elapsed=8.833634334s\n2026-04-21T19:27:38.438043Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames\n2026-04-21T19:27:39.763901Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 1.9MB → 0.3MB (7.6x), 12 JPEGs deleted\n2026-04-21T19:27:41.220664Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.1MB → 0.9MB (2.2x), 14 JPEGs deleted\n2026-04-21T19:28:22.708791Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:28:23.849452Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:28:24.119301Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:14.209016Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:16.415693Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:21.726815Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:23.890645Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:24.239058Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:29.790006Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:33.098495Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:38.065869Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:44.089028Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:47.272131Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:53.977951Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:57.274496Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:30:11.986797Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:30:13.530455Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:30:28.332451Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:30:37.204947Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:26.255340Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:26.592983Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:30.448912Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:35.747969Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:37.783849Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:38.061197Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:43.216365Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:43.885407Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:46.680745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:52.971450Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:58.468469Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:58.624833Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:03.362210Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:12.706102Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:15.172982Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:23.020508Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:23.199312Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:25.387097Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:25.764201Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:30.336940Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:30.810971Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:39.812820Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:42.409145Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:44.386326Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:48.880648Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=47 elapsed=7.499136792s\n2026-04-21T19:32:48.880949Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 47 eligible frames\n2026-04-21T19:32:51.249469Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.2MB → 0.3MB (8.9x), 14 JPEGs deleted\n2026-04-21T19:32:55.969183Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 3.8MB → 1.9MB (2.0x), 31 JPEGs deleted\n2026-04-21T19:32:59.734686Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:33:00.098925Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:33:05.951997Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:34:07.213420Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:34:09.264586Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:34:16.527425Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:34:19.513647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:34:32.889780Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1128757073350665914, trigger=click)\n2026-04-21T19:34:56.078651Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4993766851008728916, trigger=click)\n2026-04-21T19:34:56.296542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4993766851008728916, trigger=click)\n2026-04-21T19:35:02.344819Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:35:05.237721Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:35:07.518599Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:35:09.938481Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:35:10.408295Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:35:26.864482Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:35:33.001733Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:35:36.479802Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:36:20.043835Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4526067242477956280, trigger=visual_change)\n2026-04-21T19:36:47.029303Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4526067242477956280, trigger=visual_change)\n2026-04-21T19:36:57.077150Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:37:33.348160Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:37:33.742029Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:37:36.579915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:37:39.754974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:38:04.951324Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=101 elapsed=8.9666755s\n2026-04-21T19:38:04.953527Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 101 eligible frames\n2026-04-21T19:38:13.751166Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 38 frames, 8.0MB → 3.5MB (2.3x), 38 JPEGs deleted\n2026-04-21T19:38:29.817220Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 61 frames, 9.7MB → 5.2MB (1.9x), 61 JPEGs deleted\n2026-04-21T19:40:34.255930Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=342 elapsed=1.0699005s\n2026-04-21T19:42:32.961192Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:42:33.305572Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:42:40.179851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=visual_change)\n2026-04-21T19:42:41.405781Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:42:41.720845Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:43:02.251464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=visual_change)\n2026-04-21T19:43:11.622532Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:43:36.525920Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=85 elapsed=6.634896167s\n2026-04-21T19:43:36.526454Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 85 eligible frames\n2026-04-21T19:43:39.459999Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 8.0MB → 3.4MB (2.3x), 36 JPEGs deleted\n2026-04-21T19:43:43.505640Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 47 frames, 7.9MB → 3.9MB (2.0x), 47 JPEGs deleted\n2026-04-21T19:44:05.999282Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=visual_change)\n2026-04-21T19:45:08.065595Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2712812971723964739, trigger=click)\n2026-04-21T19:45:46.266141Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:48:51.569666Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=64 elapsed=8.039671791s\n2026-04-21T19:48:51.570457Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 64 eligible frames\n2026-04-21T19:48:58.738540Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 7.2MB → 2.4MB (2.9x), 32 JPEGs deleted\n2026-04-21T19:49:05.383193Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 5.9MB → 2.5MB (2.4x), 30 JPEGs deleted\n2026-04-21T19:51:14.064760Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2572721248839450970, trigger=visual_change)\n2026-04-21T19:54:08.518415Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=346 elapsed=1.026887875s\n2026-04-21T19:54:12.872902Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=61 elapsed=7.44778675s\n2026-04-21T19:54:12.873164Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 61 eligible frames\n2026-04-21T19:54:16.348511Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.6MB → 1.4MB (4.1x), 25 JPEGs deleted\n2026-04-21T19:54:24.102233Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 34 frames, 6.2MB → 3.6MB (1.7x), 34 JPEGs deleted\n2026-04-21T19:59:32.063421Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=346 elapsed=1.165878958s\n2026-04-21T19:59:32.818884Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=31 elapsed=8.661332917s\n2026-04-21T19:59:32.819629Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 31 eligible frames\n2026-04-21T19:59:35.810838Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.9MB → 0.7MB (3.9x), 16 JPEGs deleted\n2026-04-21T19:59:38.924596Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.9MB → 1.5MB (2.0x), 13 JPEGs deleted\n2026-04-21T20:01:55.709776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1382976804061127003, trigger=click)\n2026-04-21T20:04:27.572999Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7658911549706194190, trigger=click)\n2026-04-21T20:04:46.630063Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=57 elapsed=7.045125334s\n2026-04-21T20:04:46.631081Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 57 eligible frames\n2026-04-21T20:04:49.684796Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 2.5MB → 0.8MB (3.2x), 23 JPEGs deleted\n2026-04-21T20:04:56.073590Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 5.7MB → 3.1MB (1.8x), 32 JPEGs deleted\n2026-04-21T20:05:04.129844Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-446124678591544690, trigger=click)\n2026-04-21T20:05:04.425723Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-446124678591544690, trigger=click)\n2026-04-21T20:09:59.238939Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=30 elapsed=2.058497125s\n2026-04-21T20:09:59.239075Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 30 eligible frames\n2026-04-21T20:10:00.874153Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.3MB → 0.2MB (5.8x), 13 JPEGs deleted\n2026-04-21T20:10:03.326064Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 1.8MB → 0.6MB (2.8x), 15 JPEGs deleted\n2026-04-21T20:15:07.129653Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=58 elapsed=3.763973459s\n2026-04-21T20:15:07.130598Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 58 eligible frames\n2026-04-21T20:15:09.088400Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 3.7MB → 0.6MB (5.9x), 26 JPEGs deleted\n2026-04-21T20:15:10.858868Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 3.9MB → 1.0MB (3.9x), 30 JPEGs deleted\n2026-04-21T20:18:21.110736Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=354 elapsed=1.169721666s\nzsh: terminated npx screenpipe@latest record --disable-audio --ignored-windows \"Boosteroid\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-start\ndetected hardware tier: Mid\nwarning: parakeet is not supported on this platform, using whisper-tiny instead\n2026-04-22T09:15:19.880360Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store\nchecking permissions...\n screen recording: ok\n accessibility: ok\n2026-04-22T09:15:19.951248Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6\n2026-04-22T09:15:20.675958Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor\n2026-04-22T09:15:20.677447Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)\n2026-04-22T09:15:20.677800Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)\n2026-04-22T09:15:20.709542Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true\n2026-04-22T09:15:20.709596Z INFO screenpipe: meeting detector enabled — independent of transcription mode\n2026-04-22T09:15:20.709849Z INFO screenpipe: API server listening on 127.0.0.1:3030 (localhost only)\n2026-04-22T09:15:20.709774Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)\n2026-04-22T09:15:20.709806Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)\n2026-04-22T09:15:20.709863Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key\n2026-04-22T09:15:20.709908Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager\n2026-04-22T09:15:20.721517Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-22T09:15:20.725781Z INFO screenpipe_core::pipes: loaded pipe: day-recap\n2026-04-22T09:15:20.725991Z INFO screenpipe_core::pipes: loaded pipe: standup-update\n2026-04-22T09:15:20.726387Z INFO screenpipe_core::pipes: loaded pipe: ai-habits\n2026-04-22T09:15:20.726548Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown\n2026-04-22T09:15:20.726690Z INFO screenpipe_core::pipes: loaded pipe: video-export\n2026-04-22T09:15:20.727224Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary\n2026-04-22T09:15:20.727242Z INFO screenpipe_core::pipes: loaded 6 pipes from \"/Users/lukas/.screenpipe/pipes\"\n\n\n\n _ \n __________________ ___ ____ ____ (_____ ___ \n / ___/ ___/ ___/ _ \\/ _ \\/ __ \\ / __ \\/ / __ \\/ _ \\\n (__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/\n/____/\\___/_/ \\___/\\___/_/ /_/ / .___/_/ .___/\\___/ \n /_/ /_/ \n\n\n\npower AI by everything you've seen, said or heard\nopen source | runs locally | developer friendly\n\n\n┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ true │\n│ vision disabled │ false │\n│ pause on DRM content │ false │\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n│ ignored windows │ [\"Boosteroid\"] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n2026-04-22T09:15:20.728614Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n│ api auth │ enabled │\n2026-04-22T09:15:20.742172Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n│ encrypt secrets │ disabled │\n│ retention days │ 14 │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ id: 1 │\n│ │ id: 2 │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ disabled │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-22T09:15:20.742788Z INFO screenpipe: starting UI event capture\n2026-04-22T09:15:20.755824Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-22T09:15:20.769629Z INFO screenpipe_engine::ui_recorder: UI recording session started: e7729066-2ab4-4bf0-9d48-0c9790a4ee79\n2026-04-22T09:15:20.769680Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-22T09:15:20.769789Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-21 06:15:20.769785 UTC to 2026-04-22 06:15:20.769785 UTC)\n2026-04-22T09:15:20.770644Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-22T09:15:20.778181Z INFO screenpipe_engine::server: Server listening on 127.0.0.1:3030\n2026-04-22T09:15:20.789960Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-22T09:15:21.591614Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-22T09:15:21.591646Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-22T09:15:21.591751Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-22T09:15:21.919088Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-22T09:15:21.919141Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-22T09:15:21.919158Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)\n2026-04-22T09:15:21.919163Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-22T09:15:21.919167Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)\n2026-04-22T09:15:23.315305Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-22T09:15:23.445619Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=68471, dur=74ms\n2026-04-22T09:15:23.697846Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)","depth":4,"value":"2026-04-21T16:39:28.954550Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=869328293033429183, trigger=click)\n2026-04-21T16:39:29.084826Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=869328293033429183, trigger=click)\n2026-04-21T16:39:31.752392Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4079194444055345358, trigger=click)\n2026-04-21T16:39:31.941130Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4079194444055345358, trigger=click)\n2026-04-21T16:39:37.082813Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=50 elapsed=2.555752875s\n2026-04-21T16:39:37.082914Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 50 eligible frames\n2026-04-21T16:39:39.896800Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.4MB → 0.9MB (4.9x), 24 JPEGs deleted\n2026-04-21T16:39:42.979598Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.6MB → 1.9MB (2.5x), 24 JPEGs deleted\n2026-04-21T16:39:54.138147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=869328293033429183, trigger=click)\n2026-04-21T16:41:34.967355Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:41:35.133385Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:43:15.919099Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8254246256813675665, trigger=click)\n2026-04-21T16:43:44.014066Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8254246256813675665, trigger=visual_change)\n2026-04-21T16:44:45.410923Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=35 elapsed=2.419201375s\n2026-04-21T16:44:45.411045Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 35 eligible frames\n2026-04-21T16:44:46.383629Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.8MB → 0.3MB (9.5x), 15 JPEGs deleted\n2026-04-21T16:44:47.792527Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.6MB → 0.8MB (4.3x), 18 JPEGs deleted\n2026-04-21T16:49:53.308820Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=47 elapsed=5.487768917s\n2026-04-21T16:49:53.309371Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 47 eligible frames\n2026-04-21T16:49:54.673701Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.9MB → 0.3MB (13.1x), 21 JPEGs deleted\n2026-04-21T16:49:56.314871Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.7MB → 1.2MB (4.0x), 24 JPEGs deleted\n2026-04-21T16:54:59.385017Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=62 elapsed=3.057419917s\n2026-04-21T16:54:59.385210Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 62 eligible frames\n2026-04-21T16:55:00.998239Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.8MB → 0.5MB (10.3x), 26 JPEGs deleted\n2026-04-21T16:55:03.739041Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 34 frames, 5.8MB → 2.6MB (2.2x), 34 JPEGs deleted\n2026-04-21T16:55:17.768634Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)\n2026-04-21T17:23:59.183039Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)\n2026-04-21T17:23:59.216966Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2\n2026-04-21T17:24:00.832399Z INFO screenpipe_engine::vision_manager::monitor_watcher: Monitor 2 disconnected, stopping recording\n2026-04-21T17:24:00.832464Z INFO screenpipe_engine::vision_manager::manager: Stopping vision recording for monitor 2\n2026-04-21T17:24:00.832336Z INFO sck_rs::stream_manager: stopped 2 persistent stream(s)\n2026-04-21T17:24:04.654209Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-21T17:24:30.699969Z ERROR screenpipe_engine::resource_monitor: Failed to send resource usage to PostHog: error sending request for url (https://us.i.posthog.com/capture/)\n2026-04-21T17:25:01.085383Z INFO screenpipe_engine::vision_manager::monitor_watcher: Monitor 2 reconnected, resuming recording\n2026-04-21T17:25:01.273818Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-21T17:25:01.273870Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-21T17:25:01.273896Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-21T17:25:02.310236Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-21T17:25:02.808234Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=66228, dur=365ms\n2026-04-21T17:25:04.889075Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:07.887565Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:10.918390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:14.039034Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:17.160521Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:26.096276Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:29.061270Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:32.067380Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:35.263701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:41.164753Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:44.239172Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:47.149320Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:50.242915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:53.308794Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:56.218138Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:59.144297Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:26:05.965946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:08.584110Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:11.350189Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:14.339609Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:17.398251Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:20.782119Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:23.385506Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:26.427626Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:29.573661Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:32.450744Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:38.464132Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:41.456915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:44.496278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:47.541313Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:50.596256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:53.597171Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:56.764522Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:59.751576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:02.719391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:08.829090Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:11.800601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:14.811724Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:17.855339Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:26.878741Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:29.933020Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:32.947216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:36.041239Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:38.993657Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:42.039373Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:45.172399Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:48.081804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:51.142939Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:54.169253Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:00.341347Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:03.322832Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:06.631198Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:09.537232Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:12.406113Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:15.381764Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:15.806839Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=44 elapsed=5.777403s\n2026-04-21T17:28:15.806951Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 44 eligible frames\n2026-04-21T17:28:17.108106Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.9MB → 0.3MB (13.1x), 21 JPEGs deleted\n2026-04-21T17:28:18.370832Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.6MB → 0.5MB (7.8x), 21 JPEGs deleted\n2026-04-21T17:28:18.461408Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:22.068097Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:24.604711Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:27.608060Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:33.774822Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:36.697278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:39.729251Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:42.728755Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:45.748204Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:48.768910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:51.814752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:54.970698Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:57.869874Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:00.913837Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:07.461529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:10.043928Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:13.182411Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:16.080133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:19.108570Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:22.322033Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:25.172666Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:28.398354Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:31.249083Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:34.289745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:40.303310Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:43.308015Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:46.360649Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:49.356069Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:52.450205Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:55.422975Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:58.446390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:01.491253Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:04.500380Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:16.830925Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:19.856895Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:23.100486Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:25.938910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:28.953603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:32.061536Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:35.030958Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:38.162895Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:41.148165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:44.019513Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:50.259576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:53.148070Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:56.309979Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:59.185610Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:02.278235Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:05.287341Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:08.409426Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:11.489977Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:14.319338Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:17.348153Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:23.351025Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:26.427529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:29.337254Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:32.386165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:35.653387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:38.430216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:41.428909Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:44.432459Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:47.448603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:50.432780Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:56.535727Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:59.590792Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:02.621444Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:05.627964Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:08.710139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:11.765247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:14.787638Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:17.876480Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)\n2026-04-21T17:32:20.977937Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)\n2026-04-21T17:32:29.888970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8116870867026519513, trigger=click)\n2026-04-21T17:32:33.123648Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)\n2026-04-21T17:33:03.355082Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)\n2026-04-21T17:33:05.517897Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=click)\n2026-04-21T17:33:06.399783Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)\n2026-04-21T17:33:09.478894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)\n2026-04-21T17:33:19.151217Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-21T17:33:21.431006Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6379516332769645744, trigger=visual_change)\n2026-04-21T17:33:33.494463Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7500553589467718193, trigger=visual_change)\n2026-04-21T17:34:00.725974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2275300387038012183, trigger=click)\n2026-04-21T17:34:07.214867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2063499064757931498, trigger=visual_change)\n2026-04-21T17:34:31.480257Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=visual_change)\n2026-04-21T17:34:34.482370Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=visual_change)\n2026-04-21T17:35:53.801549Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7652433743467416760, trigger=click)\n2026-04-21T17:35:53.954311Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7652433743467416760, trigger=click)\n2026-04-21T17:35:54.740695Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7652433743467416760, trigger=click)\n2026-04-21T17:36:06.295752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5335392039126841536, trigger=visual_change)\n2026-04-21T17:36:28.893337Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5927780310531960690, trigger=visual_change)\n2026-04-21T17:38:15.647110Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)\n2026-04-21T17:38:17.801901Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)\n2026-04-21T17:38:17.962831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)\n2026-04-21T17:38:22.819710Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7137414965816212018, trigger=click)\n2026-04-21T17:38:22.917176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=click)\n2026-04-21T17:38:23.042830Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=28 elapsed=3.882772625s\n2026-04-21T17:38:23.042920Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames\n2026-04-21T17:38:24.717251Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 2.8MB → 0.4MB (6.3x), 18 JPEGs deleted\n2026-04-21T17:38:26.727027Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.1MB → 0.2MB (5.7x), 10 JPEGs deleted\n2026-04-21T17:38:35.971287Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=click)\n2026-04-21T17:38:36.106246Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7137414965816212018, trigger=click)\n2026-04-21T17:38:37.368009Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=visual_change)\n2026-04-21T17:38:43.431620Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8741356672789266752, trigger=visual_change)\n2026-04-21T17:38:49.319886Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5149767057649118192, trigger=click)\n2026-04-21T17:38:49.477325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5149767057649118192, trigger=click)\n2026-04-21T17:38:51.019231Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5149767057649118192, trigger=visual_change)\n2026-04-21T17:39:04.249890Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7355944135161080033, trigger=click)\n2026-04-21T17:39:23.256256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4983811095206295613, trigger=click)\n2026-04-21T17:39:23.385820Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4983811095206295613, trigger=click)\n2026-04-21T17:39:24.367407Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4983811095206295613, trigger=visual_change)\n2026-04-21T17:39:24.895784Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4983811095206295613, trigger=click)\n2026-04-21T17:39:46.438272Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=372069959735326508, trigger=visual_change)\n2026-04-21T17:39:49.101085Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4964238948655865655, trigger=visual_change)\n2026-04-21T17:39:58.083750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)\n2026-04-21T17:40:01.375315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)\n2026-04-21T17:40:04.195859Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)\n2026-04-21T17:40:12.117004Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2989278587618621353, trigger=click)\n2026-04-21T17:40:12.244666Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2989278587618621353, trigger=click)\n2026-04-21T17:40:13.925024Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2989278587618621353, trigger=visual_change)\n2026-04-21T17:40:23.294147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=visual_change)\n2026-04-21T17:40:55.989498Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3182674559678505325, trigger=click)\n2026-04-21T17:40:58.413325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3182674559678505325, trigger=visual_change)\n2026-04-21T17:41:23.101094Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5616874458658671741, trigger=visual_change)\n2026-04-21T17:41:29.504783Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2744778324521007391, trigger=visual_change)\n2026-04-21T17:42:13.830352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6664909184667365933, trigger=click)\n2026-04-21T17:42:13.905614Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=click)\n2026-04-21T17:42:14.689622Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6664909184667365933, trigger=click)\n2026-04-21T17:43:13.738786Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5563100798252317961, trigger=visual_change)\n2026-04-21T17:43:31.769731Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=40 elapsed=4.870364084s\n2026-04-21T17:43:31.770321Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames\n2026-04-21T17:43:32.514133Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.1MB → 0.1MB (8.9x), 11 JPEGs deleted\n2026-04-21T17:43:34.391762Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 3.0MB → 0.5MB (5.9x), 27 JPEGs deleted\n2026-04-21T17:44:19.021163Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-263228306577803226, trigger=click)\n2026-04-21T17:44:32.036390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8360298266192684601, trigger=click)\n2026-04-21T17:44:33.859332Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8360298266192684601, trigger=visual_change)\n2026-04-21T17:44:42.936361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=visual_change)\n2026-04-21T17:44:46.420662Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=visual_change)\n2026-04-21T17:46:17.725934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7286082578618580481, trigger=click)\n2026-04-21T17:46:18.733766Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=click)\n2026-04-21T17:46:19.506484Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7286082578618580481, trigger=click)\n2026-04-21T17:46:20.729229Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=click)\n2026-04-21T17:46:27.956655Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8942982652250876029, trigger=click)\n2026-04-21T17:46:29.490950Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8942982652250876029, trigger=click)\n2026-04-21T17:46:45.634752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5761541209609855314, trigger=click)\n2026-04-21T17:46:45.971315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5761541209609855314, trigger=click)\n2026-04-21T17:46:50.988867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5607564885929685542, trigger=click)\n2026-04-21T17:46:51.601750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5607564885929685542, trigger=click)\n2026-04-21T17:46:56.353647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4497988824039212795, trigger=click)\n2026-04-21T17:47:24.716661Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4864885406063659925, trigger=visual_change)\n2026-04-21T17:47:29.793942Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:30.097043Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)\n2026-04-21T17:47:30.960214Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:32.707746Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)\n2026-04-21T17:47:36.181007Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:36.362574Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:37.093511Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:41.720206Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)\n2026-04-21T17:47:44.706704Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)\n2026-04-21T17:47:48.602580Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:48.776278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:52.582982Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5658848090639979218, trigger=click)\n2026-04-21T17:47:57.282103Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8902771592702756196, trigger=click)\n2026-04-21T17:48:06.880071Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8902771592702756196, trigger=click)\n2026-04-21T17:48:07.656377Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8902771592702756196, trigger=click)\n2026-04-21T17:48:23.785117Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:24.032602Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:26.587906Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:32.180582Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:48:34.022831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:34.363583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:39.363585Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=83 elapsed=4.983598708s\n2026-04-21T17:48:39.363733Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 83 eligible frames\n2026-04-21T17:48:41.479158Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 3.3MB → 0.2MB (17.7x), 31 JPEGs deleted\n2026-04-21T17:48:44.682560Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 50 frames, 6.5MB → 2.0MB (3.3x), 50 JPEGs deleted\n2026-04-21T17:48:53.828851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:48:56.563636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:48:59.291654Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:59.467275Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:00.295226Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:00.453357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:49:13.301518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:49:16.454207Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:49:16.837288Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:18.900202Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:19.229376Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:20.418502Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:20.706966Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:21.269855Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:22.896443Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:23.115745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:29.927553Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1234240076182081719, trigger=click)\n2026-04-21T17:49:40.567042Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1506528968255096811, trigger=click)\n2026-04-21T17:49:40.722412Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1506528968255096811, trigger=click)\n2026-04-21T17:49:44.790415Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1506528968255096811, trigger=visual_change)\n2026-04-21T17:49:44.983133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1506528968255096811, trigger=visual_change)\n2026-04-21T17:51:50.315220Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)\n2026-04-21T17:51:53.337571Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)\n2026-04-21T17:51:59.473328Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)\n2026-04-21T17:52:02.455277Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)\n2026-04-21T17:52:05.862297Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:52:07.729450Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:52:16.901254Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:52:29.702852Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:52:36.533775Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:39.599515Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:45.700237Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:48.638819Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:54.704399Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:57.751791Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:53:10.186965Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:53:46.867091Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=116 elapsed=2.178958s\n2026-04-21T17:53:46.867199Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 116 eligible frames\n2026-04-21T17:53:49.254310Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:53:50.410056Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 56 frames, 12.3MB → 3.7MB (3.3x), 56 JPEGs deleted\n2026-04-21T17:53:51.388237Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:53:53.983042Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 58 frames, 9.0MB → 2.6MB (3.5x), 58 JPEGs deleted\n2026-04-21T17:53:56.223709Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:25.250317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:54:25.727105Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:54:32.633019Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:33.984547Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:54:35.401305Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:35.511290Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:38.494935Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:38.630637Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:41.245537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:54:45.441966Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:54:50.148639Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:50.313941Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:51.769427Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:51.915582Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:58.755543Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:55:01.758776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:55:25.745659Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3428322026263856254, trigger=click)\n2026-04-21T17:55:27.298490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3428322026263856254, trigger=visual_change)\n2026-04-21T17:55:33.297808Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3428322026263856254, trigger=visual_change)\n2026-04-21T17:55:48.491529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7233070170495400552, trigger=visual_change)\n2026-04-21T17:55:49.809101Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7233070170495400552, trigger=visual_change)\n2026-04-21T17:55:54.025243Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7233070170495400552, trigger=click)\n2026-04-21T17:55:54.165626Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7233070170495400552, trigger=click)\n2026-04-21T17:55:58.086411Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1463712168180952345, trigger=visual_change)\n2026-04-21T17:56:04.943502Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7233070170495400552, trigger=visual_change)\n2026-04-21T17:57:22.021701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:23.588692Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:30.517012Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:31.818301Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:31.972732Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:40.727074Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:42.330179Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:42.494853Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:45.528669Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:46.132479Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:46.358876Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:58:36.946109Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6074307134448385817, trigger=visual_change)\n2026-04-21T17:58:57.225929Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=117 elapsed=3.2365965s\n2026-04-21T17:58:57.226687Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 117 eligible frames\n2026-04-21T17:59:01.078632Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 58 frames, 12.8MB → 4.3MB (3.0x), 58 JPEGs deleted\n2026-04-21T17:59:04.938676Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 57 frames, 10.8MB → 4.0MB (2.7x), 57 JPEGs deleted\n2026-04-21T18:00:27.589643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9170086261988994041, trigger=click)\n2026-04-21T18:00:28.469646Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9170086261988994041, trigger=visual_change)\n2026-04-21T18:00:37.318027Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=9170086261988994041, trigger=click)\n2026-04-21T18:00:42.194585Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=9170086261988994041, trigger=click)\n2026-04-21T18:00:42.367049Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9170086261988994041, trigger=click)\n2026-04-21T18:01:07.200973Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:08.642294Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:08.873831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=visual_change)\n2026-04-21T18:01:09.931490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:10.189484Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:11.594292Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=visual_change)\n2026-04-21T18:01:12.844254Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:13.095866Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:49.712611Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5610420548393517496, trigger=click)\n2026-04-21T18:01:49.878502Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5610420548393517496, trigger=click)\n2026-04-21T18:01:54.385999Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4075180225844497251, trigger=click)\n2026-04-21T18:02:03.320721Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:04.589973Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:06.402101Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:08.459207Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:17.915785Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:20.289378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:53.363091Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:59.854804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6485088808083200508, trigger=visual_change)\n2026-04-21T18:03:23.692602Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2923142241079919801, trigger=visual_change)\n2026-04-21T18:03:38.383745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:03:38.666324Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:03:40.611795Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:03:46.691879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:03:49.696169Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:03:58.796193Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:10.455866Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=65 elapsed=5.507644708s\n2026-04-21T18:04:10.456994Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 65 eligible frames\n2026-04-21T18:04:10.784720Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:12.979583Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 8.1MB → 3.1MB (2.6x), 36 JPEGs deleted\n2026-04-21T18:04:13.808201Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:15.311040Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 5.7MB → 2.1MB (2.7x), 27 JPEGs deleted\n2026-04-21T18:04:22.870405Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:25.858949Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:47.178867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:47.409147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:48.621959Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:48.823996Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:49.613197Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:49.840589Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:54.113636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:54.333250Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:56.158603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:56.345340Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:24.653256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2923142241079919801, trigger=visual_change)\n2026-04-21T18:05:27.506644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2923142241079919801, trigger=visual_change)\n2026-04-21T18:05:52.127185Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:52.385537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:54.464579Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:54.740600Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:06:01.884193Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:06:04.917243Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:06:15.788550Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:06:16.090123Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:06:17.179267Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:07:04.992532Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:08.003078Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:17.121489Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:17.302355Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:27.025619Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:29.771279Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:31.137970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:36.086848Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:36.306717Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:37.369851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:37.634865Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:38.805129Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:39.104738Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:40.060624Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:08:30.262801Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:08:45.022177Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8543293535466770858, trigger=click)\n2026-04-21T18:09:22.083704Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=74 elapsed=6.715953125s\n2026-04-21T18:09:22.084245Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 74 eligible frames\n2026-04-21T18:09:29.000281Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 43 frames, 9.6MB → 4.0MB (2.4x), 43 JPEGs deleted\n2026-04-21T18:09:33.280652Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 5.8MB → 1.9MB (3.1x), 29 JPEGs deleted\n2026-04-21T18:10:45.149443Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:11:39.313378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=745086096190842156, trigger=visual_change)\n2026-04-21T18:11:42.305757Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=745086096190842156, trigger=click)\n2026-04-21T18:11:46.031853Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=745086096190842156, trigger=click)\n2026-04-21T18:11:46.095029Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=745086096190842156, trigger=click)\n2026-04-21T18:14:41.494244Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=68 elapsed=8.195880125s\n2026-04-21T18:14:41.495608Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 68 eligible frames\n2026-04-21T18:14:48.613051Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 8.2MB → 3.4MB (2.5x), 36 JPEGs deleted\n2026-04-21T18:14:55.232583Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 5.5MB → 2.6MB (2.1x), 30 JPEGs deleted\n2026-04-21T18:19:19.967211Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2899189334056575250, trigger=click)\n2026-04-21T18:19:20.363463Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2899189334056575250, trigger=click)\n2026-04-21T18:19:59.298075Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=53 elapsed=4.000910792s\n2026-04-21T18:19:59.298190Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 53 eligible frames\n2026-04-21T18:20:02.044649Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 5.1MB → 3.5MB (1.5x), 26 JPEGs deleted\n2026-04-21T18:20:04.900441Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.7MB → 2.4MB (1.9x), 25 JPEGs deleted\n2026-04-21T18:20:23.742659Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:27.660528Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:34.896769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:35.220946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:40.886719Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:44.353070Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:47.046701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:48.003863Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:22:59.673927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2006451494811625283, trigger=click)\n2026-04-21T18:23:02.374154Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2006451494811625283, trigger=visual_change)\n2026-04-21T18:24:55.480969Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:24:55.713808Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:25:06.770660Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=745086096190842156, trigger=click)\n2026-04-21T18:25:10.431473Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=69 elapsed=5.123936292s\n2026-04-21T18:25:10.432665Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 69 eligible frames\n2026-04-21T18:25:12.020960Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.7MB → 0.4MB (10.8x), 24 JPEGs deleted\n2026-04-21T18:25:16.809118Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 43 frames, 7.5MB → 3.7MB (2.0x), 43 JPEGs deleted\n2026-04-21T18:27:20.032159Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-868697608726996264, trigger=click)\n2026-04-21T18:27:27.209581Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5262134208844209929, trigger=click)\n2026-04-21T18:30:23.556529Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=60 elapsed=6.732438875s\n2026-04-21T18:30:23.556849Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 60 eligible frames\n2026-04-21T18:30:25.836587Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 5.3MB → 0.4MB (12.5x), 27 JPEGs deleted\n2026-04-21T18:30:29.251794Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 5.4MB → 2.7MB (2.0x), 31 JPEGs deleted\n2026-04-21T18:34:42.383568Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1898158487632236470, trigger=click)\n2026-04-21T18:35:29.435858Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 84 eligible frames\n2026-04-21T18:35:31.507303Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 35 frames, 6.8MB → 0.3MB (21.3x), 35 JPEGs deleted\n2026-04-21T18:35:34.821718Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 47 frames, 8.8MB → 3.6MB (2.4x), 47 JPEGs deleted\n2026-04-21T18:37:57.032414Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3231955623713121874, trigger=click)\n2026-04-21T18:40:36.969380Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=205 elapsed=2.13815675s\n2026-04-21T18:40:36.969491Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 205 eligible frames\n2026-04-21T18:40:42.234686Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 90 frames, 17.5MB → 0.4MB (49.4x), 90 JPEGs deleted\n2026-04-21T18:40:48.296945Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 99 frames, 14.9MB → 5.7MB (2.6x), 99 JPEGs deleted\n2026-04-21T18:40:49.626073Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 1.8MB → 0.7MB (2.8x), 14 JPEGs deleted\n2026-04-21T18:41:16.858046Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5262134208844209929, trigger=click)\n2026-04-21T18:41:18.719527Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5262134208844209929, trigger=click)\n2026-04-21T18:41:20.650032Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6762752836329409782, trigger=click)\n2026-04-21T18:42:40.957654Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7949512313665335161, trigger=visual_change)\n2026-04-21T18:42:42.714242Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7949512313665335161, trigger=click)\n2026-04-21T18:44:54.833923Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7610506607449357182, trigger=click)\n2026-04-21T18:44:55.013934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7610506607449357182, trigger=click)\n2026-04-21T18:45:54.320505Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=145 elapsed=4.6846185s\n2026-04-21T18:45:54.321215Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 145 eligible frames\n2026-04-21T18:45:58.288822Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 64 frames, 12.5MB → 0.5MB (23.2x), 64 JPEGs deleted\n2026-04-21T18:46:02.956701Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 78 frames, 11.5MB → 3.3MB (3.5x), 78 JPEGs deleted\n2026-04-21T18:48:10.510139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4242937607805845066, trigger=click)\n2026-04-21T18:48:37.207446Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5152173808593872338, trigger=visual_change)\n2026-04-21T18:49:27.537635Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5244088376274895156, trigger=click)\n2026-04-21T18:49:33.724367Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5262134208844209929, trigger=click)\n2026-04-21T18:49:44.747739Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8298107678328947062, trigger=click)\n2026-04-21T18:50:45.073176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:50:45.427101Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:50:48.592273Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:50:49.492676Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:51:01.193858Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:51:05.888682Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=50 elapsed=2.917680375s\n2026-04-21T18:51:05.889014Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 50 eligible frames\n2026-04-21T18:51:06.016628Z WARN sqlx::query: summary=\"PRAGMA wal_checkpoint(TRUNCATE)\" db.statement=\"\" rows_affected=0 rows_returned=1 elapsed=2.157649083s\n2026-04-21T18:51:06.079565Z WARN sqlx::query: summary=\"BEGIN IMMEDIATE\" db.statement=\"\" rows_affected=1 rows_returned=0 elapsed=1.385088167s\n2026-04-21T18:51:07.829374Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 3.9MB → 0.4MB (11.0x), 20 JPEGs deleted\n2026-04-21T18:51:09.736739Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 5.0MB → 1.8MB (2.7x), 28 JPEGs deleted\n2026-04-21T18:51:22.360027Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2872311122120998867, trigger=click)\n2026-04-21T18:51:22.556670Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2872311122120998867, trigger=click)\n2026-04-21T18:51:38.819030Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7947558874471225541, trigger=click)\n2026-04-21T18:51:57.414061Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:51:59.012068Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:51:59.285931Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:01.767745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:02.028355Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:05.460776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=visual_change)\n2026-04-21T18:52:07.087479Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:07.314492Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:10.214922Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:10.537340Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:13.867159Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:14.152331Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:20.367281Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:26.127826Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1650348556715134220, trigger=click)\n2026-04-21T18:52:37.517700Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=visual_change)\n2026-04-21T18:52:42.329057Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:52:42.556779Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:52:44.386173Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:52:44.700511Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:52:45.210674Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:53:17.193415Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6757993062848436258, trigger=visual_change)\n2026-04-21T18:53:30.834059Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-228480120308125164, trigger=click)\n2026-04-21T18:53:38.030882Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7225077546439863627, trigger=click)\n2026-04-21T18:53:56.421537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6437320026671683644, trigger=click)\n2026-04-21T18:54:11.726528Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1667437155962702753, trigger=visual_change)\n2026-04-21T18:54:12.117525Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1667437155962702753, trigger=click)\n2026-04-21T18:54:18.659686Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:54:19.077258Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:54:29.973760Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:56:07.789768Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6757993062848436258, trigger=click)\n2026-04-21T18:56:08.791400Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6757993062848436258, trigger=click)\n2026-04-21T18:56:14.153615Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=80 elapsed=4.402661042s\n2026-04-21T18:56:14.153722Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 80 eligible frames\n2026-04-21T18:56:16.685912Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 6.2MB → 0.7MB (8.9x), 32 JPEGs deleted\n2026-04-21T18:56:21.263739Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 46 frames, 8.2MB → 2.8MB (2.9x), 46 JPEGs deleted\n2026-04-21T18:56:25.279306Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7906564822731502105, trigger=click)\n2026-04-21T18:56:33.734840Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8817586097865472869, trigger=click)\n2026-04-21T18:56:33.980908Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8817586097865472869, trigger=click)\n2026-04-21T18:56:35.972959Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8817586097865472869, trigger=click)\n2026-04-21T18:56:40.545963Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8587160525579598601, trigger=click)\n2026-04-21T18:56:41.913814Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8587160525579598601, trigger=visual_change)\n2026-04-21T18:56:45.516942Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1910160977377320534, trigger=click)\n2026-04-21T18:56:48.740431Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1910160977377320534, trigger=click)\n2026-04-21T18:56:50.439568Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1910160977377320534, trigger=click)\n2026-04-21T18:56:50.692218Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1910160977377320534, trigger=click)\n2026-04-21T18:57:12.321118Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:12.578681Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:24.290583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:24.543696Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:34.571768Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:36.227688Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:36.475151Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:42.338601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:42.559967Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:52.824809Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:53.145543Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:59.463043Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:59.717475Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:58:00.742137Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:58:01.061497Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:59:33.960291Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9203182216527106315, trigger=visual_change)\n2026-04-21T18:59:55.990167Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T18:59:59.103830Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=visual_change)\n2026-04-21T19:00:16.116927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:00:45.352689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:00:49.596644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:00:50.432181Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:07.992732Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:08.484066Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:10.538762Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:18.922398Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:28.361625Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=84 elapsed=6.9360265s\n2026-04-21T19:01:28.362070Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 84 eligible frames\n2026-04-21T19:01:32.723075Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 33 frames, 6.4MB → 0.3MB (19.7x), 33 JPEGs deleted\n2026-04-21T19:01:42.130490Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 7.8MB → 3.3MB (2.4x), 49 JPEGs deleted\n2026-04-21T19:02:09.991879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:12.577587Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:12.835924Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:15.635601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:18.720475Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:21.708351Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:22.061150Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:28.684303Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3995027160269120472, trigger=click)\n2026-04-21T19:02:41.434491Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:41.724904Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:43.112974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:43.410843Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:47.501924Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:47.761592Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:54.205542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:54.441326Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:56.601490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:56.921256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:03:15.988643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:03:16.236342Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:03:28.508616Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:00.462064Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:01.516168Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:01.856315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:03.246448Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:03.735029Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:09.818135Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:05:03.118616Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:03.393788Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:21.352722Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=visual_change)\n2026-04-21T19:05:43.751309Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:44.029500Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:45.626672Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:45.899754Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:48.206587Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:48.449043Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:06:22.834938Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7947558874471225541, trigger=click)\n2026-04-21T19:06:52.937779Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=114 elapsed=10.747243125s\n2026-04-21T19:06:52.938152Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 114 eligible frames\n2026-04-21T19:06:57.942457Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 45 frames, 8.8MB → 0.3MB (27.2x), 45 JPEGs deleted\n2026-04-21T19:07:05.853054Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 67 frames, 10.5MB → 5.2MB (2.0x), 67 JPEGs deleted\n2026-04-21T19:07:45.088797Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:07:48.052391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6936634780821666458, trigger=click)\n2026-04-21T19:08:59.593467Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5629560013928052473, trigger=click)\n2026-04-21T19:09:29.443711Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:42.998313Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8043719072324535154, trigger=visual_change)\n2026-04-21T19:09:50.759516Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:51.052544Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:51.892698Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:09:52.651776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:55.476431Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:55.898195Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:09:58.077337Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:10:01.103980Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:10:03.105423Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:10:03.448049Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:10:08.548130Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6051188157141408655, trigger=click)\n2026-04-21T19:12:12.330759Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=70 elapsed=6.458002417s\n2026-04-21T19:12:12.332545Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 70 eligible frames\n2026-04-21T19:12:14.243079Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 5.5MB → 0.3MB (17.2x), 28 JPEGs deleted\n2026-04-21T19:12:17.558334Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 40 frames, 7.4MB → 3.6MB (2.1x), 40 JPEGs deleted\n2026-04-21T19:16:51.045938Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1370319459641728815, trigger=click)\n2026-04-21T19:16:51.249993Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1370319459641728815, trigger=click)\n2026-04-21T19:17:21.603564Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=40 elapsed=4.036037791s\n2026-04-21T19:17:21.604357Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames\n2026-04-21T19:17:22.750174Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.5MB → 0.3MB (11.2x), 18 JPEGs deleted\n2026-04-21T19:17:24.332098Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.2MB → 1.3MB (3.2x), 20 JPEGs deleted\n2026-04-21T19:22:25.748871Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=49 elapsed=1.406664416s\n2026-04-21T19:22:25.749095Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 49 eligible frames\n2026-04-21T19:22:27.704722Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 3.7MB → 0.8MB (4.5x), 22 JPEGs deleted\n2026-04-21T19:22:29.535330Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.2MB → 1.7MB (3.0x), 25 JPEGs deleted\n2026-04-21T19:23:29.233846Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9146581369053060363, trigger=click)\n2026-04-21T19:23:31.995034Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9146581369053060363, trigger=visual_change)\n2026-04-21T19:23:37.213396Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9146581369053060363, trigger=visual_change)\n2026-04-21T19:23:40.288223Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9146581369053060363, trigger=visual_change)\n2026-04-21T19:23:44.197738Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9146581369053060363, trigger=visual_change)\n2026-04-21T19:23:45.228572Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9146581369053060363, trigger=click)\n2026-04-21T19:23:56.251033Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:24:06.580019Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=335 elapsed=1.644312167s\n2026-04-21T19:24:28.860436Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:24:32.226944Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:24:32.476075Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:03.902521Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:19.205245Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:25.098627Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:36.013866Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:37.355954Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:41.831265Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:46.247585Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:46.619106Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:48.284769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:48.534452Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:49.421920Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:49.752264Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:54.600720Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:55.072357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:26:19.446041Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:26:22.718352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:27:38.437704Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=28 elapsed=8.833634334s\n2026-04-21T19:27:38.438043Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames\n2026-04-21T19:27:39.763901Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 1.9MB → 0.3MB (7.6x), 12 JPEGs deleted\n2026-04-21T19:27:41.220664Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.1MB → 0.9MB (2.2x), 14 JPEGs deleted\n2026-04-21T19:28:22.708791Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:28:23.849452Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:28:24.119301Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:14.209016Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:16.415693Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:21.726815Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:23.890645Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:24.239058Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:29.790006Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:33.098495Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:38.065869Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:44.089028Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:47.272131Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:53.977951Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:57.274496Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:30:11.986797Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:30:13.530455Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:30:28.332451Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:30:37.204947Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:26.255340Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:26.592983Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:30.448912Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:35.747969Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:37.783849Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:38.061197Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:43.216365Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:43.885407Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:46.680745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:52.971450Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:58.468469Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:58.624833Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:03.362210Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:12.706102Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:15.172982Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:23.020508Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:23.199312Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:25.387097Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:25.764201Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:30.336940Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:30.810971Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:39.812820Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:42.409145Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:44.386326Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:48.880648Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=47 elapsed=7.499136792s\n2026-04-21T19:32:48.880949Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 47 eligible frames\n2026-04-21T19:32:51.249469Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.2MB → 0.3MB (8.9x), 14 JPEGs deleted\n2026-04-21T19:32:55.969183Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 3.8MB → 1.9MB (2.0x), 31 JPEGs deleted\n2026-04-21T19:32:59.734686Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:33:00.098925Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:33:05.951997Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:34:07.213420Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:34:09.264586Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:34:16.527425Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:34:19.513647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:34:32.889780Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1128757073350665914, trigger=click)\n2026-04-21T19:34:56.078651Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4993766851008728916, trigger=click)\n2026-04-21T19:34:56.296542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4993766851008728916, trigger=click)\n2026-04-21T19:35:02.344819Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:35:05.237721Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:35:07.518599Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:35:09.938481Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:35:10.408295Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:35:26.864482Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:35:33.001733Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:35:36.479802Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:36:20.043835Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4526067242477956280, trigger=visual_change)\n2026-04-21T19:36:47.029303Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4526067242477956280, trigger=visual_change)\n2026-04-21T19:36:57.077150Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:37:33.348160Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:37:33.742029Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:37:36.579915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:37:39.754974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:38:04.951324Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=101 elapsed=8.9666755s\n2026-04-21T19:38:04.953527Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 101 eligible frames\n2026-04-21T19:38:13.751166Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 38 frames, 8.0MB → 3.5MB (2.3x), 38 JPEGs deleted\n2026-04-21T19:38:29.817220Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 61 frames, 9.7MB → 5.2MB (1.9x), 61 JPEGs deleted\n2026-04-21T19:40:34.255930Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=342 elapsed=1.0699005s\n2026-04-21T19:42:32.961192Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:42:33.305572Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:42:40.179851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=visual_change)\n2026-04-21T19:42:41.405781Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:42:41.720845Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:43:02.251464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=visual_change)\n2026-04-21T19:43:11.622532Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:43:36.525920Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=85 elapsed=6.634896167s\n2026-04-21T19:43:36.526454Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 85 eligible frames\n2026-04-21T19:43:39.459999Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 8.0MB → 3.4MB (2.3x), 36 JPEGs deleted\n2026-04-21T19:43:43.505640Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 47 frames, 7.9MB → 3.9MB (2.0x), 47 JPEGs deleted\n2026-04-21T19:44:05.999282Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=visual_change)\n2026-04-21T19:45:08.065595Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2712812971723964739, trigger=click)\n2026-04-21T19:45:46.266141Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:48:51.569666Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=64 elapsed=8.039671791s\n2026-04-21T19:48:51.570457Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 64 eligible frames\n2026-04-21T19:48:58.738540Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 7.2MB → 2.4MB (2.9x), 32 JPEGs deleted\n2026-04-21T19:49:05.383193Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 5.9MB → 2.5MB (2.4x), 30 JPEGs deleted\n2026-04-21T19:51:14.064760Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2572721248839450970, trigger=visual_change)\n2026-04-21T19:54:08.518415Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=346 elapsed=1.026887875s\n2026-04-21T19:54:12.872902Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=61 elapsed=7.44778675s\n2026-04-21T19:54:12.873164Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 61 eligible frames\n2026-04-21T19:54:16.348511Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.6MB → 1.4MB (4.1x), 25 JPEGs deleted\n2026-04-21T19:54:24.102233Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 34 frames, 6.2MB → 3.6MB (1.7x), 34 JPEGs deleted\n2026-04-21T19:59:32.063421Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=346 elapsed=1.165878958s\n2026-04-21T19:59:32.818884Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=31 elapsed=8.661332917s\n2026-04-21T19:59:32.819629Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 31 eligible frames\n2026-04-21T19:59:35.810838Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.9MB → 0.7MB (3.9x), 16 JPEGs deleted\n2026-04-21T19:59:38.924596Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.9MB → 1.5MB (2.0x), 13 JPEGs deleted\n2026-04-21T20:01:55.709776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1382976804061127003, trigger=click)\n2026-04-21T20:04:27.572999Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7658911549706194190, trigger=click)\n2026-04-21T20:04:46.630063Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=57 elapsed=7.045125334s\n2026-04-21T20:04:46.631081Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 57 eligible frames\n2026-04-21T20:04:49.684796Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 2.5MB → 0.8MB (3.2x), 23 JPEGs deleted\n2026-04-21T20:04:56.073590Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 5.7MB → 3.1MB (1.8x), 32 JPEGs deleted\n2026-04-21T20:05:04.129844Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-446124678591544690, trigger=click)\n2026-04-21T20:05:04.425723Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-446124678591544690, trigger=click)\n2026-04-21T20:09:59.238939Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=30 elapsed=2.058497125s\n2026-04-21T20:09:59.239075Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 30 eligible frames\n2026-04-21T20:10:00.874153Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.3MB → 0.2MB (5.8x), 13 JPEGs deleted\n2026-04-21T20:10:03.326064Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 1.8MB → 0.6MB (2.8x), 15 JPEGs deleted\n2026-04-21T20:15:07.129653Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=58 elapsed=3.763973459s\n2026-04-21T20:15:07.130598Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 58 eligible frames\n2026-04-21T20:15:09.088400Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 3.7MB → 0.6MB (5.9x), 26 JPEGs deleted\n2026-04-21T20:15:10.858868Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 3.9MB → 1.0MB (3.9x), 30 JPEGs deleted\n2026-04-21T20:18:21.110736Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=354 elapsed=1.169721666s\nzsh: terminated npx screenpipe@latest record --disable-audio --ignored-windows \"Boosteroid\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-start\ndetected hardware tier: Mid\nwarning: parakeet is not supported on this platform, using whisper-tiny instead\n2026-04-22T09:15:19.880360Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store\nchecking permissions...\n screen recording: ok\n accessibility: ok\n2026-04-22T09:15:19.951248Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6\n2026-04-22T09:15:20.675958Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor\n2026-04-22T09:15:20.677447Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)\n2026-04-22T09:15:20.677800Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)\n2026-04-22T09:15:20.709542Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true\n2026-04-22T09:15:20.709596Z INFO screenpipe: meeting detector enabled — independent of transcription mode\n2026-04-22T09:15:20.709849Z INFO screenpipe: API server listening on 127.0.0.1:3030 (localhost only)\n2026-04-22T09:15:20.709774Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)\n2026-04-22T09:15:20.709806Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)\n2026-04-22T09:15:20.709863Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key\n2026-04-22T09:15:20.709908Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager\n2026-04-22T09:15:20.721517Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-22T09:15:20.725781Z INFO screenpipe_core::pipes: loaded pipe: day-recap\n2026-04-22T09:15:20.725991Z INFO screenpipe_core::pipes: loaded pipe: standup-update\n2026-04-22T09:15:20.726387Z INFO screenpipe_core::pipes: loaded pipe: ai-habits\n2026-04-22T09:15:20.726548Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown\n2026-04-22T09:15:20.726690Z INFO screenpipe_core::pipes: loaded pipe: video-export\n2026-04-22T09:15:20.727224Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary\n2026-04-22T09:15:20.727242Z INFO screenpipe_core::pipes: loaded 6 pipes from \"/Users/lukas/.screenpipe/pipes\"\n\n\n\n _ \n __________________ ___ ____ ____ (_____ ___ \n / ___/ ___/ ___/ _ \\/ _ \\/ __ \\ / __ \\/ / __ \\/ _ \\\n (__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/\n/____/\\___/_/ \\___/\\___/_/ /_/ / .___/_/ .___/\\___/ \n /_/ /_/ \n\n\n\npower AI by everything you've seen, said or heard\nopen source | runs locally | developer friendly\n\n\n┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ true │\n│ vision disabled │ false │\n│ pause on DRM content │ false │\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n│ ignored windows │ [\"Boosteroid\"] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n2026-04-22T09:15:20.728614Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n│ api auth │ enabled │\n2026-04-22T09:15:20.742172Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n│ encrypt secrets │ disabled │\n│ retention days │ 14 │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ id: 1 │\n│ │ id: 2 │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ disabled │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-22T09:15:20.742788Z INFO screenpipe: starting UI event capture\n2026-04-22T09:15:20.755824Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-22T09:15:20.769629Z INFO screenpipe_engine::ui_recorder: UI recording session started: e7729066-2ab4-4bf0-9d48-0c9790a4ee79\n2026-04-22T09:15:20.769680Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-22T09:15:20.769789Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-21 06:15:20.769785 UTC to 2026-04-22 06:15:20.769785 UTC)\n2026-04-22T09:15:20.770644Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-22T09:15:20.778181Z INFO screenpipe_engine::server: Server listening on 127.0.0.1:3030\n2026-04-22T09:15:20.789960Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-22T09:15:21.591614Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-22T09:15:21.591646Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-22T09:15:21.591751Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-22T09:15:21.919088Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-22T09:15:21.919141Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-22T09:15:21.919158Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)\n2026-04-22T09:15:21.919163Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-22T09:15:21.919167Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)\n2026-04-22T09:15:23.315305Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-22T09:15:23.445619Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=68471, dur=74ms\n2026-04-22T09:15:23.697846Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.058843084,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.32912233,"top":1.0,"width":0.058843084,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.33111703,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.3879654,"top":1.0,"width":0.058843084,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3899601,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"✳ Build full day activity summary from Screenpipe (claude)","depth":2,"bounds":{"left":0.44680852,"top":1.0,"width":0.058843084,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.4488032,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.5056516,"top":1.0,"width":0.058843084,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.50764626,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.56449467,"top":1.0,"width":0.058843084,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.56648934,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.62333775,"top":1.0,"width":0.058843084,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6253325,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"ec2-user@ip-10-30-159-186:~ (-zsh)","depth":2,"bounds":{"left":0.6821808,"top":1.0,"width":0.058843084,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.68417555,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7273936,"top":1.0,"width":0.01861702,"height":-0.023144484},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"screenpipe\"","depth":1,"bounds":{"left":0.4956782,"top":1.0,"width":0.027925532,"height":-0.02394259},"role_description":"text"}]...
|
-6789575939832249155
|
2646348668002215289
|
manual
|
accessibility
|
NULL
|
2026-04-21T16:39:28.954550Z INFO screenpipe_engin 2026-04-21T16:39:28.954550Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=869328293033429183, trigger=click)
2026-04-21T16:39:29.084826Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=869328293033429183, trigger=click)
2026-04-21T16:39:31.752392Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4079194444055345358, trigger=click)
2026-04-21T16:39:31.941130Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4079194444055345358, trigger=click)
2026-04-21T16:39:37.082813Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=50 elapsed=2.555752875s
2026-04-21T16:39:37.082914Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 50 eligible frames
2026-04-21T16:39:39.896800Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.4MB → 0.9MB (4.9x), 24 JPEGs deleted
2026-04-21T16:39:42.979598Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.6MB → 1.9MB (2.5x), 24 JPEGs deleted
2026-04-21T16:39:54.138147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=869328293033429183, trigger=click)
2026-04-21T16:41:34.967355Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)
2026-04-21T16:41:35.133385Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)
2026-04-21T16:43:15.919099Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8254246256813675665, trigger=click)
2026-04-21T16:43:44.014066Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8254246256813675665, trigger=visual_change)
2026-04-21T16:44:45.410923Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=35 elapsed=2.419201375s
2026-04-21T16:44:45.411045Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 35 eligible frames
2026-04-21T16:44:46.383629Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.8MB → 0.3MB (9.5x), 15 JPEGs deleted
2026-04-21T16:44:47.792527Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.6MB → 0.8MB (4.3x), 18 JPEGs deleted
2026-04-21T16:49:53.308820Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=47 elapsed=5.487768917s
2026-04-21T16:49:53.309371Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 47 eligible frames
2026-04-21T16:49:54.673701Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.9MB → 0.3MB (13.1x), 21 JPEGs deleted
2026-04-21T16:49:56.314871Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.7MB → 1.2MB (4.0x), 24 JPEGs deleted
2026-04-21T16:54:59.385017Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=62 elapsed=3.057419917s
2026-04-21T16:54:59.385210Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 62 eligible frames
2026-04-21T16:55:00.998239Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.8MB → 0.5MB (10.3x), 26 JPEGs deleted
2026-04-21T16:55:03.739041Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 34 frames, 5.8MB → 2.6MB (2.2x), 34 JPEGs deleted
2026-04-21T16:55:17.768634Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)
2026-04-21T17:23:59.183039Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)
2026-04-21T17:23:59.216966Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2
2026-04-21T17:24:00.832399Z INFO screenpipe_engine::vision_manager::monitor_watcher: Monitor 2 disconnected, stopping recording
2026-04-21T17:24:00.832464Z INFO screenpipe_engine::vision_manager::manager: Stopping vision recording for monitor 2
2026-04-21T17:24:00.832336Z INFO sck_rs::stream_manager: stopped 2 persistent stream(s)
2026-04-21T17:24:04.654209Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)
2026-04-21T17:24:30.699969Z ERROR screenpipe_engine::resource_monitor: Failed to send resource usage to PostHog: error sending request for url (https://us.i.posthog.com/capture/)
2026-04-21T17:25:01.085383Z INFO screenpipe_engine::vision_manager::monitor_watcher: Monitor 2 reconnected, resuming recording
2026-04-21T17:25:01.273818Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-04-21T17:25:01.273870Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-04-21T17:25:01.273896Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-04-21T17:25:02.310236Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)
2026-04-21T17:25:02.808234Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=66228, dur=365ms
2026-04-21T17:25:04.889075Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:07.887565Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:10.918390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:14.039034Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:17.160521Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:26.096276Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:29.061270Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:32.067380Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:35.263701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:41.164753Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:25:44.239172Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:25:47.149320Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:25:50.242915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:25:53.308794Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:25:56.218138Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:25:59.144297Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:26:05.965946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:08.584110Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:11.350189Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:14.339609Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:17.398251Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:20.782119Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:23.385506Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:26.427626Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:29.573661Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:32.450744Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:38.464132Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:41.456915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:44.496278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:47.541313Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:50.596256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:53.597171Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:56.764522Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:59.751576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:02.719391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:08.829090Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:11.800601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:14.811724Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:17.855339Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:26.878741Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:29.933020Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:32.947216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:36.041239Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:38.993657Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:42.039373Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:45.172399Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:48.081804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:51.142939Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:54.169253Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:00.341347Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:03.322832Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:06.631198Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:09.537232Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:12.406113Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:15.381764Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:15.806839Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=44 elapsed=5.777403s
2026-04-21T17:28:15.806951Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 44 eligible frames
2026-04-21T17:28:17.108106Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.9MB → 0.3MB (13.1x), 21 JPEGs deleted
2026-04-21T17:28:18.370832Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.6MB → 0.5MB (7.8x), 21 JPEGs deleted
2026-04-21T17:28:18.461408Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:22.068097Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:24.604711Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:27.608060Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:33.774822Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:36.697278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:39.729251Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:42.728755Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:45.748204Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:48.768910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:51.814752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:54.970698Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:57.869874Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:00.913837Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:07.461529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:10.043928Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:13.182411Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:16.080133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:19.108570Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:22.322033Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:25.172666Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:28.398354Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:31.249083Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:34.289745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:40.303310Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:43.308015Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:46.360649Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:49.356069Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:52.450205Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:55.422975Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:58.446390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:01.491253Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:04.500380Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:16.830925Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:19.856895Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:23.100486Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:25.938910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:28.953603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:32.061536Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:35.030958Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:38.162895Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:41.148165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:44.019513Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:50.259576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:53.148070Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:56.309979Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:59.185610Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:02.278235Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:05.287341Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:08.409426Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:11.489977Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:14.319338Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:17.348153Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:23.351025Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:26.427529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:29.337254Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:32.386165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:35.653387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:38.430216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:41.428909Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:44.432459Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:47.448603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:50.432780Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:56.535727Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:59.590792Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:32:02.621444Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:32:05.627964Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:32:08.710139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:32:11.765247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:32:14.787638Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:32:17.876480Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)
2026-04-21T17:32:20.977937Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)
2026-04-21T17:32:29.888970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8116870867026519513, trigger=click)
2026-04-21T17:32:33.123648Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)
2026-04-21T17:33:03.355082Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)
2026-04-21T17:33:05.517897Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=click)
2026-04-21T17:33:06.399783Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)
2026-04-21T17:33:09.478894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)
2026-04-21T17:33:19.151217Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
2026-04-21T17:33:21.431006Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6379516332769645744, trigger=visual_change)
2026-04-21T17:33:33.494463Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7500553589467718193, trigger=visual_change)
2026-04-21T17:34:00.725974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2275300387038012183, trigger=click)
2026-04-21T17:34:07.214867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2063499064757931498, trigger=visual_change)
2026-04-21T17:34:31.480257Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=visual_change)
2026-04-21T17:34:34.482370Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=visual_change)
2026-04-21T17:35:53.801549Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7652433743467416760, trigger=click)
2026-04-21T17:35:53.954311Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7652433743467416760, trigger=click)
2026-04-21T17:35:54.740695Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7652433743467416760, trigger=click)
2026-04-21T17:36:06.295752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5335392039126841536, trigger=visual_change)
2026-04-21T17:36:28.893337Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5927780310531960690, trigger=visual_change)
2026-04-21T17:38:15.647110Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)
2026-04-21T17:38:17.801901Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)
2026-04-21T17:38:17.962831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)
2026-04-21T17:38:22.819710Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7137414965816212018, trigger=click)
2026-04-21T17:38:22.917176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=click)
2026-04-21T17:38:23.042830Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=28 elapsed=3.882772625s
2026-04-21T17:38:23.042920Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames
2026-04-21T17:38:24.717251Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 2.8MB → 0.4MB (6.3x), 18 JPEGs deleted
2026-04-21T17:38:26.727027Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.1MB → 0.2MB (5.7x), 10 JPEGs deleted
2026-04-21T17:38:35.971287Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=click)
2026-04-21T17:38:36.106246Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7137414965816212018, trigger=click)
2026-04-21T17:38:37.368009Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=visual_change)
2026-04-21T17:38:43.431620Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8741356672789266752, trigger=visual_change)
2026-04-21T17:38:49.319886Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5149767057649118192, trigger=click)
2026-04-21T17:38:49.477325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5149767057649118192, trigger=click)
2026-04-21T17:38:51.019231Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5149767057649118192, trigger=visual_change)
2026-04-21T17:39:04.249890Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7355944135161080033, trigger=click)
2026-04-21T17:39:23.256256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4983811095206295613, trigger=click)
2026-04-21T17:39:23.385820Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4983811095206295613, trigger=click)
2026-04-21T17:39:24.367407Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4983811095206295613, trigger=visual_change)
2026-04-21T17:39:24.895784Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4983811095206295613, trigger=click)
2026-04-21T17:39:46.438272Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=372069959735326508, trigger=visual_change)
2026-04-21T17:39:49.101085Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4964238948655865655, trigger=visual_change)
2026-04-21T17:39:58.083750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)
2026-04-21T17:40:01.375315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)
2026-04-21T17:40:04.195859Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)
2026-04-21T17:40:12.117004Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2989278587618621353, trigger=click)
2026-04-21T17:40:12.244666Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2989278587618621353, trigger=click)
2026-04-21T17:40:13.925024Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2989278587618621353, trigger=visual_change)
2026-04-21T17:40:23.294147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=visual_change)
2026-04-21T17:40:55.989498Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3182674559678505325, trigger=click)
2026-04-21T17:40:58.413325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3182674559678505325, trigger=visual_change)
2026-04-21T17:41:23.101094Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5616874458658671741, trigger=visual_change)
2026-04-21T17:41:29.504783Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2744778324521007391, trigger=visual_change)
2026-04-21T17:42:13.830352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6664909184667365933, trigger=click)
2026-04-21T17:42:13.905614Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=click)
2026-04-21T17:42:14.689622Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6664909184667365933, trigger=click)
2026-04-21T17:43:13.738786Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5563100798252317961, trigger=visual_change)
2026-04-21T17:43:31.769731Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=40 elapsed=4.870364084s
2026-04-21T17:43:31.770321Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames
2026-04-21T17:43:32.514133Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.1MB → 0.1MB (8.9x), 11 JPEGs deleted
2026-04-21T17:43:34.391762Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 3.0MB → 0.5MB (5.9x), 27 JPEGs deleted
2026-04-21T17:44:19.021163Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-263228306577803226, trigger=click)
2026-04-21T17:44:32.036390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8360298266192684601, trigger=click)
2026-04-21T17:44:33.859332Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8360298266192684601, trigger=visual_change)
2026-04-21T17:44:42.936361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=visual_change)
2026-04-21T17:44:46.420662Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=visual_change)
2026-04-21T17:46:17.725934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7286082578618580481, trigger=click)
2026-04-21T17:46:18.733766Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=click)
2026-04-21T17:46:19.506484Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7286082578618580481, trigger=click)
2026-04-21T17:46:20.729229Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=click)
2026-04-21T17:46:27.956655Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8942982652250876029, trigger=click)
2026-04-21T17:46:29.490950Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8942982652250876029, trigger=click)
2026-04-21T17:46:45.634752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5761541209609855314, trigger=click)
2026-04-21T17:46:45.971315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5761541209609855314, trigger=click)
2026-04-21T17:46:50.988867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5607564885929685542, trigger=click)
2026-04-21T17:46:51.601750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5607564885929685542, trigger=click)
2026-04-21T17:46:56.353647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4497988824039212795, trigger=click)
2026-04-21T17:47:24.716661Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4864885406063659925, trigger=visual_change)
2026-04-21T17:47:29.793942Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:30.097043Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)
2026-04-21T17:47:30.960214Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:32.707746Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)
2026-04-21T17:47:36.181007Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:36.362574Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:37.093511Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:41.720206Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)
2026-04-21T17:47:44.706704Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)
2026-04-21T17:47:48.602580Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:48.776278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:52.582982Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5658848090639979218, trigger=click)
2026-04-21T17:47:57.282103Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8902771592702756196, trigger=click)
2026-04-21T17:48:06.880071Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8902771592702756196, trigger=click)
2026-04-21T17:48:07.656377Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8902771592702756196, trigger=click)
2026-04-21T17:48:23.785117Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:48:24.032602Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:48:26.587906Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:48:32.180582Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)
2026-04-21T17:48:34.022831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:48:34.363583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:48:39.363585Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=83 elapsed=4.983598708s
2026-04-21T17:48:39.363733Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 83 eligible frames
2026-04-21T17:48:41.479158Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 3.3MB → 0.2MB (17.7x), 31 JPEGs deleted
2026-04-21T17:48:44.682560Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 50 frames, 6.5MB → 2.0MB (3.3x), 50 JPEGs deleted
2026-04-21T17:48:53.828851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)
2026-04-21T17:48:56.563636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)
2026-04-21T17:48:59.291654Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:48:59.467275Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:00.295226Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:00.453357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=visual_change)
2026-04-21T17:49:13.301518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)
2026-04-21T17:49:16.454207Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)
2026-04-21T17:49:16.837288Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:18.900202Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:19.229376Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:20.418502Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:20.706966Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:21.269855Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:22.896443Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:23.115745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:29.927553Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1234240076182081719, trigger=click)
2026-04-21T17:49:40.567042Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1506528968255096811, trigger=click)
2026-04-21T17:49:40.722412Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1506528968255096811, trigger=click)
2026-04-21T17:49:44.790415Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1506528968255096811, trigger=visual_change)
2026-04-21T17:49:44.983133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1506528968255096811, trigger=visual_change)
2026-04-21T17:51:50.315220Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)
2026-04-21T17:51:53.337571Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for mon...
|
NULL
|
|
68471
|
1552
|
0
|
2026-04-22T06:15:22.092533+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-22/1776 /Users/lukas/.screenpipe/data/data/2026-04-22/1776838522092_m1.jpg...
|
iTerm2
|
screenpipe"
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
2026-04-21T16:39:00.685917Z INFO screenpipe_engin 2026-04-21T16:39:00.685917Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3077590213613135779, trigger=click)
2026-04-21T16:39:09.669053Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6113312556119042207, trigger=click)
2026-04-21T16:39:28.954550Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=869328293033429183, trigger=click)
2026-04-21T16:39:29.084826Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=869328293033429183, trigger=click)
2026-04-21T16:39:31.752392Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4079194444055345358, trigger=click)
2026-04-21T16:39:31.941130Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4079194444055345358, trigger=click)
2026-04-21T16:39:37.082813Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=50 elapsed=2.555752875s
2026-04-21T16:39:37.082914Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 50 eligible frames
2026-04-21T16:39:39.896800Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.4MB → 0.9MB (4.9x), 24 JPEGs deleted
2026-04-21T16:39:42.979598Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.6MB → 1.9MB (2.5x), 24 JPEGs deleted
2026-04-21T16:39:54.138147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=869328293033429183, trigger=click)
2026-04-21T16:41:34.967355Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)
2026-04-21T16:41:35.133385Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)
2026-04-21T16:43:15.919099Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8254246256813675665, trigger=click)
2026-04-21T16:43:44.014066Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8254246256813675665, trigger=visual_change)
2026-04-21T16:44:45.410923Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=35 elapsed=2.419201375s
2026-04-21T16:44:45.411045Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 35 eligible frames
2026-04-21T16:44:46.383629Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.8MB → 0.3MB (9.5x), 15 JPEGs deleted
2026-04-21T16:44:47.792527Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.6MB → 0.8MB (4.3x), 18 JPEGs deleted
2026-04-21T16:49:53.308820Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=47 elapsed=5.487768917s
2026-04-21T16:49:53.309371Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 47 eligible frames
2026-04-21T16:49:54.673701Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.9MB → 0.3MB (13.1x), 21 JPEGs deleted
2026-04-21T16:49:56.314871Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.7MB → 1.2MB (4.0x), 24 JPEGs deleted
2026-04-21T16:54:59.385017Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=62 elapsed=3.057419917s
2026-04-21T16:54:59.385210Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 62 eligible frames
2026-04-21T16:55:00.998239Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.8MB → 0.5MB (10.3x), 26 JPEGs deleted
2026-04-21T16:55:03.739041Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 34 frames, 5.8MB → 2.6MB (2.2x), 34 JPEGs deleted
2026-04-21T16:55:17.768634Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)
2026-04-21T17:23:59.183039Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)
2026-04-21T17:23:59.216966Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2
2026-04-21T17:24:00.832399Z INFO screenpipe_engine::vision_manager::monitor_watcher: Monitor 2 disconnected, stopping recording
2026-04-21T17:24:00.832464Z INFO screenpipe_engine::vision_manager::manager: Stopping vision recording for monitor 2
2026-04-21T17:24:00.832336Z INFO sck_rs::stream_manager: stopped 2 persistent stream(s)
2026-04-21T17:24:04.654209Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)
2026-04-21T17:24:30.699969Z ERROR screenpipe_engine::resource_monitor: Failed to send resource usage to PostHog: error sending request for url (https://us.i.posthog.com/capture/)
2026-04-21T17:25:01.085383Z INFO screenpipe_engine::vision_manager::monitor_watcher: Monitor 2 reconnected, resuming recording
2026-04-21T17:25:01.273818Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-04-21T17:25:01.273870Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-04-21T17:25:01.273896Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-04-21T17:25:02.310236Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)
2026-04-21T17:25:02.808234Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=66228, dur=365ms
2026-04-21T17:25:04.889075Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:07.887565Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:10.918390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:14.039034Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:17.160521Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:26.096276Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:29.061270Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:32.067380Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:35.263701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:41.164753Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:25:44.239172Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:25:47.149320Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:25:50.242915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:25:53.308794Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:25:56.218138Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:25:59.144297Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:26:05.965946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:08.584110Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:11.350189Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:14.339609Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:17.398251Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:20.782119Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:23.385506Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:26.427626Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:29.573661Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:32.450744Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:38.464132Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:41.456915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:44.496278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:47.541313Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:50.596256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:53.597171Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:56.764522Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:59.751576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:02.719391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:08.829090Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:11.800601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:14.811724Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:17.855339Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:26.878741Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:29.933020Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:32.947216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:36.041239Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:38.993657Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:42.039373Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:45.172399Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:48.081804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:51.142939Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:54.169253Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:00.341347Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:03.322832Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:06.631198Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:09.537232Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:12.406113Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:15.381764Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:15.806839Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=44 elapsed=5.777403s
2026-04-21T17:28:15.806951Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 44 eligible frames
2026-04-21T17:28:17.108106Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.9MB → 0.3MB (13.1x), 21 JPEGs deleted
2026-04-21T17:28:18.370832Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.6MB → 0.5MB (7.8x), 21 JPEGs deleted
2026-04-21T17:28:18.461408Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:22.068097Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:24.604711Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:27.608060Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:33.774822Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:36.697278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:39.729251Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:42.728755Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:45.748204Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:48.768910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:51.814752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:54.970698Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:57.869874Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:00.913837Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:07.461529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:10.043928Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:13.182411Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:16.080133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:19.108570Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:22.322033Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:25.172666Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:28.398354Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:31.249083Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:34.289745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:40.303310Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:43.308015Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:46.360649Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:49.356069Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:52.450205Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:55.422975Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:58.446390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:01.491253Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:04.500380Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:16.830925Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:19.856895Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:23.100486Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:25.938910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:28.953603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:32.061536Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:35.030958Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:38.162895Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:41.148165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:44.019513Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:50.259576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:53.148070Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:56.309979Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:59.185610Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:02.278235Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:05.287341Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:08.409426Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:11.489977Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:14.319338Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:17.348153Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:23.351025Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:26.427529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:29.337254Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:32.386165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:35.653387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:38.430216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:41.428909Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:44.432459Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:47.448603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:50.432780Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:56.535727Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:59.590792Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:32:02.621444Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:32:05.627964Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:32:08.710139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:32:11.765247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:32:14.787638Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:32:17.876480Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)
2026-04-21T17:32:20.977937Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)
2026-04-21T17:32:29.888970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8116870867026519513, trigger=click)
2026-04-21T17:32:33.123648Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)
2026-04-21T17:33:03.355082Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)
2026-04-21T17:33:05.517897Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=click)
2026-04-21T17:33:06.399783Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)
2026-04-21T17:33:09.478894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)
2026-04-21T17:33:19.151217Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
2026-04-21T17:33:21.431006Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6379516332769645744, trigger=visual_change)
2026-04-21T17:33:33.494463Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7500553589467718193, trigger=visual_change)
2026-04-21T17:34:00.725974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2275300387038012183, trigger=click)
2026-04-21T17:34:07.214867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2063499064757931498, trigger=visual_change)
2026-04-21T17:34:31.480257Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=visual_change)
2026-04-21T17:34:34.482370Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=visual_change)
2026-04-21T17:35:53.801549Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7652433743467416760, trigger=click)
2026-04-21T17:35:53.954311Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7652433743467416760, trigger=click)
2026-04-21T17:35:54.740695Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7652433743467416760, trigger=click)
2026-04-21T17:36:06.295752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5335392039126841536, trigger=visual_change)
2026-04-21T17:36:28.893337Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5927780310531960690, trigger=visual_change)
2026-04-21T17:38:15.647110Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)
2026-04-21T17:38:17.801901Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)
2026-04-21T17:38:17.962831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)
2026-04-21T17:38:22.819710Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7137414965816212018, trigger=click)
2026-04-21T17:38:22.917176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=click)
2026-04-21T17:38:23.042830Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=28 elapsed=3.882772625s
2026-04-21T17:38:23.042920Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames
2026-04-21T17:38:24.717251Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 2.8MB → 0.4MB (6.3x), 18 JPEGs deleted
2026-04-21T17:38:26.727027Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.1MB → 0.2MB (5.7x), 10 JPEGs deleted
2026-04-21T17:38:35.971287Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=click)
2026-04-21T17:38:36.106246Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7137414965816212018, trigger=click)
2026-04-21T17:38:37.368009Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=visual_change)
2026-04-21T17:38:43.431620Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8741356672789266752, trigger=visual_change)
2026-04-21T17:38:49.319886Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5149767057649118192, trigger=click)
2026-04-21T17:38:49.477325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5149767057649118192, trigger=click)
2026-04-21T17:38:51.019231Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5149767057649118192, trigger=visual_change)
2026-04-21T17:39:04.249890Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7355944135161080033, trigger=click)
2026-04-21T17:39:23.256256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4983811095206295613, trigger=click)
2026-04-21T17:39:23.385820Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4983811095206295613, trigger=click)
2026-04-21T17:39:24.367407Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4983811095206295613, trigger=visual_change)
2026-04-21T17:39:24.895784Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4983811095206295613, trigger=click)
2026-04-21T17:39:46.438272Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=372069959735326508, trigger=visual_change)
2026-04-21T17:39:49.101085Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4964238948655865655, trigger=visual_change)
2026-04-21T17:39:58.083750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)
2026-04-21T17:40:01.375315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)
2026-04-21T17:40:04.195859Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)
2026-04-21T17:40:12.117004Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2989278587618621353, trigger=click)
2026-04-21T17:40:12.244666Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2989278587618621353, trigger=click)
2026-04-21T17:40:13.925024Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2989278587618621353, trigger=visual_change)
2026-04-21T17:40:23.294147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=visual_change)
2026-04-21T17:40:55.989498Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3182674559678505325, trigger=click)
2026-04-21T17:40:58.413325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3182674559678505325, trigger=visual_change)
2026-04-21T17:41:23.101094Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5616874458658671741, trigger=visual_change)
2026-04-21T17:41:29.504783Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2744778324521007391, trigger=visual_change)
2026-04-21T17:42:13.830352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6664909184667365933, trigger=click)
2026-04-21T17:42:13.905614Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=click)
2026-04-21T17:42:14.689622Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6664909184667365933, trigger=click)
2026-04-21T17:43:13.738786Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5563100798252317961, trigger=visual_change)
2026-04-21T17:43:31.769731Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=40 elapsed=4.870364084s
2026-04-21T17:43:31.770321Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames
2026-04-21T17:43:32.514133Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.1MB → 0.1MB (8.9x), 11 JPEGs deleted
2026-04-21T17:43:34.391762Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 3.0MB → 0.5MB (5.9x), 27 JPEGs deleted
2026-04-21T17:44:19.021163Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-263228306577803226, trigger=click)
2026-04-21T17:44:32.036390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8360298266192684601, trigger=click)
2026-04-21T17:44:33.859332Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8360298266192684601, trigger=visual_change)
2026-04-21T17:44:42.936361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=visual_change)
2026-04-21T17:44:46.420662Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=visual_change)
2026-04-21T17:46:17.725934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7286082578618580481, trigger=click)
2026-04-21T17:46:18.733766Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=click)
2026-04-21T17:46:19.506484Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7286082578618580481, trigger=click)
2026-04-21T17:46:20.729229Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=click)
2026-04-21T17:46:27.956655Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8942982652250876029, trigger=click)
2026-04-21T17:46:29.490950Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8942982652250876029, trigger=click)
2026-04-21T17:46:45.634752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5761541209609855314, trigger=click)
2026-04-21T17:46:45.971315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5761541209609855314, trigger=click)
2026-04-21T17:46:50.988867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5607564885929685542, trigger=click)
2026-04-21T17:46:51.601750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5607564885929685542, trigger=click)
2026-04-21T17:46:56.353647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4497988824039212795, trigger=click)
2026-04-21T17:47:24.716661Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4864885406063659925, trigger=visual_change)
2026-04-21T17:47:29.793942Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:30.097043Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)
2026-04-21T17:47:30.960214Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:32.707746Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)
2026-04-21T17:47:36.181007Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:36.362574Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:37.093511Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:41.720206Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)
2026-04-21T17:47:44.706704Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)
2026-04-21T17:47:48.602580Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:48.776278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:52.582982Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5658848090639979218, trigger=click)
2026-04-21T17:47:57.282103Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8902771592702756196, trigger=click)
2026-04-21T17:48:06.880071Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8902771592702756196, trigger=click)
2026-04-21T17:48:07.656377Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8902771592702756196, trigger=click)
2026-04-21T17:48:23.785117Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:48:24.032602Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:48:26.587906Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:48:32.180582Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)
2026-04-21T17:48:34.022831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:48:34.363583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:48:39.363585Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=83 elapsed=4.983598708s
2026-04-21T17:48:39.363733Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 83 eligible frames
2026-04-21T17:48:41.479158Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 3.3MB → 0.2MB (17.7x), 31 JPEGs deleted
2026-04-21T17:48:44.682560Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 50 frames, 6.5MB → 2.0MB (3.3x), 50 JPEGs deleted
2026-04-21T17:48:53.828851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)
2026-04-21T17:48:56.563636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)
2026-04-21T17:48:59.291654Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:48:59.467275Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:00.295226Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:00.453357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=visual_change)
2026-04-21T17:49:13.301518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)
2026-04-21T17:49:16.454207Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)
2026-04-21T17:49:16.837288Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:18.900202Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:19.229376Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:20.418502Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:20.706966Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:21.269855Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:22.896443Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:23.115745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:29.927553Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1234240076182081719, trigger=click)
2026-04-21T17:49:40.567042Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1506528968255096811, trigger=click)
2026-04-21T17:49:40.722412Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1506528968255096811, trigger=click)
2026-04-21T17:49:44.790415Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1506528968255096811, trigger=visual_change)
2026-04-21T17:49:44.983133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-15...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"2026-04-21T16:39:00.685917Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3077590213613135779, trigger=click)\n2026-04-21T16:39:09.669053Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6113312556119042207, trigger=click)\n2026-04-21T16:39:28.954550Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=869328293033429183, trigger=click)\n2026-04-21T16:39:29.084826Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=869328293033429183, trigger=click)\n2026-04-21T16:39:31.752392Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4079194444055345358, trigger=click)\n2026-04-21T16:39:31.941130Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4079194444055345358, trigger=click)\n2026-04-21T16:39:37.082813Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=50 elapsed=2.555752875s\n2026-04-21T16:39:37.082914Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 50 eligible frames\n2026-04-21T16:39:39.896800Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.4MB → 0.9MB (4.9x), 24 JPEGs deleted\n2026-04-21T16:39:42.979598Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.6MB → 1.9MB (2.5x), 24 JPEGs deleted\n2026-04-21T16:39:54.138147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=869328293033429183, trigger=click)\n2026-04-21T16:41:34.967355Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:41:35.133385Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:43:15.919099Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8254246256813675665, trigger=click)\n2026-04-21T16:43:44.014066Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8254246256813675665, trigger=visual_change)\n2026-04-21T16:44:45.410923Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=35 elapsed=2.419201375s\n2026-04-21T16:44:45.411045Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 35 eligible frames\n2026-04-21T16:44:46.383629Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.8MB → 0.3MB (9.5x), 15 JPEGs deleted\n2026-04-21T16:44:47.792527Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.6MB → 0.8MB (4.3x), 18 JPEGs deleted\n2026-04-21T16:49:53.308820Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=47 elapsed=5.487768917s\n2026-04-21T16:49:53.309371Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 47 eligible frames\n2026-04-21T16:49:54.673701Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.9MB → 0.3MB (13.1x), 21 JPEGs deleted\n2026-04-21T16:49:56.314871Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.7MB → 1.2MB (4.0x), 24 JPEGs deleted\n2026-04-21T16:54:59.385017Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=62 elapsed=3.057419917s\n2026-04-21T16:54:59.385210Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 62 eligible frames\n2026-04-21T16:55:00.998239Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.8MB → 0.5MB (10.3x), 26 JPEGs deleted\n2026-04-21T16:55:03.739041Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 34 frames, 5.8MB → 2.6MB (2.2x), 34 JPEGs deleted\n2026-04-21T16:55:17.768634Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)\n2026-04-21T17:23:59.183039Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)\n2026-04-21T17:23:59.216966Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2\n2026-04-21T17:24:00.832399Z INFO screenpipe_engine::vision_manager::monitor_watcher: Monitor 2 disconnected, stopping recording\n2026-04-21T17:24:00.832464Z INFO screenpipe_engine::vision_manager::manager: Stopping vision recording for monitor 2\n2026-04-21T17:24:00.832336Z INFO sck_rs::stream_manager: stopped 2 persistent stream(s)\n2026-04-21T17:24:04.654209Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-21T17:24:30.699969Z ERROR screenpipe_engine::resource_monitor: Failed to send resource usage to PostHog: error sending request for url (https://us.i.posthog.com/capture/)\n2026-04-21T17:25:01.085383Z INFO screenpipe_engine::vision_manager::monitor_watcher: Monitor 2 reconnected, resuming recording\n2026-04-21T17:25:01.273818Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-21T17:25:01.273870Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-21T17:25:01.273896Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-21T17:25:02.310236Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-21T17:25:02.808234Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=66228, dur=365ms\n2026-04-21T17:25:04.889075Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:07.887565Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:10.918390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:14.039034Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:17.160521Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:26.096276Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:29.061270Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:32.067380Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:35.263701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:41.164753Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:44.239172Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:47.149320Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:50.242915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:53.308794Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:56.218138Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:59.144297Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:26:05.965946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:08.584110Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:11.350189Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:14.339609Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:17.398251Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:20.782119Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:23.385506Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:26.427626Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:29.573661Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:32.450744Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:38.464132Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:41.456915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:44.496278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:47.541313Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:50.596256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:53.597171Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:56.764522Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:59.751576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:02.719391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:08.829090Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:11.800601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:14.811724Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:17.855339Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:26.878741Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:29.933020Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:32.947216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:36.041239Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:38.993657Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:42.039373Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:45.172399Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:48.081804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:51.142939Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:54.169253Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:00.341347Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:03.322832Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:06.631198Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:09.537232Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:12.406113Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:15.381764Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:15.806839Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=44 elapsed=5.777403s\n2026-04-21T17:28:15.806951Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 44 eligible frames\n2026-04-21T17:28:17.108106Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.9MB → 0.3MB (13.1x), 21 JPEGs deleted\n2026-04-21T17:28:18.370832Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.6MB → 0.5MB (7.8x), 21 JPEGs deleted\n2026-04-21T17:28:18.461408Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:22.068097Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:24.604711Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:27.608060Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:33.774822Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:36.697278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:39.729251Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:42.728755Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:45.748204Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:48.768910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:51.814752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:54.970698Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:57.869874Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:00.913837Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:07.461529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:10.043928Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:13.182411Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:16.080133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:19.108570Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:22.322033Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:25.172666Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:28.398354Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:31.249083Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:34.289745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:40.303310Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:43.308015Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:46.360649Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:49.356069Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:52.450205Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:55.422975Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:58.446390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:01.491253Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:04.500380Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:16.830925Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:19.856895Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:23.100486Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:25.938910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:28.953603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:32.061536Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:35.030958Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:38.162895Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:41.148165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:44.019513Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:50.259576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:53.148070Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:56.309979Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:59.185610Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:02.278235Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:05.287341Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:08.409426Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:11.489977Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:14.319338Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:17.348153Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:23.351025Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:26.427529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:29.337254Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:32.386165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:35.653387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:38.430216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:41.428909Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:44.432459Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:47.448603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:50.432780Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:56.535727Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:59.590792Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:02.621444Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:05.627964Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:08.710139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:11.765247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:14.787638Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:17.876480Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)\n2026-04-21T17:32:20.977937Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)\n2026-04-21T17:32:29.888970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8116870867026519513, trigger=click)\n2026-04-21T17:32:33.123648Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)\n2026-04-21T17:33:03.355082Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)\n2026-04-21T17:33:05.517897Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=click)\n2026-04-21T17:33:06.399783Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)\n2026-04-21T17:33:09.478894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)\n2026-04-21T17:33:19.151217Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-21T17:33:21.431006Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6379516332769645744, trigger=visual_change)\n2026-04-21T17:33:33.494463Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7500553589467718193, trigger=visual_change)\n2026-04-21T17:34:00.725974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2275300387038012183, trigger=click)\n2026-04-21T17:34:07.214867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2063499064757931498, trigger=visual_change)\n2026-04-21T17:34:31.480257Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=visual_change)\n2026-04-21T17:34:34.482370Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=visual_change)\n2026-04-21T17:35:53.801549Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7652433743467416760, trigger=click)\n2026-04-21T17:35:53.954311Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7652433743467416760, trigger=click)\n2026-04-21T17:35:54.740695Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7652433743467416760, trigger=click)\n2026-04-21T17:36:06.295752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5335392039126841536, trigger=visual_change)\n2026-04-21T17:36:28.893337Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5927780310531960690, trigger=visual_change)\n2026-04-21T17:38:15.647110Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)\n2026-04-21T17:38:17.801901Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)\n2026-04-21T17:38:17.962831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)\n2026-04-21T17:38:22.819710Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7137414965816212018, trigger=click)\n2026-04-21T17:38:22.917176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=click)\n2026-04-21T17:38:23.042830Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=28 elapsed=3.882772625s\n2026-04-21T17:38:23.042920Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames\n2026-04-21T17:38:24.717251Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 2.8MB → 0.4MB (6.3x), 18 JPEGs deleted\n2026-04-21T17:38:26.727027Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.1MB → 0.2MB (5.7x), 10 JPEGs deleted\n2026-04-21T17:38:35.971287Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=click)\n2026-04-21T17:38:36.106246Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7137414965816212018, trigger=click)\n2026-04-21T17:38:37.368009Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=visual_change)\n2026-04-21T17:38:43.431620Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8741356672789266752, trigger=visual_change)\n2026-04-21T17:38:49.319886Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5149767057649118192, trigger=click)\n2026-04-21T17:38:49.477325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5149767057649118192, trigger=click)\n2026-04-21T17:38:51.019231Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5149767057649118192, trigger=visual_change)\n2026-04-21T17:39:04.249890Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7355944135161080033, trigger=click)\n2026-04-21T17:39:23.256256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4983811095206295613, trigger=click)\n2026-04-21T17:39:23.385820Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4983811095206295613, trigger=click)\n2026-04-21T17:39:24.367407Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4983811095206295613, trigger=visual_change)\n2026-04-21T17:39:24.895784Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4983811095206295613, trigger=click)\n2026-04-21T17:39:46.438272Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=372069959735326508, trigger=visual_change)\n2026-04-21T17:39:49.101085Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4964238948655865655, trigger=visual_change)\n2026-04-21T17:39:58.083750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)\n2026-04-21T17:40:01.375315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)\n2026-04-21T17:40:04.195859Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)\n2026-04-21T17:40:12.117004Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2989278587618621353, trigger=click)\n2026-04-21T17:40:12.244666Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2989278587618621353, trigger=click)\n2026-04-21T17:40:13.925024Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2989278587618621353, trigger=visual_change)\n2026-04-21T17:40:23.294147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=visual_change)\n2026-04-21T17:40:55.989498Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3182674559678505325, trigger=click)\n2026-04-21T17:40:58.413325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3182674559678505325, trigger=visual_change)\n2026-04-21T17:41:23.101094Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5616874458658671741, trigger=visual_change)\n2026-04-21T17:41:29.504783Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2744778324521007391, trigger=visual_change)\n2026-04-21T17:42:13.830352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6664909184667365933, trigger=click)\n2026-04-21T17:42:13.905614Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=click)\n2026-04-21T17:42:14.689622Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6664909184667365933, trigger=click)\n2026-04-21T17:43:13.738786Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5563100798252317961, trigger=visual_change)\n2026-04-21T17:43:31.769731Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=40 elapsed=4.870364084s\n2026-04-21T17:43:31.770321Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames\n2026-04-21T17:43:32.514133Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.1MB → 0.1MB (8.9x), 11 JPEGs deleted\n2026-04-21T17:43:34.391762Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 3.0MB → 0.5MB (5.9x), 27 JPEGs deleted\n2026-04-21T17:44:19.021163Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-263228306577803226, trigger=click)\n2026-04-21T17:44:32.036390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8360298266192684601, trigger=click)\n2026-04-21T17:44:33.859332Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8360298266192684601, trigger=visual_change)\n2026-04-21T17:44:42.936361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=visual_change)\n2026-04-21T17:44:46.420662Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=visual_change)\n2026-04-21T17:46:17.725934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7286082578618580481, trigger=click)\n2026-04-21T17:46:18.733766Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=click)\n2026-04-21T17:46:19.506484Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7286082578618580481, trigger=click)\n2026-04-21T17:46:20.729229Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=click)\n2026-04-21T17:46:27.956655Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8942982652250876029, trigger=click)\n2026-04-21T17:46:29.490950Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8942982652250876029, trigger=click)\n2026-04-21T17:46:45.634752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5761541209609855314, trigger=click)\n2026-04-21T17:46:45.971315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5761541209609855314, trigger=click)\n2026-04-21T17:46:50.988867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5607564885929685542, trigger=click)\n2026-04-21T17:46:51.601750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5607564885929685542, trigger=click)\n2026-04-21T17:46:56.353647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4497988824039212795, trigger=click)\n2026-04-21T17:47:24.716661Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4864885406063659925, trigger=visual_change)\n2026-04-21T17:47:29.793942Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:30.097043Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)\n2026-04-21T17:47:30.960214Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:32.707746Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)\n2026-04-21T17:47:36.181007Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:36.362574Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:37.093511Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:41.720206Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)\n2026-04-21T17:47:44.706704Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)\n2026-04-21T17:47:48.602580Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:48.776278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:52.582982Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5658848090639979218, trigger=click)\n2026-04-21T17:47:57.282103Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8902771592702756196, trigger=click)\n2026-04-21T17:48:06.880071Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8902771592702756196, trigger=click)\n2026-04-21T17:48:07.656377Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8902771592702756196, trigger=click)\n2026-04-21T17:48:23.785117Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:24.032602Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:26.587906Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:32.180582Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:48:34.022831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:34.363583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:39.363585Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=83 elapsed=4.983598708s\n2026-04-21T17:48:39.363733Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 83 eligible frames\n2026-04-21T17:48:41.479158Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 3.3MB → 0.2MB (17.7x), 31 JPEGs deleted\n2026-04-21T17:48:44.682560Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 50 frames, 6.5MB → 2.0MB (3.3x), 50 JPEGs deleted\n2026-04-21T17:48:53.828851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:48:56.563636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:48:59.291654Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:59.467275Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:00.295226Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:00.453357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:49:13.301518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:49:16.454207Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:49:16.837288Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:18.900202Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:19.229376Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:20.418502Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:20.706966Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:21.269855Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:22.896443Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:23.115745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:29.927553Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1234240076182081719, trigger=click)\n2026-04-21T17:49:40.567042Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1506528968255096811, trigger=click)\n2026-04-21T17:49:40.722412Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1506528968255096811, trigger=click)\n2026-04-21T17:49:44.790415Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1506528968255096811, trigger=visual_change)\n2026-04-21T17:49:44.983133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1506528968255096811, trigger=visual_change)\n2026-04-21T17:51:50.315220Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)\n2026-04-21T17:51:53.337571Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)\n2026-04-21T17:51:59.473328Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)\n2026-04-21T17:52:02.455277Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)\n2026-04-21T17:52:05.862297Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:52:07.729450Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:52:16.901254Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:52:29.702852Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:52:36.533775Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:39.599515Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:45.700237Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:48.638819Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:54.704399Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:57.751791Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:53:10.186965Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:53:46.867091Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=116 elapsed=2.178958s\n2026-04-21T17:53:46.867199Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 116 eligible frames\n2026-04-21T17:53:49.254310Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:53:50.410056Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 56 frames, 12.3MB → 3.7MB (3.3x), 56 JPEGs deleted\n2026-04-21T17:53:51.388237Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:53:53.983042Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 58 frames, 9.0MB → 2.6MB (3.5x), 58 JPEGs deleted\n2026-04-21T17:53:56.223709Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:25.250317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:54:25.727105Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:54:32.633019Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:33.984547Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:54:35.401305Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:35.511290Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:38.494935Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:38.630637Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:41.245537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:54:45.441966Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:54:50.148639Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:50.313941Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:51.769427Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:51.915582Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:58.755543Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:55:01.758776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:55:25.745659Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3428322026263856254, trigger=click)\n2026-04-21T17:55:27.298490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3428322026263856254, trigger=visual_change)\n2026-04-21T17:55:33.297808Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3428322026263856254, trigger=visual_change)\n2026-04-21T17:55:48.491529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7233070170495400552, trigger=visual_change)\n2026-04-21T17:55:49.809101Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7233070170495400552, trigger=visual_change)\n2026-04-21T17:55:54.025243Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7233070170495400552, trigger=click)\n2026-04-21T17:55:54.165626Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7233070170495400552, trigger=click)\n2026-04-21T17:55:58.086411Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1463712168180952345, trigger=visual_change)\n2026-04-21T17:56:04.943502Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7233070170495400552, trigger=visual_change)\n2026-04-21T17:57:22.021701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:23.588692Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:30.517012Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:31.818301Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:31.972732Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:40.727074Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:42.330179Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:42.494853Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:45.528669Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:46.132479Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:46.358876Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:58:36.946109Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6074307134448385817, trigger=visual_change)\n2026-04-21T17:58:57.225929Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=117 elapsed=3.2365965s\n2026-04-21T17:58:57.226687Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 117 eligible frames\n2026-04-21T17:59:01.078632Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 58 frames, 12.8MB → 4.3MB (3.0x), 58 JPEGs deleted\n2026-04-21T17:59:04.938676Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 57 frames, 10.8MB → 4.0MB (2.7x), 57 JPEGs deleted\n2026-04-21T18:00:27.589643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9170086261988994041, trigger=click)\n2026-04-21T18:00:28.469646Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9170086261988994041, trigger=visual_change)\n2026-04-21T18:00:37.318027Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=9170086261988994041, trigger=click)\n2026-04-21T18:00:42.194585Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=9170086261988994041, trigger=click)\n2026-04-21T18:00:42.367049Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9170086261988994041, trigger=click)\n2026-04-21T18:01:07.200973Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:08.642294Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:08.873831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=visual_change)\n2026-04-21T18:01:09.931490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:10.189484Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:11.594292Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=visual_change)\n2026-04-21T18:01:12.844254Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:13.095866Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:49.712611Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5610420548393517496, trigger=click)\n2026-04-21T18:01:49.878502Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5610420548393517496, trigger=click)\n2026-04-21T18:01:54.385999Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4075180225844497251, trigger=click)\n2026-04-21T18:02:03.320721Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:04.589973Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:06.402101Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:08.459207Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:17.915785Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:20.289378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:53.363091Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:59.854804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6485088808083200508, trigger=visual_change)\n2026-04-21T18:03:23.692602Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2923142241079919801, trigger=visual_change)\n2026-04-21T18:03:38.383745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:03:38.666324Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:03:40.611795Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:03:46.691879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:03:49.696169Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:03:58.796193Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:10.455866Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=65 elapsed=5.507644708s\n2026-04-21T18:04:10.456994Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 65 eligible frames\n2026-04-21T18:04:10.784720Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:12.979583Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 8.1MB → 3.1MB (2.6x), 36 JPEGs deleted\n2026-04-21T18:04:13.808201Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:15.311040Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 5.7MB → 2.1MB (2.7x), 27 JPEGs deleted\n2026-04-21T18:04:22.870405Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:25.858949Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:47.178867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:47.409147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:48.621959Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:48.823996Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:49.613197Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:49.840589Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:54.113636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:54.333250Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:56.158603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:56.345340Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:24.653256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2923142241079919801, trigger=visual_change)\n2026-04-21T18:05:27.506644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2923142241079919801, trigger=visual_change)\n2026-04-21T18:05:52.127185Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:52.385537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:54.464579Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:54.740600Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:06:01.884193Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:06:04.917243Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:06:15.788550Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:06:16.090123Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:06:17.179267Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:07:04.992532Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:08.003078Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:17.121489Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:17.302355Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:27.025619Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:29.771279Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:31.137970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:36.086848Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:36.306717Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:37.369851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:37.634865Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:38.805129Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:39.104738Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:40.060624Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:08:30.262801Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:08:45.022177Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8543293535466770858, trigger=click)\n2026-04-21T18:09:22.083704Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=74 elapsed=6.715953125s\n2026-04-21T18:09:22.084245Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 74 eligible frames\n2026-04-21T18:09:29.000281Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 43 frames, 9.6MB → 4.0MB (2.4x), 43 JPEGs deleted\n2026-04-21T18:09:33.280652Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 5.8MB → 1.9MB (3.1x), 29 JPEGs deleted\n2026-04-21T18:10:45.149443Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:11:39.313378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=745086096190842156, trigger=visual_change)\n2026-04-21T18:11:42.305757Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=745086096190842156, trigger=click)\n2026-04-21T18:11:46.031853Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=745086096190842156, trigger=click)\n2026-04-21T18:11:46.095029Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=745086096190842156, trigger=click)\n2026-04-21T18:14:41.494244Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=68 elapsed=8.195880125s\n2026-04-21T18:14:41.495608Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 68 eligible frames\n2026-04-21T18:14:48.613051Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 8.2MB → 3.4MB (2.5x), 36 JPEGs deleted\n2026-04-21T18:14:55.232583Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 5.5MB → 2.6MB (2.1x), 30 JPEGs deleted\n2026-04-21T18:19:19.967211Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2899189334056575250, trigger=click)\n2026-04-21T18:19:20.363463Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2899189334056575250, trigger=click)\n2026-04-21T18:19:59.298075Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=53 elapsed=4.000910792s\n2026-04-21T18:19:59.298190Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 53 eligible frames\n2026-04-21T18:20:02.044649Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 5.1MB → 3.5MB (1.5x), 26 JPEGs deleted\n2026-04-21T18:20:04.900441Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.7MB → 2.4MB (1.9x), 25 JPEGs deleted\n2026-04-21T18:20:23.742659Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:27.660528Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:34.896769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:35.220946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:40.886719Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:44.353070Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:47.046701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:48.003863Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:22:59.673927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2006451494811625283, trigger=click)\n2026-04-21T18:23:02.374154Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2006451494811625283, trigger=visual_change)\n2026-04-21T18:24:55.480969Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:24:55.713808Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:25:06.770660Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=745086096190842156, trigger=click)\n2026-04-21T18:25:10.431473Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=69 elapsed=5.123936292s\n2026-04-21T18:25:10.432665Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 69 eligible frames\n2026-04-21T18:25:12.020960Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.7MB → 0.4MB (10.8x), 24 JPEGs deleted\n2026-04-21T18:25:16.809118Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 43 frames, 7.5MB → 3.7MB (2.0x), 43 JPEGs deleted\n2026-04-21T18:27:20.032159Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-868697608726996264, trigger=click)\n2026-04-21T18:27:27.209581Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5262134208844209929, trigger=click)\n2026-04-21T18:30:23.556529Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=60 elapsed=6.732438875s\n2026-04-21T18:30:23.556849Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 60 eligible frames\n2026-04-21T18:30:25.836587Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 5.3MB → 0.4MB (12.5x), 27 JPEGs deleted\n2026-04-21T18:30:29.251794Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 5.4MB → 2.7MB (2.0x), 31 JPEGs deleted\n2026-04-21T18:34:42.383568Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1898158487632236470, trigger=click)\n2026-04-21T18:35:29.435858Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 84 eligible frames\n2026-04-21T18:35:31.507303Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 35 frames, 6.8MB → 0.3MB (21.3x), 35 JPEGs deleted\n2026-04-21T18:35:34.821718Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 47 frames, 8.8MB → 3.6MB (2.4x), 47 JPEGs deleted\n2026-04-21T18:37:57.032414Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3231955623713121874, trigger=click)\n2026-04-21T18:40:36.969380Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=205 elapsed=2.13815675s\n2026-04-21T18:40:36.969491Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 205 eligible frames\n2026-04-21T18:40:42.234686Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 90 frames, 17.5MB → 0.4MB (49.4x), 90 JPEGs deleted\n2026-04-21T18:40:48.296945Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 99 frames, 14.9MB → 5.7MB (2.6x), 99 JPEGs deleted\n2026-04-21T18:40:49.626073Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 1.8MB → 0.7MB (2.8x), 14 JPEGs deleted\n2026-04-21T18:41:16.858046Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5262134208844209929, trigger=click)\n2026-04-21T18:41:18.719527Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5262134208844209929, trigger=click)\n2026-04-21T18:41:20.650032Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6762752836329409782, trigger=click)\n2026-04-21T18:42:40.957654Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7949512313665335161, trigger=visual_change)\n2026-04-21T18:42:42.714242Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7949512313665335161, trigger=click)\n2026-04-21T18:44:54.833923Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7610506607449357182, trigger=click)\n2026-04-21T18:44:55.013934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7610506607449357182, trigger=click)\n2026-04-21T18:45:54.320505Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=145 elapsed=4.6846185s\n2026-04-21T18:45:54.321215Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 145 eligible frames\n2026-04-21T18:45:58.288822Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 64 frames, 12.5MB → 0.5MB (23.2x), 64 JPEGs deleted\n2026-04-21T18:46:02.956701Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 78 frames, 11.5MB → 3.3MB (3.5x), 78 JPEGs deleted\n2026-04-21T18:48:10.510139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4242937607805845066, trigger=click)\n2026-04-21T18:48:37.207446Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5152173808593872338, trigger=visual_change)\n2026-04-21T18:49:27.537635Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5244088376274895156, trigger=click)\n2026-04-21T18:49:33.724367Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5262134208844209929, trigger=click)\n2026-04-21T18:49:44.747739Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8298107678328947062, trigger=click)\n2026-04-21T18:50:45.073176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:50:45.427101Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:50:48.592273Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:50:49.492676Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:51:01.193858Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:51:05.888682Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=50 elapsed=2.917680375s\n2026-04-21T18:51:05.889014Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 50 eligible frames\n2026-04-21T18:51:06.016628Z WARN sqlx::query: summary=\"PRAGMA wal_checkpoint(TRUNCATE)\" db.statement=\"\" rows_affected=0 rows_returned=1 elapsed=2.157649083s\n2026-04-21T18:51:06.079565Z WARN sqlx::query: summary=\"BEGIN IMMEDIATE\" db.statement=\"\" rows_affected=1 rows_returned=0 elapsed=1.385088167s\n2026-04-21T18:51:07.829374Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 3.9MB → 0.4MB (11.0x), 20 JPEGs deleted\n2026-04-21T18:51:09.736739Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 5.0MB → 1.8MB (2.7x), 28 JPEGs deleted\n2026-04-21T18:51:22.360027Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2872311122120998867, trigger=click)\n2026-04-21T18:51:22.556670Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2872311122120998867, trigger=click)\n2026-04-21T18:51:38.819030Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7947558874471225541, trigger=click)\n2026-04-21T18:51:57.414061Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:51:59.012068Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:51:59.285931Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:01.767745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:02.028355Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:05.460776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=visual_change)\n2026-04-21T18:52:07.087479Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:07.314492Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:10.214922Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:10.537340Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:13.867159Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:14.152331Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:20.367281Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:26.127826Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1650348556715134220, trigger=click)\n2026-04-21T18:52:37.517700Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=visual_change)\n2026-04-21T18:52:42.329057Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:52:42.556779Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:52:44.386173Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:52:44.700511Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:52:45.210674Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:53:17.193415Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6757993062848436258, trigger=visual_change)\n2026-04-21T18:53:30.834059Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-228480120308125164, trigger=click)\n2026-04-21T18:53:38.030882Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7225077546439863627, trigger=click)\n2026-04-21T18:53:56.421537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6437320026671683644, trigger=click)\n2026-04-21T18:54:11.726528Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1667437155962702753, trigger=visual_change)\n2026-04-21T18:54:12.117525Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1667437155962702753, trigger=click)\n2026-04-21T18:54:18.659686Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:54:19.077258Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:54:29.973760Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:56:07.789768Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6757993062848436258, trigger=click)\n2026-04-21T18:56:08.791400Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6757993062848436258, trigger=click)\n2026-04-21T18:56:14.153615Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=80 elapsed=4.402661042s\n2026-04-21T18:56:14.153722Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 80 eligible frames\n2026-04-21T18:56:16.685912Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 6.2MB → 0.7MB (8.9x), 32 JPEGs deleted\n2026-04-21T18:56:21.263739Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 46 frames, 8.2MB → 2.8MB (2.9x), 46 JPEGs deleted\n2026-04-21T18:56:25.279306Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7906564822731502105, trigger=click)\n2026-04-21T18:56:33.734840Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8817586097865472869, trigger=click)\n2026-04-21T18:56:33.980908Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8817586097865472869, trigger=click)\n2026-04-21T18:56:35.972959Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8817586097865472869, trigger=click)\n2026-04-21T18:56:40.545963Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8587160525579598601, trigger=click)\n2026-04-21T18:56:41.913814Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8587160525579598601, trigger=visual_change)\n2026-04-21T18:56:45.516942Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1910160977377320534, trigger=click)\n2026-04-21T18:56:48.740431Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1910160977377320534, trigger=click)\n2026-04-21T18:56:50.439568Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1910160977377320534, trigger=click)\n2026-04-21T18:56:50.692218Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1910160977377320534, trigger=click)\n2026-04-21T18:57:12.321118Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:12.578681Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:24.290583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:24.543696Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:34.571768Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:36.227688Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:36.475151Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:42.338601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:42.559967Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:52.824809Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:53.145543Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:59.463043Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:59.717475Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:58:00.742137Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:58:01.061497Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:59:33.960291Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9203182216527106315, trigger=visual_change)\n2026-04-21T18:59:55.990167Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T18:59:59.103830Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=visual_change)\n2026-04-21T19:00:16.116927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:00:45.352689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:00:49.596644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:00:50.432181Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:07.992732Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:08.484066Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:10.538762Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:18.922398Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:28.361625Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=84 elapsed=6.9360265s\n2026-04-21T19:01:28.362070Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 84 eligible frames\n2026-04-21T19:01:32.723075Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 33 frames, 6.4MB → 0.3MB (19.7x), 33 JPEGs deleted\n2026-04-21T19:01:42.130490Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 7.8MB → 3.3MB (2.4x), 49 JPEGs deleted\n2026-04-21T19:02:09.991879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:12.577587Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:12.835924Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:15.635601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:18.720475Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:21.708351Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:22.061150Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:28.684303Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3995027160269120472, trigger=click)\n2026-04-21T19:02:41.434491Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:41.724904Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:43.112974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:43.410843Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:47.501924Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:47.761592Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:54.205542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:54.441326Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:56.601490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:56.921256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:03:15.988643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:03:16.236342Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:03:28.508616Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:00.462064Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:01.516168Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:01.856315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:03.246448Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:03.735029Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:09.818135Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:05:03.118616Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:03.393788Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:21.352722Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=visual_change)\n2026-04-21T19:05:43.751309Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:44.029500Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:45.626672Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:45.899754Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:48.206587Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:48.449043Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:06:22.834938Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7947558874471225541, trigger=click)\n2026-04-21T19:06:52.937779Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=114 elapsed=10.747243125s\n2026-04-21T19:06:52.938152Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 114 eligible frames\n2026-04-21T19:06:57.942457Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 45 frames, 8.8MB → 0.3MB (27.2x), 45 JPEGs deleted\n2026-04-21T19:07:05.853054Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 67 frames, 10.5MB → 5.2MB (2.0x), 67 JPEGs deleted\n2026-04-21T19:07:45.088797Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:07:48.052391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6936634780821666458, trigger=click)\n2026-04-21T19:08:59.593467Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5629560013928052473, trigger=click)\n2026-04-21T19:09:29.443711Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:42.998313Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8043719072324535154, trigger=visual_change)\n2026-04-21T19:09:50.759516Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:51.052544Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:51.892698Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:09:52.651776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:55.476431Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:55.898195Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:09:58.077337Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:10:01.103980Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:10:03.105423Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:10:03.448049Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:10:08.548130Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6051188157141408655, trigger=click)\n2026-04-21T19:12:12.330759Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=70 elapsed=6.458002417s\n2026-04-21T19:12:12.332545Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 70 eligible frames\n2026-04-21T19:12:14.243079Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 5.5MB → 0.3MB (17.2x), 28 JPEGs deleted\n2026-04-21T19:12:17.558334Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 40 frames, 7.4MB → 3.6MB (2.1x), 40 JPEGs deleted\n2026-04-21T19:16:51.045938Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1370319459641728815, trigger=click)\n2026-04-21T19:16:51.249993Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1370319459641728815, trigger=click)\n2026-04-21T19:17:21.603564Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=40 elapsed=4.036037791s\n2026-04-21T19:17:21.604357Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames\n2026-04-21T19:17:22.750174Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.5MB → 0.3MB (11.2x), 18 JPEGs deleted\n2026-04-21T19:17:24.332098Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.2MB → 1.3MB (3.2x), 20 JPEGs deleted\n2026-04-21T19:22:25.748871Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=49 elapsed=1.406664416s\n2026-04-21T19:22:25.749095Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 49 eligible frames\n2026-04-21T19:22:27.704722Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 3.7MB → 0.8MB (4.5x), 22 JPEGs deleted\n2026-04-21T19:22:29.535330Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.2MB → 1.7MB (3.0x), 25 JPEGs deleted\n2026-04-21T19:23:29.233846Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9146581369053060363, trigger=click)\n2026-04-21T19:23:31.995034Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9146581369053060363, trigger=visual_change)\n2026-04-21T19:23:37.213396Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9146581369053060363, trigger=visual_change)\n2026-04-21T19:23:40.288223Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9146581369053060363, trigger=visual_change)\n2026-04-21T19:23:44.197738Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9146581369053060363, trigger=visual_change)\n2026-04-21T19:23:45.228572Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9146581369053060363, trigger=click)\n2026-04-21T19:23:56.251033Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:24:06.580019Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=335 elapsed=1.644312167s\n2026-04-21T19:24:28.860436Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:24:32.226944Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:24:32.476075Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:03.902521Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:19.205245Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:25.098627Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:36.013866Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:37.355954Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:41.831265Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:46.247585Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:46.619106Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:48.284769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:48.534452Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:49.421920Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:49.752264Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:54.600720Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:55.072357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:26:19.446041Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:26:22.718352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:27:38.437704Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=28 elapsed=8.833634334s\n2026-04-21T19:27:38.438043Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames\n2026-04-21T19:27:39.763901Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 1.9MB → 0.3MB (7.6x), 12 JPEGs deleted\n2026-04-21T19:27:41.220664Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.1MB → 0.9MB (2.2x), 14 JPEGs deleted\n2026-04-21T19:28:22.708791Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:28:23.849452Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:28:24.119301Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:14.209016Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:16.415693Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:21.726815Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:23.890645Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:24.239058Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:29.790006Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:33.098495Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:38.065869Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:44.089028Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:47.272131Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:53.977951Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:57.274496Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:30:11.986797Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:30:13.530455Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:30:28.332451Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:30:37.204947Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:26.255340Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:26.592983Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:30.448912Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:35.747969Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:37.783849Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:38.061197Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:43.216365Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:43.885407Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:46.680745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:52.971450Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:58.468469Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:58.624833Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:03.362210Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:12.706102Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:15.172982Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:23.020508Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:23.199312Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:25.387097Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:25.764201Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:30.336940Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:30.810971Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:39.812820Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:42.409145Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:44.386326Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:48.880648Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=47 elapsed=7.499136792s\n2026-04-21T19:32:48.880949Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 47 eligible frames\n2026-04-21T19:32:51.249469Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.2MB → 0.3MB (8.9x), 14 JPEGs deleted\n2026-04-21T19:32:55.969183Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 3.8MB → 1.9MB (2.0x), 31 JPEGs deleted\n2026-04-21T19:32:59.734686Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:33:00.098925Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:33:05.951997Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:34:07.213420Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:34:09.264586Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:34:16.527425Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:34:19.513647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:34:32.889780Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1128757073350665914, trigger=click)\n2026-04-21T19:34:56.078651Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4993766851008728916, trigger=click)\n2026-04-21T19:34:56.296542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4993766851008728916, trigger=click)\n2026-04-21T19:35:02.344819Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:35:05.237721Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:35:07.518599Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:35:09.938481Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:35:10.408295Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:35:26.864482Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:35:33.001733Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:35:36.479802Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:36:20.043835Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4526067242477956280, trigger=visual_change)\n2026-04-21T19:36:47.029303Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4526067242477956280, trigger=visual_change)\n2026-04-21T19:36:57.077150Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:37:33.348160Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:37:33.742029Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:37:36.579915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:37:39.754974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:38:04.951324Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=101 elapsed=8.9666755s\n2026-04-21T19:38:04.953527Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 101 eligible frames\n2026-04-21T19:38:13.751166Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 38 frames, 8.0MB → 3.5MB (2.3x), 38 JPEGs deleted\n2026-04-21T19:38:29.817220Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 61 frames, 9.7MB → 5.2MB (1.9x), 61 JPEGs deleted\n2026-04-21T19:40:34.255930Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=342 elapsed=1.0699005s\n2026-04-21T19:42:32.961192Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:42:33.305572Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:42:40.179851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=visual_change)\n2026-04-21T19:42:41.405781Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:42:41.720845Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:43:02.251464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=visual_change)\n2026-04-21T19:43:11.622532Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:43:36.525920Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=85 elapsed=6.634896167s\n2026-04-21T19:43:36.526454Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 85 eligible frames\n2026-04-21T19:43:39.459999Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 8.0MB → 3.4MB (2.3x), 36 JPEGs deleted\n2026-04-21T19:43:43.505640Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 47 frames, 7.9MB → 3.9MB (2.0x), 47 JPEGs deleted\n2026-04-21T19:44:05.999282Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=visual_change)\n2026-04-21T19:45:08.065595Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2712812971723964739, trigger=click)\n2026-04-21T19:45:46.266141Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:48:51.569666Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=64 elapsed=8.039671791s\n2026-04-21T19:48:51.570457Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 64 eligible frames\n2026-04-21T19:48:58.738540Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 7.2MB → 2.4MB (2.9x), 32 JPEGs deleted\n2026-04-21T19:49:05.383193Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 5.9MB → 2.5MB (2.4x), 30 JPEGs deleted\n2026-04-21T19:51:14.064760Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2572721248839450970, trigger=visual_change)\n2026-04-21T19:54:08.518415Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=346 elapsed=1.026887875s\n2026-04-21T19:54:12.872902Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=61 elapsed=7.44778675s\n2026-04-21T19:54:12.873164Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 61 eligible frames\n2026-04-21T19:54:16.348511Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.6MB → 1.4MB (4.1x), 25 JPEGs deleted\n2026-04-21T19:54:24.102233Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 34 frames, 6.2MB → 3.6MB (1.7x), 34 JPEGs deleted\n2026-04-21T19:59:32.063421Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=346 elapsed=1.165878958s\n2026-04-21T19:59:32.818884Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=31 elapsed=8.661332917s\n2026-04-21T19:59:32.819629Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 31 eligible frames\n2026-04-21T19:59:35.810838Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.9MB → 0.7MB (3.9x), 16 JPEGs deleted\n2026-04-21T19:59:38.924596Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.9MB → 1.5MB (2.0x), 13 JPEGs deleted\n2026-04-21T20:01:55.709776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1382976804061127003, trigger=click)\n2026-04-21T20:04:27.572999Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7658911549706194190, trigger=click)\n2026-04-21T20:04:46.630063Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=57 elapsed=7.045125334s\n2026-04-21T20:04:46.631081Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 57 eligible frames\n2026-04-21T20:04:49.684796Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 2.5MB → 0.8MB (3.2x), 23 JPEGs deleted\n2026-04-21T20:04:56.073590Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 5.7MB → 3.1MB (1.8x), 32 JPEGs deleted\n2026-04-21T20:05:04.129844Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-446124678591544690, trigger=click)\n2026-04-21T20:05:04.425723Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-446124678591544690, trigger=click)\n2026-04-21T20:09:59.238939Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=30 elapsed=2.058497125s\n2026-04-21T20:09:59.239075Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 30 eligible frames\n2026-04-21T20:10:00.874153Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.3MB → 0.2MB (5.8x), 13 JPEGs deleted\n2026-04-21T20:10:03.326064Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 1.8MB → 0.6MB (2.8x), 15 JPEGs deleted\n2026-04-21T20:15:07.129653Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=58 elapsed=3.763973459s\n2026-04-21T20:15:07.130598Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 58 eligible frames\n2026-04-21T20:15:09.088400Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 3.7MB → 0.6MB (5.9x), 26 JPEGs deleted\n2026-04-21T20:15:10.858868Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 3.9MB → 1.0MB (3.9x), 30 JPEGs deleted\n2026-04-21T20:18:21.110736Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=354 elapsed=1.169721666s\nzsh: terminated npx screenpipe@latest record --disable-audio --ignored-windows \"Boosteroid\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-start\ndetected hardware tier: Mid\nwarning: parakeet is not supported on this platform, using whisper-tiny instead\n2026-04-22T09:15:19.880360Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store\nchecking permissions...\n screen recording: ok\n accessibility: ok\n2026-04-22T09:15:19.951248Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6\n2026-04-22T09:15:20.675958Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor\n2026-04-22T09:15:20.677447Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)\n2026-04-22T09:15:20.677800Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)\n2026-04-22T09:15:20.709542Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true\n2026-04-22T09:15:20.709596Z INFO screenpipe: meeting detector enabled — independent of transcription mode\n2026-04-22T09:15:20.709849Z INFO screenpipe: API server listening on 127.0.0.1:3030 (localhost only)\n2026-04-22T09:15:20.709774Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)\n2026-04-22T09:15:20.709806Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)\n2026-04-22T09:15:20.709863Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key\n2026-04-22T09:15:20.709908Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager\n2026-04-22T09:15:20.721517Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-22T09:15:20.725781Z INFO screenpipe_core::pipes: loaded pipe: day-recap\n2026-04-22T09:15:20.725991Z INFO screenpipe_core::pipes: loaded pipe: standup-update\n2026-04-22T09:15:20.726387Z INFO screenpipe_core::pipes: loaded pipe: ai-habits\n2026-04-22T09:15:20.726548Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown\n2026-04-22T09:15:20.726690Z INFO screenpipe_core::pipes: loaded pipe: video-export\n2026-04-22T09:15:20.727224Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary\n2026-04-22T09:15:20.727242Z INFO screenpipe_core::pipes: loaded 6 pipes from \"/Users/lukas/.screenpipe/pipes\"\n\n\n\n _ \n __________________ ___ ____ ____ (_____ ___ \n / ___/ ___/ ___/ _ \\/ _ \\/ __ \\ / __ \\/ / __ \\/ _ \\\n (__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/\n/____/\\___/_/ \\___/\\___/_/ /_/ / .___/_/ .___/\\___/ \n /_/ /_/ \n\n\n\npower AI by everything you've seen, said or heard\nopen source | runs locally | developer friendly\n\n\n┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ true │\n│ vision disabled │ false │\n│ pause on DRM content │ false │\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n│ ignored windows │ [\"Boosteroid\"] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n2026-04-22T09:15:20.728614Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n│ api auth │ enabled │\n2026-04-22T09:15:20.742172Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n│ encrypt secrets │ disabled │\n│ retention days │ 14 │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ id: 1 │\n│ │ id: 2 │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ disabled │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-22T09:15:20.742788Z INFO screenpipe: starting UI event capture\n2026-04-22T09:15:20.755824Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-22T09:15:20.769629Z INFO screenpipe_engine::ui_recorder: UI recording session started: e7729066-2ab4-4bf0-9d48-0c9790a4ee79\n2026-04-22T09:15:20.769680Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-22T09:15:20.769789Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-21 06:15:20.769785 UTC to 2026-04-22 06:15:20.769785 UTC)\n2026-04-22T09:15:20.770644Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-22T09:15:20.778181Z INFO screenpipe_engine::server: Server listening on 127.0.0.1:3030\n2026-04-22T09:15:20.789960Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-22T09:15:21.591614Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-22T09:15:21.591646Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-22T09:15:21.591751Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-22T09:15:21.919088Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-22T09:15:21.919141Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-22T09:15:21.919158Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)\n2026-04-22T09:15:21.919163Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-22T09:15:21.919167Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)\n2026-04-22T09:15:23.315305Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)","depth":4,"value":"2026-04-21T16:39:00.685917Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3077590213613135779, trigger=click)\n2026-04-21T16:39:09.669053Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6113312556119042207, trigger=click)\n2026-04-21T16:39:28.954550Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=869328293033429183, trigger=click)\n2026-04-21T16:39:29.084826Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=869328293033429183, trigger=click)\n2026-04-21T16:39:31.752392Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4079194444055345358, trigger=click)\n2026-04-21T16:39:31.941130Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4079194444055345358, trigger=click)\n2026-04-21T16:39:37.082813Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=50 elapsed=2.555752875s\n2026-04-21T16:39:37.082914Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 50 eligible frames\n2026-04-21T16:39:39.896800Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.4MB → 0.9MB (4.9x), 24 JPEGs deleted\n2026-04-21T16:39:42.979598Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.6MB → 1.9MB (2.5x), 24 JPEGs deleted\n2026-04-21T16:39:54.138147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=869328293033429183, trigger=click)\n2026-04-21T16:41:34.967355Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:41:35.133385Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:43:15.919099Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8254246256813675665, trigger=click)\n2026-04-21T16:43:44.014066Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8254246256813675665, trigger=visual_change)\n2026-04-21T16:44:45.410923Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=35 elapsed=2.419201375s\n2026-04-21T16:44:45.411045Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 35 eligible frames\n2026-04-21T16:44:46.383629Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.8MB → 0.3MB (9.5x), 15 JPEGs deleted\n2026-04-21T16:44:47.792527Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.6MB → 0.8MB (4.3x), 18 JPEGs deleted\n2026-04-21T16:49:53.308820Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=47 elapsed=5.487768917s\n2026-04-21T16:49:53.309371Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 47 eligible frames\n2026-04-21T16:49:54.673701Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.9MB → 0.3MB (13.1x), 21 JPEGs deleted\n2026-04-21T16:49:56.314871Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.7MB → 1.2MB (4.0x), 24 JPEGs deleted\n2026-04-21T16:54:59.385017Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=62 elapsed=3.057419917s\n2026-04-21T16:54:59.385210Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 62 eligible frames\n2026-04-21T16:55:00.998239Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.8MB → 0.5MB (10.3x), 26 JPEGs deleted\n2026-04-21T16:55:03.739041Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 34 frames, 5.8MB → 2.6MB (2.2x), 34 JPEGs deleted\n2026-04-21T16:55:17.768634Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)\n2026-04-21T17:23:59.183039Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)\n2026-04-21T17:23:59.216966Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2\n2026-04-21T17:24:00.832399Z INFO screenpipe_engine::vision_manager::monitor_watcher: Monitor 2 disconnected, stopping recording\n2026-04-21T17:24:00.832464Z INFO screenpipe_engine::vision_manager::manager: Stopping vision recording for monitor 2\n2026-04-21T17:24:00.832336Z INFO sck_rs::stream_manager: stopped 2 persistent stream(s)\n2026-04-21T17:24:04.654209Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-21T17:24:30.699969Z ERROR screenpipe_engine::resource_monitor: Failed to send resource usage to PostHog: error sending request for url (https://us.i.posthog.com/capture/)\n2026-04-21T17:25:01.085383Z INFO screenpipe_engine::vision_manager::monitor_watcher: Monitor 2 reconnected, resuming recording\n2026-04-21T17:25:01.273818Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-21T17:25:01.273870Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-21T17:25:01.273896Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-21T17:25:02.310236Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-21T17:25:02.808234Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=66228, dur=365ms\n2026-04-21T17:25:04.889075Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:07.887565Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:10.918390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:14.039034Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:17.160521Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:26.096276Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:29.061270Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:32.067380Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:35.263701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:41.164753Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:44.239172Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:47.149320Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:50.242915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:53.308794Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:56.218138Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:59.144297Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:26:05.965946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:08.584110Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:11.350189Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:14.339609Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:17.398251Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:20.782119Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:23.385506Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:26.427626Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:29.573661Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:32.450744Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:38.464132Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:41.456915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:44.496278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:47.541313Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:50.596256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:53.597171Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:56.764522Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:59.751576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:02.719391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:08.829090Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:11.800601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:14.811724Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:17.855339Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:26.878741Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:29.933020Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:32.947216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:36.041239Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:38.993657Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:42.039373Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:45.172399Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:48.081804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:51.142939Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:54.169253Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:00.341347Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:03.322832Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:06.631198Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:09.537232Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:12.406113Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:15.381764Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:15.806839Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=44 elapsed=5.777403s\n2026-04-21T17:28:15.806951Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 44 eligible frames\n2026-04-21T17:28:17.108106Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.9MB → 0.3MB (13.1x), 21 JPEGs deleted\n2026-04-21T17:28:18.370832Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.6MB → 0.5MB (7.8x), 21 JPEGs deleted\n2026-04-21T17:28:18.461408Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:22.068097Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:24.604711Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:27.608060Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:33.774822Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:36.697278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:39.729251Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:42.728755Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:45.748204Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:48.768910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:51.814752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:54.970698Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:57.869874Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:00.913837Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:07.461529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:10.043928Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:13.182411Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:16.080133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:19.108570Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:22.322033Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:25.172666Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:28.398354Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:31.249083Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:34.289745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:40.303310Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:43.308015Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:46.360649Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:49.356069Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:52.450205Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:55.422975Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:58.446390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:01.491253Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:04.500380Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:16.830925Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:19.856895Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:23.100486Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:25.938910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:28.953603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:32.061536Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:35.030958Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:38.162895Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:41.148165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:44.019513Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:50.259576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:53.148070Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:56.309979Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:59.185610Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:02.278235Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:05.287341Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:08.409426Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:11.489977Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:14.319338Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:17.348153Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:23.351025Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:26.427529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:29.337254Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:32.386165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:35.653387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:38.430216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:41.428909Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:44.432459Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:47.448603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:50.432780Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:56.535727Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:59.590792Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:02.621444Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:05.627964Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:08.710139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:11.765247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:14.787638Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:17.876480Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)\n2026-04-21T17:32:20.977937Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)\n2026-04-21T17:32:29.888970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8116870867026519513, trigger=click)\n2026-04-21T17:32:33.123648Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)\n2026-04-21T17:33:03.355082Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)\n2026-04-21T17:33:05.517897Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=click)\n2026-04-21T17:33:06.399783Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)\n2026-04-21T17:33:09.478894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)\n2026-04-21T17:33:19.151217Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-21T17:33:21.431006Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6379516332769645744, trigger=visual_change)\n2026-04-21T17:33:33.494463Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7500553589467718193, trigger=visual_change)\n2026-04-21T17:34:00.725974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2275300387038012183, trigger=click)\n2026-04-21T17:34:07.214867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2063499064757931498, trigger=visual_change)\n2026-04-21T17:34:31.480257Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=visual_change)\n2026-04-21T17:34:34.482370Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=visual_change)\n2026-04-21T17:35:53.801549Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7652433743467416760, trigger=click)\n2026-04-21T17:35:53.954311Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7652433743467416760, trigger=click)\n2026-04-21T17:35:54.740695Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7652433743467416760, trigger=click)\n2026-04-21T17:36:06.295752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5335392039126841536, trigger=visual_change)\n2026-04-21T17:36:28.893337Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5927780310531960690, trigger=visual_change)\n2026-04-21T17:38:15.647110Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)\n2026-04-21T17:38:17.801901Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)\n2026-04-21T17:38:17.962831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)\n2026-04-21T17:38:22.819710Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7137414965816212018, trigger=click)\n2026-04-21T17:38:22.917176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=click)\n2026-04-21T17:38:23.042830Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=28 elapsed=3.882772625s\n2026-04-21T17:38:23.042920Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames\n2026-04-21T17:38:24.717251Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 2.8MB → 0.4MB (6.3x), 18 JPEGs deleted\n2026-04-21T17:38:26.727027Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.1MB → 0.2MB (5.7x), 10 JPEGs deleted\n2026-04-21T17:38:35.971287Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=click)\n2026-04-21T17:38:36.106246Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7137414965816212018, trigger=click)\n2026-04-21T17:38:37.368009Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=visual_change)\n2026-04-21T17:38:43.431620Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8741356672789266752, trigger=visual_change)\n2026-04-21T17:38:49.319886Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5149767057649118192, trigger=click)\n2026-04-21T17:38:49.477325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5149767057649118192, trigger=click)\n2026-04-21T17:38:51.019231Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5149767057649118192, trigger=visual_change)\n2026-04-21T17:39:04.249890Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7355944135161080033, trigger=click)\n2026-04-21T17:39:23.256256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4983811095206295613, trigger=click)\n2026-04-21T17:39:23.385820Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4983811095206295613, trigger=click)\n2026-04-21T17:39:24.367407Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4983811095206295613, trigger=visual_change)\n2026-04-21T17:39:24.895784Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4983811095206295613, trigger=click)\n2026-04-21T17:39:46.438272Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=372069959735326508, trigger=visual_change)\n2026-04-21T17:39:49.101085Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4964238948655865655, trigger=visual_change)\n2026-04-21T17:39:58.083750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)\n2026-04-21T17:40:01.375315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)\n2026-04-21T17:40:04.195859Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)\n2026-04-21T17:40:12.117004Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2989278587618621353, trigger=click)\n2026-04-21T17:40:12.244666Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2989278587618621353, trigger=click)\n2026-04-21T17:40:13.925024Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2989278587618621353, trigger=visual_change)\n2026-04-21T17:40:23.294147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=visual_change)\n2026-04-21T17:40:55.989498Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3182674559678505325, trigger=click)\n2026-04-21T17:40:58.413325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3182674559678505325, trigger=visual_change)\n2026-04-21T17:41:23.101094Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5616874458658671741, trigger=visual_change)\n2026-04-21T17:41:29.504783Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2744778324521007391, trigger=visual_change)\n2026-04-21T17:42:13.830352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6664909184667365933, trigger=click)\n2026-04-21T17:42:13.905614Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=click)\n2026-04-21T17:42:14.689622Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6664909184667365933, trigger=click)\n2026-04-21T17:43:13.738786Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5563100798252317961, trigger=visual_change)\n2026-04-21T17:43:31.769731Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=40 elapsed=4.870364084s\n2026-04-21T17:43:31.770321Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames\n2026-04-21T17:43:32.514133Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.1MB → 0.1MB (8.9x), 11 JPEGs deleted\n2026-04-21T17:43:34.391762Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 3.0MB → 0.5MB (5.9x), 27 JPEGs deleted\n2026-04-21T17:44:19.021163Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-263228306577803226, trigger=click)\n2026-04-21T17:44:32.036390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8360298266192684601, trigger=click)\n2026-04-21T17:44:33.859332Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8360298266192684601, trigger=visual_change)\n2026-04-21T17:44:42.936361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=visual_change)\n2026-04-21T17:44:46.420662Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=visual_change)\n2026-04-21T17:46:17.725934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7286082578618580481, trigger=click)\n2026-04-21T17:46:18.733766Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=click)\n2026-04-21T17:46:19.506484Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7286082578618580481, trigger=click)\n2026-04-21T17:46:20.729229Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=click)\n2026-04-21T17:46:27.956655Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8942982652250876029, trigger=click)\n2026-04-21T17:46:29.490950Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8942982652250876029, trigger=click)\n2026-04-21T17:46:45.634752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5761541209609855314, trigger=click)\n2026-04-21T17:46:45.971315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5761541209609855314, trigger=click)\n2026-04-21T17:46:50.988867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5607564885929685542, trigger=click)\n2026-04-21T17:46:51.601750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5607564885929685542, trigger=click)\n2026-04-21T17:46:56.353647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4497988824039212795, trigger=click)\n2026-04-21T17:47:24.716661Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4864885406063659925, trigger=visual_change)\n2026-04-21T17:47:29.793942Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:30.097043Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)\n2026-04-21T17:47:30.960214Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:32.707746Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)\n2026-04-21T17:47:36.181007Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:36.362574Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:37.093511Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:41.720206Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)\n2026-04-21T17:47:44.706704Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)\n2026-04-21T17:47:48.602580Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:48.776278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:52.582982Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5658848090639979218, trigger=click)\n2026-04-21T17:47:57.282103Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8902771592702756196, trigger=click)\n2026-04-21T17:48:06.880071Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8902771592702756196, trigger=click)\n2026-04-21T17:48:07.656377Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8902771592702756196, trigger=click)\n2026-04-21T17:48:23.785117Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:24.032602Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:26.587906Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:32.180582Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:48:34.022831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:34.363583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:39.363585Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=83 elapsed=4.983598708s\n2026-04-21T17:48:39.363733Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 83 eligible frames\n2026-04-21T17:48:41.479158Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 3.3MB → 0.2MB (17.7x), 31 JPEGs deleted\n2026-04-21T17:48:44.682560Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 50 frames, 6.5MB → 2.0MB (3.3x), 50 JPEGs deleted\n2026-04-21T17:48:53.828851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:48:56.563636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:48:59.291654Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:59.467275Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:00.295226Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:00.453357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:49:13.301518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:49:16.454207Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:49:16.837288Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:18.900202Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:19.229376Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:20.418502Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:20.706966Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:21.269855Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:22.896443Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:23.115745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:29.927553Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1234240076182081719, trigger=click)\n2026-04-21T17:49:40.567042Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1506528968255096811, trigger=click)\n2026-04-21T17:49:40.722412Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1506528968255096811, trigger=click)\n2026-04-21T17:49:44.790415Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1506528968255096811, trigger=visual_change)\n2026-04-21T17:49:44.983133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1506528968255096811, trigger=visual_change)\n2026-04-21T17:51:50.315220Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)\n2026-04-21T17:51:53.337571Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)\n2026-04-21T17:51:59.473328Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)\n2026-04-21T17:52:02.455277Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)\n2026-04-21T17:52:05.862297Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:52:07.729450Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:52:16.901254Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:52:29.702852Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:52:36.533775Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:39.599515Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:45.700237Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:48.638819Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:54.704399Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:57.751791Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:53:10.186965Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:53:46.867091Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=116 elapsed=2.178958s\n2026-04-21T17:53:46.867199Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 116 eligible frames\n2026-04-21T17:53:49.254310Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:53:50.410056Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 56 frames, 12.3MB → 3.7MB (3.3x), 56 JPEGs deleted\n2026-04-21T17:53:51.388237Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:53:53.983042Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 58 frames, 9.0MB → 2.6MB (3.5x), 58 JPEGs deleted\n2026-04-21T17:53:56.223709Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:25.250317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:54:25.727105Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:54:32.633019Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:33.984547Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:54:35.401305Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:35.511290Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:38.494935Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:38.630637Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:41.245537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:54:45.441966Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:54:50.148639Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:50.313941Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:51.769427Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:51.915582Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:58.755543Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:55:01.758776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:55:25.745659Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3428322026263856254, trigger=click)\n2026-04-21T17:55:27.298490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3428322026263856254, trigger=visual_change)\n2026-04-21T17:55:33.297808Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3428322026263856254, trigger=visual_change)\n2026-04-21T17:55:48.491529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7233070170495400552, trigger=visual_change)\n2026-04-21T17:55:49.809101Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7233070170495400552, trigger=visual_change)\n2026-04-21T17:55:54.025243Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7233070170495400552, trigger=click)\n2026-04-21T17:55:54.165626Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7233070170495400552, trigger=click)\n2026-04-21T17:55:58.086411Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1463712168180952345, trigger=visual_change)\n2026-04-21T17:56:04.943502Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7233070170495400552, trigger=visual_change)\n2026-04-21T17:57:22.021701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:23.588692Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:30.517012Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:31.818301Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:31.972732Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:40.727074Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:42.330179Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:42.494853Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:45.528669Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:46.132479Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:46.358876Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:58:36.946109Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6074307134448385817, trigger=visual_change)\n2026-04-21T17:58:57.225929Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=117 elapsed=3.2365965s\n2026-04-21T17:58:57.226687Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 117 eligible frames\n2026-04-21T17:59:01.078632Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 58 frames, 12.8MB → 4.3MB (3.0x), 58 JPEGs deleted\n2026-04-21T17:59:04.938676Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 57 frames, 10.8MB → 4.0MB (2.7x), 57 JPEGs deleted\n2026-04-21T18:00:27.589643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9170086261988994041, trigger=click)\n2026-04-21T18:00:28.469646Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9170086261988994041, trigger=visual_change)\n2026-04-21T18:00:37.318027Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=9170086261988994041, trigger=click)\n2026-04-21T18:00:42.194585Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=9170086261988994041, trigger=click)\n2026-04-21T18:00:42.367049Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9170086261988994041, trigger=click)\n2026-04-21T18:01:07.200973Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:08.642294Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:08.873831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=visual_change)\n2026-04-21T18:01:09.931490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:10.189484Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:11.594292Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=visual_change)\n2026-04-21T18:01:12.844254Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:13.095866Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:49.712611Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5610420548393517496, trigger=click)\n2026-04-21T18:01:49.878502Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5610420548393517496, trigger=click)\n2026-04-21T18:01:54.385999Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4075180225844497251, trigger=click)\n2026-04-21T18:02:03.320721Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:04.589973Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:06.402101Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:08.459207Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:17.915785Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:20.289378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:53.363091Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:59.854804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6485088808083200508, trigger=visual_change)\n2026-04-21T18:03:23.692602Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2923142241079919801, trigger=visual_change)\n2026-04-21T18:03:38.383745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:03:38.666324Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:03:40.611795Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:03:46.691879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:03:49.696169Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:03:58.796193Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:10.455866Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=65 elapsed=5.507644708s\n2026-04-21T18:04:10.456994Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 65 eligible frames\n2026-04-21T18:04:10.784720Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:12.979583Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 8.1MB → 3.1MB (2.6x), 36 JPEGs deleted\n2026-04-21T18:04:13.808201Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:15.311040Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 5.7MB → 2.1MB (2.7x), 27 JPEGs deleted\n2026-04-21T18:04:22.870405Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:25.858949Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:47.178867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:47.409147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:48.621959Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:48.823996Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:49.613197Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:49.840589Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:54.113636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:54.333250Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:56.158603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:56.345340Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:24.653256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2923142241079919801, trigger=visual_change)\n2026-04-21T18:05:27.506644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2923142241079919801, trigger=visual_change)\n2026-04-21T18:05:52.127185Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:52.385537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:54.464579Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:54.740600Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:06:01.884193Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:06:04.917243Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:06:15.788550Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:06:16.090123Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:06:17.179267Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:07:04.992532Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:08.003078Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:17.121489Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:17.302355Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:27.025619Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:29.771279Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:31.137970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:36.086848Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:36.306717Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:37.369851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:37.634865Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:38.805129Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:39.104738Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:40.060624Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:08:30.262801Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:08:45.022177Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8543293535466770858, trigger=click)\n2026-04-21T18:09:22.083704Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=74 elapsed=6.715953125s\n2026-04-21T18:09:22.084245Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 74 eligible frames\n2026-04-21T18:09:29.000281Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 43 frames, 9.6MB → 4.0MB (2.4x), 43 JPEGs deleted\n2026-04-21T18:09:33.280652Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 5.8MB → 1.9MB (3.1x), 29 JPEGs deleted\n2026-04-21T18:10:45.149443Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:11:39.313378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=745086096190842156, trigger=visual_change)\n2026-04-21T18:11:42.305757Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=745086096190842156, trigger=click)\n2026-04-21T18:11:46.031853Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=745086096190842156, trigger=click)\n2026-04-21T18:11:46.095029Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=745086096190842156, trigger=click)\n2026-04-21T18:14:41.494244Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=68 elapsed=8.195880125s\n2026-04-21T18:14:41.495608Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 68 eligible frames\n2026-04-21T18:14:48.613051Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 8.2MB → 3.4MB (2.5x), 36 JPEGs deleted\n2026-04-21T18:14:55.232583Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 5.5MB → 2.6MB (2.1x), 30 JPEGs deleted\n2026-04-21T18:19:19.967211Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2899189334056575250, trigger=click)\n2026-04-21T18:19:20.363463Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2899189334056575250, trigger=click)\n2026-04-21T18:19:59.298075Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=53 elapsed=4.000910792s\n2026-04-21T18:19:59.298190Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 53 eligible frames\n2026-04-21T18:20:02.044649Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 5.1MB → 3.5MB (1.5x), 26 JPEGs deleted\n2026-04-21T18:20:04.900441Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.7MB → 2.4MB (1.9x), 25 JPEGs deleted\n2026-04-21T18:20:23.742659Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:27.660528Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:34.896769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:35.220946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:40.886719Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:44.353070Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:47.046701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:20:48.003863Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:22:59.673927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2006451494811625283, trigger=click)\n2026-04-21T18:23:02.374154Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2006451494811625283, trigger=visual_change)\n2026-04-21T18:24:55.480969Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:24:55.713808Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T18:25:06.770660Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=745086096190842156, trigger=click)\n2026-04-21T18:25:10.431473Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=69 elapsed=5.123936292s\n2026-04-21T18:25:10.432665Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 69 eligible frames\n2026-04-21T18:25:12.020960Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.7MB → 0.4MB (10.8x), 24 JPEGs deleted\n2026-04-21T18:25:16.809118Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 43 frames, 7.5MB → 3.7MB (2.0x), 43 JPEGs deleted\n2026-04-21T18:27:20.032159Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-868697608726996264, trigger=click)\n2026-04-21T18:27:27.209581Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5262134208844209929, trigger=click)\n2026-04-21T18:30:23.556529Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=60 elapsed=6.732438875s\n2026-04-21T18:30:23.556849Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 60 eligible frames\n2026-04-21T18:30:25.836587Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 5.3MB → 0.4MB (12.5x), 27 JPEGs deleted\n2026-04-21T18:30:29.251794Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 5.4MB → 2.7MB (2.0x), 31 JPEGs deleted\n2026-04-21T18:34:42.383568Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1898158487632236470, trigger=click)\n2026-04-21T18:35:29.435858Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 84 eligible frames\n2026-04-21T18:35:31.507303Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 35 frames, 6.8MB → 0.3MB (21.3x), 35 JPEGs deleted\n2026-04-21T18:35:34.821718Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 47 frames, 8.8MB → 3.6MB (2.4x), 47 JPEGs deleted\n2026-04-21T18:37:57.032414Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3231955623713121874, trigger=click)\n2026-04-21T18:40:36.969380Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=205 elapsed=2.13815675s\n2026-04-21T18:40:36.969491Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 205 eligible frames\n2026-04-21T18:40:42.234686Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 90 frames, 17.5MB → 0.4MB (49.4x), 90 JPEGs deleted\n2026-04-21T18:40:48.296945Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 99 frames, 14.9MB → 5.7MB (2.6x), 99 JPEGs deleted\n2026-04-21T18:40:49.626073Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 1.8MB → 0.7MB (2.8x), 14 JPEGs deleted\n2026-04-21T18:41:16.858046Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5262134208844209929, trigger=click)\n2026-04-21T18:41:18.719527Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5262134208844209929, trigger=click)\n2026-04-21T18:41:20.650032Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6762752836329409782, trigger=click)\n2026-04-21T18:42:40.957654Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7949512313665335161, trigger=visual_change)\n2026-04-21T18:42:42.714242Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7949512313665335161, trigger=click)\n2026-04-21T18:44:54.833923Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7610506607449357182, trigger=click)\n2026-04-21T18:44:55.013934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7610506607449357182, trigger=click)\n2026-04-21T18:45:54.320505Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=145 elapsed=4.6846185s\n2026-04-21T18:45:54.321215Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 145 eligible frames\n2026-04-21T18:45:58.288822Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 64 frames, 12.5MB → 0.5MB (23.2x), 64 JPEGs deleted\n2026-04-21T18:46:02.956701Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 78 frames, 11.5MB → 3.3MB (3.5x), 78 JPEGs deleted\n2026-04-21T18:48:10.510139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4242937607805845066, trigger=click)\n2026-04-21T18:48:37.207446Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5152173808593872338, trigger=visual_change)\n2026-04-21T18:49:27.537635Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5244088376274895156, trigger=click)\n2026-04-21T18:49:33.724367Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5262134208844209929, trigger=click)\n2026-04-21T18:49:44.747739Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8298107678328947062, trigger=click)\n2026-04-21T18:50:45.073176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:50:45.427101Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:50:48.592273Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:50:49.492676Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:51:01.193858Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2709523957012057259, trigger=click)\n2026-04-21T18:51:05.888682Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=50 elapsed=2.917680375s\n2026-04-21T18:51:05.889014Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 50 eligible frames\n2026-04-21T18:51:06.016628Z WARN sqlx::query: summary=\"PRAGMA wal_checkpoint(TRUNCATE)\" db.statement=\"\" rows_affected=0 rows_returned=1 elapsed=2.157649083s\n2026-04-21T18:51:06.079565Z WARN sqlx::query: summary=\"BEGIN IMMEDIATE\" db.statement=\"\" rows_affected=1 rows_returned=0 elapsed=1.385088167s\n2026-04-21T18:51:07.829374Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 3.9MB → 0.4MB (11.0x), 20 JPEGs deleted\n2026-04-21T18:51:09.736739Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 5.0MB → 1.8MB (2.7x), 28 JPEGs deleted\n2026-04-21T18:51:22.360027Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2872311122120998867, trigger=click)\n2026-04-21T18:51:22.556670Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2872311122120998867, trigger=click)\n2026-04-21T18:51:38.819030Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7947558874471225541, trigger=click)\n2026-04-21T18:51:57.414061Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:51:59.012068Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:51:59.285931Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:01.767745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:02.028355Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:05.460776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=visual_change)\n2026-04-21T18:52:07.087479Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:07.314492Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:10.214922Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:10.537340Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:13.867159Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:14.152331Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:20.367281Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6109303526921516150, trigger=click)\n2026-04-21T18:52:26.127826Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1650348556715134220, trigger=click)\n2026-04-21T18:52:37.517700Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=visual_change)\n2026-04-21T18:52:42.329057Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:52:42.556779Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:52:44.386173Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:52:44.700511Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:52:45.210674Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:53:17.193415Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6757993062848436258, trigger=visual_change)\n2026-04-21T18:53:30.834059Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-228480120308125164, trigger=click)\n2026-04-21T18:53:38.030882Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7225077546439863627, trigger=click)\n2026-04-21T18:53:56.421537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6437320026671683644, trigger=click)\n2026-04-21T18:54:11.726528Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1667437155962702753, trigger=visual_change)\n2026-04-21T18:54:12.117525Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1667437155962702753, trigger=click)\n2026-04-21T18:54:18.659686Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:54:19.077258Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:54:29.973760Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5138765120179784856, trigger=click)\n2026-04-21T18:56:07.789768Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6757993062848436258, trigger=click)\n2026-04-21T18:56:08.791400Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6757993062848436258, trigger=click)\n2026-04-21T18:56:14.153615Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=80 elapsed=4.402661042s\n2026-04-21T18:56:14.153722Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 80 eligible frames\n2026-04-21T18:56:16.685912Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 6.2MB → 0.7MB (8.9x), 32 JPEGs deleted\n2026-04-21T18:56:21.263739Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 46 frames, 8.2MB → 2.8MB (2.9x), 46 JPEGs deleted\n2026-04-21T18:56:25.279306Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7906564822731502105, trigger=click)\n2026-04-21T18:56:33.734840Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8817586097865472869, trigger=click)\n2026-04-21T18:56:33.980908Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8817586097865472869, trigger=click)\n2026-04-21T18:56:35.972959Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8817586097865472869, trigger=click)\n2026-04-21T18:56:40.545963Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8587160525579598601, trigger=click)\n2026-04-21T18:56:41.913814Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8587160525579598601, trigger=visual_change)\n2026-04-21T18:56:45.516942Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1910160977377320534, trigger=click)\n2026-04-21T18:56:48.740431Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1910160977377320534, trigger=click)\n2026-04-21T18:56:50.439568Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1910160977377320534, trigger=click)\n2026-04-21T18:56:50.692218Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1910160977377320534, trigger=click)\n2026-04-21T18:57:12.321118Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:12.578681Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:24.290583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:24.543696Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:34.571768Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:36.227688Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:36.475151Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:42.338601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:42.559967Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:52.824809Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:53.145543Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:59.463043Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:57:59.717475Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:58:00.742137Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:58:01.061497Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2149022384044090806, trigger=click)\n2026-04-21T18:59:33.960291Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9203182216527106315, trigger=visual_change)\n2026-04-21T18:59:55.990167Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T18:59:59.103830Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=visual_change)\n2026-04-21T19:00:16.116927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:00:45.352689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:00:49.596644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:00:50.432181Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:07.992732Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:08.484066Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:10.538762Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:18.922398Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-78492768815758549, trigger=click)\n2026-04-21T19:01:28.361625Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=84 elapsed=6.9360265s\n2026-04-21T19:01:28.362070Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 84 eligible frames\n2026-04-21T19:01:32.723075Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 33 frames, 6.4MB → 0.3MB (19.7x), 33 JPEGs deleted\n2026-04-21T19:01:42.130490Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 7.8MB → 3.3MB (2.4x), 49 JPEGs deleted\n2026-04-21T19:02:09.991879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:12.577587Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:12.835924Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:15.635601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:18.720475Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:21.708351Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:22.061150Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5439226101732026402, trigger=click)\n2026-04-21T19:02:28.684303Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3995027160269120472, trigger=click)\n2026-04-21T19:02:41.434491Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:41.724904Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:43.112974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:43.410843Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:47.501924Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:47.761592Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:54.205542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:54.441326Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:56.601490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:02:56.921256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:03:15.988643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:03:16.236342Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:03:28.508616Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:00.462064Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:01.516168Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:01.856315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:03.246448Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:03.735029Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:04:09.818135Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-958508655227916417, trigger=click)\n2026-04-21T19:05:03.118616Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:03.393788Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:21.352722Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=visual_change)\n2026-04-21T19:05:43.751309Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:44.029500Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:45.626672Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:45.899754Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:48.206587Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:05:48.449043Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260714323069432116, trigger=click)\n2026-04-21T19:06:22.834938Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7947558874471225541, trigger=click)\n2026-04-21T19:06:52.937779Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=114 elapsed=10.747243125s\n2026-04-21T19:06:52.938152Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 114 eligible frames\n2026-04-21T19:06:57.942457Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 45 frames, 8.8MB → 0.3MB (27.2x), 45 JPEGs deleted\n2026-04-21T19:07:05.853054Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 67 frames, 10.5MB → 5.2MB (2.0x), 67 JPEGs deleted\n2026-04-21T19:07:45.088797Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:07:48.052391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6936634780821666458, trigger=click)\n2026-04-21T19:08:59.593467Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5629560013928052473, trigger=click)\n2026-04-21T19:09:29.443711Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:42.998313Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8043719072324535154, trigger=visual_change)\n2026-04-21T19:09:50.759516Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:51.052544Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:51.892698Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:09:52.651776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:55.476431Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:09:55.898195Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:09:58.077337Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:10:01.103980Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:10:03.105423Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:10:03.448049Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:10:08.548130Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6051188157141408655, trigger=click)\n2026-04-21T19:12:12.330759Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=70 elapsed=6.458002417s\n2026-04-21T19:12:12.332545Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 70 eligible frames\n2026-04-21T19:12:14.243079Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 5.5MB → 0.3MB (17.2x), 28 JPEGs deleted\n2026-04-21T19:12:17.558334Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 40 frames, 7.4MB → 3.6MB (2.1x), 40 JPEGs deleted\n2026-04-21T19:16:51.045938Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1370319459641728815, trigger=click)\n2026-04-21T19:16:51.249993Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1370319459641728815, trigger=click)\n2026-04-21T19:17:21.603564Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=40 elapsed=4.036037791s\n2026-04-21T19:17:21.604357Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames\n2026-04-21T19:17:22.750174Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.5MB → 0.3MB (11.2x), 18 JPEGs deleted\n2026-04-21T19:17:24.332098Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.2MB → 1.3MB (3.2x), 20 JPEGs deleted\n2026-04-21T19:22:25.748871Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=49 elapsed=1.406664416s\n2026-04-21T19:22:25.749095Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 49 eligible frames\n2026-04-21T19:22:27.704722Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 3.7MB → 0.8MB (4.5x), 22 JPEGs deleted\n2026-04-21T19:22:29.535330Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.2MB → 1.7MB (3.0x), 25 JPEGs deleted\n2026-04-21T19:23:29.233846Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9146581369053060363, trigger=click)\n2026-04-21T19:23:31.995034Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9146581369053060363, trigger=visual_change)\n2026-04-21T19:23:37.213396Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9146581369053060363, trigger=visual_change)\n2026-04-21T19:23:40.288223Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9146581369053060363, trigger=visual_change)\n2026-04-21T19:23:44.197738Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9146581369053060363, trigger=visual_change)\n2026-04-21T19:23:45.228572Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9146581369053060363, trigger=click)\n2026-04-21T19:23:56.251033Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:24:06.580019Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=335 elapsed=1.644312167s\n2026-04-21T19:24:28.860436Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:24:32.226944Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:24:32.476075Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:03.902521Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:19.205245Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:25.098627Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:36.013866Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:37.355954Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:41.831265Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:25:46.247585Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:46.619106Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:48.284769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:48.534452Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:49.421920Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:49.752264Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:54.600720Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:25:55.072357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:26:19.446041Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:26:22.718352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:27:38.437704Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=28 elapsed=8.833634334s\n2026-04-21T19:27:38.438043Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames\n2026-04-21T19:27:39.763901Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 1.9MB → 0.3MB (7.6x), 12 JPEGs deleted\n2026-04-21T19:27:41.220664Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.1MB → 0.9MB (2.2x), 14 JPEGs deleted\n2026-04-21T19:28:22.708791Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:28:23.849452Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:28:24.119301Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:14.209016Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:16.415693Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:21.726815Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:23.890645Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:24.239058Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:29:29.790006Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:33.098495Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:38.065869Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:44.089028Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:47.272131Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:53.977951Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:29:57.274496Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:30:11.986797Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:30:13.530455Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:30:28.332451Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:30:37.204947Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:26.255340Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:26.592983Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:30.448912Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:35.747969Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:37.783849Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:38.061197Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:43.216365Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:43.885407Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:46.680745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:52.971450Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:31:58.468469Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:31:58.624833Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:03.362210Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:12.706102Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:15.172982Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:23.020508Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:23.199312Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:25.387097Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:25.764201Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:30.336940Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:30.810971Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:39.812820Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:42.409145Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:32:44.386326Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:32:48.880648Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=47 elapsed=7.499136792s\n2026-04-21T19:32:48.880949Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 47 eligible frames\n2026-04-21T19:32:51.249469Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.2MB → 0.3MB (8.9x), 14 JPEGs deleted\n2026-04-21T19:32:55.969183Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 3.8MB → 1.9MB (2.0x), 31 JPEGs deleted\n2026-04-21T19:32:59.734686Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:33:00.098925Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:33:05.951997Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:34:07.213420Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:34:09.264586Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:34:16.527425Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:34:19.513647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:34:32.889780Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1128757073350665914, trigger=click)\n2026-04-21T19:34:56.078651Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4993766851008728916, trigger=click)\n2026-04-21T19:34:56.296542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4993766851008728916, trigger=click)\n2026-04-21T19:35:02.344819Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:35:05.237721Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:35:07.518599Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:35:09.938481Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:35:10.408295Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:35:26.864482Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:35:33.001733Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:35:36.479802Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:36:20.043835Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4526067242477956280, trigger=visual_change)\n2026-04-21T19:36:47.029303Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4526067242477956280, trigger=visual_change)\n2026-04-21T19:36:57.077150Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:37:33.348160Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:37:33.742029Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:37:36.579915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6522604346580499335, trigger=visual_change)\n2026-04-21T19:37:39.754974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6522604346580499335, trigger=click)\n2026-04-21T19:38:04.951324Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=101 elapsed=8.9666755s\n2026-04-21T19:38:04.953527Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 101 eligible frames\n2026-04-21T19:38:13.751166Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 38 frames, 8.0MB → 3.5MB (2.3x), 38 JPEGs deleted\n2026-04-21T19:38:29.817220Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 61 frames, 9.7MB → 5.2MB (1.9x), 61 JPEGs deleted\n2026-04-21T19:40:34.255930Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=342 elapsed=1.0699005s\n2026-04-21T19:42:32.961192Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:42:33.305572Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:42:40.179851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=visual_change)\n2026-04-21T19:42:41.405781Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:42:41.720845Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:43:02.251464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=visual_change)\n2026-04-21T19:43:11.622532Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:43:36.525920Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=85 elapsed=6.634896167s\n2026-04-21T19:43:36.526454Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 85 eligible frames\n2026-04-21T19:43:39.459999Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 8.0MB → 3.4MB (2.3x), 36 JPEGs deleted\n2026-04-21T19:43:43.505640Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 47 frames, 7.9MB → 3.9MB (2.0x), 47 JPEGs deleted\n2026-04-21T19:44:05.999282Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=visual_change)\n2026-04-21T19:45:08.065595Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2712812971723964739, trigger=click)\n2026-04-21T19:45:46.266141Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7870919634241372047, trigger=click)\n2026-04-21T19:48:51.569666Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=64 elapsed=8.039671791s\n2026-04-21T19:48:51.570457Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 64 eligible frames\n2026-04-21T19:48:58.738540Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 7.2MB → 2.4MB (2.9x), 32 JPEGs deleted\n2026-04-21T19:49:05.383193Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 5.9MB → 2.5MB (2.4x), 30 JPEGs deleted\n2026-04-21T19:51:14.064760Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2572721248839450970, trigger=visual_change)\n2026-04-21T19:54:08.518415Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=346 elapsed=1.026887875s\n2026-04-21T19:54:12.872902Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=61 elapsed=7.44778675s\n2026-04-21T19:54:12.873164Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 61 eligible frames\n2026-04-21T19:54:16.348511Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.6MB → 1.4MB (4.1x), 25 JPEGs deleted\n2026-04-21T19:54:24.102233Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 34 frames, 6.2MB → 3.6MB (1.7x), 34 JPEGs deleted\n2026-04-21T19:59:32.063421Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=346 elapsed=1.165878958s\n2026-04-21T19:59:32.818884Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=31 elapsed=8.661332917s\n2026-04-21T19:59:32.819629Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 31 eligible frames\n2026-04-21T19:59:35.810838Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.9MB → 0.7MB (3.9x), 16 JPEGs deleted\n2026-04-21T19:59:38.924596Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.9MB → 1.5MB (2.0x), 13 JPEGs deleted\n2026-04-21T20:01:55.709776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1382976804061127003, trigger=click)\n2026-04-21T20:04:27.572999Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7658911549706194190, trigger=click)\n2026-04-21T20:04:46.630063Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=57 elapsed=7.045125334s\n2026-04-21T20:04:46.631081Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 57 eligible frames\n2026-04-21T20:04:49.684796Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 2.5MB → 0.8MB (3.2x), 23 JPEGs deleted\n2026-04-21T20:04:56.073590Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 5.7MB → 3.1MB (1.8x), 32 JPEGs deleted\n2026-04-21T20:05:04.129844Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-446124678591544690, trigger=click)\n2026-04-21T20:05:04.425723Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-446124678591544690, trigger=click)\n2026-04-21T20:09:59.238939Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=30 elapsed=2.058497125s\n2026-04-21T20:09:59.239075Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 30 eligible frames\n2026-04-21T20:10:00.874153Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.3MB → 0.2MB (5.8x), 13 JPEGs deleted\n2026-04-21T20:10:03.326064Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 1.8MB → 0.6MB (2.8x), 15 JPEGs deleted\n2026-04-21T20:15:07.129653Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=58 elapsed=3.763973459s\n2026-04-21T20:15:07.130598Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 58 eligible frames\n2026-04-21T20:15:09.088400Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 3.7MB → 0.6MB (5.9x), 26 JPEGs deleted\n2026-04-21T20:15:10.858868Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 3.9MB → 1.0MB (3.9x), 30 JPEGs deleted\n2026-04-21T20:18:21.110736Z WARN sqlx::query: summary=\"SELECT DISTINCT app_name, window_name, …\" db.statement=\"\\n\\nSELECT\\n DISTINCT app_name,\\n window_name,\\n browser_url\\nFROM\\n frames\\nWHERE\\n timestamp > datetime('now', '-30 seconds')\\n AND app_name IS NOT NULL\\n AND window_name IS NOT NULL\\n\" rows_affected=0 rows_returned=354 elapsed=1.169721666s\nzsh: terminated npx screenpipe@latest record --disable-audio --ignored-windows \"Boosteroid\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-start\ndetected hardware tier: Mid\nwarning: parakeet is not supported on this platform, using whisper-tiny instead\n2026-04-22T09:15:19.880360Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store\nchecking permissions...\n screen recording: ok\n accessibility: ok\n2026-04-22T09:15:19.951248Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6\n2026-04-22T09:15:20.675958Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor\n2026-04-22T09:15:20.677447Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)\n2026-04-22T09:15:20.677800Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)\n2026-04-22T09:15:20.709542Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true\n2026-04-22T09:15:20.709596Z INFO screenpipe: meeting detector enabled — independent of transcription mode\n2026-04-22T09:15:20.709849Z INFO screenpipe: API server listening on 127.0.0.1:3030 (localhost only)\n2026-04-22T09:15:20.709774Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)\n2026-04-22T09:15:20.709806Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)\n2026-04-22T09:15:20.709863Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key\n2026-04-22T09:15:20.709908Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager\n2026-04-22T09:15:20.721517Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-22T09:15:20.725781Z INFO screenpipe_core::pipes: loaded pipe: day-recap\n2026-04-22T09:15:20.725991Z INFO screenpipe_core::pipes: loaded pipe: standup-update\n2026-04-22T09:15:20.726387Z INFO screenpipe_core::pipes: loaded pipe: ai-habits\n2026-04-22T09:15:20.726548Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown\n2026-04-22T09:15:20.726690Z INFO screenpipe_core::pipes: loaded pipe: video-export\n2026-04-22T09:15:20.727224Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary\n2026-04-22T09:15:20.727242Z INFO screenpipe_core::pipes: loaded 6 pipes from \"/Users/lukas/.screenpipe/pipes\"\n\n\n\n _ \n __________________ ___ ____ ____ (_____ ___ \n / ___/ ___/ ___/ _ \\/ _ \\/ __ \\ / __ \\/ / __ \\/ _ \\\n (__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/\n/____/\\___/_/ \\___/\\___/_/ /_/ / .___/_/ .___/\\___/ \n /_/ /_/ \n\n\n\npower AI by everything you've seen, said or heard\nopen source | runs locally | developer friendly\n\n\n┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ true │\n│ vision disabled │ false │\n│ pause on DRM content │ false │\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n│ ignored windows │ [\"Boosteroid\"] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n2026-04-22T09:15:20.728614Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n│ api auth │ enabled │\n2026-04-22T09:15:20.742172Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n│ encrypt secrets │ disabled │\n│ retention days │ 14 │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ id: 1 │\n│ │ id: 2 │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ disabled │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-22T09:15:20.742788Z INFO screenpipe: starting UI event capture\n2026-04-22T09:15:20.755824Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-22T09:15:20.769629Z INFO screenpipe_engine::ui_recorder: UI recording session started: e7729066-2ab4-4bf0-9d48-0c9790a4ee79\n2026-04-22T09:15:20.769680Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-22T09:15:20.769789Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-21 06:15:20.769785 UTC to 2026-04-22 06:15:20.769785 UTC)\n2026-04-22T09:15:20.770644Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-22T09:15:20.778181Z INFO screenpipe_engine::server: Server listening on 127.0.0.1:3030\n2026-04-22T09:15:20.789960Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-22T09:15:21.591614Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-22T09:15:21.591646Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-22T09:15:21.591751Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-22T09:15:21.919088Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-22T09:15:21.919141Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-22T09:15:21.919158Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)\n2026-04-22T09:15:21.919163Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-22T09:15:21.919167Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)\n2026-04-22T09:15:23.315305Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.12291667,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.12708333,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.24583334,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.25,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"✳ Build full day activity summary from Screenpipe (claude)","depth":2,"bounds":{"left":0.36875,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.37291667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.49166667,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.49583334,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.6145833,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.61875,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.7375,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.7416667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"ec2-user@ip-10-30-159-186:~ (-zsh)","depth":2,"bounds":{"left":0.86041665,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.8645833,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.9548611,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"screenpipe\"","depth":1,"bounds":{"left":0.47083333,"top":0.033333335,"width":0.058333334,"height":0.017777778},"role_description":"text"}]...
|
3558907359085593749
|
2646348668002215291
|
manual
|
accessibility
|
NULL
|
2026-04-21T16:39:00.685917Z INFO screenpipe_engin 2026-04-21T16:39:00.685917Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3077590213613135779, trigger=click)
2026-04-21T16:39:09.669053Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6113312556119042207, trigger=click)
2026-04-21T16:39:28.954550Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=869328293033429183, trigger=click)
2026-04-21T16:39:29.084826Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=869328293033429183, trigger=click)
2026-04-21T16:39:31.752392Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4079194444055345358, trigger=click)
2026-04-21T16:39:31.941130Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4079194444055345358, trigger=click)
2026-04-21T16:39:37.082813Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=50 elapsed=2.555752875s
2026-04-21T16:39:37.082914Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 50 eligible frames
2026-04-21T16:39:39.896800Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.4MB → 0.9MB (4.9x), 24 JPEGs deleted
2026-04-21T16:39:42.979598Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.6MB → 1.9MB (2.5x), 24 JPEGs deleted
2026-04-21T16:39:54.138147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=869328293033429183, trigger=click)
2026-04-21T16:41:34.967355Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)
2026-04-21T16:41:35.133385Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)
2026-04-21T16:43:15.919099Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8254246256813675665, trigger=click)
2026-04-21T16:43:44.014066Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8254246256813675665, trigger=visual_change)
2026-04-21T16:44:45.410923Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=35 elapsed=2.419201375s
2026-04-21T16:44:45.411045Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 35 eligible frames
2026-04-21T16:44:46.383629Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.8MB → 0.3MB (9.5x), 15 JPEGs deleted
2026-04-21T16:44:47.792527Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.6MB → 0.8MB (4.3x), 18 JPEGs deleted
2026-04-21T16:49:53.308820Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=47 elapsed=5.487768917s
2026-04-21T16:49:53.309371Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 47 eligible frames
2026-04-21T16:49:54.673701Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.9MB → 0.3MB (13.1x), 21 JPEGs deleted
2026-04-21T16:49:56.314871Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.7MB → 1.2MB (4.0x), 24 JPEGs deleted
2026-04-21T16:54:59.385017Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=62 elapsed=3.057419917s
2026-04-21T16:54:59.385210Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 62 eligible frames
2026-04-21T16:55:00.998239Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.8MB → 0.5MB (10.3x), 26 JPEGs deleted
2026-04-21T16:55:03.739041Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 34 frames, 5.8MB → 2.6MB (2.2x), 34 JPEGs deleted
2026-04-21T16:55:17.768634Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)
2026-04-21T17:23:59.183039Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)
2026-04-21T17:23:59.216966Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2
2026-04-21T17:24:00.832399Z INFO screenpipe_engine::vision_manager::monitor_watcher: Monitor 2 disconnected, stopping recording
2026-04-21T17:24:00.832464Z INFO screenpipe_engine::vision_manager::manager: Stopping vision recording for monitor 2
2026-04-21T17:24:00.832336Z INFO sck_rs::stream_manager: stopped 2 persistent stream(s)
2026-04-21T17:24:04.654209Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)
2026-04-21T17:24:30.699969Z ERROR screenpipe_engine::resource_monitor: Failed to send resource usage to PostHog: error sending request for url (https://us.i.posthog.com/capture/)
2026-04-21T17:25:01.085383Z INFO screenpipe_engine::vision_manager::monitor_watcher: Monitor 2 reconnected, resuming recording
2026-04-21T17:25:01.273818Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-04-21T17:25:01.273870Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-04-21T17:25:01.273896Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-04-21T17:25:02.310236Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)
2026-04-21T17:25:02.808234Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=66228, dur=365ms
2026-04-21T17:25:04.889075Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:07.887565Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:10.918390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:14.039034Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:17.160521Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:26.096276Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:29.061270Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:32.067380Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:35.263701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)
2026-04-21T17:25:41.164753Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:25:44.239172Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:25:47.149320Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:25:50.242915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:25:53.308794Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:25:56.218138Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:25:59.144297Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)
2026-04-21T17:26:05.965946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:08.584110Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:11.350189Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:14.339609Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:17.398251Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:20.782119Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:23.385506Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:26.427626Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:29.573661Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:32.450744Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:38.464132Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:41.456915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:44.496278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:47.541313Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:50.596256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:53.597171Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:56.764522Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:26:59.751576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:02.719391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:08.829090Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:11.800601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:14.811724Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:17.855339Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:26.878741Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:29.933020Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:32.947216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:36.041239Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:38.993657Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:42.039373Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:45.172399Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:48.081804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:51.142939Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:27:54.169253Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:00.341347Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:03.322832Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:06.631198Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:09.537232Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:12.406113Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:15.381764Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:15.806839Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=44 elapsed=5.777403s
2026-04-21T17:28:15.806951Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 44 eligible frames
2026-04-21T17:28:17.108106Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.9MB → 0.3MB (13.1x), 21 JPEGs deleted
2026-04-21T17:28:18.370832Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.6MB → 0.5MB (7.8x), 21 JPEGs deleted
2026-04-21T17:28:18.461408Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:22.068097Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:24.604711Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:27.608060Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:33.774822Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:36.697278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:39.729251Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:42.728755Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:45.748204Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:48.768910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:51.814752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:54.970698Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:28:57.869874Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:00.913837Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:07.461529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:10.043928Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:13.182411Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:16.080133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:19.108570Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:22.322033Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:25.172666Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:28.398354Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:31.249083Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:34.289745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:40.303310Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:43.308015Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:46.360649Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:49.356069Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:52.450205Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:55.422975Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:29:58.446390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:01.491253Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:04.500380Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:16.830925Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:19.856895Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:23.100486Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:25.938910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:28.953603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:32.061536Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:35.030958Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:38.162895Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:41.148165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:44.019513Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:50.259576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:53.148070Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:56.309979Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:30:59.185610Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:02.278235Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:05.287341Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:08.409426Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:11.489977Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:14.319338Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:17.348153Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:23.351025Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:26.427529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:29.337254Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:32.386165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:35.653387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:38.430216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:41.428909Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:44.432459Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:47.448603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:50.432780Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:56.535727Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:31:59.590792Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:32:02.621444Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:32:05.627964Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:32:08.710139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:32:11.765247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:32:14.787638Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)
2026-04-21T17:32:17.876480Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)
2026-04-21T17:32:20.977937Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)
2026-04-21T17:32:29.888970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8116870867026519513, trigger=click)
2026-04-21T17:32:33.123648Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)
2026-04-21T17:33:03.355082Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)
2026-04-21T17:33:05.517897Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=click)
2026-04-21T17:33:06.399783Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)
2026-04-21T17:33:09.478894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)
2026-04-21T17:33:19.151217Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
2026-04-21T17:33:21.431006Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6379516332769645744, trigger=visual_change)
2026-04-21T17:33:33.494463Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7500553589467718193, trigger=visual_change)
2026-04-21T17:34:00.725974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2275300387038012183, trigger=click)
2026-04-21T17:34:07.214867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2063499064757931498, trigger=visual_change)
2026-04-21T17:34:31.480257Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=visual_change)
2026-04-21T17:34:34.482370Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=visual_change)
2026-04-21T17:35:53.801549Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7652433743467416760, trigger=click)
2026-04-21T17:35:53.954311Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7652433743467416760, trigger=click)
2026-04-21T17:35:54.740695Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7652433743467416760, trigger=click)
2026-04-21T17:36:06.295752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5335392039126841536, trigger=visual_change)
2026-04-21T17:36:28.893337Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5927780310531960690, trigger=visual_change)
2026-04-21T17:38:15.647110Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)
2026-04-21T17:38:17.801901Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)
2026-04-21T17:38:17.962831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)
2026-04-21T17:38:22.819710Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7137414965816212018, trigger=click)
2026-04-21T17:38:22.917176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=click)
2026-04-21T17:38:23.042830Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=28 elapsed=3.882772625s
2026-04-21T17:38:23.042920Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames
2026-04-21T17:38:24.717251Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 2.8MB → 0.4MB (6.3x), 18 JPEGs deleted
2026-04-21T17:38:26.727027Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.1MB → 0.2MB (5.7x), 10 JPEGs deleted
2026-04-21T17:38:35.971287Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=click)
2026-04-21T17:38:36.106246Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7137414965816212018, trigger=click)
2026-04-21T17:38:37.368009Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=visual_change)
2026-04-21T17:38:43.431620Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8741356672789266752, trigger=visual_change)
2026-04-21T17:38:49.319886Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5149767057649118192, trigger=click)
2026-04-21T17:38:49.477325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5149767057649118192, trigger=click)
2026-04-21T17:38:51.019231Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5149767057649118192, trigger=visual_change)
2026-04-21T17:39:04.249890Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7355944135161080033, trigger=click)
2026-04-21T17:39:23.256256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4983811095206295613, trigger=click)
2026-04-21T17:39:23.385820Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4983811095206295613, trigger=click)
2026-04-21T17:39:24.367407Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4983811095206295613, trigger=visual_change)
2026-04-21T17:39:24.895784Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4983811095206295613, trigger=click)
2026-04-21T17:39:46.438272Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=372069959735326508, trigger=visual_change)
2026-04-21T17:39:49.101085Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4964238948655865655, trigger=visual_change)
2026-04-21T17:39:58.083750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)
2026-04-21T17:40:01.375315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)
2026-04-21T17:40:04.195859Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)
2026-04-21T17:40:12.117004Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2989278587618621353, trigger=click)
2026-04-21T17:40:12.244666Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2989278587618621353, trigger=click)
2026-04-21T17:40:13.925024Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2989278587618621353, trigger=visual_change)
2026-04-21T17:40:23.294147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=visual_change)
2026-04-21T17:40:55.989498Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3182674559678505325, trigger=click)
2026-04-21T17:40:58.413325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3182674559678505325, trigger=visual_change)
2026-04-21T17:41:23.101094Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5616874458658671741, trigger=visual_change)
2026-04-21T17:41:29.504783Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2744778324521007391, trigger=visual_change)
2026-04-21T17:42:13.830352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6664909184667365933, trigger=click)
2026-04-21T17:42:13.905614Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=click)
2026-04-21T17:42:14.689622Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6664909184667365933, trigger=click)
2026-04-21T17:43:13.738786Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5563100798252317961, trigger=visual_change)
2026-04-21T17:43:31.769731Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=40 elapsed=4.870364084s
2026-04-21T17:43:31.770321Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames
2026-04-21T17:43:32.514133Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.1MB → 0.1MB (8.9x), 11 JPEGs deleted
2026-04-21T17:43:34.391762Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 3.0MB → 0.5MB (5.9x), 27 JPEGs deleted
2026-04-21T17:44:19.021163Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-263228306577803226, trigger=click)
2026-04-21T17:44:32.036390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8360298266192684601, trigger=click)
2026-04-21T17:44:33.859332Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8360298266192684601, trigger=visual_change)
2026-04-21T17:44:42.936361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=visual_change)
2026-04-21T17:44:46.420662Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=visual_change)
2026-04-21T17:46:17.725934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7286082578618580481, trigger=click)
2026-04-21T17:46:18.733766Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=click)
2026-04-21T17:46:19.506484Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7286082578618580481, trigger=click)
2026-04-21T17:46:20.729229Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=click)
2026-04-21T17:46:27.956655Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8942982652250876029, trigger=click)
2026-04-21T17:46:29.490950Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8942982652250876029, trigger=click)
2026-04-21T17:46:45.634752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5761541209609855314, trigger=click)
2026-04-21T17:46:45.971315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5761541209609855314, trigger=click)
2026-04-21T17:46:50.988867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5607564885929685542, trigger=click)
2026-04-21T17:46:51.601750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5607564885929685542, trigger=click)
2026-04-21T17:46:56.353647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4497988824039212795, trigger=click)
2026-04-21T17:47:24.716661Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4864885406063659925, trigger=visual_change)
2026-04-21T17:47:29.793942Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:30.097043Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)
2026-04-21T17:47:30.960214Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:32.707746Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)
2026-04-21T17:47:36.181007Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:36.362574Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:37.093511Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:41.720206Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)
2026-04-21T17:47:44.706704Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)
2026-04-21T17:47:48.602580Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:48.776278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)
2026-04-21T17:47:52.582982Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5658848090639979218, trigger=click)
2026-04-21T17:47:57.282103Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8902771592702756196, trigger=click)
2026-04-21T17:48:06.880071Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8902771592702756196, trigger=click)
2026-04-21T17:48:07.656377Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8902771592702756196, trigger=click)
2026-04-21T17:48:23.785117Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:48:24.032602Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:48:26.587906Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:48:32.180582Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)
2026-04-21T17:48:34.022831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:48:34.363583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:48:39.363585Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=83 elapsed=4.983598708s
2026-04-21T17:48:39.363733Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 83 eligible frames
2026-04-21T17:48:41.479158Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 3.3MB → 0.2MB (17.7x), 31 JPEGs deleted
2026-04-21T17:48:44.682560Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 50 frames, 6.5MB → 2.0MB (3.3x), 50 JPEGs deleted
2026-04-21T17:48:53.828851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)
2026-04-21T17:48:56.563636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)
2026-04-21T17:48:59.291654Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:48:59.467275Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:00.295226Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:00.453357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=visual_change)
2026-04-21T17:49:13.301518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)
2026-04-21T17:49:16.454207Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)
2026-04-21T17:49:16.837288Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:18.900202Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:19.229376Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:20.418502Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:20.706966Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:21.269855Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:22.896443Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:23.115745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)
2026-04-21T17:49:29.927553Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1234240076182081719, trigger=click)
2026-04-21T17:49:40.567042Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1506528968255096811, trigger=click)
2026-04-21T17:49:40.722412Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1506528968255096811, trigger=click)
2026-04-21T17:49:44.790415Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1506528968255096811, trigger=visual_change)
2026-04-21T17:49:44.983133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-15...
|
NULL
|
|
66819
|
1503
|
12
|
2026-04-21T15:07:50.060491+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-21/1776 /Users/lukas/.screenpipe/data/data/2026-04-21/1776784070060_m1.jpg...
|
iTerm2
|
screenpipe"
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
2026-04-21T15:17:49.549473Z INFO screenpipe_engin 2026-04-21T15:17:49.549473Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3869963790957274395, trigger=click)
2026-04-21T15:17:50.408526Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3869963790957274395, trigger=visual_change)
2026-04-21T15:17:51.367993Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3869963790957274395, trigger=click)
2026-04-21T15:17:51.658544Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3869963790957274395, trigger=click)
2026-04-21T15:17:59.512794Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2138257446817006938, trigger=click)
2026-04-21T15:17:59.630806Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2138257446817006938, trigger=click)
2026-04-21T15:18:02.612463Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2138257446817006938, trigger=visual_change)
2026-04-21T15:18:05.031295Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2138257446817006938, trigger=click)
2026-04-21T15:18:05.949953Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2138257446817006938, trigger=visual_change)
2026-04-21T15:18:07.005054Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2138257446817006938, trigger=click)
2026-04-21T15:18:07.240048Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2138257446817006938, trigger=click)
2026-04-21T15:18:08.321397Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2138257446817006938, trigger=click)
2026-04-21T15:18:09.330989Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2138257446817006938, trigger=click)
2026-04-21T15:18:16.198885Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4512592763947671045, trigger=click)
2026-04-21T15:18:25.174657Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2138257446817006938, trigger=visual_change)
2026-04-21T15:18:25.979747Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2138257446817006938, trigger=click)
2026-04-21T15:18:26.174344Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2138257446817006938, trigger=click)
2026-04-21T15:18:27.329517Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2138257446817006938, trigger=click)
2026-04-21T15:18:27.442331Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2138257446817006938, trigger=click)
2026-04-21T15:18:34.134351Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2138257446817006938, trigger=visual_change)
2026-04-21T15:18:34.454235Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2138257446817006938, trigger=click)
2026-04-21T15:19:23.799546Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2134448310261037766, trigger=visual_change)
2026-04-21T15:19:35.195461Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2134448310261037766, trigger=visual_change)
2026-04-21T15:19:36.616914Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2134448310261037766, trigger=visual_change)
2026-04-21T15:19:43.812610Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)
2026-04-21T15:19:46.459367Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:19:51.103859Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)
2026-04-21T15:19:51.961944Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)
2026-04-21T15:19:52.167527Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=click)
2026-04-21T15:19:56.622639Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)
2026-04-21T15:19:56.728247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=click)
2026-04-21T15:20:02.598979Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:20:02.924826Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)
2026-04-21T15:20:05.668202Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:20:11.789308Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:20:14.756464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:20:20.882925Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:20:38.171496Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:20:41.202478Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:20:41.928948Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:20:48.058419Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:20:51.039890Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:22:03.799949Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:22:13.010196Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:22:19.940721Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=36 elapsed=1.206931458s
2026-04-21T15:22:19.940942Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 36 eligible frames
2026-04-21T15:22:21.367797Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 3.8MB → 1.6MB (2.4x), 15 JPEGs deleted
2026-04-21T15:22:22.862852Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 4.4MB → 1.3MB (3.3x), 19 JPEGs deleted
2026-04-21T15:22:28.040013Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:22:31.043424Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:22:37.137451Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:22:40.189158Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:22:46.342577Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:22:52.360301Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:22:55.361962Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:23:01.361462Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:23:04.429481Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:24:03.316425Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8540343042990809979, trigger=visual_change)
2026-04-21T15:24:09.357754Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8540343042990809979, trigger=visual_change)
2026-04-21T15:24:17.045608Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-357712155289738757, trigger=click)
2026-04-21T15:24:17.229938Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-357712155289738757, trigger=click)
2026-04-21T15:24:39.299106Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2318587192590272303, trigger=click)
2026-04-21T15:24:39.503939Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2318587192590272303, trigger=click)
2026-04-21T15:24:40.703200Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2318587192590272303, trigger=visual_change)
2026-04-21T15:25:20.207959Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-115592740355774573, trigger=visual_change)
2026-04-21T15:25:34.045255Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5357895394186669836, trigger=visual_change)
2026-04-21T15:25:34.611160Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5357895394186669836, trigger=click)
2026-04-21T15:25:37.799744Z WARN sqlx::query: summary="COMMIT" db.statement="" rows_affected=1 rows_returned=0 elapsed=1.72370025s
2026-04-21T15:25:37.956786Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5357895394186669836, trigger=click)
2026-04-21T15:25:38.065798Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5357895394186669836, trigger=click)
2026-04-21T15:27:27.008772Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=46 elapsed=4.119326709s
2026-04-21T15:27:27.008926Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 46 eligible frames
2026-04-21T15:27:28.808464Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 4.8MB → 2.5MB (1.9x), 19 JPEGs deleted
2026-04-21T15:27:29.051101Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=525296185995483322, trigger=visual_change)
2026-04-21T15:27:30.940888Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.6MB → 2.0MB (2.3x), 25 JPEGs deleted
2026-04-21T15:27:38.326692Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=525296185995483322, trigger=visual_change)
2026-04-21T15:27:46.472144Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2318587192590272303, trigger=click)
2026-04-21T15:27:53.687585Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=click)
2026-04-21T15:27:53.821391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)
2026-04-21T15:27:56.568366Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:30:07.617208Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7345067017169779372, trigger=visual_change)
2026-04-21T15:30:35.626228Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:30:38.496521Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:30:47.627510Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:30:50.578236Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)
2026-04-21T15:30:50.726770Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=click)
2026-04-21T15:30:56.653721Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:31:02.747003Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:31:05.748607Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:31:17.869430Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:31:20.951104Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:31:26.942644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:31:30.113620Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)
2026-04-21T15:31:31.259291Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)
2026-04-21T15:31:31.514010Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=click)
2026-04-21T15:31:33.767000Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)
2026-04-21T15:31:33.920466Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=click)
2026-04-21T15:31:35.506530Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)
2026-04-21T15:31:35.685079Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=click)
2026-04-21T15:31:36.710558Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=click)
2026-04-21T15:31:36.953539Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)
2026-04-21T15:31:38.451284Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=click)
2026-04-21T15:31:38.659646Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)
2026-04-21T15:31:41.384919Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:32:26.999680Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:32:29.990647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:32:36.791142Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=59 elapsed=5.839242958s
2026-04-21T15:32:36.791363Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 59 eligible frames
2026-04-21T15:32:39.153877Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 8.5MB → 3.9MB (2.2x), 31 JPEGs deleted
2026-04-21T15:32:43.055663Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.3MB → 2.2MB (2.0x), 26 JPEGs deleted
2026-04-21T15:33:58.964559Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=click)
2026-04-21T15:34:01.370038Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:34:16.496030Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:34:19.493349Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:35:07.898889Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:35:16.972268Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:35:20.035784Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:35:26.049636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:35:32.118199Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:35:35.122849Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:35:44.214841Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:35:47.232611Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:35:53.252836Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:35:56.262473Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:36:03.912825Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=32684078525934003, trigger=click)
2026-04-21T15:36:04.039319Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=click)
2026-04-21T15:36:06.889882Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=click)
2026-04-21T15:36:17.457615Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:36:27.555065Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1505193671044774267, trigger=click)
2026-04-21T15:36:42.607815Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2864109645901807081, trigger=click)
2026-04-21T15:37:44.772586Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=69 elapsed=1.703329916s
2026-04-21T15:37:44.772693Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 69 eligible frames
2026-04-21T15:37:47.061751Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 8.3MB → 4.1MB (2.0x), 32 JPEGs deleted
2026-04-21T15:37:49.263118Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 35 frames, 4.9MB → 1.5MB (3.3x), 35 JPEGs deleted
2026-04-21T15:38:48.339863Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7345067017169779372, trigger=visual_change)
2026-04-21T15:39:04.763572Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4843719893880893793, trigger=visual_change)
2026-04-21T15:40:05.496361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:40:29.591282Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:41:16.164160Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2900812915277822723, trigger=click)
2026-04-21T15:41:23.661891Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:41:26.703461Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:41:32.781037Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:41:35.789883Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:41:41.811272Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:41:44.919455Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:42:05.404072Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5004276282384800505, trigger=click)
2026-04-21T15:42:06.660073Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5004276282384800505, trigger=visual_change)
2026-04-21T15:42:21.721735Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5004276282384800505, trigger=visual_change)
2026-04-21T15:42:24.767284Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5004276282384800505, trigger=visual_change)
2026-04-21T15:42:30.886797Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5004276282384800505, trigger=visual_change)
2026-04-21T15:42:32.353284Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5004276282384800505, trigger=click)
2026-04-21T15:42:53.342750Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=52 elapsed=4.068091375s
2026-04-21T15:42:53.343209Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 52 eligible frames
2026-04-21T15:43:00.350701Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 7.7MB → 3.8MB (2.0x), 32 JPEGs deleted
2026-04-21T15:43:04.665303Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.0MB → 1.4MB (2.2x), 18 JPEGs deleted
2026-04-21T15:43:34.607312Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=853482337029112184, trigger=click)
2026-04-21T15:43:34.872392Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=853482337029112184, trigger=click)
2026-04-21T15:43:35.899763Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=853482337029112184, trigger=click)
2026-04-21T15:43:48.406088Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=853482337029112184, trigger=click)
2026-04-21T15:43:48.585014Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=853482337029112184, trigger=click)
2026-04-21T15:43:50.163180Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=853482337029112184, trigger=click)
2026-04-21T15:43:50.385739Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=853482337029112184, trigger=click)
2026-04-21T15:43:53.195867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=853482337029112184, trigger=click)
2026-04-21T15:44:13.974997Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7638600394188067596, trigger=click)
2026-04-21T15:45:09.004346Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1645333894657549955, trigger=visual_change)
2026-04-21T15:45:25.499345Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3128527177503635561, trigger=click)
2026-04-21T15:45:26.508782Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3128527177503635561, trigger=visual_change)
2026-04-21T15:45:29.578474Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3128527177503635561, trigger=visual_change)
2026-04-21T15:45:33.069643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3128527177503635561, trigger=visual_change)
2026-04-21T15:45:35.154439Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3128527177503635561, trigger=click)
2026-04-21T15:45:50.867873Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:45:51.543329Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=click)
2026-04-21T15:45:51.688145Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=click)
2026-04-21T15:45:56.968268Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:45:59.992989Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:46:15.190380Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:46:21.349140Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:46:24.108646Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=click)
2026-04-21T15:46:24.239949Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=click)
2026-04-21T15:46:31.011607Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:46:34.038038Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:46:40.140459Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:46:43.202999Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:46:49.666830Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=click)
2026-04-21T15:46:52.233599Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:46:52.919343Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=click)
2026-04-21T15:47:01.421995Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:47:04.387592Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:47:13.219366Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=click)
2026-04-21T15:47:14.410197Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=click)
2026-04-21T15:47:14.555427Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:47:47.182774Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-926939256350628341, trigger=click)
2026-04-21T15:47:47.313085Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-926939256350628341, trigger=click)
2026-04-21T15:47:51.007142Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-926939256350628341, trigger=visual_change)
2026-04-21T15:47:57.147902Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=click)
2026-04-21T15:47:57.339006Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:47:58.246964Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:48:10.859817Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=60 elapsed=6.154614084s
2026-04-21T15:48:10.860968Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 60 eligible frames
2026-04-21T15:48:12.865127Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 3.8MB → 0.4MB (8.5x), 29 JPEGs deleted
2026-04-21T15:48:15.453116Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 5.3MB → 1.9MB (2.8x), 29 JPEGs deleted
2026-04-21T15:48:47.469195Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1918324922935553040, trigger=visual_change)
2026-04-21T15:49:03.828434Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1918324922935553040, trigger=visual_change)
2026-04-21T15:49:32.798887Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6658269488663706414, trigger=click)
2026-04-21T15:50:07.795304Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:50:22.939421Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6692792019664876292, trigger=visual_change)
2026-04-21T15:51:11.513005Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9198264877289985337, trigger=visual_change)
2026-04-21T15:51:22.759879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9198264877289985337, trigger=click)
2026-04-21T15:52:06.151994Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2061546572815694422, trigger=visual_change)
2026-04-21T15:52:10.101525Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2061546572815694422, trigger=visual_change)
2026-04-21T15:52:10.447385Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2061546572815694422, trigger=click)
2026-04-21T15:52:17.973740Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2061546572815694422, trigger=visual_change)
2026-04-21T15:52:27.034549Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6654491695696088287, trigger=visual_change)
2026-04-21T15:52:34.865867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=click)
2026-04-21T15:52:37.002754Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:52:37.758891Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=click)
2026-04-21T15:52:37.903061Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=click)
2026-04-21T15:52:58.490245Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2319943303696444798, trigger=click)
2026-04-21T15:52:58.636967Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2319943303696444798, trigger=click)
2026-04-21T15:53:05.413509Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=click)
2026-04-21T15:53:05.635434Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=click)
2026-04-21T15:53:14.450507Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:53:16.412940Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 56 eligible frames
2026-04-21T15:53:17.458900Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:53:18.382936Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 3.9MB → 0.4MB (10.1x), 30 JPEGs deleted
2026-04-21T15:53:20.404928Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 5.2MB → 2.5MB (2.1x), 24 JPEGs deleted
2026-04-21T15:53:29.578611Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:53:32.631242Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:53:43.980351Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=click)
2026-04-21T15:53:45.448681Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:53:45.981861Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:53:51.490843Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:53:54.503801Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:54:00.554133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:54:03.594215Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:54:12.603968Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:54:18.363794Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=click)
2026-04-21T15:54:18.534215Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=click)
2026-04-21T15:54:45.841588Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1261864652156529447, trigger=click)
2026-04-21T15:54:46.025388Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1261864652156529447, trigger=click)
2026-04-21T15:54:49.896744Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1261864652156529447, trigger=visual_change)
2026-04-21T15:54:56.016125Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1261864652156529447, trigger=visual_change)
2026-04-21T15:54:59.114088Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1261864652156529447, trigger=visual_change)
2026-04-21T15:55:00.284632Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1261864652156529447, trigger=click)
2026-04-21T15:55:00.406838Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1261864652156529447, trigger=click)
2026-04-21T15:55:02.079710Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1261864652156529447, trigger=click)
2026-04-21T15:55:02.308488Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1261864652156529447, trigger=click)
2026-04-21T15:55:17.433420Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1236411717024251211, trigger=click)
2026-04-21T15:55:22.382212Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3575572948672507206, trigger=visual_change)
2026-04-21T15:55:33.553348Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3575572948672507206, trigger=click)
2026-04-21T15:55:33.725630Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3575572948672507206, trigger=click)
2026-04-21T15:55:36.499986Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3575572948672507206, trigger=click)
2026-04-21T15:55:36.647384Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3575572948672507206, trigger=visual_change)
2026-04-21T15:55:38.675147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3575572948672507206, trigger=click)
2026-04-21T15:55:38.953368Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3575572948672507206, trigger=click)
2026-04-21T15:55:49.727745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1928477198450198789, trigger=click)
2026-04-21T15:55:51.600613Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1928477198450198789, trigger=visual_change)
2026-04-21T15:55:58.958653Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6305115209475227780, trigger=click)
2026-04-21T15:56:10.814040Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2683270687017607806, trigger=click)
2026-04-21T15:56:23.872451Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8011254159114411036, trigger=visual_change)
2026-04-21T15:56:24.893455Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8011254159114411036, trigger=visual_change)
2026-04-21T15:56:38.964984Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2061546572815694422, trigger=click)
2026-04-21T15:57:05.134874Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8011254159114411036, trigger=visual_change)
2026-04-21T15:57:05.481118Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8011254159114411036, trigger=click)
2026-04-21T15:57:06.604281Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8011254159114411036, trigger=click)
2026-04-21T15:57:06.770499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8011254159114411036, trigger=click)
2026-04-21T15:57:07.327121Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8011254159114411036, trigger=click)
2026-04-21T15:57:12.184374Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8011254159114411036, trigger=visual_change)
2026-04-21T15:57:17.777283Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8011254159114411036, trigger=click)
2026-04-21T15:57:17.883656Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8011254159114411036, trigger=click)
2026-04-21T15:58:03.328237Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2061546572815694422, trigger=visual_change)
2026-04-21T15:58:04.873241Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2061546572815694422, trigger=click)
2026-04-21T15:58:05.083940Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2061546572815694422, trigger=click)
2026-04-21T15:58:25.172235Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=69 elapsed=4.754634416s
2026-04-21T15:58:25.172952Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 69 eligible frames
2026-04-21T15:58:27.752106Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 5.0MB → 0.7MB (7.7x), 39 JPEGs deleted
2026-04-21T15:58:28.844185Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1714600494192977193, trigger=click)
2026-04-21T15:58:30.120472Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 6.0MB → 2.7MB (2.2x), 28 JPEGs deleted
2026-04-21T15:59:45.857732Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2993864580543626498, trigger=click)
2026-04-21T15:59:47.242506Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2993864580543626498, trigger=visual_change)
2026-04-21T15:59:49.794356Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2993864580543626498, trigger=click)
2026-04-21T15:59:49.900792Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2993864580543626498, trigger=click)
2026-04-21T16:00:06.761409Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3195608759585503031, trigger=visual_change)
2026-04-21T16:00:13.468752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2319222304555239268, trigger=click)
2026-04-21T16:00:17.757305Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5732830672832053181, trigger=click)
2026-04-21T16:00:17.870684Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5732830672832053181, trigger=click)
2026-04-21T16:01:48.777919Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2131760867504785678, trigger=visual_change)
2026-04-21T16:01:51.903624Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2131760867504785678, trigger=visual_change)
2026-04-21T16:02:01.343178Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4025239947511295773, trigger=visual_change)
2026-04-21T16:02:02.388155Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4025239947511295773, trigger=visual_change)
2026-04-21T16:02:10.799801Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3195608759585503031, trigger=click)
2026-04-21T16:02:15.237578Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3195608759585503031, trigger=click)
2026-04-21T16:02:15.453443Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3195608759585503031, trigger=click)
2026-04-21T16:02:17.716070Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3195608759585503031, trigger=visual_change)
2026-04-21T16:02:26.881689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=click)
2026-04-21T16:02:27.03082...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"2026-04-21T15:17:49.549473Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3869963790957274395, trigger=click)\n2026-04-21T15:17:50.408526Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3869963790957274395, trigger=visual_change)\n2026-04-21T15:17:51.367993Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3869963790957274395, trigger=click)\n2026-04-21T15:17:51.658544Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3869963790957274395, trigger=click)\n2026-04-21T15:17:59.512794Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2138257446817006938, trigger=click)\n2026-04-21T15:17:59.630806Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2138257446817006938, trigger=click)\n2026-04-21T15:18:02.612463Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2138257446817006938, trigger=visual_change)\n2026-04-21T15:18:05.031295Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2138257446817006938, trigger=click)\n2026-04-21T15:18:05.949953Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2138257446817006938, trigger=visual_change)\n2026-04-21T15:18:07.005054Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2138257446817006938, trigger=click)\n2026-04-21T15:18:07.240048Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2138257446817006938, trigger=click)\n2026-04-21T15:18:08.321397Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2138257446817006938, trigger=click)\n2026-04-21T15:18:09.330989Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2138257446817006938, trigger=click)\n2026-04-21T15:18:16.198885Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4512592763947671045, trigger=click)\n2026-04-21T15:18:25.174657Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2138257446817006938, trigger=visual_change)\n2026-04-21T15:18:25.979747Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2138257446817006938, trigger=click)\n2026-04-21T15:18:26.174344Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2138257446817006938, trigger=click)\n2026-04-21T15:18:27.329517Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2138257446817006938, trigger=click)\n2026-04-21T15:18:27.442331Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2138257446817006938, trigger=click)\n2026-04-21T15:18:34.134351Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2138257446817006938, trigger=visual_change)\n2026-04-21T15:18:34.454235Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2138257446817006938, trigger=click)\n2026-04-21T15:19:23.799546Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2134448310261037766, trigger=visual_change)\n2026-04-21T15:19:35.195461Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2134448310261037766, trigger=visual_change)\n2026-04-21T15:19:36.616914Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2134448310261037766, trigger=visual_change)\n2026-04-21T15:19:43.812610Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:19:46.459367Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:19:51.103859Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:19:51.961944Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:19:52.167527Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:19:56.622639Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:19:56.728247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:20:02.598979Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:20:02.924826Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:20:05.668202Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:20:11.789308Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:20:14.756464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:20:20.882925Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:20:38.171496Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:20:41.202478Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:20:41.928948Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:20:48.058419Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:20:51.039890Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:22:03.799949Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:22:13.010196Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:22:19.940721Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=36 elapsed=1.206931458s\n2026-04-21T15:22:19.940942Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 36 eligible frames\n2026-04-21T15:22:21.367797Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 3.8MB → 1.6MB (2.4x), 15 JPEGs deleted\n2026-04-21T15:22:22.862852Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 4.4MB → 1.3MB (3.3x), 19 JPEGs deleted\n2026-04-21T15:22:28.040013Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:22:31.043424Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:22:37.137451Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:22:40.189158Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:22:46.342577Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:22:52.360301Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:22:55.361962Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:23:01.361462Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:23:04.429481Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:24:03.316425Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8540343042990809979, trigger=visual_change)\n2026-04-21T15:24:09.357754Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8540343042990809979, trigger=visual_change)\n2026-04-21T15:24:17.045608Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-357712155289738757, trigger=click)\n2026-04-21T15:24:17.229938Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-357712155289738757, trigger=click)\n2026-04-21T15:24:39.299106Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2318587192590272303, trigger=click)\n2026-04-21T15:24:39.503939Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2318587192590272303, trigger=click)\n2026-04-21T15:24:40.703200Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2318587192590272303, trigger=visual_change)\n2026-04-21T15:25:20.207959Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-115592740355774573, trigger=visual_change)\n2026-04-21T15:25:34.045255Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5357895394186669836, trigger=visual_change)\n2026-04-21T15:25:34.611160Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5357895394186669836, trigger=click)\n2026-04-21T15:25:37.799744Z WARN sqlx::query: summary=\"COMMIT\" db.statement=\"\" rows_affected=1 rows_returned=0 elapsed=1.72370025s\n2026-04-21T15:25:37.956786Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5357895394186669836, trigger=click)\n2026-04-21T15:25:38.065798Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5357895394186669836, trigger=click)\n2026-04-21T15:27:27.008772Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=46 elapsed=4.119326709s\n2026-04-21T15:27:27.008926Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 46 eligible frames\n2026-04-21T15:27:28.808464Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 4.8MB → 2.5MB (1.9x), 19 JPEGs deleted\n2026-04-21T15:27:29.051101Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=525296185995483322, trigger=visual_change)\n2026-04-21T15:27:30.940888Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.6MB → 2.0MB (2.3x), 25 JPEGs deleted\n2026-04-21T15:27:38.326692Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=525296185995483322, trigger=visual_change)\n2026-04-21T15:27:46.472144Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2318587192590272303, trigger=click)\n2026-04-21T15:27:53.687585Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:27:53.821391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:27:56.568366Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:30:07.617208Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7345067017169779372, trigger=visual_change)\n2026-04-21T15:30:35.626228Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:30:38.496521Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:30:47.627510Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:30:50.578236Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:30:50.726770Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:30:56.653721Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:31:02.747003Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:31:05.748607Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:31:17.869430Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:31:20.951104Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:31:26.942644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:31:30.113620Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:31:31.259291Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:31:31.514010Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:31:33.767000Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:31:33.920466Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:31:35.506530Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:31:35.685079Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:31:36.710558Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:31:36.953539Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:31:38.451284Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:31:38.659646Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:31:41.384919Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:32:26.999680Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:32:29.990647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:32:36.791142Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=59 elapsed=5.839242958s\n2026-04-21T15:32:36.791363Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 59 eligible frames\n2026-04-21T15:32:39.153877Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 8.5MB → 3.9MB (2.2x), 31 JPEGs deleted\n2026-04-21T15:32:43.055663Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.3MB → 2.2MB (2.0x), 26 JPEGs deleted\n2026-04-21T15:33:58.964559Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=click)\n2026-04-21T15:34:01.370038Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:34:16.496030Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:34:19.493349Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:35:07.898889Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:35:16.972268Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:35:20.035784Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:35:26.049636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:35:32.118199Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:35:35.122849Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:35:44.214841Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:35:47.232611Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:35:53.252836Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:35:56.262473Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:36:03.912825Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=32684078525934003, trigger=click)\n2026-04-21T15:36:04.039319Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=click)\n2026-04-21T15:36:06.889882Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=click)\n2026-04-21T15:36:17.457615Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:36:27.555065Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1505193671044774267, trigger=click)\n2026-04-21T15:36:42.607815Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2864109645901807081, trigger=click)\n2026-04-21T15:37:44.772586Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=69 elapsed=1.703329916s\n2026-04-21T15:37:44.772693Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 69 eligible frames\n2026-04-21T15:37:47.061751Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 8.3MB → 4.1MB (2.0x), 32 JPEGs deleted\n2026-04-21T15:37:49.263118Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 35 frames, 4.9MB → 1.5MB (3.3x), 35 JPEGs deleted\n2026-04-21T15:38:48.339863Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7345067017169779372, trigger=visual_change)\n2026-04-21T15:39:04.763572Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4843719893880893793, trigger=visual_change)\n2026-04-21T15:40:05.496361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:40:29.591282Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:41:16.164160Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2900812915277822723, trigger=click)\n2026-04-21T15:41:23.661891Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:41:26.703461Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:41:32.781037Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:41:35.789883Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:41:41.811272Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:41:44.919455Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:42:05.404072Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5004276282384800505, trigger=click)\n2026-04-21T15:42:06.660073Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5004276282384800505, trigger=visual_change)\n2026-04-21T15:42:21.721735Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5004276282384800505, trigger=visual_change)\n2026-04-21T15:42:24.767284Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5004276282384800505, trigger=visual_change)\n2026-04-21T15:42:30.886797Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5004276282384800505, trigger=visual_change)\n2026-04-21T15:42:32.353284Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5004276282384800505, trigger=click)\n2026-04-21T15:42:53.342750Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=52 elapsed=4.068091375s\n2026-04-21T15:42:53.343209Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 52 eligible frames\n2026-04-21T15:43:00.350701Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 7.7MB → 3.8MB (2.0x), 32 JPEGs deleted\n2026-04-21T15:43:04.665303Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.0MB → 1.4MB (2.2x), 18 JPEGs deleted\n2026-04-21T15:43:34.607312Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=853482337029112184, trigger=click)\n2026-04-21T15:43:34.872392Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=853482337029112184, trigger=click)\n2026-04-21T15:43:35.899763Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=853482337029112184, trigger=click)\n2026-04-21T15:43:48.406088Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=853482337029112184, trigger=click)\n2026-04-21T15:43:48.585014Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=853482337029112184, trigger=click)\n2026-04-21T15:43:50.163180Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=853482337029112184, trigger=click)\n2026-04-21T15:43:50.385739Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=853482337029112184, trigger=click)\n2026-04-21T15:43:53.195867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=853482337029112184, trigger=click)\n2026-04-21T15:44:13.974997Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7638600394188067596, trigger=click)\n2026-04-21T15:45:09.004346Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1645333894657549955, trigger=visual_change)\n2026-04-21T15:45:25.499345Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3128527177503635561, trigger=click)\n2026-04-21T15:45:26.508782Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3128527177503635561, trigger=visual_change)\n2026-04-21T15:45:29.578474Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3128527177503635561, trigger=visual_change)\n2026-04-21T15:45:33.069643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3128527177503635561, trigger=visual_change)\n2026-04-21T15:45:35.154439Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3128527177503635561, trigger=click)\n2026-04-21T15:45:50.867873Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:45:51.543329Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=click)\n2026-04-21T15:45:51.688145Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=click)\n2026-04-21T15:45:56.968268Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:45:59.992989Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:46:15.190380Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:46:21.349140Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:46:24.108646Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=click)\n2026-04-21T15:46:24.239949Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=click)\n2026-04-21T15:46:31.011607Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:46:34.038038Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:46:40.140459Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:46:43.202999Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:46:49.666830Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=click)\n2026-04-21T15:46:52.233599Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:46:52.919343Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=click)\n2026-04-21T15:47:01.421995Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:47:04.387592Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:47:13.219366Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=click)\n2026-04-21T15:47:14.410197Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=click)\n2026-04-21T15:47:14.555427Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:47:47.182774Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-926939256350628341, trigger=click)\n2026-04-21T15:47:47.313085Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-926939256350628341, trigger=click)\n2026-04-21T15:47:51.007142Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-926939256350628341, trigger=visual_change)\n2026-04-21T15:47:57.147902Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=click)\n2026-04-21T15:47:57.339006Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:47:58.246964Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:48:10.859817Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=60 elapsed=6.154614084s\n2026-04-21T15:48:10.860968Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 60 eligible frames\n2026-04-21T15:48:12.865127Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 3.8MB → 0.4MB (8.5x), 29 JPEGs deleted\n2026-04-21T15:48:15.453116Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 5.3MB → 1.9MB (2.8x), 29 JPEGs deleted\n2026-04-21T15:48:47.469195Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1918324922935553040, trigger=visual_change)\n2026-04-21T15:49:03.828434Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1918324922935553040, trigger=visual_change)\n2026-04-21T15:49:32.798887Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6658269488663706414, trigger=click)\n2026-04-21T15:50:07.795304Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:50:22.939421Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6692792019664876292, trigger=visual_change)\n2026-04-21T15:51:11.513005Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9198264877289985337, trigger=visual_change)\n2026-04-21T15:51:22.759879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9198264877289985337, trigger=click)\n2026-04-21T15:52:06.151994Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2061546572815694422, trigger=visual_change)\n2026-04-21T15:52:10.101525Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2061546572815694422, trigger=visual_change)\n2026-04-21T15:52:10.447385Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2061546572815694422, trigger=click)\n2026-04-21T15:52:17.973740Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2061546572815694422, trigger=visual_change)\n2026-04-21T15:52:27.034549Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6654491695696088287, trigger=visual_change)\n2026-04-21T15:52:34.865867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=click)\n2026-04-21T15:52:37.002754Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:52:37.758891Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=click)\n2026-04-21T15:52:37.903061Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=click)\n2026-04-21T15:52:58.490245Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2319943303696444798, trigger=click)\n2026-04-21T15:52:58.636967Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2319943303696444798, trigger=click)\n2026-04-21T15:53:05.413509Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=click)\n2026-04-21T15:53:05.635434Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=click)\n2026-04-21T15:53:14.450507Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:53:16.412940Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 56 eligible frames\n2026-04-21T15:53:17.458900Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:53:18.382936Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 3.9MB → 0.4MB (10.1x), 30 JPEGs deleted\n2026-04-21T15:53:20.404928Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 5.2MB → 2.5MB (2.1x), 24 JPEGs deleted\n2026-04-21T15:53:29.578611Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:53:32.631242Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:53:43.980351Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=click)\n2026-04-21T15:53:45.448681Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:53:45.981861Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:53:51.490843Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:53:54.503801Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:54:00.554133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:54:03.594215Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:54:12.603968Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:54:18.363794Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=click)\n2026-04-21T15:54:18.534215Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=click)\n2026-04-21T15:54:45.841588Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1261864652156529447, trigger=click)\n2026-04-21T15:54:46.025388Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1261864652156529447, trigger=click)\n2026-04-21T15:54:49.896744Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1261864652156529447, trigger=visual_change)\n2026-04-21T15:54:56.016125Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1261864652156529447, trigger=visual_change)\n2026-04-21T15:54:59.114088Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1261864652156529447, trigger=visual_change)\n2026-04-21T15:55:00.284632Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1261864652156529447, trigger=click)\n2026-04-21T15:55:00.406838Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1261864652156529447, trigger=click)\n2026-04-21T15:55:02.079710Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1261864652156529447, trigger=click)\n2026-04-21T15:55:02.308488Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1261864652156529447, trigger=click)\n2026-04-21T15:55:17.433420Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1236411717024251211, trigger=click)\n2026-04-21T15:55:22.382212Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3575572948672507206, trigger=visual_change)\n2026-04-21T15:55:33.553348Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3575572948672507206, trigger=click)\n2026-04-21T15:55:33.725630Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3575572948672507206, trigger=click)\n2026-04-21T15:55:36.499986Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3575572948672507206, trigger=click)\n2026-04-21T15:55:36.647384Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3575572948672507206, trigger=visual_change)\n2026-04-21T15:55:38.675147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3575572948672507206, trigger=click)\n2026-04-21T15:55:38.953368Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3575572948672507206, trigger=click)\n2026-04-21T15:55:49.727745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1928477198450198789, trigger=click)\n2026-04-21T15:55:51.600613Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1928477198450198789, trigger=visual_change)\n2026-04-21T15:55:58.958653Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6305115209475227780, trigger=click)\n2026-04-21T15:56:10.814040Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2683270687017607806, trigger=click)\n2026-04-21T15:56:23.872451Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8011254159114411036, trigger=visual_change)\n2026-04-21T15:56:24.893455Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8011254159114411036, trigger=visual_change)\n2026-04-21T15:56:38.964984Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2061546572815694422, trigger=click)\n2026-04-21T15:57:05.134874Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8011254159114411036, trigger=visual_change)\n2026-04-21T15:57:05.481118Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8011254159114411036, trigger=click)\n2026-04-21T15:57:06.604281Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8011254159114411036, trigger=click)\n2026-04-21T15:57:06.770499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8011254159114411036, trigger=click)\n2026-04-21T15:57:07.327121Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8011254159114411036, trigger=click)\n2026-04-21T15:57:12.184374Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8011254159114411036, trigger=visual_change)\n2026-04-21T15:57:17.777283Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8011254159114411036, trigger=click)\n2026-04-21T15:57:17.883656Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8011254159114411036, trigger=click)\n2026-04-21T15:58:03.328237Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2061546572815694422, trigger=visual_change)\n2026-04-21T15:58:04.873241Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2061546572815694422, trigger=click)\n2026-04-21T15:58:05.083940Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2061546572815694422, trigger=click)\n2026-04-21T15:58:25.172235Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=69 elapsed=4.754634416s\n2026-04-21T15:58:25.172952Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 69 eligible frames\n2026-04-21T15:58:27.752106Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 5.0MB → 0.7MB (7.7x), 39 JPEGs deleted\n2026-04-21T15:58:28.844185Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1714600494192977193, trigger=click)\n2026-04-21T15:58:30.120472Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 6.0MB → 2.7MB (2.2x), 28 JPEGs deleted\n2026-04-21T15:59:45.857732Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2993864580543626498, trigger=click)\n2026-04-21T15:59:47.242506Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2993864580543626498, trigger=visual_change)\n2026-04-21T15:59:49.794356Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2993864580543626498, trigger=click)\n2026-04-21T15:59:49.900792Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2993864580543626498, trigger=click)\n2026-04-21T16:00:06.761409Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3195608759585503031, trigger=visual_change)\n2026-04-21T16:00:13.468752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2319222304555239268, trigger=click)\n2026-04-21T16:00:17.757305Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5732830672832053181, trigger=click)\n2026-04-21T16:00:17.870684Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5732830672832053181, trigger=click)\n2026-04-21T16:01:48.777919Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2131760867504785678, trigger=visual_change)\n2026-04-21T16:01:51.903624Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2131760867504785678, trigger=visual_change)\n2026-04-21T16:02:01.343178Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4025239947511295773, trigger=visual_change)\n2026-04-21T16:02:02.388155Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4025239947511295773, trigger=visual_change)\n2026-04-21T16:02:10.799801Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3195608759585503031, trigger=click)\n2026-04-21T16:02:15.237578Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3195608759585503031, trigger=click)\n2026-04-21T16:02:15.453443Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3195608759585503031, trigger=click)\n2026-04-21T16:02:17.716070Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3195608759585503031, trigger=visual_change)\n2026-04-21T16:02:26.881689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=click)\n2026-04-21T16:02:27.030824Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1116166152131308044, trigger=click)\n2026-04-21T16:02:31.513617Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1116166152131308044, trigger=visual_change)\n2026-04-21T16:02:42.461634Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=click)\n2026-04-21T16:02:42.710546Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1116166152131308044, trigger=click)\n2026-04-21T16:02:46.369193Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=visual_change)\n2026-04-21T16:02:52.431259Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=visual_change)\n2026-04-21T16:02:52.856920Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1116166152131308044, trigger=click)\n2026-04-21T16:02:55.643958Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=visual_change)\n2026-04-21T16:02:56.549511Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1116166152131308044, trigger=visual_change)\n2026-04-21T16:02:59.878468Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=click)\n2026-04-21T16:03:00.026944Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1116166152131308044, trigger=click)\n2026-04-21T16:03:00.966506Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=click)\n2026-04-21T16:03:14.972630Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=visual_change)\n2026-04-21T16:03:19.566899Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4025239947511295773, trigger=click)\n2026-04-21T16:03:19.671409Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4025239947511295773, trigger=visual_change)\n2026-04-21T16:03:20.454813Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4025239947511295773, trigger=click)\n2026-04-21T16:03:20.540316Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4025239947511295773, trigger=click)\n2026-04-21T16:03:22.683211Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4025239947511295773, trigger=visual_change)\n2026-04-21T16:03:36.139204Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=63 elapsed=6.008212292s\n2026-04-21T16:03:36.139322Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 63 eligible frames\n2026-04-21T16:03:37.473231Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1116166152131308044, trigger=click)\n2026-04-21T16:03:37.595185Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=click)\n2026-04-21T16:03:38.391239Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 4.1MB → 0.4MB (10.0x), 32 JPEGs deleted\n2026-04-21T16:03:40.661697Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 5.4MB → 2.3MB (2.3x), 29 JPEGs deleted\n2026-04-21T16:03:48.609749Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1116166152131308044, trigger=click)\n2026-04-21T16:03:48.744925Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=visual_change)\n2026-04-21T16:03:50.472701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1116166152131308044, trigger=visual_change)\n2026-04-21T16:03:51.569212Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=visual_change)\n2026-04-21T16:03:57.568165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=visual_change)\n2026-04-21T16:03:58.491291Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1116166152131308044, trigger=click)\n2026-04-21T16:03:58.627085Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=click)\n2026-04-21T16:04:02.611784Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1116166152131308044, trigger=visual_change)\n2026-04-21T16:04:12.375564Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1116166152131308044, trigger=visual_change)\n2026-04-21T16:04:12.929157Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=click)\n2026-04-21T16:04:30.915793Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=click)\n2026-04-21T16:04:57.195529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1116166152131308044, trigger=visual_change)\n2026-04-21T16:04:58.079114Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1116166152131308044, trigger=click)\n2026-04-21T16:04:58.230204Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=click)\n2026-04-21T16:05:12.566561Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1116166152131308044, trigger=visual_change)\n2026-04-21T16:05:12.855158Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=visual_change)\n2026-04-21T16:05:21.636677Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=visual_change)\n2026-04-21T16:05:24.926399Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=visual_change)\n2026-04-21T16:06:04.116239Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=visual_change)\n2026-04-21T16:06:24.678633Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2452943073484325532, trigger=click)\n2026-04-21T16:06:26.740732Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2452943073484325532, trigger=click)\n2026-04-21T16:06:26.894232Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2452943073484325532, trigger=click)\n2026-04-21T16:08:29.709550Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2784622108492791959, trigger=click)\n2026-04-21T16:08:30.471514Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2784622108492791959, trigger=visual_change)\n2026-04-21T16:08:36.029304Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=75691378564349849, trigger=visual_change)\n2026-04-21T16:08:37.823497Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=75691378564349849, trigger=visual_change)\n2026-04-21T16:08:47.835475Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=88 elapsed=7.182833s\n2026-04-21T16:08:47.836310Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 88 eligible frames\n2026-04-21T16:08:51.474399Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 46 frames, 5.9MB → 0.6MB (9.3x), 46 JPEGs deleted\n2026-04-21T16:08:56.880858Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 40 frames, 8.0MB → 3.5MB (2.3x), 40 JPEGs deleted\n2026-04-21T16:09:11.404363Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5560866901432731747, trigger=visual_change)\n2026-04-21T16:09:19.521573Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5218742967738517410, trigger=visual_change)\n2026-04-21T16:09:23.451591Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5218742967738517410, trigger=visual_change)\n2026-04-21T16:09:24.600660Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5218742967738517410, trigger=click)\n2026-04-21T16:09:24.813137Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5218742967738517410, trigger=click)\n2026-04-21T16:09:25.334988Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5218742967738517410, trigger=click)\n2026-04-21T16:09:53.757232Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8889319479238815843, trigger=click)\n2026-04-21T16:09:53.883019Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8889319479238815843, trigger=click)\n2026-04-21T16:09:56.453132Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8889319479238815843, trigger=visual_change)\n2026-04-21T16:09:57.689649Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8889319479238815843, trigger=visual_change)\n2026-04-21T16:09:58.297586Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8889319479238815843, trigger=click)\n2026-04-21T16:10:01.890864Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3521802135830221118, trigger=click)\n2026-04-21T16:10:02.099325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3521802135830221118, trigger=click)\n2026-04-21T16:10:06.032086Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3521802135830221118, trigger=visual_change)\n2026-04-21T16:10:09.704587Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=941395574046373634, trigger=visual_change)\n2026-04-21T16:10:12.783946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4616958244172810633, trigger=visual_change)\n2026-04-21T16:12:49.952858Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-123373349137473243, trigger=click)\n2026-04-21T16:12:50.087991Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-123373349137473243, trigger=click)\n2026-04-21T16:12:53.090814Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-123373349137473243, trigger=click)\n2026-04-21T16:12:53.225701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-123373349137473243, trigger=click)\n2026-04-21T16:12:54.436555Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-123373349137473243, trigger=click)\n2026-04-21T16:12:54.587230Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-123373349137473243, trigger=click)\n2026-04-21T16:12:59.666599Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-123373349137473243, trigger=click)\n2026-04-21T16:12:59.849594Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-123373349137473243, trigger=click)\n2026-04-21T16:13:01.462042Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-123373349137473243, trigger=visual_change)\n2026-04-21T16:13:17.704686Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-123373349137473243, trigger=click)\n2026-04-21T16:13:17.881020Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-123373349137473243, trigger=click)\n2026-04-21T16:13:25.121719Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-123373349137473243, trigger=click)\n2026-04-21T16:13:29.059212Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1980321148661859128, trigger=visual_change)\n2026-04-21T16:13:29.901114Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1980321148661859128, trigger=click)\n2026-04-21T16:13:30.107373Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1980321148661859128, trigger=click)\n2026-04-21T16:13:34.114790Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1980321148661859128, trigger=click)\n2026-04-21T16:13:34.287663Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1980321148661859128, trigger=click)\n2026-04-21T16:13:58.094458Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1980321148661859128, trigger=click)\n2026-04-21T16:14:03.164207Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=87 elapsed=6.263532125s\n2026-04-21T16:14:03.164392Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 87 eligible frames\n2026-04-21T16:14:05.747863Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 38 frames, 4.9MB → 0.7MB (6.9x), 38 JPEGs deleted\n2026-04-21T16:14:09.450248Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 47 frames, 7.2MB → 2.4MB (3.0x), 47 JPEGs deleted\n2026-04-21T16:14:09.494731Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1980321148661859128, trigger=click)\n2026-04-21T16:14:30.037778Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1980321148661859128, trigger=click)\n2026-04-21T16:14:32.515759Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1980321148661859128, trigger=visual_change)\n2026-04-21T16:14:35.314711Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1980321148661859128, trigger=click)\n2026-04-21T16:14:35.507419Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1980321148661859128, trigger=click)\n2026-04-21T16:14:39.332082Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1980321148661859128, trigger=visual_change)\n2026-04-21T16:15:16.219018Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4023789962951736249, trigger=click)\n2026-04-21T16:15:46.847760Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4029553059536117170, trigger=click)\n2026-04-21T16:15:47.086575Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4029553059536117170, trigger=click)\n2026-04-21T16:15:49.652277Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4029553059536117170, trigger=click)\n2026-04-21T16:15:49.811262Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4029553059536117170, trigger=click)\n2026-04-21T16:15:59.825614Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4029553059536117170, trigger=visual_change)\n2026-04-21T16:16:06.513537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4029553059536117170, trigger=click)\n2026-04-21T16:16:06.745111Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4029553059536117170, trigger=click)\n2026-04-21T16:16:08.901255Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4029553059536117170, trigger=visual_change)\n2026-04-21T16:16:10.268255Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4029553059536117170, trigger=click)\n2026-04-21T16:16:10.422562Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4029553059536117170, trigger=click)\n2026-04-21T16:16:16.344421Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3658909392690979501, trigger=click)\n2026-04-21T16:16:16.525379Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3658909392690979501, trigger=click)\n2026-04-21T16:16:27.262509Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3658909392690979501, trigger=visual_change)\n2026-04-21T16:16:30.098307Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3658909392690979501, trigger=visual_change)\n2026-04-21T16:16:33.063533Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3658909392690979501, trigger=visual_change)\n2026-04-21T16:16:36.082624Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3658909392690979501, trigger=visual_change)\n2026-04-21T16:16:43.249986Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=718360199604596957, trigger=visual_change)\n2026-04-21T16:16:45.281138Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=718360199604596957, trigger=click)\n2026-04-21T16:16:45.431571Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=718360199604596957, trigger=click)\n2026-04-21T16:16:46.085204Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=718360199604596957, trigger=click)\n2026-04-21T16:16:46.339290Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=718360199604596957, trigger=click)\n2026-04-21T16:16:54.878246Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6121257606737238481, trigger=click)\n2026-04-21T16:16:55.038097Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6121257606737238481, trigger=click)\n2026-04-21T16:16:58.147630Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6121257606737238481, trigger=click)\n2026-04-21T16:16:58.309169Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6121257606737238481, trigger=click)\n2026-04-21T16:17:08.291905Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3868718810860276938, trigger=visual_change)\n2026-04-21T16:17:11.295917Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3868718810860276938, trigger=visual_change)\n2026-04-21T16:17:25.196969Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3868718810860276938, trigger=click)\n2026-04-21T16:17:27.953237Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-123373349137473243, trigger=click)\n2026-04-21T16:17:29.174531Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-123373349137473243, trigger=click)\n2026-04-21T16:17:59.859780Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3521802135830221118, trigger=click)\n2026-04-21T16:18:00.105716Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3521802135830221118, trigger=click)\n2026-04-21T16:18:00.947735Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3521802135830221118, trigger=click)\n2026-04-21T16:18:01.907213Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3521802135830221118, trigger=click)\n2026-04-21T16:18:02.272567Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3521802135830221118, trigger=click)\n2026-04-21T16:18:02.852516Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3521802135830221118, trigger=click)\n2026-04-21T16:18:08.344417Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3521802135830221118, trigger=click)\n2026-04-21T16:18:11.910412Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3521802135830221118, trigger=click)\n2026-04-21T16:18:19.125073Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3521802135830221118, trigger=click)\n2026-04-21T16:18:19.476214Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3521802135830221118, trigger=click)\n2026-04-21T16:18:20.504342Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3521802135830221118, trigger=visual_change)\n2026-04-21T16:19:13.172448Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=66 elapsed=3.711616209s\n2026-04-21T16:19:13.173007Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 66 eligible frames\n2026-04-21T16:19:15.229077Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 34 frames, 4.4MB → 0.5MB (8.8x), 34 JPEGs deleted\n2026-04-21T16:19:17.283566Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 6.2MB → 2.4MB (2.6x), 30 JPEGs deleted\n2026-04-21T16:21:43.978231Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:21:46.449363Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:21:47.010888Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:21:47.267688Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:21:48.266276Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:21:48.523318Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:21:49.578569Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:21:49.753862Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:21:50.593155Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:21:50.762539Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:21:52.220085Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:21:52.378200Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:21:53.544495Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:21:53.776243Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:21:55.479563Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:21:55.616256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:21:56.134887Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:21:56.376072Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:22:02.656872Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:22:03.509234Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2017155528422073121, trigger=visual_change)\n2026-04-21T16:22:05.023479Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:22:06.542978Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:22:08.044712Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2017155528422073121, trigger=visual_change)\n2026-04-21T16:22:08.340690Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:22:12.210747Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:22:12.423930Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:23:15.199698Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-30521469954674190, trigger=click)\n2026-04-21T16:23:15.354743Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-30521469954674190, trigger=click)\n2026-04-21T16:23:18.610038Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-30521469954674190, trigger=click)\n2026-04-21T16:23:21.130558Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-30521469954674190, trigger=visual_change)\n2026-04-21T16:24:18.871045Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=49 elapsed=1.535675291s\n2026-04-21T16:24:18.871172Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 49 eligible frames\n2026-04-21T16:24:20.557940Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 4.9MB → 2.0MB (2.4x), 23 JPEGs deleted\n2026-04-21T16:24:22.772790Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 5.0MB → 2.0MB (2.5x), 24 JPEGs deleted\n2026-04-21T16:24:39.491422Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=visual_change)\n2026-04-21T16:27:08.488294Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5087545351716304990, trigger=visual_change)\n2026-04-21T16:27:41.920414Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-686109667244869288, trigger=visual_change)\n2026-04-21T16:27:47.209691Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:27:48.325281Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:27:48.568437Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:27:51.265858Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=visual_change)\n2026-04-21T16:27:53.167123Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:27:53.333292Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:27:54.408256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=visual_change)\n2026-04-21T16:27:55.663421Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:27:56.020447Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:27:58.403599Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=visual_change)\n2026-04-21T16:27:59.132903Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:27:59.354436Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:28:00.026741Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:28:02.693849Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:28:03.000321Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:28:04.341119Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=visual_change)\n2026-04-21T16:28:04.600979Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:28:05.371674Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:28:05.692863Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:28:56.190858Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2535035496832215689, trigger=click)\n2026-04-21T16:29:25.624016Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=50 elapsed=2.842206042s\n2026-04-21T16:29:25.624819Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 50 eligible frames\n2026-04-21T16:29:27.556180Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.8MB → 1.1MB (5.5x), 25 JPEGs deleted\n2026-04-21T16:29:29.399803Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 4.7MB → 2.1MB (2.2x), 23 JPEGs deleted\n2026-04-21T16:30:44.161002Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8757469993753059500, trigger=click)\n2026-04-21T16:30:44.305286Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8757469993753059500, trigger=click)\n2026-04-21T16:31:32.916835Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7603519901961973104, trigger=click)\n2026-04-21T16:31:33.066629Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7603519901961973104, trigger=click)\n2026-04-21T16:31:54.062496Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2156736956977387025, trigger=click)\n2026-04-21T16:33:05.302686Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=665070061356436616, trigger=click)\n2026-04-21T16:33:05.429602Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=665070061356436616, trigger=click)\n2026-04-21T16:33:06.915467Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=665070061356436616, trigger=click)\n2026-04-21T16:33:07.095841Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=665070061356436616, trigger=click)\n2026-04-21T16:33:38.752838Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-225993066349542266, trigger=click)\n2026-04-21T16:34:32.128508Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=32 elapsed=2.71939625s\n2026-04-21T16:34:32.128621Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 32 eligible frames\n2026-04-21T16:34:33.230523Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.1MB → 0.6MB (5.1x), 17 JPEGs deleted\n2026-04-21T16:34:34.516567Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.7MB → 1.1MB (2.4x), 13 JPEGs deleted\n2026-04-21T16:36:49.435926Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4592186608403217716, trigger=click)\n2026-04-21T16:36:50.599109Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4592186608403217716, trigger=visual_change)\n2026-04-21T16:39:00.566828Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3077590213613135779, trigger=click)\n2026-04-21T16:39:00.685917Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3077590213613135779, trigger=click)\n2026-04-21T16:39:09.669053Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6113312556119042207, trigger=click)\n2026-04-21T16:39:28.954550Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=869328293033429183, trigger=click)\n2026-04-21T16:39:29.084826Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=869328293033429183, trigger=click)\n2026-04-21T16:39:31.752392Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4079194444055345358, trigger=click)\n2026-04-21T16:39:31.941130Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4079194444055345358, trigger=click)\n2026-04-21T16:39:37.082813Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=50 elapsed=2.555752875s\n2026-04-21T16:39:37.082914Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 50 eligible frames\n2026-04-21T16:39:39.896800Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.4MB → 0.9MB (4.9x), 24 JPEGs deleted\n2026-04-21T16:39:42.979598Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.6MB → 1.9MB (2.5x), 24 JPEGs deleted\n2026-04-21T16:39:54.138147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=869328293033429183, trigger=click)\n2026-04-21T16:41:34.967355Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:41:35.133385Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:43:15.919099Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8254246256813675665, trigger=click)\n2026-04-21T16:43:44.014066Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8254246256813675665, trigger=visual_change)\n2026-04-21T16:44:45.410923Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=35 elapsed=2.419201375s\n2026-04-21T16:44:45.411045Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 35 eligible frames\n2026-04-21T16:44:46.383629Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.8MB → 0.3MB (9.5x), 15 JPEGs deleted\n2026-04-21T16:44:47.792527Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.6MB → 0.8MB (4.3x), 18 JPEGs deleted\n2026-04-21T16:49:53.308820Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=47 elapsed=5.487768917s\n2026-04-21T16:49:53.309371Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 47 eligible frames\n2026-04-21T16:49:54.673701Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.9MB → 0.3MB (13.1x), 21 JPEGs deleted\n2026-04-21T16:49:56.314871Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.7MB → 1.2MB (4.0x), 24 JPEGs deleted\n2026-04-21T16:54:59.385017Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=62 elapsed=3.057419917s\n2026-04-21T16:54:59.385210Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 62 eligible frames\n2026-04-21T16:55:00.998239Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.8MB → 0.5MB (10.3x), 26 JPEGs deleted\n2026-04-21T16:55:03.739041Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 34 frames, 5.8MB → 2.6MB (2.2x), 34 JPEGs deleted\n2026-04-21T16:55:17.768634Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)\n2026-04-21T17:23:59.183039Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)\n2026-04-21T17:23:59.216966Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2\n2026-04-21T17:24:00.832399Z INFO screenpipe_engine::vision_manager::monitor_watcher: Monitor 2 disconnected, stopping recording\n2026-04-21T17:24:00.832464Z INFO screenpipe_engine::vision_manager::manager: Stopping vision recording for monitor 2\n2026-04-21T17:24:00.832336Z INFO sck_rs::stream_manager: stopped 2 persistent stream(s)\n2026-04-21T17:24:04.654209Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-21T17:24:30.699969Z ERROR screenpipe_engine::resource_monitor: Failed to send resource usage to PostHog: error sending request for url (https://us.i.posthog.com/capture/)\n2026-04-21T17:25:01.085383Z INFO screenpipe_engine::vision_manager::monitor_watcher: Monitor 2 reconnected, resuming recording\n2026-04-21T17:25:01.273818Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-21T17:25:01.273870Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-21T17:25:01.273896Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-21T17:25:02.310236Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-21T17:25:02.808234Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=66228, dur=365ms\n2026-04-21T17:25:04.889075Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:07.887565Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:10.918390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:14.039034Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:17.160521Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:26.096276Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:29.061270Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:32.067380Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:35.263701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:41.164753Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:44.239172Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:47.149320Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:50.242915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:53.308794Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:56.218138Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:59.144297Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:26:05.965946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:08.584110Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:11.350189Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:14.339609Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:17.398251Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:20.782119Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:23.385506Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:26.427626Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:29.573661Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:32.450744Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:38.464132Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:41.456915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:44.496278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:47.541313Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:50.596256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:53.597171Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:56.764522Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:59.751576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:02.719391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:08.829090Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:11.800601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:14.811724Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:17.855339Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:26.878741Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:29.933020Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:32.947216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:36.041239Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:38.993657Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:42.039373Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:45.172399Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:48.081804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:51.142939Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:54.169253Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:00.341347Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:03.322832Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:06.631198Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:09.537232Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:12.406113Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:15.381764Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:15.806839Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=44 elapsed=5.777403s\n2026-04-21T17:28:15.806951Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 44 eligible frames\n2026-04-21T17:28:17.108106Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.9MB → 0.3MB (13.1x), 21 JPEGs deleted\n2026-04-21T17:28:18.370832Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.6MB → 0.5MB (7.8x), 21 JPEGs deleted\n2026-04-21T17:28:18.461408Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:22.068097Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:24.604711Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:27.608060Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:33.774822Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:36.697278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:39.729251Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:42.728755Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:45.748204Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:48.768910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:51.814752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:54.970698Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:57.869874Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:00.913837Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:07.461529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:10.043928Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:13.182411Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:16.080133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:19.108570Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:22.322033Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:25.172666Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:28.398354Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:31.249083Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:34.289745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:40.303310Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:43.308015Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:46.360649Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:49.356069Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:52.450205Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:55.422975Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:58.446390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:01.491253Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:04.500380Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:16.830925Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:19.856895Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:23.100486Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:25.938910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:28.953603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:32.061536Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:35.030958Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:38.162895Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:41.148165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:44.019513Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:50.259576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:53.148070Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:56.309979Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:59.185610Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:02.278235Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:05.287341Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:08.409426Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:11.489977Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:14.319338Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:17.348153Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:23.351025Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:26.427529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:29.337254Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:32.386165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:35.653387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:38.430216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:41.428909Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:44.432459Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:47.448603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:50.432780Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:56.535727Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:59.590792Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:02.621444Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:05.627964Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:08.710139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:11.765247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:14.787638Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:17.876480Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)\n2026-04-21T17:32:20.977937Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)\n2026-04-21T17:32:29.888970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8116870867026519513, trigger=click)\n2026-04-21T17:32:33.123648Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)\n2026-04-21T17:33:03.355082Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)\n2026-04-21T17:33:05.517897Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=click)\n2026-04-21T17:33:06.399783Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)\n2026-04-21T17:33:09.478894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)\n2026-04-21T17:33:19.151217Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-21T17:33:21.431006Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6379516332769645744, trigger=visual_change)\n2026-04-21T17:33:33.494463Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7500553589467718193, trigger=visual_change)\n2026-04-21T17:34:00.725974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2275300387038012183, trigger=click)\n2026-04-21T17:34:07.214867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2063499064757931498, trigger=visual_change)\n2026-04-21T17:34:31.480257Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=visual_change)\n2026-04-21T17:34:34.482370Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=visual_change)\n2026-04-21T17:35:53.801549Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7652433743467416760, trigger=click)\n2026-04-21T17:35:53.954311Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7652433743467416760, trigger=click)\n2026-04-21T17:35:54.740695Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7652433743467416760, trigger=click)\n2026-04-21T17:36:06.295752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5335392039126841536, trigger=visual_change)\n2026-04-21T17:36:28.893337Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5927780310531960690, trigger=visual_change)\n2026-04-21T17:38:15.647110Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)\n2026-04-21T17:38:17.801901Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)\n2026-04-21T17:38:17.962831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)\n2026-04-21T17:38:22.819710Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7137414965816212018, trigger=click)\n2026-04-21T17:38:22.917176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=click)\n2026-04-21T17:38:23.042830Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=28 elapsed=3.882772625s\n2026-04-21T17:38:23.042920Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames\n2026-04-21T17:38:24.717251Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 2.8MB → 0.4MB (6.3x), 18 JPEGs deleted\n2026-04-21T17:38:26.727027Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.1MB → 0.2MB (5.7x), 10 JPEGs deleted\n2026-04-21T17:38:35.971287Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=click)\n2026-04-21T17:38:36.106246Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7137414965816212018, trigger=click)\n2026-04-21T17:38:37.368009Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=visual_change)\n2026-04-21T17:38:43.431620Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8741356672789266752, trigger=visual_change)\n2026-04-21T17:38:49.319886Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5149767057649118192, trigger=click)\n2026-04-21T17:38:49.477325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5149767057649118192, trigger=click)\n2026-04-21T17:38:51.019231Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5149767057649118192, trigger=visual_change)\n2026-04-21T17:39:04.249890Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7355944135161080033, trigger=click)\n2026-04-21T17:39:23.256256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4983811095206295613, trigger=click)\n2026-04-21T17:39:23.385820Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4983811095206295613, trigger=click)\n2026-04-21T17:39:24.367407Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4983811095206295613, trigger=visual_change)\n2026-04-21T17:39:24.895784Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4983811095206295613, trigger=click)\n2026-04-21T17:39:46.438272Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=372069959735326508, trigger=visual_change)\n2026-04-21T17:39:49.101085Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4964238948655865655, trigger=visual_change)\n2026-04-21T17:39:58.083750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)\n2026-04-21T17:40:01.375315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)\n2026-04-21T17:40:04.195859Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)\n2026-04-21T17:40:12.117004Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2989278587618621353, trigger=click)\n2026-04-21T17:40:12.244666Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2989278587618621353, trigger=click)\n2026-04-21T17:40:13.925024Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2989278587618621353, trigger=visual_change)\n2026-04-21T17:40:23.294147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=visual_change)\n2026-04-21T17:40:55.989498Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3182674559678505325, trigger=click)\n2026-04-21T17:40:58.413325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3182674559678505325, trigger=visual_change)\n2026-04-21T17:41:23.101094Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5616874458658671741, trigger=visual_change)\n2026-04-21T17:41:29.504783Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2744778324521007391, trigger=visual_change)\n2026-04-21T17:42:13.830352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6664909184667365933, trigger=click)\n2026-04-21T17:42:13.905614Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=click)\n2026-04-21T17:42:14.689622Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6664909184667365933, trigger=click)\n2026-04-21T17:43:13.738786Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5563100798252317961, trigger=visual_change)\n2026-04-21T17:43:31.769731Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=40 elapsed=4.870364084s\n2026-04-21T17:43:31.770321Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames\n2026-04-21T17:43:32.514133Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.1MB → 0.1MB (8.9x), 11 JPEGs deleted\n2026-04-21T17:43:34.391762Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 3.0MB → 0.5MB (5.9x), 27 JPEGs deleted\n2026-04-21T17:44:19.021163Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-263228306577803226, trigger=click)\n2026-04-21T17:44:32.036390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8360298266192684601, trigger=click)\n2026-04-21T17:44:33.859332Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8360298266192684601, trigger=visual_change)\n2026-04-21T17:44:42.936361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=visual_change)\n2026-04-21T17:44:46.420662Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=visual_change)\n2026-04-21T17:46:17.725934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7286082578618580481, trigger=click)\n2026-04-21T17:46:18.733766Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=click)\n2026-04-21T17:46:19.506484Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7286082578618580481, trigger=click)\n2026-04-21T17:46:20.729229Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=click)\n2026-04-21T17:46:27.956655Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8942982652250876029, trigger=click)\n2026-04-21T17:46:29.490950Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8942982652250876029, trigger=click)\n2026-04-21T17:46:45.634752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5761541209609855314, trigger=click)\n2026-04-21T17:46:45.971315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5761541209609855314, trigger=click)\n2026-04-21T17:46:50.988867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5607564885929685542, trigger=click)\n2026-04-21T17:46:51.601750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5607564885929685542, trigger=click)\n2026-04-21T17:46:56.353647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4497988824039212795, trigger=click)\n2026-04-21T17:47:24.716661Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4864885406063659925, trigger=visual_change)\n2026-04-21T17:47:29.793942Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:30.097043Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)\n2026-04-21T17:47:30.960214Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:32.707746Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)\n2026-04-21T17:47:36.181007Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:36.362574Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:37.093511Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:41.720206Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)\n2026-04-21T17:47:44.706704Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)\n2026-04-21T17:47:48.602580Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:48.776278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:52.582982Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5658848090639979218, trigger=click)\n2026-04-21T17:47:57.282103Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8902771592702756196, trigger=click)\n2026-04-21T17:48:06.880071Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8902771592702756196, trigger=click)\n2026-04-21T17:48:07.656377Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8902771592702756196, trigger=click)\n2026-04-21T17:48:23.785117Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:24.032602Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:26.587906Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:32.180582Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:48:34.022831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:34.363583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:39.363585Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=83 elapsed=4.983598708s\n2026-04-21T17:48:39.363733Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 83 eligible frames\n2026-04-21T17:48:41.479158Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 3.3MB → 0.2MB (17.7x), 31 JPEGs deleted\n2026-04-21T17:48:44.682560Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 50 frames, 6.5MB → 2.0MB (3.3x), 50 JPEGs deleted\n2026-04-21T17:48:53.828851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:48:56.563636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:48:59.291654Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:59.467275Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:00.295226Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:00.453357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:49:13.301518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:49:16.454207Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:49:16.837288Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:18.900202Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:19.229376Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:20.418502Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:20.706966Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:21.269855Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:22.896443Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:23.115745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:29.927553Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1234240076182081719, trigger=click)\n2026-04-21T17:49:40.567042Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1506528968255096811, trigger=click)\n2026-04-21T17:49:40.722412Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1506528968255096811, trigger=click)\n2026-04-21T17:49:44.790415Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1506528968255096811, trigger=visual_change)\n2026-04-21T17:49:44.983133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1506528968255096811, trigger=visual_change)\n2026-04-21T17:51:50.315220Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)\n2026-04-21T17:51:53.337571Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)\n2026-04-21T17:51:59.473328Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)\n2026-04-21T17:52:02.455277Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)\n2026-04-21T17:52:05.862297Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:52:07.729450Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:52:16.901254Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:52:29.702852Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:52:36.533775Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:39.599515Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:45.700237Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:48.638819Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:54.704399Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:57.751791Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:53:10.186965Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:53:46.867091Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=116 elapsed=2.178958s\n2026-04-21T17:53:46.867199Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 116 eligible frames\n2026-04-21T17:53:49.254310Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:53:50.410056Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 56 frames, 12.3MB → 3.7MB (3.3x), 56 JPEGs deleted\n2026-04-21T17:53:51.388237Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:53:53.983042Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 58 frames, 9.0MB → 2.6MB (3.5x), 58 JPEGs deleted\n2026-04-21T17:53:56.223709Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:25.250317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:54:25.727105Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:54:32.633019Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:33.984547Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:54:35.401305Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:35.511290Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:38.494935Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:38.630637Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:41.245537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:54:45.441966Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:54:50.148639Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:50.313941Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:51.769427Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:51.915582Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:58.755543Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:55:01.758776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:55:25.745659Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3428322026263856254, trigger=click)\n2026-04-21T17:55:27.298490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3428322026263856254, trigger=visual_change)\n2026-04-21T17:55:33.297808Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3428322026263856254, trigger=visual_change)\n2026-04-21T17:55:48.491529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7233070170495400552, trigger=visual_change)\n2026-04-21T17:55:49.809101Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7233070170495400552, trigger=visual_change)\n2026-04-21T17:55:54.025243Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7233070170495400552, trigger=click)\n2026-04-21T17:55:54.165626Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7233070170495400552, trigger=click)\n2026-04-21T17:55:58.086411Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1463712168180952345, trigger=visual_change)\n2026-04-21T17:56:04.943502Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7233070170495400552, trigger=visual_change)\n2026-04-21T17:57:22.021701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:23.588692Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:30.517012Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:31.818301Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:31.972732Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:40.727074Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:42.330179Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:42.494853Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:45.528669Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:46.132479Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:46.358876Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:58:36.946109Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6074307134448385817, trigger=visual_change)\n2026-04-21T17:58:57.225929Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=117 elapsed=3.2365965s\n2026-04-21T17:58:57.226687Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 117 eligible frames\n2026-04-21T17:59:01.078632Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 58 frames, 12.8MB → 4.3MB (3.0x), 58 JPEGs deleted\n2026-04-21T17:59:04.938676Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 57 frames, 10.8MB → 4.0MB (2.7x), 57 JPEGs deleted\n2026-04-21T18:00:27.589643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9170086261988994041, trigger=click)\n2026-04-21T18:00:28.469646Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9170086261988994041, trigger=visual_change)\n2026-04-21T18:00:37.318027Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=9170086261988994041, trigger=click)\n2026-04-21T18:00:42.194585Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=9170086261988994041, trigger=click)\n2026-04-21T18:00:42.367049Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9170086261988994041, trigger=click)\n2026-04-21T18:01:07.200973Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:08.642294Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:08.873831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=visual_change)\n2026-04-21T18:01:09.931490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:10.189484Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:11.594292Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=visual_change)\n2026-04-21T18:01:12.844254Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:13.095866Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:49.712611Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5610420548393517496, trigger=click)\n2026-04-21T18:01:49.878502Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5610420548393517496, trigger=click)\n2026-04-21T18:01:54.385999Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4075180225844497251, trigger=click)\n2026-04-21T18:02:03.320721Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:04.589973Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:06.402101Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:08.459207Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:17.915785Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:20.289378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:53.363091Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:59.854804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6485088808083200508, trigger=visual_change)\n2026-04-21T18:03:23.692602Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2923142241079919801, trigger=visual_change)\n2026-04-21T18:03:38.383745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:03:38.666324Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:03:40.611795Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:03:46.691879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:03:49.696169Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:03:58.796193Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:10.455866Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=65 elapsed=5.507644708s\n2026-04-21T18:04:10.456994Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 65 eligible frames\n2026-04-21T18:04:10.784720Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:12.979583Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 8.1MB → 3.1MB (2.6x), 36 JPEGs deleted\n2026-04-21T18:04:13.808201Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:15.311040Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 5.7MB → 2.1MB (2.7x), 27 JPEGs deleted\n2026-04-21T18:04:22.870405Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:25.858949Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:47.178867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:47.409147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:48.621959Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:48.823996Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:49.613197Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:49.840589Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:54.113636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:54.333250Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:56.158603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:56.345340Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:24.653256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2923142241079919801, trigger=visual_change)\n2026-04-21T18:05:27.506644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2923142241079919801, trigger=visual_change)\n2026-04-21T18:05:52.127185Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:52.385537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:54.464579Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:54.740600Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:06:01.884193Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:06:04.917243Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:06:15.788550Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:06:16.090123Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:06:17.179267Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:07:04.992532Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:08.003078Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:17.121489Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:17.302355Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:27.025619Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:29.771279Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:31.137970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:36.086848Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:36.306717Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:37.369851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:37.634865Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:38.805129Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:39.104738Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:40.060624Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)","depth":4,"value":"2026-04-21T15:17:49.549473Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3869963790957274395, trigger=click)\n2026-04-21T15:17:50.408526Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3869963790957274395, trigger=visual_change)\n2026-04-21T15:17:51.367993Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3869963790957274395, trigger=click)\n2026-04-21T15:17:51.658544Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3869963790957274395, trigger=click)\n2026-04-21T15:17:59.512794Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2138257446817006938, trigger=click)\n2026-04-21T15:17:59.630806Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2138257446817006938, trigger=click)\n2026-04-21T15:18:02.612463Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2138257446817006938, trigger=visual_change)\n2026-04-21T15:18:05.031295Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2138257446817006938, trigger=click)\n2026-04-21T15:18:05.949953Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2138257446817006938, trigger=visual_change)\n2026-04-21T15:18:07.005054Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2138257446817006938, trigger=click)\n2026-04-21T15:18:07.240048Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2138257446817006938, trigger=click)\n2026-04-21T15:18:08.321397Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2138257446817006938, trigger=click)\n2026-04-21T15:18:09.330989Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2138257446817006938, trigger=click)\n2026-04-21T15:18:16.198885Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4512592763947671045, trigger=click)\n2026-04-21T15:18:25.174657Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2138257446817006938, trigger=visual_change)\n2026-04-21T15:18:25.979747Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2138257446817006938, trigger=click)\n2026-04-21T15:18:26.174344Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2138257446817006938, trigger=click)\n2026-04-21T15:18:27.329517Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2138257446817006938, trigger=click)\n2026-04-21T15:18:27.442331Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2138257446817006938, trigger=click)\n2026-04-21T15:18:34.134351Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2138257446817006938, trigger=visual_change)\n2026-04-21T15:18:34.454235Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2138257446817006938, trigger=click)\n2026-04-21T15:19:23.799546Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2134448310261037766, trigger=visual_change)\n2026-04-21T15:19:35.195461Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2134448310261037766, trigger=visual_change)\n2026-04-21T15:19:36.616914Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2134448310261037766, trigger=visual_change)\n2026-04-21T15:19:43.812610Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:19:46.459367Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:19:51.103859Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:19:51.961944Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:19:52.167527Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:19:56.622639Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:19:56.728247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:20:02.598979Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:20:02.924826Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:20:05.668202Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:20:11.789308Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:20:14.756464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:20:20.882925Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:20:38.171496Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:20:41.202478Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:20:41.928948Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:20:48.058419Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:20:51.039890Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:22:03.799949Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:22:13.010196Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:22:19.940721Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=36 elapsed=1.206931458s\n2026-04-21T15:22:19.940942Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 36 eligible frames\n2026-04-21T15:22:21.367797Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 3.8MB → 1.6MB (2.4x), 15 JPEGs deleted\n2026-04-21T15:22:22.862852Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 4.4MB → 1.3MB (3.3x), 19 JPEGs deleted\n2026-04-21T15:22:28.040013Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:22:31.043424Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:22:37.137451Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:22:40.189158Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:22:46.342577Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:22:52.360301Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:22:55.361962Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:23:01.361462Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:23:04.429481Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:24:03.316425Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8540343042990809979, trigger=visual_change)\n2026-04-21T15:24:09.357754Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8540343042990809979, trigger=visual_change)\n2026-04-21T15:24:17.045608Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-357712155289738757, trigger=click)\n2026-04-21T15:24:17.229938Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-357712155289738757, trigger=click)\n2026-04-21T15:24:39.299106Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2318587192590272303, trigger=click)\n2026-04-21T15:24:39.503939Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2318587192590272303, trigger=click)\n2026-04-21T15:24:40.703200Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2318587192590272303, trigger=visual_change)\n2026-04-21T15:25:20.207959Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-115592740355774573, trigger=visual_change)\n2026-04-21T15:25:34.045255Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5357895394186669836, trigger=visual_change)\n2026-04-21T15:25:34.611160Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5357895394186669836, trigger=click)\n2026-04-21T15:25:37.799744Z WARN sqlx::query: summary=\"COMMIT\" db.statement=\"\" rows_affected=1 rows_returned=0 elapsed=1.72370025s\n2026-04-21T15:25:37.956786Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5357895394186669836, trigger=click)\n2026-04-21T15:25:38.065798Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5357895394186669836, trigger=click)\n2026-04-21T15:27:27.008772Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=46 elapsed=4.119326709s\n2026-04-21T15:27:27.008926Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 46 eligible frames\n2026-04-21T15:27:28.808464Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 4.8MB → 2.5MB (1.9x), 19 JPEGs deleted\n2026-04-21T15:27:29.051101Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=525296185995483322, trigger=visual_change)\n2026-04-21T15:27:30.940888Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.6MB → 2.0MB (2.3x), 25 JPEGs deleted\n2026-04-21T15:27:38.326692Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=525296185995483322, trigger=visual_change)\n2026-04-21T15:27:46.472144Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2318587192590272303, trigger=click)\n2026-04-21T15:27:53.687585Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:27:53.821391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:27:56.568366Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:30:07.617208Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7345067017169779372, trigger=visual_change)\n2026-04-21T15:30:35.626228Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:30:38.496521Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:30:47.627510Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:30:50.578236Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:30:50.726770Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:30:56.653721Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:31:02.747003Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:31:05.748607Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:31:17.869430Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:31:20.951104Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:31:26.942644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:31:30.113620Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:31:31.259291Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:31:31.514010Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:31:33.767000Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:31:33.920466Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:31:35.506530Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:31:35.685079Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:31:36.710558Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:31:36.953539Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:31:38.451284Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:31:38.659646Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:31:41.384919Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:32:26.999680Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:32:29.990647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:32:36.791142Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=59 elapsed=5.839242958s\n2026-04-21T15:32:36.791363Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 59 eligible frames\n2026-04-21T15:32:39.153877Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 8.5MB → 3.9MB (2.2x), 31 JPEGs deleted\n2026-04-21T15:32:43.055663Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.3MB → 2.2MB (2.0x), 26 JPEGs deleted\n2026-04-21T15:33:58.964559Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=click)\n2026-04-21T15:34:01.370038Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:34:16.496030Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:34:19.493349Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:35:07.898889Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:35:16.972268Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:35:20.035784Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:35:26.049636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:35:32.118199Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:35:35.122849Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:35:44.214841Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:35:47.232611Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:35:53.252836Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:35:56.262473Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:36:03.912825Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=32684078525934003, trigger=click)\n2026-04-21T15:36:04.039319Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=click)\n2026-04-21T15:36:06.889882Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=click)\n2026-04-21T15:36:17.457615Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:36:27.555065Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1505193671044774267, trigger=click)\n2026-04-21T15:36:42.607815Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2864109645901807081, trigger=click)\n2026-04-21T15:37:44.772586Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=69 elapsed=1.703329916s\n2026-04-21T15:37:44.772693Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 69 eligible frames\n2026-04-21T15:37:47.061751Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 8.3MB → 4.1MB (2.0x), 32 JPEGs deleted\n2026-04-21T15:37:49.263118Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 35 frames, 4.9MB → 1.5MB (3.3x), 35 JPEGs deleted\n2026-04-21T15:38:48.339863Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7345067017169779372, trigger=visual_change)\n2026-04-21T15:39:04.763572Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4843719893880893793, trigger=visual_change)\n2026-04-21T15:40:05.496361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:40:29.591282Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:41:16.164160Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2900812915277822723, trigger=click)\n2026-04-21T15:41:23.661891Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:41:26.703461Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:41:32.781037Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:41:35.789883Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:41:41.811272Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:41:44.919455Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:42:05.404072Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5004276282384800505, trigger=click)\n2026-04-21T15:42:06.660073Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5004276282384800505, trigger=visual_change)\n2026-04-21T15:42:21.721735Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5004276282384800505, trigger=visual_change)\n2026-04-21T15:42:24.767284Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5004276282384800505, trigger=visual_change)\n2026-04-21T15:42:30.886797Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5004276282384800505, trigger=visual_change)\n2026-04-21T15:42:32.353284Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5004276282384800505, trigger=click)\n2026-04-21T15:42:53.342750Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=52 elapsed=4.068091375s\n2026-04-21T15:42:53.343209Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 52 eligible frames\n2026-04-21T15:43:00.350701Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 7.7MB → 3.8MB (2.0x), 32 JPEGs deleted\n2026-04-21T15:43:04.665303Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.0MB → 1.4MB (2.2x), 18 JPEGs deleted\n2026-04-21T15:43:34.607312Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=853482337029112184, trigger=click)\n2026-04-21T15:43:34.872392Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=853482337029112184, trigger=click)\n2026-04-21T15:43:35.899763Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=853482337029112184, trigger=click)\n2026-04-21T15:43:48.406088Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=853482337029112184, trigger=click)\n2026-04-21T15:43:48.585014Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=853482337029112184, trigger=click)\n2026-04-21T15:43:50.163180Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=853482337029112184, trigger=click)\n2026-04-21T15:43:50.385739Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=853482337029112184, trigger=click)\n2026-04-21T15:43:53.195867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=853482337029112184, trigger=click)\n2026-04-21T15:44:13.974997Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7638600394188067596, trigger=click)\n2026-04-21T15:45:09.004346Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1645333894657549955, trigger=visual_change)\n2026-04-21T15:45:25.499345Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3128527177503635561, trigger=click)\n2026-04-21T15:45:26.508782Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3128527177503635561, trigger=visual_change)\n2026-04-21T15:45:29.578474Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3128527177503635561, trigger=visual_change)\n2026-04-21T15:45:33.069643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3128527177503635561, trigger=visual_change)\n2026-04-21T15:45:35.154439Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3128527177503635561, trigger=click)\n2026-04-21T15:45:50.867873Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:45:51.543329Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=click)\n2026-04-21T15:45:51.688145Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=click)\n2026-04-21T15:45:56.968268Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:45:59.992989Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:46:15.190380Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:46:21.349140Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:46:24.108646Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=click)\n2026-04-21T15:46:24.239949Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=click)\n2026-04-21T15:46:31.011607Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:46:34.038038Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:46:40.140459Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:46:43.202999Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:46:49.666830Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=click)\n2026-04-21T15:46:52.233599Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:46:52.919343Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=click)\n2026-04-21T15:47:01.421995Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:47:04.387592Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:47:13.219366Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=click)\n2026-04-21T15:47:14.410197Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=click)\n2026-04-21T15:47:14.555427Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:47:47.182774Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-926939256350628341, trigger=click)\n2026-04-21T15:47:47.313085Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-926939256350628341, trigger=click)\n2026-04-21T15:47:51.007142Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-926939256350628341, trigger=visual_change)\n2026-04-21T15:47:57.147902Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=click)\n2026-04-21T15:47:57.339006Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:47:58.246964Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:48:10.859817Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=60 elapsed=6.154614084s\n2026-04-21T15:48:10.860968Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 60 eligible frames\n2026-04-21T15:48:12.865127Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 3.8MB → 0.4MB (8.5x), 29 JPEGs deleted\n2026-04-21T15:48:15.453116Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 5.3MB → 1.9MB (2.8x), 29 JPEGs deleted\n2026-04-21T15:48:47.469195Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1918324922935553040, trigger=visual_change)\n2026-04-21T15:49:03.828434Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1918324922935553040, trigger=visual_change)\n2026-04-21T15:49:32.798887Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6658269488663706414, trigger=click)\n2026-04-21T15:50:07.795304Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:50:22.939421Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6692792019664876292, trigger=visual_change)\n2026-04-21T15:51:11.513005Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9198264877289985337, trigger=visual_change)\n2026-04-21T15:51:22.759879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9198264877289985337, trigger=click)\n2026-04-21T15:52:06.151994Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2061546572815694422, trigger=visual_change)\n2026-04-21T15:52:10.101525Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2061546572815694422, trigger=visual_change)\n2026-04-21T15:52:10.447385Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2061546572815694422, trigger=click)\n2026-04-21T15:52:17.973740Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2061546572815694422, trigger=visual_change)\n2026-04-21T15:52:27.034549Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6654491695696088287, trigger=visual_change)\n2026-04-21T15:52:34.865867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=click)\n2026-04-21T15:52:37.002754Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:52:37.758891Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=click)\n2026-04-21T15:52:37.903061Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=click)\n2026-04-21T15:52:58.490245Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2319943303696444798, trigger=click)\n2026-04-21T15:52:58.636967Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2319943303696444798, trigger=click)\n2026-04-21T15:53:05.413509Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=click)\n2026-04-21T15:53:05.635434Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=click)\n2026-04-21T15:53:14.450507Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:53:16.412940Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 56 eligible frames\n2026-04-21T15:53:17.458900Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:53:18.382936Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 3.9MB → 0.4MB (10.1x), 30 JPEGs deleted\n2026-04-21T15:53:20.404928Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 5.2MB → 2.5MB (2.1x), 24 JPEGs deleted\n2026-04-21T15:53:29.578611Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:53:32.631242Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:53:43.980351Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=click)\n2026-04-21T15:53:45.448681Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:53:45.981861Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:53:51.490843Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:53:54.503801Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:54:00.554133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:54:03.594215Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:54:12.603968Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:54:18.363794Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=click)\n2026-04-21T15:54:18.534215Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=click)\n2026-04-21T15:54:45.841588Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1261864652156529447, trigger=click)\n2026-04-21T15:54:46.025388Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1261864652156529447, trigger=click)\n2026-04-21T15:54:49.896744Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1261864652156529447, trigger=visual_change)\n2026-04-21T15:54:56.016125Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1261864652156529447, trigger=visual_change)\n2026-04-21T15:54:59.114088Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1261864652156529447, trigger=visual_change)\n2026-04-21T15:55:00.284632Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1261864652156529447, trigger=click)\n2026-04-21T15:55:00.406838Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1261864652156529447, trigger=click)\n2026-04-21T15:55:02.079710Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1261864652156529447, trigger=click)\n2026-04-21T15:55:02.308488Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1261864652156529447, trigger=click)\n2026-04-21T15:55:17.433420Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1236411717024251211, trigger=click)\n2026-04-21T15:55:22.382212Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3575572948672507206, trigger=visual_change)\n2026-04-21T15:55:33.553348Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3575572948672507206, trigger=click)\n2026-04-21T15:55:33.725630Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3575572948672507206, trigger=click)\n2026-04-21T15:55:36.499986Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3575572948672507206, trigger=click)\n2026-04-21T15:55:36.647384Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3575572948672507206, trigger=visual_change)\n2026-04-21T15:55:38.675147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3575572948672507206, trigger=click)\n2026-04-21T15:55:38.953368Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3575572948672507206, trigger=click)\n2026-04-21T15:55:49.727745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1928477198450198789, trigger=click)\n2026-04-21T15:55:51.600613Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1928477198450198789, trigger=visual_change)\n2026-04-21T15:55:58.958653Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6305115209475227780, trigger=click)\n2026-04-21T15:56:10.814040Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2683270687017607806, trigger=click)\n2026-04-21T15:56:23.872451Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8011254159114411036, trigger=visual_change)\n2026-04-21T15:56:24.893455Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8011254159114411036, trigger=visual_change)\n2026-04-21T15:56:38.964984Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2061546572815694422, trigger=click)\n2026-04-21T15:57:05.134874Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8011254159114411036, trigger=visual_change)\n2026-04-21T15:57:05.481118Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8011254159114411036, trigger=click)\n2026-04-21T15:57:06.604281Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8011254159114411036, trigger=click)\n2026-04-21T15:57:06.770499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8011254159114411036, trigger=click)\n2026-04-21T15:57:07.327121Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8011254159114411036, trigger=click)\n2026-04-21T15:57:12.184374Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8011254159114411036, trigger=visual_change)\n2026-04-21T15:57:17.777283Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8011254159114411036, trigger=click)\n2026-04-21T15:57:17.883656Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8011254159114411036, trigger=click)\n2026-04-21T15:58:03.328237Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2061546572815694422, trigger=visual_change)\n2026-04-21T15:58:04.873241Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2061546572815694422, trigger=click)\n2026-04-21T15:58:05.083940Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2061546572815694422, trigger=click)\n2026-04-21T15:58:25.172235Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=69 elapsed=4.754634416s\n2026-04-21T15:58:25.172952Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 69 eligible frames\n2026-04-21T15:58:27.752106Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 5.0MB → 0.7MB (7.7x), 39 JPEGs deleted\n2026-04-21T15:58:28.844185Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1714600494192977193, trigger=click)\n2026-04-21T15:58:30.120472Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 6.0MB → 2.7MB (2.2x), 28 JPEGs deleted\n2026-04-21T15:59:45.857732Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2993864580543626498, trigger=click)\n2026-04-21T15:59:47.242506Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2993864580543626498, trigger=visual_change)\n2026-04-21T15:59:49.794356Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2993864580543626498, trigger=click)\n2026-04-21T15:59:49.900792Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2993864580543626498, trigger=click)\n2026-04-21T16:00:06.761409Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3195608759585503031, trigger=visual_change)\n2026-04-21T16:00:13.468752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2319222304555239268, trigger=click)\n2026-04-21T16:00:17.757305Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5732830672832053181, trigger=click)\n2026-04-21T16:00:17.870684Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5732830672832053181, trigger=click)\n2026-04-21T16:01:48.777919Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2131760867504785678, trigger=visual_change)\n2026-04-21T16:01:51.903624Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2131760867504785678, trigger=visual_change)\n2026-04-21T16:02:01.343178Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4025239947511295773, trigger=visual_change)\n2026-04-21T16:02:02.388155Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4025239947511295773, trigger=visual_change)\n2026-04-21T16:02:10.799801Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3195608759585503031, trigger=click)\n2026-04-21T16:02:15.237578Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3195608759585503031, trigger=click)\n2026-04-21T16:02:15.453443Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3195608759585503031, trigger=click)\n2026-04-21T16:02:17.716070Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3195608759585503031, trigger=visual_change)\n2026-04-21T16:02:26.881689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=click)\n2026-04-21T16:02:27.030824Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1116166152131308044, trigger=click)\n2026-04-21T16:02:31.513617Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1116166152131308044, trigger=visual_change)\n2026-04-21T16:02:42.461634Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=click)\n2026-04-21T16:02:42.710546Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1116166152131308044, trigger=click)\n2026-04-21T16:02:46.369193Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=visual_change)\n2026-04-21T16:02:52.431259Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=visual_change)\n2026-04-21T16:02:52.856920Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1116166152131308044, trigger=click)\n2026-04-21T16:02:55.643958Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=visual_change)\n2026-04-21T16:02:56.549511Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1116166152131308044, trigger=visual_change)\n2026-04-21T16:02:59.878468Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=click)\n2026-04-21T16:03:00.026944Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1116166152131308044, trigger=click)\n2026-04-21T16:03:00.966506Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=click)\n2026-04-21T16:03:14.972630Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=visual_change)\n2026-04-21T16:03:19.566899Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4025239947511295773, trigger=click)\n2026-04-21T16:03:19.671409Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4025239947511295773, trigger=visual_change)\n2026-04-21T16:03:20.454813Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4025239947511295773, trigger=click)\n2026-04-21T16:03:20.540316Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4025239947511295773, trigger=click)\n2026-04-21T16:03:22.683211Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4025239947511295773, trigger=visual_change)\n2026-04-21T16:03:36.139204Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=63 elapsed=6.008212292s\n2026-04-21T16:03:36.139322Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 63 eligible frames\n2026-04-21T16:03:37.473231Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1116166152131308044, trigger=click)\n2026-04-21T16:03:37.595185Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=click)\n2026-04-21T16:03:38.391239Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 4.1MB → 0.4MB (10.0x), 32 JPEGs deleted\n2026-04-21T16:03:40.661697Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 5.4MB → 2.3MB (2.3x), 29 JPEGs deleted\n2026-04-21T16:03:48.609749Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1116166152131308044, trigger=click)\n2026-04-21T16:03:48.744925Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=visual_change)\n2026-04-21T16:03:50.472701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1116166152131308044, trigger=visual_change)\n2026-04-21T16:03:51.569212Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=visual_change)\n2026-04-21T16:03:57.568165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=visual_change)\n2026-04-21T16:03:58.491291Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1116166152131308044, trigger=click)\n2026-04-21T16:03:58.627085Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=click)\n2026-04-21T16:04:02.611784Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1116166152131308044, trigger=visual_change)\n2026-04-21T16:04:12.375564Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1116166152131308044, trigger=visual_change)\n2026-04-21T16:04:12.929157Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=click)\n2026-04-21T16:04:30.915793Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=click)\n2026-04-21T16:04:57.195529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1116166152131308044, trigger=visual_change)\n2026-04-21T16:04:58.079114Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1116166152131308044, trigger=click)\n2026-04-21T16:04:58.230204Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=click)\n2026-04-21T16:05:12.566561Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1116166152131308044, trigger=visual_change)\n2026-04-21T16:05:12.855158Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=visual_change)\n2026-04-21T16:05:21.636677Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=visual_change)\n2026-04-21T16:05:24.926399Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=visual_change)\n2026-04-21T16:06:04.116239Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=visual_change)\n2026-04-21T16:06:24.678633Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2452943073484325532, trigger=click)\n2026-04-21T16:06:26.740732Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2452943073484325532, trigger=click)\n2026-04-21T16:06:26.894232Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2452943073484325532, trigger=click)\n2026-04-21T16:08:29.709550Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2784622108492791959, trigger=click)\n2026-04-21T16:08:30.471514Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2784622108492791959, trigger=visual_change)\n2026-04-21T16:08:36.029304Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=75691378564349849, trigger=visual_change)\n2026-04-21T16:08:37.823497Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=75691378564349849, trigger=visual_change)\n2026-04-21T16:08:47.835475Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=88 elapsed=7.182833s\n2026-04-21T16:08:47.836310Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 88 eligible frames\n2026-04-21T16:08:51.474399Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 46 frames, 5.9MB → 0.6MB (9.3x), 46 JPEGs deleted\n2026-04-21T16:08:56.880858Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 40 frames, 8.0MB → 3.5MB (2.3x), 40 JPEGs deleted\n2026-04-21T16:09:11.404363Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5560866901432731747, trigger=visual_change)\n2026-04-21T16:09:19.521573Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5218742967738517410, trigger=visual_change)\n2026-04-21T16:09:23.451591Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5218742967738517410, trigger=visual_change)\n2026-04-21T16:09:24.600660Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5218742967738517410, trigger=click)\n2026-04-21T16:09:24.813137Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5218742967738517410, trigger=click)\n2026-04-21T16:09:25.334988Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5218742967738517410, trigger=click)\n2026-04-21T16:09:53.757232Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8889319479238815843, trigger=click)\n2026-04-21T16:09:53.883019Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8889319479238815843, trigger=click)\n2026-04-21T16:09:56.453132Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8889319479238815843, trigger=visual_change)\n2026-04-21T16:09:57.689649Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8889319479238815843, trigger=visual_change)\n2026-04-21T16:09:58.297586Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8889319479238815843, trigger=click)\n2026-04-21T16:10:01.890864Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3521802135830221118, trigger=click)\n2026-04-21T16:10:02.099325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3521802135830221118, trigger=click)\n2026-04-21T16:10:06.032086Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3521802135830221118, trigger=visual_change)\n2026-04-21T16:10:09.704587Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=941395574046373634, trigger=visual_change)\n2026-04-21T16:10:12.783946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4616958244172810633, trigger=visual_change)\n2026-04-21T16:12:49.952858Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-123373349137473243, trigger=click)\n2026-04-21T16:12:50.087991Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-123373349137473243, trigger=click)\n2026-04-21T16:12:53.090814Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-123373349137473243, trigger=click)\n2026-04-21T16:12:53.225701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-123373349137473243, trigger=click)\n2026-04-21T16:12:54.436555Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-123373349137473243, trigger=click)\n2026-04-21T16:12:54.587230Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-123373349137473243, trigger=click)\n2026-04-21T16:12:59.666599Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-123373349137473243, trigger=click)\n2026-04-21T16:12:59.849594Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-123373349137473243, trigger=click)\n2026-04-21T16:13:01.462042Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-123373349137473243, trigger=visual_change)\n2026-04-21T16:13:17.704686Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-123373349137473243, trigger=click)\n2026-04-21T16:13:17.881020Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-123373349137473243, trigger=click)\n2026-04-21T16:13:25.121719Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-123373349137473243, trigger=click)\n2026-04-21T16:13:29.059212Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1980321148661859128, trigger=visual_change)\n2026-04-21T16:13:29.901114Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1980321148661859128, trigger=click)\n2026-04-21T16:13:30.107373Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1980321148661859128, trigger=click)\n2026-04-21T16:13:34.114790Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1980321148661859128, trigger=click)\n2026-04-21T16:13:34.287663Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1980321148661859128, trigger=click)\n2026-04-21T16:13:58.094458Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1980321148661859128, trigger=click)\n2026-04-21T16:14:03.164207Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=87 elapsed=6.263532125s\n2026-04-21T16:14:03.164392Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 87 eligible frames\n2026-04-21T16:14:05.747863Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 38 frames, 4.9MB → 0.7MB (6.9x), 38 JPEGs deleted\n2026-04-21T16:14:09.450248Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 47 frames, 7.2MB → 2.4MB (3.0x), 47 JPEGs deleted\n2026-04-21T16:14:09.494731Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1980321148661859128, trigger=click)\n2026-04-21T16:14:30.037778Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1980321148661859128, trigger=click)\n2026-04-21T16:14:32.515759Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1980321148661859128, trigger=visual_change)\n2026-04-21T16:14:35.314711Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1980321148661859128, trigger=click)\n2026-04-21T16:14:35.507419Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1980321148661859128, trigger=click)\n2026-04-21T16:14:39.332082Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1980321148661859128, trigger=visual_change)\n2026-04-21T16:15:16.219018Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4023789962951736249, trigger=click)\n2026-04-21T16:15:46.847760Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4029553059536117170, trigger=click)\n2026-04-21T16:15:47.086575Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4029553059536117170, trigger=click)\n2026-04-21T16:15:49.652277Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4029553059536117170, trigger=click)\n2026-04-21T16:15:49.811262Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4029553059536117170, trigger=click)\n2026-04-21T16:15:59.825614Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4029553059536117170, trigger=visual_change)\n2026-04-21T16:16:06.513537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4029553059536117170, trigger=click)\n2026-04-21T16:16:06.745111Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4029553059536117170, trigger=click)\n2026-04-21T16:16:08.901255Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4029553059536117170, trigger=visual_change)\n2026-04-21T16:16:10.268255Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4029553059536117170, trigger=click)\n2026-04-21T16:16:10.422562Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4029553059536117170, trigger=click)\n2026-04-21T16:16:16.344421Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3658909392690979501, trigger=click)\n2026-04-21T16:16:16.525379Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3658909392690979501, trigger=click)\n2026-04-21T16:16:27.262509Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3658909392690979501, trigger=visual_change)\n2026-04-21T16:16:30.098307Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3658909392690979501, trigger=visual_change)\n2026-04-21T16:16:33.063533Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3658909392690979501, trigger=visual_change)\n2026-04-21T16:16:36.082624Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3658909392690979501, trigger=visual_change)\n2026-04-21T16:16:43.249986Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=718360199604596957, trigger=visual_change)\n2026-04-21T16:16:45.281138Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=718360199604596957, trigger=click)\n2026-04-21T16:16:45.431571Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=718360199604596957, trigger=click)\n2026-04-21T16:16:46.085204Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=718360199604596957, trigger=click)\n2026-04-21T16:16:46.339290Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=718360199604596957, trigger=click)\n2026-04-21T16:16:54.878246Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6121257606737238481, trigger=click)\n2026-04-21T16:16:55.038097Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6121257606737238481, trigger=click)\n2026-04-21T16:16:58.147630Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6121257606737238481, trigger=click)\n2026-04-21T16:16:58.309169Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6121257606737238481, trigger=click)\n2026-04-21T16:17:08.291905Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3868718810860276938, trigger=visual_change)\n2026-04-21T16:17:11.295917Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3868718810860276938, trigger=visual_change)\n2026-04-21T16:17:25.196969Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3868718810860276938, trigger=click)\n2026-04-21T16:17:27.953237Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-123373349137473243, trigger=click)\n2026-04-21T16:17:29.174531Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-123373349137473243, trigger=click)\n2026-04-21T16:17:59.859780Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3521802135830221118, trigger=click)\n2026-04-21T16:18:00.105716Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3521802135830221118, trigger=click)\n2026-04-21T16:18:00.947735Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3521802135830221118, trigger=click)\n2026-04-21T16:18:01.907213Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3521802135830221118, trigger=click)\n2026-04-21T16:18:02.272567Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3521802135830221118, trigger=click)\n2026-04-21T16:18:02.852516Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3521802135830221118, trigger=click)\n2026-04-21T16:18:08.344417Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3521802135830221118, trigger=click)\n2026-04-21T16:18:11.910412Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3521802135830221118, trigger=click)\n2026-04-21T16:18:19.125073Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3521802135830221118, trigger=click)\n2026-04-21T16:18:19.476214Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3521802135830221118, trigger=click)\n2026-04-21T16:18:20.504342Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3521802135830221118, trigger=visual_change)\n2026-04-21T16:19:13.172448Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=66 elapsed=3.711616209s\n2026-04-21T16:19:13.173007Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 66 eligible frames\n2026-04-21T16:19:15.229077Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 34 frames, 4.4MB → 0.5MB (8.8x), 34 JPEGs deleted\n2026-04-21T16:19:17.283566Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 6.2MB → 2.4MB (2.6x), 30 JPEGs deleted\n2026-04-21T16:21:43.978231Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:21:46.449363Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:21:47.010888Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:21:47.267688Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:21:48.266276Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:21:48.523318Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:21:49.578569Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:21:49.753862Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:21:50.593155Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:21:50.762539Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:21:52.220085Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:21:52.378200Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:21:53.544495Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:21:53.776243Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:21:55.479563Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:21:55.616256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:21:56.134887Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:21:56.376072Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:22:02.656872Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:22:03.509234Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2017155528422073121, trigger=visual_change)\n2026-04-21T16:22:05.023479Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:22:06.542978Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:22:08.044712Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2017155528422073121, trigger=visual_change)\n2026-04-21T16:22:08.340690Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:22:12.210747Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:22:12.423930Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:23:15.199698Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-30521469954674190, trigger=click)\n2026-04-21T16:23:15.354743Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-30521469954674190, trigger=click)\n2026-04-21T16:23:18.610038Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-30521469954674190, trigger=click)\n2026-04-21T16:23:21.130558Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-30521469954674190, trigger=visual_change)\n2026-04-21T16:24:18.871045Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=49 elapsed=1.535675291s\n2026-04-21T16:24:18.871172Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 49 eligible frames\n2026-04-21T16:24:20.557940Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 4.9MB → 2.0MB (2.4x), 23 JPEGs deleted\n2026-04-21T16:24:22.772790Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 5.0MB → 2.0MB (2.5x), 24 JPEGs deleted\n2026-04-21T16:24:39.491422Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=visual_change)\n2026-04-21T16:27:08.488294Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5087545351716304990, trigger=visual_change)\n2026-04-21T16:27:41.920414Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-686109667244869288, trigger=visual_change)\n2026-04-21T16:27:47.209691Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:27:48.325281Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:27:48.568437Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:27:51.265858Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=visual_change)\n2026-04-21T16:27:53.167123Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:27:53.333292Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:27:54.408256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=visual_change)\n2026-04-21T16:27:55.663421Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:27:56.020447Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:27:58.403599Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=visual_change)\n2026-04-21T16:27:59.132903Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:27:59.354436Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:28:00.026741Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:28:02.693849Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:28:03.000321Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:28:04.341119Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=visual_change)\n2026-04-21T16:28:04.600979Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:28:05.371674Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:28:05.692863Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:28:56.190858Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2535035496832215689, trigger=click)\n2026-04-21T16:29:25.624016Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=50 elapsed=2.842206042s\n2026-04-21T16:29:25.624819Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 50 eligible frames\n2026-04-21T16:29:27.556180Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.8MB → 1.1MB (5.5x), 25 JPEGs deleted\n2026-04-21T16:29:29.399803Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 4.7MB → 2.1MB (2.2x), 23 JPEGs deleted\n2026-04-21T16:30:44.161002Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8757469993753059500, trigger=click)\n2026-04-21T16:30:44.305286Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8757469993753059500, trigger=click)\n2026-04-21T16:31:32.916835Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7603519901961973104, trigger=click)\n2026-04-21T16:31:33.066629Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7603519901961973104, trigger=click)\n2026-04-21T16:31:54.062496Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2156736956977387025, trigger=click)\n2026-04-21T16:33:05.302686Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=665070061356436616, trigger=click)\n2026-04-21T16:33:05.429602Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=665070061356436616, trigger=click)\n2026-04-21T16:33:06.915467Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=665070061356436616, trigger=click)\n2026-04-21T16:33:07.095841Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=665070061356436616, trigger=click)\n2026-04-21T16:33:38.752838Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-225993066349542266, trigger=click)\n2026-04-21T16:34:32.128508Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=32 elapsed=2.71939625s\n2026-04-21T16:34:32.128621Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 32 eligible frames\n2026-04-21T16:34:33.230523Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.1MB → 0.6MB (5.1x), 17 JPEGs deleted\n2026-04-21T16:34:34.516567Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.7MB → 1.1MB (2.4x), 13 JPEGs deleted\n2026-04-21T16:36:49.435926Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4592186608403217716, trigger=click)\n2026-04-21T16:36:50.599109Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4592186608403217716, trigger=visual_change)\n2026-04-21T16:39:00.566828Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3077590213613135779, trigger=click)\n2026-04-21T16:39:00.685917Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3077590213613135779, trigger=click)\n2026-04-21T16:39:09.669053Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6113312556119042207, trigger=click)\n2026-04-21T16:39:28.954550Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=869328293033429183, trigger=click)\n2026-04-21T16:39:29.084826Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=869328293033429183, trigger=click)\n2026-04-21T16:39:31.752392Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4079194444055345358, trigger=click)\n2026-04-21T16:39:31.941130Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4079194444055345358, trigger=click)\n2026-04-21T16:39:37.082813Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=50 elapsed=2.555752875s\n2026-04-21T16:39:37.082914Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 50 eligible frames\n2026-04-21T16:39:39.896800Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.4MB → 0.9MB (4.9x), 24 JPEGs deleted\n2026-04-21T16:39:42.979598Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.6MB → 1.9MB (2.5x), 24 JPEGs deleted\n2026-04-21T16:39:54.138147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=869328293033429183, trigger=click)\n2026-04-21T16:41:34.967355Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:41:35.133385Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:43:15.919099Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8254246256813675665, trigger=click)\n2026-04-21T16:43:44.014066Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8254246256813675665, trigger=visual_change)\n2026-04-21T16:44:45.410923Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=35 elapsed=2.419201375s\n2026-04-21T16:44:45.411045Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 35 eligible frames\n2026-04-21T16:44:46.383629Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.8MB → 0.3MB (9.5x), 15 JPEGs deleted\n2026-04-21T16:44:47.792527Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.6MB → 0.8MB (4.3x), 18 JPEGs deleted\n2026-04-21T16:49:53.308820Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=47 elapsed=5.487768917s\n2026-04-21T16:49:53.309371Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 47 eligible frames\n2026-04-21T16:49:54.673701Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.9MB → 0.3MB (13.1x), 21 JPEGs deleted\n2026-04-21T16:49:56.314871Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.7MB → 1.2MB (4.0x), 24 JPEGs deleted\n2026-04-21T16:54:59.385017Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=62 elapsed=3.057419917s\n2026-04-21T16:54:59.385210Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 62 eligible frames\n2026-04-21T16:55:00.998239Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.8MB → 0.5MB (10.3x), 26 JPEGs deleted\n2026-04-21T16:55:03.739041Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 34 frames, 5.8MB → 2.6MB (2.2x), 34 JPEGs deleted\n2026-04-21T16:55:17.768634Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)\n2026-04-21T17:23:59.183039Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)\n2026-04-21T17:23:59.216966Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2\n2026-04-21T17:24:00.832399Z INFO screenpipe_engine::vision_manager::monitor_watcher: Monitor 2 disconnected, stopping recording\n2026-04-21T17:24:00.832464Z INFO screenpipe_engine::vision_manager::manager: Stopping vision recording for monitor 2\n2026-04-21T17:24:00.832336Z INFO sck_rs::stream_manager: stopped 2 persistent stream(s)\n2026-04-21T17:24:04.654209Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-21T17:24:30.699969Z ERROR screenpipe_engine::resource_monitor: Failed to send resource usage to PostHog: error sending request for url (https://us.i.posthog.com/capture/)\n2026-04-21T17:25:01.085383Z INFO screenpipe_engine::vision_manager::monitor_watcher: Monitor 2 reconnected, resuming recording\n2026-04-21T17:25:01.273818Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-21T17:25:01.273870Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-21T17:25:01.273896Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-21T17:25:02.310236Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-21T17:25:02.808234Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=66228, dur=365ms\n2026-04-21T17:25:04.889075Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:07.887565Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:10.918390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:14.039034Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:17.160521Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:26.096276Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:29.061270Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:32.067380Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:35.263701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:41.164753Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:44.239172Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:47.149320Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:50.242915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:53.308794Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:56.218138Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:59.144297Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:26:05.965946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:08.584110Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:11.350189Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:14.339609Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:17.398251Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:20.782119Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:23.385506Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:26.427626Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:29.573661Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:32.450744Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:38.464132Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:41.456915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:44.496278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:47.541313Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:50.596256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:53.597171Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:56.764522Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:59.751576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:02.719391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:08.829090Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:11.800601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:14.811724Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:17.855339Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:26.878741Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:29.933020Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:32.947216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:36.041239Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:38.993657Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:42.039373Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:45.172399Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:48.081804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:51.142939Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:54.169253Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:00.341347Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:03.322832Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:06.631198Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:09.537232Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:12.406113Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:15.381764Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:15.806839Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=44 elapsed=5.777403s\n2026-04-21T17:28:15.806951Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 44 eligible frames\n2026-04-21T17:28:17.108106Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.9MB → 0.3MB (13.1x), 21 JPEGs deleted\n2026-04-21T17:28:18.370832Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.6MB → 0.5MB (7.8x), 21 JPEGs deleted\n2026-04-21T17:28:18.461408Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:22.068097Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:24.604711Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:27.608060Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:33.774822Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:36.697278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:39.729251Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:42.728755Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:45.748204Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:48.768910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:51.814752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:54.970698Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:57.869874Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:00.913837Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:07.461529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:10.043928Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:13.182411Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:16.080133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:19.108570Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:22.322033Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:25.172666Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:28.398354Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:31.249083Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:34.289745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:40.303310Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:43.308015Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:46.360649Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:49.356069Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:52.450205Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:55.422975Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:58.446390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:01.491253Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:04.500380Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:16.830925Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:19.856895Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:23.100486Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:25.938910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:28.953603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:32.061536Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:35.030958Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:38.162895Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:41.148165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:44.019513Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:50.259576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:53.148070Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:56.309979Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:59.185610Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:02.278235Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:05.287341Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:08.409426Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:11.489977Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:14.319338Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:17.348153Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:23.351025Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:26.427529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:29.337254Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:32.386165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:35.653387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:38.430216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:41.428909Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:44.432459Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:47.448603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:50.432780Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:56.535727Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:59.590792Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:02.621444Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:05.627964Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:08.710139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:11.765247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:14.787638Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:17.876480Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)\n2026-04-21T17:32:20.977937Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)\n2026-04-21T17:32:29.888970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8116870867026519513, trigger=click)\n2026-04-21T17:32:33.123648Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)\n2026-04-21T17:33:03.355082Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)\n2026-04-21T17:33:05.517897Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=click)\n2026-04-21T17:33:06.399783Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)\n2026-04-21T17:33:09.478894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)\n2026-04-21T17:33:19.151217Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-21T17:33:21.431006Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6379516332769645744, trigger=visual_change)\n2026-04-21T17:33:33.494463Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7500553589467718193, trigger=visual_change)\n2026-04-21T17:34:00.725974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2275300387038012183, trigger=click)\n2026-04-21T17:34:07.214867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2063499064757931498, trigger=visual_change)\n2026-04-21T17:34:31.480257Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=visual_change)\n2026-04-21T17:34:34.482370Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=visual_change)\n2026-04-21T17:35:53.801549Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7652433743467416760, trigger=click)\n2026-04-21T17:35:53.954311Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7652433743467416760, trigger=click)\n2026-04-21T17:35:54.740695Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7652433743467416760, trigger=click)\n2026-04-21T17:36:06.295752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5335392039126841536, trigger=visual_change)\n2026-04-21T17:36:28.893337Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5927780310531960690, trigger=visual_change)\n2026-04-21T17:38:15.647110Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)\n2026-04-21T17:38:17.801901Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)\n2026-04-21T17:38:17.962831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)\n2026-04-21T17:38:22.819710Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7137414965816212018, trigger=click)\n2026-04-21T17:38:22.917176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=click)\n2026-04-21T17:38:23.042830Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=28 elapsed=3.882772625s\n2026-04-21T17:38:23.042920Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames\n2026-04-21T17:38:24.717251Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 2.8MB → 0.4MB (6.3x), 18 JPEGs deleted\n2026-04-21T17:38:26.727027Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.1MB → 0.2MB (5.7x), 10 JPEGs deleted\n2026-04-21T17:38:35.971287Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=click)\n2026-04-21T17:38:36.106246Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7137414965816212018, trigger=click)\n2026-04-21T17:38:37.368009Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=visual_change)\n2026-04-21T17:38:43.431620Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8741356672789266752, trigger=visual_change)\n2026-04-21T17:38:49.319886Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5149767057649118192, trigger=click)\n2026-04-21T17:38:49.477325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5149767057649118192, trigger=click)\n2026-04-21T17:38:51.019231Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5149767057649118192, trigger=visual_change)\n2026-04-21T17:39:04.249890Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7355944135161080033, trigger=click)\n2026-04-21T17:39:23.256256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4983811095206295613, trigger=click)\n2026-04-21T17:39:23.385820Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4983811095206295613, trigger=click)\n2026-04-21T17:39:24.367407Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4983811095206295613, trigger=visual_change)\n2026-04-21T17:39:24.895784Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4983811095206295613, trigger=click)\n2026-04-21T17:39:46.438272Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=372069959735326508, trigger=visual_change)\n2026-04-21T17:39:49.101085Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4964238948655865655, trigger=visual_change)\n2026-04-21T17:39:58.083750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)\n2026-04-21T17:40:01.375315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)\n2026-04-21T17:40:04.195859Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)\n2026-04-21T17:40:12.117004Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2989278587618621353, trigger=click)\n2026-04-21T17:40:12.244666Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2989278587618621353, trigger=click)\n2026-04-21T17:40:13.925024Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2989278587618621353, trigger=visual_change)\n2026-04-21T17:40:23.294147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=visual_change)\n2026-04-21T17:40:55.989498Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3182674559678505325, trigger=click)\n2026-04-21T17:40:58.413325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3182674559678505325, trigger=visual_change)\n2026-04-21T17:41:23.101094Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5616874458658671741, trigger=visual_change)\n2026-04-21T17:41:29.504783Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2744778324521007391, trigger=visual_change)\n2026-04-21T17:42:13.830352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6664909184667365933, trigger=click)\n2026-04-21T17:42:13.905614Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=click)\n2026-04-21T17:42:14.689622Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6664909184667365933, trigger=click)\n2026-04-21T17:43:13.738786Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5563100798252317961, trigger=visual_change)\n2026-04-21T17:43:31.769731Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=40 elapsed=4.870364084s\n2026-04-21T17:43:31.770321Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames\n2026-04-21T17:43:32.514133Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.1MB → 0.1MB (8.9x), 11 JPEGs deleted\n2026-04-21T17:43:34.391762Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 3.0MB → 0.5MB (5.9x), 27 JPEGs deleted\n2026-04-21T17:44:19.021163Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-263228306577803226, trigger=click)\n2026-04-21T17:44:32.036390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8360298266192684601, trigger=click)\n2026-04-21T17:44:33.859332Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8360298266192684601, trigger=visual_change)\n2026-04-21T17:44:42.936361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=visual_change)\n2026-04-21T17:44:46.420662Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=visual_change)\n2026-04-21T17:46:17.725934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7286082578618580481, trigger=click)\n2026-04-21T17:46:18.733766Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=click)\n2026-04-21T17:46:19.506484Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7286082578618580481, trigger=click)\n2026-04-21T17:46:20.729229Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=click)\n2026-04-21T17:46:27.956655Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8942982652250876029, trigger=click)\n2026-04-21T17:46:29.490950Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8942982652250876029, trigger=click)\n2026-04-21T17:46:45.634752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5761541209609855314, trigger=click)\n2026-04-21T17:46:45.971315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5761541209609855314, trigger=click)\n2026-04-21T17:46:50.988867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5607564885929685542, trigger=click)\n2026-04-21T17:46:51.601750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5607564885929685542, trigger=click)\n2026-04-21T17:46:56.353647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4497988824039212795, trigger=click)\n2026-04-21T17:47:24.716661Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4864885406063659925, trigger=visual_change)\n2026-04-21T17:47:29.793942Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:30.097043Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)\n2026-04-21T17:47:30.960214Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:32.707746Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)\n2026-04-21T17:47:36.181007Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:36.362574Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:37.093511Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:41.720206Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)\n2026-04-21T17:47:44.706704Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)\n2026-04-21T17:47:48.602580Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:48.776278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:52.582982Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5658848090639979218, trigger=click)\n2026-04-21T17:47:57.282103Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8902771592702756196, trigger=click)\n2026-04-21T17:48:06.880071Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8902771592702756196, trigger=click)\n2026-04-21T17:48:07.656377Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8902771592702756196, trigger=click)\n2026-04-21T17:48:23.785117Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:24.032602Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:26.587906Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:32.180582Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:48:34.022831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:34.363583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:39.363585Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=83 elapsed=4.983598708s\n2026-04-21T17:48:39.363733Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 83 eligible frames\n2026-04-21T17:48:41.479158Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 3.3MB → 0.2MB (17.7x), 31 JPEGs deleted\n2026-04-21T17:48:44.682560Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 50 frames, 6.5MB → 2.0MB (3.3x), 50 JPEGs deleted\n2026-04-21T17:48:53.828851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:48:56.563636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:48:59.291654Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:59.467275Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:00.295226Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:00.453357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:49:13.301518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:49:16.454207Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:49:16.837288Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:18.900202Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:19.229376Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:20.418502Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:20.706966Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:21.269855Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:22.896443Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:23.115745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:29.927553Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1234240076182081719, trigger=click)\n2026-04-21T17:49:40.567042Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1506528968255096811, trigger=click)\n2026-04-21T17:49:40.722412Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1506528968255096811, trigger=click)\n2026-04-21T17:49:44.790415Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1506528968255096811, trigger=visual_change)\n2026-04-21T17:49:44.983133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1506528968255096811, trigger=visual_change)\n2026-04-21T17:51:50.315220Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)\n2026-04-21T17:51:53.337571Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)\n2026-04-21T17:51:59.473328Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)\n2026-04-21T17:52:02.455277Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)\n2026-04-21T17:52:05.862297Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:52:07.729450Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:52:16.901254Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:52:29.702852Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:52:36.533775Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:39.599515Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:45.700237Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:48.638819Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:54.704399Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:57.751791Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:53:10.186965Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:53:46.867091Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=116 elapsed=2.178958s\n2026-04-21T17:53:46.867199Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 116 eligible frames\n2026-04-21T17:53:49.254310Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:53:50.410056Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 56 frames, 12.3MB → 3.7MB (3.3x), 56 JPEGs deleted\n2026-04-21T17:53:51.388237Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:53:53.983042Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 58 frames, 9.0MB → 2.6MB (3.5x), 58 JPEGs deleted\n2026-04-21T17:53:56.223709Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:25.250317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:54:25.727105Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:54:32.633019Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:33.984547Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:54:35.401305Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:35.511290Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:38.494935Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:38.630637Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:41.245537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:54:45.441966Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:54:50.148639Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:50.313941Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:51.769427Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:51.915582Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:58.755543Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:55:01.758776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:55:25.745659Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3428322026263856254, trigger=click)\n2026-04-21T17:55:27.298490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3428322026263856254, trigger=visual_change)\n2026-04-21T17:55:33.297808Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3428322026263856254, trigger=visual_change)\n2026-04-21T17:55:48.491529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7233070170495400552, trigger=visual_change)\n2026-04-21T17:55:49.809101Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7233070170495400552, trigger=visual_change)\n2026-04-21T17:55:54.025243Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7233070170495400552, trigger=click)\n2026-04-21T17:55:54.165626Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7233070170495400552, trigger=click)\n2026-04-21T17:55:58.086411Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1463712168180952345, trigger=visual_change)\n2026-04-21T17:56:04.943502Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7233070170495400552, trigger=visual_change)\n2026-04-21T17:57:22.021701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:23.588692Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:30.517012Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:31.818301Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:31.972732Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:40.727074Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:42.330179Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:42.494853Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:45.528669Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:46.132479Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:46.358876Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:58:36.946109Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6074307134448385817, trigger=visual_change)\n2026-04-21T17:58:57.225929Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=117 elapsed=3.2365965s\n2026-04-21T17:58:57.226687Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 117 eligible frames\n2026-04-21T17:59:01.078632Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 58 frames, 12.8MB → 4.3MB (3.0x), 58 JPEGs deleted\n2026-04-21T17:59:04.938676Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 57 frames, 10.8MB → 4.0MB (2.7x), 57 JPEGs deleted\n2026-04-21T18:00:27.589643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9170086261988994041, trigger=click)\n2026-04-21T18:00:28.469646Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9170086261988994041, trigger=visual_change)\n2026-04-21T18:00:37.318027Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=9170086261988994041, trigger=click)\n2026-04-21T18:00:42.194585Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=9170086261988994041, trigger=click)\n2026-04-21T18:00:42.367049Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9170086261988994041, trigger=click)\n2026-04-21T18:01:07.200973Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:08.642294Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:08.873831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=visual_change)\n2026-04-21T18:01:09.931490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:10.189484Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:11.594292Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=visual_change)\n2026-04-21T18:01:12.844254Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:13.095866Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:49.712611Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5610420548393517496, trigger=click)\n2026-04-21T18:01:49.878502Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5610420548393517496, trigger=click)\n2026-04-21T18:01:54.385999Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4075180225844497251, trigger=click)\n2026-04-21T18:02:03.320721Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:04.589973Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:06.402101Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:08.459207Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:17.915785Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:20.289378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:53.363091Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:59.854804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6485088808083200508, trigger=visual_change)\n2026-04-21T18:03:23.692602Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2923142241079919801, trigger=visual_change)\n2026-04-21T18:03:38.383745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:03:38.666324Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:03:40.611795Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:03:46.691879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:03:49.696169Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:03:58.796193Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:10.455866Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=65 elapsed=5.507644708s\n2026-04-21T18:04:10.456994Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 65 eligible frames\n2026-04-21T18:04:10.784720Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:12.979583Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 8.1MB → 3.1MB (2.6x), 36 JPEGs deleted\n2026-04-21T18:04:13.808201Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:15.311040Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 5.7MB → 2.1MB (2.7x), 27 JPEGs deleted\n2026-04-21T18:04:22.870405Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:25.858949Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:47.178867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:47.409147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:48.621959Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:48.823996Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:49.613197Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:49.840589Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:54.113636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:54.333250Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:56.158603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:56.345340Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:24.653256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2923142241079919801, trigger=visual_change)\n2026-04-21T18:05:27.506644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2923142241079919801, trigger=visual_change)\n2026-04-21T18:05:52.127185Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:52.385537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:54.464579Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:54.740600Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:06:01.884193Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:06:04.917243Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:06:15.788550Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:06:16.090123Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:06:17.179267Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:07:04.992532Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:08.003078Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:17.121489Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:17.302355Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:27.025619Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:29.771279Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:31.137970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:36.086848Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:36.306717Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:37.369851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:37.634865Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:38.805129Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:39.104738Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:40.060624Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.109375,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.109375,"top":0.05888889,"width":0.109375,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.11354167,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"✳ Build full day activity summary from Screenpipe (node)","depth":2,"bounds":{"left":0.21875,"top":0.05888889,"width":0.109375,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.22291666,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"docker","depth":2,"bounds":{"left":0.328125,"top":0.05888889,"width":0.109375,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.33229166,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.4375,"top":0.05888889,"width":0.109375,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.44166666,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.546875,"top":0.05888889,"width":0.109375,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.55104166,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.65625,"top":0.05888889,"width":0.10902778,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.66041666,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"ec2-user@ip-10-30-159-186:~ (nc)","depth":2,"bounds":{"left":0.7652778,"top":0.05888889,"width":0.10902778,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.76944447,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.87430555,"top":0.05888889,"width":0.10902778,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.8784722,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.9548611,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"screenpipe\"","depth":1,"bounds":{"left":0.47083333,"top":0.033333335,"width":0.058333334,"height":0.017777778},"role_description":"text"}]...
|
225662525454064324
|
3294849421620127097
|
click
|
accessibility
|
NULL
|
2026-04-21T15:17:49.549473Z INFO screenpipe_engin 2026-04-21T15:17:49.549473Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3869963790957274395, trigger=click)
2026-04-21T15:17:50.408526Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3869963790957274395, trigger=visual_change)
2026-04-21T15:17:51.367993Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3869963790957274395, trigger=click)
2026-04-21T15:17:51.658544Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3869963790957274395, trigger=click)
2026-04-21T15:17:59.512794Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2138257446817006938, trigger=click)
2026-04-21T15:17:59.630806Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2138257446817006938, trigger=click)
2026-04-21T15:18:02.612463Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2138257446817006938, trigger=visual_change)
2026-04-21T15:18:05.031295Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2138257446817006938, trigger=click)
2026-04-21T15:18:05.949953Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2138257446817006938, trigger=visual_change)
2026-04-21T15:18:07.005054Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2138257446817006938, trigger=click)
2026-04-21T15:18:07.240048Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2138257446817006938, trigger=click)
2026-04-21T15:18:08.321397Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2138257446817006938, trigger=click)
2026-04-21T15:18:09.330989Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2138257446817006938, trigger=click)
2026-04-21T15:18:16.198885Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4512592763947671045, trigger=click)
2026-04-21T15:18:25.174657Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2138257446817006938, trigger=visual_change)
2026-04-21T15:18:25.979747Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2138257446817006938, trigger=click)
2026-04-21T15:18:26.174344Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2138257446817006938, trigger=click)
2026-04-21T15:18:27.329517Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2138257446817006938, trigger=click)
2026-04-21T15:18:27.442331Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2138257446817006938, trigger=click)
2026-04-21T15:18:34.134351Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2138257446817006938, trigger=visual_change)
2026-04-21T15:18:34.454235Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2138257446817006938, trigger=click)
2026-04-21T15:19:23.799546Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2134448310261037766, trigger=visual_change)
2026-04-21T15:19:35.195461Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2134448310261037766, trigger=visual_change)
2026-04-21T15:19:36.616914Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2134448310261037766, trigger=visual_change)
2026-04-21T15:19:43.812610Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)
2026-04-21T15:19:46.459367Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:19:51.103859Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)
2026-04-21T15:19:51.961944Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)
2026-04-21T15:19:52.167527Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=click)
2026-04-21T15:19:56.622639Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)
2026-04-21T15:19:56.728247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=click)
2026-04-21T15:20:02.598979Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:20:02.924826Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)
2026-04-21T15:20:05.668202Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:20:11.789308Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:20:14.756464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:20:20.882925Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:20:38.171496Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:20:41.202478Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:20:41.928948Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:20:48.058419Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:20:51.039890Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:22:03.799949Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:22:13.010196Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:22:19.940721Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=36 elapsed=1.206931458s
2026-04-21T15:22:19.940942Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 36 eligible frames
2026-04-21T15:22:21.367797Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 3.8MB → 1.6MB (2.4x), 15 JPEGs deleted
2026-04-21T15:22:22.862852Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 4.4MB → 1.3MB (3.3x), 19 JPEGs deleted
2026-04-21T15:22:28.040013Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:22:31.043424Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:22:37.137451Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:22:40.189158Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:22:46.342577Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:22:52.360301Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:22:55.361962Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:23:01.361462Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:23:04.429481Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:24:03.316425Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8540343042990809979, trigger=visual_change)
2026-04-21T15:24:09.357754Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8540343042990809979, trigger=visual_change)
2026-04-21T15:24:17.045608Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-357712155289738757, trigger=click)
2026-04-21T15:24:17.229938Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-357712155289738757, trigger=click)
2026-04-21T15:24:39.299106Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2318587192590272303, trigger=click)
2026-04-21T15:24:39.503939Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2318587192590272303, trigger=click)
2026-04-21T15:24:40.703200Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2318587192590272303, trigger=visual_change)
2026-04-21T15:25:20.207959Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-115592740355774573, trigger=visual_change)
2026-04-21T15:25:34.045255Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5357895394186669836, trigger=visual_change)
2026-04-21T15:25:34.611160Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5357895394186669836, trigger=click)
2026-04-21T15:25:37.799744Z WARN sqlx::query: summary="COMMIT" db.statement="" rows_affected=1 rows_returned=0 elapsed=1.72370025s
2026-04-21T15:25:37.956786Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5357895394186669836, trigger=click)
2026-04-21T15:25:38.065798Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5357895394186669836, trigger=click)
2026-04-21T15:27:27.008772Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=46 elapsed=4.119326709s
2026-04-21T15:27:27.008926Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 46 eligible frames
2026-04-21T15:27:28.808464Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 4.8MB → 2.5MB (1.9x), 19 JPEGs deleted
2026-04-21T15:27:29.051101Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=525296185995483322, trigger=visual_change)
2026-04-21T15:27:30.940888Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.6MB → 2.0MB (2.3x), 25 JPEGs deleted
2026-04-21T15:27:38.326692Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=525296185995483322, trigger=visual_change)
2026-04-21T15:27:46.472144Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2318587192590272303, trigger=click)
2026-04-21T15:27:53.687585Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=click)
2026-04-21T15:27:53.821391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)
2026-04-21T15:27:56.568366Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:30:07.617208Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7345067017169779372, trigger=visual_change)
2026-04-21T15:30:35.626228Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:30:38.496521Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:30:47.627510Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:30:50.578236Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)
2026-04-21T15:30:50.726770Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=click)
2026-04-21T15:30:56.653721Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:31:02.747003Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:31:05.748607Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:31:17.869430Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:31:20.951104Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:31:26.942644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:31:30.113620Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)
2026-04-21T15:31:31.259291Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)
2026-04-21T15:31:31.514010Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=click)
2026-04-21T15:31:33.767000Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)
2026-04-21T15:31:33.920466Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=click)
2026-04-21T15:31:35.506530Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)
2026-04-21T15:31:35.685079Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=click)
2026-04-21T15:31:36.710558Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=click)
2026-04-21T15:31:36.953539Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)
2026-04-21T15:31:38.451284Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=click)
2026-04-21T15:31:38.659646Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)
2026-04-21T15:31:41.384919Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:32:26.999680Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:32:29.990647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:32:36.791142Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=59 elapsed=5.839242958s
2026-04-21T15:32:36.791363Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 59 eligible frames
2026-04-21T15:32:39.153877Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 8.5MB → 3.9MB (2.2x), 31 JPEGs deleted
2026-04-21T15:32:43.055663Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.3MB → 2.2MB (2.0x), 26 JPEGs deleted
2026-04-21T15:33:58.964559Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=click)
2026-04-21T15:34:01.370038Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:34:16.496030Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:34:19.493349Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:35:07.898889Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:35:16.972268Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:35:20.035784Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:35:26.049636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:35:32.118199Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:35:35.122849Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:35:44.214841Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:35:47.232611Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:35:53.252836Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:35:56.262473Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:36:03.912825Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=32684078525934003, trigger=click)
2026-04-21T15:36:04.039319Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=click)
2026-04-21T15:36:06.889882Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=click)
2026-04-21T15:36:17.457615Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:36:27.555065Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1505193671044774267, trigger=click)
2026-04-21T15:36:42.607815Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2864109645901807081, trigger=click)
2026-04-21T15:37:44.772586Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=69 elapsed=1.703329916s
2026-04-21T15:37:44.772693Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 69 eligible frames
2026-04-21T15:37:47.061751Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 8.3MB → 4.1MB (2.0x), 32 JPEGs deleted
2026-04-21T15:37:49.263118Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 35 frames, 4.9MB → 1.5MB (3.3x), 35 JPEGs deleted
2026-04-21T15:38:48.339863Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7345067017169779372, trigger=visual_change)
2026-04-21T15:39:04.763572Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4843719893880893793, trigger=visual_change)
2026-04-21T15:40:05.496361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:40:29.591282Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:41:16.164160Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2900812915277822723, trigger=click)
2026-04-21T15:41:23.661891Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:41:26.703461Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:41:32.781037Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:41:35.789883Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:41:41.811272Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:41:44.919455Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:42:05.404072Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5004276282384800505, trigger=click)
2026-04-21T15:42:06.660073Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5004276282384800505, trigger=visual_change)
2026-04-21T15:42:21.721735Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5004276282384800505, trigger=visual_change)
2026-04-21T15:42:24.767284Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5004276282384800505, trigger=visual_change)
2026-04-21T15:42:30.886797Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5004276282384800505, trigger=visual_change)
2026-04-21T15:42:32.353284Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5004276282384800505, trigger=click)
2026-04-21T15:42:53.342750Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=52 elapsed=4.068091375s
2026-04-21T15:42:53.343209Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 52 eligible frames
2026-04-21T15:43:00.350701Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 7.7MB → 3.8MB (2.0x), 32 JPEGs deleted
2026-04-21T15:43:04.665303Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.0MB → 1.4MB (2.2x), 18 JPEGs deleted
2026-04-21T15:43:34.607312Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=853482337029112184, trigger=click)
2026-04-21T15:43:34.872392Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=853482337029112184, trigger=click)
2026-04-21T15:43:35.899763Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=853482337029112184, trigger=click)
2026-04-21T15:43:48.406088Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=853482337029112184, trigger=click)
2026-04-21T15:43:48.585014Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=853482337029112184, trigger=click)
2026-04-21T15:43:50.163180Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=853482337029112184, trigger=click)
2026-04-21T15:43:50.385739Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=853482337029112184, trigger=click)
2026-04-21T15:43:53.195867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=853482337029112184, trigger=click)
2026-04-21T15:44:13.974997Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7638600394188067596, trigger=click)
2026-04-21T15:45:09.004346Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1645333894657549955, trigger=visual_change)
2026-04-21T15:45:25.499345Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3128527177503635561, trigger=click)
2026-04-21T15:45:26.508782Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3128527177503635561, trigger=visual_change)
2026-04-21T15:45:29.578474Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3128527177503635561, trigger=visual_change)
2026-04-21T15:45:33.069643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3128527177503635561, trigger=visual_change)
2026-04-21T15:45:35.154439Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3128527177503635561, trigger=click)
2026-04-21T15:45:50.867873Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:45:51.543329Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=click)
2026-04-21T15:45:51.688145Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=click)
2026-04-21T15:45:56.968268Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:45:59.992989Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:46:15.190380Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:46:21.349140Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:46:24.108646Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=click)
2026-04-21T15:46:24.239949Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=click)
2026-04-21T15:46:31.011607Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:46:34.038038Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:46:40.140459Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:46:43.202999Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:46:49.666830Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=click)
2026-04-21T15:46:52.233599Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:46:52.919343Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=click)
2026-04-21T15:47:01.421995Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:47:04.387592Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:47:13.219366Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=click)
2026-04-21T15:47:14.410197Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=click)
2026-04-21T15:47:14.555427Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:47:47.182774Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-926939256350628341, trigger=click)
2026-04-21T15:47:47.313085Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-926939256350628341, trigger=click)
2026-04-21T15:47:51.007142Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-926939256350628341, trigger=visual_change)
2026-04-21T15:47:57.147902Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=click)
2026-04-21T15:47:57.339006Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:47:58.246964Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:48:10.859817Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=60 elapsed=6.154614084s
2026-04-21T15:48:10.860968Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 60 eligible frames
2026-04-21T15:48:12.865127Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 3.8MB → 0.4MB (8.5x), 29 JPEGs deleted
2026-04-21T15:48:15.453116Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 5.3MB → 1.9MB (2.8x), 29 JPEGs deleted
2026-04-21T15:48:47.469195Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1918324922935553040, trigger=visual_change)
2026-04-21T15:49:03.828434Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1918324922935553040, trigger=visual_change)
2026-04-21T15:49:32.798887Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6658269488663706414, trigger=click)
2026-04-21T15:50:07.795304Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:50:22.939421Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6692792019664876292, trigger=visual_change)
2026-04-21T15:51:11.513005Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9198264877289985337, trigger=visual_change)
2026-04-21T15:51:22.759879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9198264877289985337, trigger=click)
2026-04-21T15:52:06.151994Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2061546572815694422, trigger=visual_change)
2026-04-21T15:52:10.101525Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2061546572815694422, trigger=visual_change)
2026-04-21T15:52:10.447385Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2061546572815694422, trigger=click)
2026-04-21T15:52:17.973740Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2061546572815694422, trigger=visual_change)
2026-04-21T15:52:27.034549Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6654491695696088287, trigger=visual_change)
2026-04-21T15:52:34.865867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=click)
2026-04-21T15:52:37.002754Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:52:37.758891Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=click)
2026-04-21T15:52:37.903061Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=click)
2026-04-21T15:52:58.490245Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2319943303696444798, trigger=click)
2026-04-21T15:52:58.636967Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2319943303696444798, trigger=click)
2026-04-21T15:53:05.413509Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=click)
2026-04-21T15:53:05.635434Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=click)
2026-04-21T15:53:14.450507Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:53:16.412940Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 56 eligible frames
2026-04-21T15:53:17.458900Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:53:18.382936Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 3.9MB → 0.4MB (10.1x), 30 JPEGs deleted
2026-04-21T15:53:20.404928Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 5.2MB → 2.5MB (2.1x), 24 JPEGs deleted
2026-04-21T15:53:29.578611Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:53:32.631242Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:53:43.980351Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=click)
2026-04-21T15:53:45.448681Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:53:45.981861Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:53:51.490843Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:53:54.503801Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:54:00.554133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:54:03.594215Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:54:12.603968Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:54:18.363794Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=click)
2026-04-21T15:54:18.534215Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=click)
2026-04-21T15:54:45.841588Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1261864652156529447, trigger=click)
2026-04-21T15:54:46.025388Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1261864652156529447, trigger=click)
2026-04-21T15:54:49.896744Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1261864652156529447, trigger=visual_change)
2026-04-21T15:54:56.016125Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1261864652156529447, trigger=visual_change)
2026-04-21T15:54:59.114088Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1261864652156529447, trigger=visual_change)
2026-04-21T15:55:00.284632Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1261864652156529447, trigger=click)
2026-04-21T15:55:00.406838Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1261864652156529447, trigger=click)
2026-04-21T15:55:02.079710Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1261864652156529447, trigger=click)
2026-04-21T15:55:02.308488Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1261864652156529447, trigger=click)
2026-04-21T15:55:17.433420Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1236411717024251211, trigger=click)
2026-04-21T15:55:22.382212Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3575572948672507206, trigger=visual_change)
2026-04-21T15:55:33.553348Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3575572948672507206, trigger=click)
2026-04-21T15:55:33.725630Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3575572948672507206, trigger=click)
2026-04-21T15:55:36.499986Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3575572948672507206, trigger=click)
2026-04-21T15:55:36.647384Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3575572948672507206, trigger=visual_change)
2026-04-21T15:55:38.675147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3575572948672507206, trigger=click)
2026-04-21T15:55:38.953368Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3575572948672507206, trigger=click)
2026-04-21T15:55:49.727745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1928477198450198789, trigger=click)
2026-04-21T15:55:51.600613Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1928477198450198789, trigger=visual_change)
2026-04-21T15:55:58.958653Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6305115209475227780, trigger=click)
2026-04-21T15:56:10.814040Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2683270687017607806, trigger=click)
2026-04-21T15:56:23.872451Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8011254159114411036, trigger=visual_change)
2026-04-21T15:56:24.893455Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8011254159114411036, trigger=visual_change)
2026-04-21T15:56:38.964984Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2061546572815694422, trigger=click)
2026-04-21T15:57:05.134874Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8011254159114411036, trigger=visual_change)
2026-04-21T15:57:05.481118Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8011254159114411036, trigger=click)
2026-04-21T15:57:06.604281Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8011254159114411036, trigger=click)
2026-04-21T15:57:06.770499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8011254159114411036, trigger=click)
2026-04-21T15:57:07.327121Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8011254159114411036, trigger=click)
2026-04-21T15:57:12.184374Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8011254159114411036, trigger=visual_change)
2026-04-21T15:57:17.777283Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8011254159114411036, trigger=click)
2026-04-21T15:57:17.883656Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8011254159114411036, trigger=click)
2026-04-21T15:58:03.328237Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2061546572815694422, trigger=visual_change)
2026-04-21T15:58:04.873241Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2061546572815694422, trigger=click)
2026-04-21T15:58:05.083940Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2061546572815694422, trigger=click)
2026-04-21T15:58:25.172235Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=69 elapsed=4.754634416s
2026-04-21T15:58:25.172952Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 69 eligible frames
2026-04-21T15:58:27.752106Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 5.0MB → 0.7MB (7.7x), 39 JPEGs deleted
2026-04-21T15:58:28.844185Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1714600494192977193, trigger=click)
2026-04-21T15:58:30.120472Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 6.0MB → 2.7MB (2.2x), 28 JPEGs deleted
2026-04-21T15:59:45.857732Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2993864580543626498, trigger=click)
2026-04-21T15:59:47.242506Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2993864580543626498, trigger=visual_change)
2026-04-21T15:59:49.794356Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2993864580543626498, trigger=click)
2026-04-21T15:59:49.900792Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2993864580543626498, trigger=click)
2026-04-21T16:00:06.761409Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3195608759585503031, trigger=visual_change)
2026-04-21T16:00:13.468752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2319222304555239268, trigger=click)
2026-04-21T16:00:17.757305Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5732830672832053181, trigger=click)
2026-04-21T16:00:17.870684Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5732830672832053181, trigger=click)
2026-04-21T16:01:48.777919Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2131760867504785678, trigger=visual_change)
2026-04-21T16:01:51.903624Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2131760867504785678, trigger=visual_change)
2026-04-21T16:02:01.343178Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4025239947511295773, trigger=visual_change)
2026-04-21T16:02:02.388155Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4025239947511295773, trigger=visual_change)
2026-04-21T16:02:10.799801Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3195608759585503031, trigger=click)
2026-04-21T16:02:15.237578Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3195608759585503031, trigger=click)
2026-04-21T16:02:15.453443Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3195608759585503031, trigger=click)
2026-04-21T16:02:17.716070Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3195608759585503031, trigger=visual_change)
2026-04-21T16:02:26.881689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=click)
2026-04-21T16:02:27.03082...
|
NULL
|
|
66818
|
1504
|
13
|
2026-04-21T15:07:49.909745+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-21/1776 /Users/lukas/.screenpipe/data/data/2026-04-21/1776784069909_m2.jpg...
|
iTerm2
|
screenpipe"
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
2026-04-21T15:17:49.549473Z INFO screenpipe_engin 2026-04-21T15:17:49.549473Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3869963790957274395, trigger=click)
2026-04-21T15:17:50.408526Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3869963790957274395, trigger=visual_change)
2026-04-21T15:17:51.367993Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3869963790957274395, trigger=click)
2026-04-21T15:17:51.658544Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3869963790957274395, trigger=click)
2026-04-21T15:17:59.512794Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2138257446817006938, trigger=click)
2026-04-21T15:17:59.630806Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2138257446817006938, trigger=click)
2026-04-21T15:18:02.612463Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2138257446817006938, trigger=visual_change)
2026-04-21T15:18:05.031295Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2138257446817006938, trigger=click)
2026-04-21T15:18:05.949953Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2138257446817006938, trigger=visual_change)
2026-04-21T15:18:07.005054Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2138257446817006938, trigger=click)
2026-04-21T15:18:07.240048Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2138257446817006938, trigger=click)
2026-04-21T15:18:08.321397Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2138257446817006938, trigger=click)
2026-04-21T15:18:09.330989Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2138257446817006938, trigger=click)
2026-04-21T15:18:16.198885Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4512592763947671045, trigger=click)
2026-04-21T15:18:25.174657Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2138257446817006938, trigger=visual_change)
2026-04-21T15:18:25.979747Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2138257446817006938, trigger=click)
2026-04-21T15:18:26.174344Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2138257446817006938, trigger=click)
2026-04-21T15:18:27.329517Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2138257446817006938, trigger=click)
2026-04-21T15:18:27.442331Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2138257446817006938, trigger=click)
2026-04-21T15:18:34.134351Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2138257446817006938, trigger=visual_change)
2026-04-21T15:18:34.454235Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2138257446817006938, trigger=click)
2026-04-21T15:19:23.799546Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2134448310261037766, trigger=visual_change)
2026-04-21T15:19:35.195461Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2134448310261037766, trigger=visual_change)
2026-04-21T15:19:36.616914Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2134448310261037766, trigger=visual_change)
2026-04-21T15:19:43.812610Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)
2026-04-21T15:19:46.459367Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:19:51.103859Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)
2026-04-21T15:19:51.961944Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)
2026-04-21T15:19:52.167527Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=click)
2026-04-21T15:19:56.622639Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)
2026-04-21T15:19:56.728247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=click)
2026-04-21T15:20:02.598979Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:20:02.924826Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)
2026-04-21T15:20:05.668202Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:20:11.789308Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:20:14.756464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:20:20.882925Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:20:38.171496Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:20:41.202478Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:20:41.928948Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:20:48.058419Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:20:51.039890Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:22:03.799949Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:22:13.010196Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:22:19.940721Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=36 elapsed=1.206931458s
2026-04-21T15:22:19.940942Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 36 eligible frames
2026-04-21T15:22:21.367797Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 3.8MB → 1.6MB (2.4x), 15 JPEGs deleted
2026-04-21T15:22:22.862852Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 4.4MB → 1.3MB (3.3x), 19 JPEGs deleted
2026-04-21T15:22:28.040013Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:22:31.043424Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:22:37.137451Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:22:40.189158Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:22:46.342577Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:22:52.360301Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:22:55.361962Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:23:01.361462Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:23:04.429481Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:24:03.316425Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8540343042990809979, trigger=visual_change)
2026-04-21T15:24:09.357754Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8540343042990809979, trigger=visual_change)
2026-04-21T15:24:17.045608Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-357712155289738757, trigger=click)
2026-04-21T15:24:17.229938Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-357712155289738757, trigger=click)
2026-04-21T15:24:39.299106Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2318587192590272303, trigger=click)
2026-04-21T15:24:39.503939Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2318587192590272303, trigger=click)
2026-04-21T15:24:40.703200Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2318587192590272303, trigger=visual_change)
2026-04-21T15:25:20.207959Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-115592740355774573, trigger=visual_change)
2026-04-21T15:25:34.045255Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5357895394186669836, trigger=visual_change)
2026-04-21T15:25:34.611160Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5357895394186669836, trigger=click)
2026-04-21T15:25:37.799744Z WARN sqlx::query: summary="COMMIT" db.statement="" rows_affected=1 rows_returned=0 elapsed=1.72370025s
2026-04-21T15:25:37.956786Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5357895394186669836, trigger=click)
2026-04-21T15:25:38.065798Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5357895394186669836, trigger=click)
2026-04-21T15:27:27.008772Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=46 elapsed=4.119326709s
2026-04-21T15:27:27.008926Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 46 eligible frames
2026-04-21T15:27:28.808464Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 4.8MB → 2.5MB (1.9x), 19 JPEGs deleted
2026-04-21T15:27:29.051101Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=525296185995483322, trigger=visual_change)
2026-04-21T15:27:30.940888Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.6MB → 2.0MB (2.3x), 25 JPEGs deleted
2026-04-21T15:27:38.326692Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=525296185995483322, trigger=visual_change)
2026-04-21T15:27:46.472144Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2318587192590272303, trigger=click)
2026-04-21T15:27:53.687585Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=click)
2026-04-21T15:27:53.821391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)
2026-04-21T15:27:56.568366Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:30:07.617208Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7345067017169779372, trigger=visual_change)
2026-04-21T15:30:35.626228Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:30:38.496521Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:30:47.627510Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:30:50.578236Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)
2026-04-21T15:30:50.726770Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=click)
2026-04-21T15:30:56.653721Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:31:02.747003Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:31:05.748607Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:31:17.869430Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:31:20.951104Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:31:26.942644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:31:30.113620Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)
2026-04-21T15:31:31.259291Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)
2026-04-21T15:31:31.514010Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=click)
2026-04-21T15:31:33.767000Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)
2026-04-21T15:31:33.920466Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=click)
2026-04-21T15:31:35.506530Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)
2026-04-21T15:31:35.685079Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=click)
2026-04-21T15:31:36.710558Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=click)
2026-04-21T15:31:36.953539Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)
2026-04-21T15:31:38.451284Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=click)
2026-04-21T15:31:38.659646Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)
2026-04-21T15:31:41.384919Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:32:26.999680Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:32:29.990647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:32:36.791142Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=59 elapsed=5.839242958s
2026-04-21T15:32:36.791363Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 59 eligible frames
2026-04-21T15:32:39.153877Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 8.5MB → 3.9MB (2.2x), 31 JPEGs deleted
2026-04-21T15:32:43.055663Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.3MB → 2.2MB (2.0x), 26 JPEGs deleted
2026-04-21T15:33:58.964559Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=click)
2026-04-21T15:34:01.370038Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:34:16.496030Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:34:19.493349Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:35:07.898889Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:35:16.972268Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:35:20.035784Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:35:26.049636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:35:32.118199Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:35:35.122849Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:35:44.214841Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:35:47.232611Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:35:53.252836Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:35:56.262473Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:36:03.912825Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=32684078525934003, trigger=click)
2026-04-21T15:36:04.039319Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=click)
2026-04-21T15:36:06.889882Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=click)
2026-04-21T15:36:17.457615Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:36:27.555065Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1505193671044774267, trigger=click)
2026-04-21T15:36:42.607815Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2864109645901807081, trigger=click)
2026-04-21T15:37:44.772586Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=69 elapsed=1.703329916s
2026-04-21T15:37:44.772693Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 69 eligible frames
2026-04-21T15:37:47.061751Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 8.3MB → 4.1MB (2.0x), 32 JPEGs deleted
2026-04-21T15:37:49.263118Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 35 frames, 4.9MB → 1.5MB (3.3x), 35 JPEGs deleted
2026-04-21T15:38:48.339863Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7345067017169779372, trigger=visual_change)
2026-04-21T15:39:04.763572Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4843719893880893793, trigger=visual_change)
2026-04-21T15:40:05.496361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:40:29.591282Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:41:16.164160Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2900812915277822723, trigger=click)
2026-04-21T15:41:23.661891Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:41:26.703461Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:41:32.781037Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:41:35.789883Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:41:41.811272Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:41:44.919455Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:42:05.404072Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5004276282384800505, trigger=click)
2026-04-21T15:42:06.660073Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5004276282384800505, trigger=visual_change)
2026-04-21T15:42:21.721735Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5004276282384800505, trigger=visual_change)
2026-04-21T15:42:24.767284Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5004276282384800505, trigger=visual_change)
2026-04-21T15:42:30.886797Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5004276282384800505, trigger=visual_change)
2026-04-21T15:42:32.353284Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5004276282384800505, trigger=click)
2026-04-21T15:42:53.342750Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=52 elapsed=4.068091375s
2026-04-21T15:42:53.343209Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 52 eligible frames
2026-04-21T15:43:00.350701Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 7.7MB → 3.8MB (2.0x), 32 JPEGs deleted
2026-04-21T15:43:04.665303Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.0MB → 1.4MB (2.2x), 18 JPEGs deleted
2026-04-21T15:43:34.607312Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=853482337029112184, trigger=click)
2026-04-21T15:43:34.872392Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=853482337029112184, trigger=click)
2026-04-21T15:43:35.899763Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=853482337029112184, trigger=click)
2026-04-21T15:43:48.406088Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=853482337029112184, trigger=click)
2026-04-21T15:43:48.585014Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=853482337029112184, trigger=click)
2026-04-21T15:43:50.163180Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=853482337029112184, trigger=click)
2026-04-21T15:43:50.385739Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=853482337029112184, trigger=click)
2026-04-21T15:43:53.195867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=853482337029112184, trigger=click)
2026-04-21T15:44:13.974997Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7638600394188067596, trigger=click)
2026-04-21T15:45:09.004346Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1645333894657549955, trigger=visual_change)
2026-04-21T15:45:25.499345Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3128527177503635561, trigger=click)
2026-04-21T15:45:26.508782Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3128527177503635561, trigger=visual_change)
2026-04-21T15:45:29.578474Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3128527177503635561, trigger=visual_change)
2026-04-21T15:45:33.069643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3128527177503635561, trigger=visual_change)
2026-04-21T15:45:35.154439Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3128527177503635561, trigger=click)
2026-04-21T15:45:50.867873Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:45:51.543329Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=click)
2026-04-21T15:45:51.688145Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=click)
2026-04-21T15:45:56.968268Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:45:59.992989Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:46:15.190380Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:46:21.349140Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:46:24.108646Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=click)
2026-04-21T15:46:24.239949Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=click)
2026-04-21T15:46:31.011607Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:46:34.038038Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:46:40.140459Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:46:43.202999Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:46:49.666830Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=click)
2026-04-21T15:46:52.233599Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:46:52.919343Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=click)
2026-04-21T15:47:01.421995Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:47:04.387592Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:47:13.219366Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=click)
2026-04-21T15:47:14.410197Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=click)
2026-04-21T15:47:14.555427Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:47:47.182774Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-926939256350628341, trigger=click)
2026-04-21T15:47:47.313085Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-926939256350628341, trigger=click)
2026-04-21T15:47:51.007142Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-926939256350628341, trigger=visual_change)
2026-04-21T15:47:57.147902Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=click)
2026-04-21T15:47:57.339006Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:47:58.246964Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:48:10.859817Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=60 elapsed=6.154614084s
2026-04-21T15:48:10.860968Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 60 eligible frames
2026-04-21T15:48:12.865127Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 3.8MB → 0.4MB (8.5x), 29 JPEGs deleted
2026-04-21T15:48:15.453116Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 5.3MB → 1.9MB (2.8x), 29 JPEGs deleted
2026-04-21T15:48:47.469195Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1918324922935553040, trigger=visual_change)
2026-04-21T15:49:03.828434Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1918324922935553040, trigger=visual_change)
2026-04-21T15:49:32.798887Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6658269488663706414, trigger=click)
2026-04-21T15:50:07.795304Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:50:22.939421Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6692792019664876292, trigger=visual_change)
2026-04-21T15:51:11.513005Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9198264877289985337, trigger=visual_change)
2026-04-21T15:51:22.759879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9198264877289985337, trigger=click)
2026-04-21T15:52:06.151994Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2061546572815694422, trigger=visual_change)
2026-04-21T15:52:10.101525Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2061546572815694422, trigger=visual_change)
2026-04-21T15:52:10.447385Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2061546572815694422, trigger=click)
2026-04-21T15:52:17.973740Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2061546572815694422, trigger=visual_change)
2026-04-21T15:52:27.034549Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6654491695696088287, trigger=visual_change)
2026-04-21T15:52:34.865867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=click)
2026-04-21T15:52:37.002754Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:52:37.758891Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=click)
2026-04-21T15:52:37.903061Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=click)
2026-04-21T15:52:58.490245Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2319943303696444798, trigger=click)
2026-04-21T15:52:58.636967Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2319943303696444798, trigger=click)
2026-04-21T15:53:05.413509Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=click)
2026-04-21T15:53:05.635434Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=click)
2026-04-21T15:53:14.450507Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:53:16.412940Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 56 eligible frames
2026-04-21T15:53:17.458900Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:53:18.382936Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 3.9MB → 0.4MB (10.1x), 30 JPEGs deleted
2026-04-21T15:53:20.404928Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 5.2MB → 2.5MB (2.1x), 24 JPEGs deleted
2026-04-21T15:53:29.578611Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:53:32.631242Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:53:43.980351Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=click)
2026-04-21T15:53:45.448681Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:53:45.981861Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:53:51.490843Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:53:54.503801Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:54:00.554133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:54:03.594215Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:54:12.603968Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:54:18.363794Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=click)
2026-04-21T15:54:18.534215Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=click)
2026-04-21T15:54:45.841588Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1261864652156529447, trigger=click)
2026-04-21T15:54:46.025388Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1261864652156529447, trigger=click)
2026-04-21T15:54:49.896744Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1261864652156529447, trigger=visual_change)
2026-04-21T15:54:56.016125Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1261864652156529447, trigger=visual_change)
2026-04-21T15:54:59.114088Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1261864652156529447, trigger=visual_change)
2026-04-21T15:55:00.284632Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1261864652156529447, trigger=click)
2026-04-21T15:55:00.406838Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1261864652156529447, trigger=click)
2026-04-21T15:55:02.079710Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1261864652156529447, trigger=click)
2026-04-21T15:55:02.308488Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1261864652156529447, trigger=click)
2026-04-21T15:55:17.433420Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1236411717024251211, trigger=click)
2026-04-21T15:55:22.382212Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3575572948672507206, trigger=visual_change)
2026-04-21T15:55:33.553348Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3575572948672507206, trigger=click)
2026-04-21T15:55:33.725630Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3575572948672507206, trigger=click)
2026-04-21T15:55:36.499986Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3575572948672507206, trigger=click)
2026-04-21T15:55:36.647384Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3575572948672507206, trigger=visual_change)
2026-04-21T15:55:38.675147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3575572948672507206, trigger=click)
2026-04-21T15:55:38.953368Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3575572948672507206, trigger=click)
2026-04-21T15:55:49.727745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1928477198450198789, trigger=click)
2026-04-21T15:55:51.600613Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1928477198450198789, trigger=visual_change)
2026-04-21T15:55:58.958653Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6305115209475227780, trigger=click)
2026-04-21T15:56:10.814040Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2683270687017607806, trigger=click)
2026-04-21T15:56:23.872451Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8011254159114411036, trigger=visual_change)
2026-04-21T15:56:24.893455Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8011254159114411036, trigger=visual_change)
2026-04-21T15:56:38.964984Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2061546572815694422, trigger=click)
2026-04-21T15:57:05.134874Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8011254159114411036, trigger=visual_change)
2026-04-21T15:57:05.481118Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8011254159114411036, trigger=click)
2026-04-21T15:57:06.604281Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8011254159114411036, trigger=click)
2026-04-21T15:57:06.770499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8011254159114411036, trigger=click)
2026-04-21T15:57:07.327121Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8011254159114411036, trigger=click)
2026-04-21T15:57:12.184374Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8011254159114411036, trigger=visual_change)
2026-04-21T15:57:17.777283Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8011254159114411036, trigger=click)
2026-04-21T15:57:17.883656Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8011254159114411036, trigger=click)
2026-04-21T15:58:03.328237Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2061546572815694422, trigger=visual_change)
2026-04-21T15:58:04.873241Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2061546572815694422, trigger=click)
2026-04-21T15:58:05.083940Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2061546572815694422, trigger=click)
2026-04-21T15:58:25.172235Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=69 elapsed=4.754634416s
2026-04-21T15:58:25.172952Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 69 eligible frames
2026-04-21T15:58:27.752106Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 5.0MB → 0.7MB (7.7x), 39 JPEGs deleted
2026-04-21T15:58:28.844185Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1714600494192977193, trigger=click)
2026-04-21T15:58:30.120472Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 6.0MB → 2.7MB (2.2x), 28 JPEGs deleted
2026-04-21T15:59:45.857732Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2993864580543626498, trigger=click)
2026-04-21T15:59:47.242506Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2993864580543626498, trigger=visual_change)
2026-04-21T15:59:49.794356Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2993864580543626498, trigger=click)
2026-04-21T15:59:49.900792Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2993864580543626498, trigger=click)
2026-04-21T16:00:06.761409Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3195608759585503031, trigger=visual_change)
2026-04-21T16:00:13.468752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2319222304555239268, trigger=click)
2026-04-21T16:00:17.757305Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5732830672832053181, trigger=click)
2026-04-21T16:00:17.870684Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5732830672832053181, trigger=click)
2026-04-21T16:01:48.777919Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2131760867504785678, trigger=visual_change)
2026-04-21T16:01:51.903624Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2131760867504785678, trigger=visual_change)
2026-04-21T16:02:01.343178Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4025239947511295773, trigger=visual_change)
2026-04-21T16:02:02.388155Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4025239947511295773, trigger=visual_change)
2026-04-21T16:02:10.799801Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3195608759585503031, trigger=click)
2026-04-21T16:02:15.237578Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3195608759585503031, trigger=click)
2026-04-21T16:02:15.453443Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3195608759585503031, trigger=click)
2026-04-21T16:02:17.716070Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3195608759585503031, trigger=visual_change)
2026-04-21T16:02:26.881689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=click)
2026-04-21T16:02:27.03082...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"2026-04-21T15:17:49.549473Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3869963790957274395, trigger=click)\n2026-04-21T15:17:50.408526Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3869963790957274395, trigger=visual_change)\n2026-04-21T15:17:51.367993Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3869963790957274395, trigger=click)\n2026-04-21T15:17:51.658544Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3869963790957274395, trigger=click)\n2026-04-21T15:17:59.512794Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2138257446817006938, trigger=click)\n2026-04-21T15:17:59.630806Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2138257446817006938, trigger=click)\n2026-04-21T15:18:02.612463Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2138257446817006938, trigger=visual_change)\n2026-04-21T15:18:05.031295Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2138257446817006938, trigger=click)\n2026-04-21T15:18:05.949953Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2138257446817006938, trigger=visual_change)\n2026-04-21T15:18:07.005054Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2138257446817006938, trigger=click)\n2026-04-21T15:18:07.240048Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2138257446817006938, trigger=click)\n2026-04-21T15:18:08.321397Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2138257446817006938, trigger=click)\n2026-04-21T15:18:09.330989Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2138257446817006938, trigger=click)\n2026-04-21T15:18:16.198885Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4512592763947671045, trigger=click)\n2026-04-21T15:18:25.174657Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2138257446817006938, trigger=visual_change)\n2026-04-21T15:18:25.979747Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2138257446817006938, trigger=click)\n2026-04-21T15:18:26.174344Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2138257446817006938, trigger=click)\n2026-04-21T15:18:27.329517Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2138257446817006938, trigger=click)\n2026-04-21T15:18:27.442331Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2138257446817006938, trigger=click)\n2026-04-21T15:18:34.134351Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2138257446817006938, trigger=visual_change)\n2026-04-21T15:18:34.454235Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2138257446817006938, trigger=click)\n2026-04-21T15:19:23.799546Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2134448310261037766, trigger=visual_change)\n2026-04-21T15:19:35.195461Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2134448310261037766, trigger=visual_change)\n2026-04-21T15:19:36.616914Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2134448310261037766, trigger=visual_change)\n2026-04-21T15:19:43.812610Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:19:46.459367Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:19:51.103859Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:19:51.961944Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:19:52.167527Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:19:56.622639Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:19:56.728247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:20:02.598979Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:20:02.924826Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:20:05.668202Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:20:11.789308Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:20:14.756464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:20:20.882925Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:20:38.171496Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:20:41.202478Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:20:41.928948Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:20:48.058419Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:20:51.039890Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:22:03.799949Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:22:13.010196Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:22:19.940721Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=36 elapsed=1.206931458s\n2026-04-21T15:22:19.940942Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 36 eligible frames\n2026-04-21T15:22:21.367797Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 3.8MB → 1.6MB (2.4x), 15 JPEGs deleted\n2026-04-21T15:22:22.862852Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 4.4MB → 1.3MB (3.3x), 19 JPEGs deleted\n2026-04-21T15:22:28.040013Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:22:31.043424Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:22:37.137451Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:22:40.189158Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:22:46.342577Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:22:52.360301Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:22:55.361962Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:23:01.361462Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:23:04.429481Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:24:03.316425Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8540343042990809979, trigger=visual_change)\n2026-04-21T15:24:09.357754Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8540343042990809979, trigger=visual_change)\n2026-04-21T15:24:17.045608Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-357712155289738757, trigger=click)\n2026-04-21T15:24:17.229938Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-357712155289738757, trigger=click)\n2026-04-21T15:24:39.299106Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2318587192590272303, trigger=click)\n2026-04-21T15:24:39.503939Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2318587192590272303, trigger=click)\n2026-04-21T15:24:40.703200Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2318587192590272303, trigger=visual_change)\n2026-04-21T15:25:20.207959Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-115592740355774573, trigger=visual_change)\n2026-04-21T15:25:34.045255Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5357895394186669836, trigger=visual_change)\n2026-04-21T15:25:34.611160Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5357895394186669836, trigger=click)\n2026-04-21T15:25:37.799744Z WARN sqlx::query: summary=\"COMMIT\" db.statement=\"\" rows_affected=1 rows_returned=0 elapsed=1.72370025s\n2026-04-21T15:25:37.956786Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5357895394186669836, trigger=click)\n2026-04-21T15:25:38.065798Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5357895394186669836, trigger=click)\n2026-04-21T15:27:27.008772Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=46 elapsed=4.119326709s\n2026-04-21T15:27:27.008926Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 46 eligible frames\n2026-04-21T15:27:28.808464Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 4.8MB → 2.5MB (1.9x), 19 JPEGs deleted\n2026-04-21T15:27:29.051101Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=525296185995483322, trigger=visual_change)\n2026-04-21T15:27:30.940888Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.6MB → 2.0MB (2.3x), 25 JPEGs deleted\n2026-04-21T15:27:38.326692Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=525296185995483322, trigger=visual_change)\n2026-04-21T15:27:46.472144Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2318587192590272303, trigger=click)\n2026-04-21T15:27:53.687585Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:27:53.821391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:27:56.568366Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:30:07.617208Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7345067017169779372, trigger=visual_change)\n2026-04-21T15:30:35.626228Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:30:38.496521Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:30:47.627510Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:30:50.578236Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:30:50.726770Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:30:56.653721Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:31:02.747003Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:31:05.748607Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:31:17.869430Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:31:20.951104Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:31:26.942644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:31:30.113620Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:31:31.259291Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:31:31.514010Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:31:33.767000Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:31:33.920466Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:31:35.506530Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:31:35.685079Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:31:36.710558Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:31:36.953539Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:31:38.451284Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:31:38.659646Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:31:41.384919Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:32:26.999680Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:32:29.990647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:32:36.791142Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=59 elapsed=5.839242958s\n2026-04-21T15:32:36.791363Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 59 eligible frames\n2026-04-21T15:32:39.153877Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 8.5MB → 3.9MB (2.2x), 31 JPEGs deleted\n2026-04-21T15:32:43.055663Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.3MB → 2.2MB (2.0x), 26 JPEGs deleted\n2026-04-21T15:33:58.964559Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=click)\n2026-04-21T15:34:01.370038Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:34:16.496030Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:34:19.493349Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:35:07.898889Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:35:16.972268Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:35:20.035784Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:35:26.049636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:35:32.118199Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:35:35.122849Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:35:44.214841Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:35:47.232611Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:35:53.252836Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:35:56.262473Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:36:03.912825Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=32684078525934003, trigger=click)\n2026-04-21T15:36:04.039319Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=click)\n2026-04-21T15:36:06.889882Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=click)\n2026-04-21T15:36:17.457615Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:36:27.555065Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1505193671044774267, trigger=click)\n2026-04-21T15:36:42.607815Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2864109645901807081, trigger=click)\n2026-04-21T15:37:44.772586Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=69 elapsed=1.703329916s\n2026-04-21T15:37:44.772693Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 69 eligible frames\n2026-04-21T15:37:47.061751Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 8.3MB → 4.1MB (2.0x), 32 JPEGs deleted\n2026-04-21T15:37:49.263118Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 35 frames, 4.9MB → 1.5MB (3.3x), 35 JPEGs deleted\n2026-04-21T15:38:48.339863Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7345067017169779372, trigger=visual_change)\n2026-04-21T15:39:04.763572Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4843719893880893793, trigger=visual_change)\n2026-04-21T15:40:05.496361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:40:29.591282Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:41:16.164160Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2900812915277822723, trigger=click)\n2026-04-21T15:41:23.661891Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:41:26.703461Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:41:32.781037Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:41:35.789883Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:41:41.811272Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:41:44.919455Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:42:05.404072Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5004276282384800505, trigger=click)\n2026-04-21T15:42:06.660073Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5004276282384800505, trigger=visual_change)\n2026-04-21T15:42:21.721735Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5004276282384800505, trigger=visual_change)\n2026-04-21T15:42:24.767284Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5004276282384800505, trigger=visual_change)\n2026-04-21T15:42:30.886797Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5004276282384800505, trigger=visual_change)\n2026-04-21T15:42:32.353284Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5004276282384800505, trigger=click)\n2026-04-21T15:42:53.342750Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=52 elapsed=4.068091375s\n2026-04-21T15:42:53.343209Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 52 eligible frames\n2026-04-21T15:43:00.350701Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 7.7MB → 3.8MB (2.0x), 32 JPEGs deleted\n2026-04-21T15:43:04.665303Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.0MB → 1.4MB (2.2x), 18 JPEGs deleted\n2026-04-21T15:43:34.607312Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=853482337029112184, trigger=click)\n2026-04-21T15:43:34.872392Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=853482337029112184, trigger=click)\n2026-04-21T15:43:35.899763Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=853482337029112184, trigger=click)\n2026-04-21T15:43:48.406088Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=853482337029112184, trigger=click)\n2026-04-21T15:43:48.585014Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=853482337029112184, trigger=click)\n2026-04-21T15:43:50.163180Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=853482337029112184, trigger=click)\n2026-04-21T15:43:50.385739Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=853482337029112184, trigger=click)\n2026-04-21T15:43:53.195867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=853482337029112184, trigger=click)\n2026-04-21T15:44:13.974997Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7638600394188067596, trigger=click)\n2026-04-21T15:45:09.004346Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1645333894657549955, trigger=visual_change)\n2026-04-21T15:45:25.499345Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3128527177503635561, trigger=click)\n2026-04-21T15:45:26.508782Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3128527177503635561, trigger=visual_change)\n2026-04-21T15:45:29.578474Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3128527177503635561, trigger=visual_change)\n2026-04-21T15:45:33.069643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3128527177503635561, trigger=visual_change)\n2026-04-21T15:45:35.154439Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3128527177503635561, trigger=click)\n2026-04-21T15:45:50.867873Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:45:51.543329Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=click)\n2026-04-21T15:45:51.688145Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=click)\n2026-04-21T15:45:56.968268Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:45:59.992989Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:46:15.190380Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:46:21.349140Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:46:24.108646Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=click)\n2026-04-21T15:46:24.239949Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=click)\n2026-04-21T15:46:31.011607Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:46:34.038038Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:46:40.140459Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:46:43.202999Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:46:49.666830Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=click)\n2026-04-21T15:46:52.233599Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:46:52.919343Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=click)\n2026-04-21T15:47:01.421995Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:47:04.387592Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:47:13.219366Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=click)\n2026-04-21T15:47:14.410197Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=click)\n2026-04-21T15:47:14.555427Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:47:47.182774Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-926939256350628341, trigger=click)\n2026-04-21T15:47:47.313085Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-926939256350628341, trigger=click)\n2026-04-21T15:47:51.007142Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-926939256350628341, trigger=visual_change)\n2026-04-21T15:47:57.147902Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=click)\n2026-04-21T15:47:57.339006Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:47:58.246964Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:48:10.859817Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=60 elapsed=6.154614084s\n2026-04-21T15:48:10.860968Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 60 eligible frames\n2026-04-21T15:48:12.865127Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 3.8MB → 0.4MB (8.5x), 29 JPEGs deleted\n2026-04-21T15:48:15.453116Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 5.3MB → 1.9MB (2.8x), 29 JPEGs deleted\n2026-04-21T15:48:47.469195Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1918324922935553040, trigger=visual_change)\n2026-04-21T15:49:03.828434Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1918324922935553040, trigger=visual_change)\n2026-04-21T15:49:32.798887Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6658269488663706414, trigger=click)\n2026-04-21T15:50:07.795304Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:50:22.939421Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6692792019664876292, trigger=visual_change)\n2026-04-21T15:51:11.513005Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9198264877289985337, trigger=visual_change)\n2026-04-21T15:51:22.759879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9198264877289985337, trigger=click)\n2026-04-21T15:52:06.151994Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2061546572815694422, trigger=visual_change)\n2026-04-21T15:52:10.101525Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2061546572815694422, trigger=visual_change)\n2026-04-21T15:52:10.447385Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2061546572815694422, trigger=click)\n2026-04-21T15:52:17.973740Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2061546572815694422, trigger=visual_change)\n2026-04-21T15:52:27.034549Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6654491695696088287, trigger=visual_change)\n2026-04-21T15:52:34.865867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=click)\n2026-04-21T15:52:37.002754Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:52:37.758891Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=click)\n2026-04-21T15:52:37.903061Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=click)\n2026-04-21T15:52:58.490245Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2319943303696444798, trigger=click)\n2026-04-21T15:52:58.636967Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2319943303696444798, trigger=click)\n2026-04-21T15:53:05.413509Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=click)\n2026-04-21T15:53:05.635434Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=click)\n2026-04-21T15:53:14.450507Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:53:16.412940Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 56 eligible frames\n2026-04-21T15:53:17.458900Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:53:18.382936Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 3.9MB → 0.4MB (10.1x), 30 JPEGs deleted\n2026-04-21T15:53:20.404928Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 5.2MB → 2.5MB (2.1x), 24 JPEGs deleted\n2026-04-21T15:53:29.578611Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:53:32.631242Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:53:43.980351Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=click)\n2026-04-21T15:53:45.448681Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:53:45.981861Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:53:51.490843Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:53:54.503801Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:54:00.554133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:54:03.594215Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:54:12.603968Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:54:18.363794Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=click)\n2026-04-21T15:54:18.534215Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=click)\n2026-04-21T15:54:45.841588Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1261864652156529447, trigger=click)\n2026-04-21T15:54:46.025388Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1261864652156529447, trigger=click)\n2026-04-21T15:54:49.896744Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1261864652156529447, trigger=visual_change)\n2026-04-21T15:54:56.016125Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1261864652156529447, trigger=visual_change)\n2026-04-21T15:54:59.114088Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1261864652156529447, trigger=visual_change)\n2026-04-21T15:55:00.284632Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1261864652156529447, trigger=click)\n2026-04-21T15:55:00.406838Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1261864652156529447, trigger=click)\n2026-04-21T15:55:02.079710Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1261864652156529447, trigger=click)\n2026-04-21T15:55:02.308488Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1261864652156529447, trigger=click)\n2026-04-21T15:55:17.433420Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1236411717024251211, trigger=click)\n2026-04-21T15:55:22.382212Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3575572948672507206, trigger=visual_change)\n2026-04-21T15:55:33.553348Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3575572948672507206, trigger=click)\n2026-04-21T15:55:33.725630Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3575572948672507206, trigger=click)\n2026-04-21T15:55:36.499986Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3575572948672507206, trigger=click)\n2026-04-21T15:55:36.647384Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3575572948672507206, trigger=visual_change)\n2026-04-21T15:55:38.675147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3575572948672507206, trigger=click)\n2026-04-21T15:55:38.953368Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3575572948672507206, trigger=click)\n2026-04-21T15:55:49.727745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1928477198450198789, trigger=click)\n2026-04-21T15:55:51.600613Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1928477198450198789, trigger=visual_change)\n2026-04-21T15:55:58.958653Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6305115209475227780, trigger=click)\n2026-04-21T15:56:10.814040Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2683270687017607806, trigger=click)\n2026-04-21T15:56:23.872451Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8011254159114411036, trigger=visual_change)\n2026-04-21T15:56:24.893455Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8011254159114411036, trigger=visual_change)\n2026-04-21T15:56:38.964984Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2061546572815694422, trigger=click)\n2026-04-21T15:57:05.134874Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8011254159114411036, trigger=visual_change)\n2026-04-21T15:57:05.481118Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8011254159114411036, trigger=click)\n2026-04-21T15:57:06.604281Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8011254159114411036, trigger=click)\n2026-04-21T15:57:06.770499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8011254159114411036, trigger=click)\n2026-04-21T15:57:07.327121Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8011254159114411036, trigger=click)\n2026-04-21T15:57:12.184374Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8011254159114411036, trigger=visual_change)\n2026-04-21T15:57:17.777283Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8011254159114411036, trigger=click)\n2026-04-21T15:57:17.883656Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8011254159114411036, trigger=click)\n2026-04-21T15:58:03.328237Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2061546572815694422, trigger=visual_change)\n2026-04-21T15:58:04.873241Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2061546572815694422, trigger=click)\n2026-04-21T15:58:05.083940Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2061546572815694422, trigger=click)\n2026-04-21T15:58:25.172235Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=69 elapsed=4.754634416s\n2026-04-21T15:58:25.172952Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 69 eligible frames\n2026-04-21T15:58:27.752106Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 5.0MB → 0.7MB (7.7x), 39 JPEGs deleted\n2026-04-21T15:58:28.844185Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1714600494192977193, trigger=click)\n2026-04-21T15:58:30.120472Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 6.0MB → 2.7MB (2.2x), 28 JPEGs deleted\n2026-04-21T15:59:45.857732Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2993864580543626498, trigger=click)\n2026-04-21T15:59:47.242506Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2993864580543626498, trigger=visual_change)\n2026-04-21T15:59:49.794356Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2993864580543626498, trigger=click)\n2026-04-21T15:59:49.900792Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2993864580543626498, trigger=click)\n2026-04-21T16:00:06.761409Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3195608759585503031, trigger=visual_change)\n2026-04-21T16:00:13.468752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2319222304555239268, trigger=click)\n2026-04-21T16:00:17.757305Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5732830672832053181, trigger=click)\n2026-04-21T16:00:17.870684Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5732830672832053181, trigger=click)\n2026-04-21T16:01:48.777919Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2131760867504785678, trigger=visual_change)\n2026-04-21T16:01:51.903624Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2131760867504785678, trigger=visual_change)\n2026-04-21T16:02:01.343178Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4025239947511295773, trigger=visual_change)\n2026-04-21T16:02:02.388155Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4025239947511295773, trigger=visual_change)\n2026-04-21T16:02:10.799801Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3195608759585503031, trigger=click)\n2026-04-21T16:02:15.237578Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3195608759585503031, trigger=click)\n2026-04-21T16:02:15.453443Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3195608759585503031, trigger=click)\n2026-04-21T16:02:17.716070Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3195608759585503031, trigger=visual_change)\n2026-04-21T16:02:26.881689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=click)\n2026-04-21T16:02:27.030824Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1116166152131308044, trigger=click)\n2026-04-21T16:02:31.513617Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1116166152131308044, trigger=visual_change)\n2026-04-21T16:02:42.461634Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=click)\n2026-04-21T16:02:42.710546Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1116166152131308044, trigger=click)\n2026-04-21T16:02:46.369193Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=visual_change)\n2026-04-21T16:02:52.431259Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=visual_change)\n2026-04-21T16:02:52.856920Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1116166152131308044, trigger=click)\n2026-04-21T16:02:55.643958Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=visual_change)\n2026-04-21T16:02:56.549511Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1116166152131308044, trigger=visual_change)\n2026-04-21T16:02:59.878468Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=click)\n2026-04-21T16:03:00.026944Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1116166152131308044, trigger=click)\n2026-04-21T16:03:00.966506Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=click)\n2026-04-21T16:03:14.972630Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=visual_change)\n2026-04-21T16:03:19.566899Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4025239947511295773, trigger=click)\n2026-04-21T16:03:19.671409Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4025239947511295773, trigger=visual_change)\n2026-04-21T16:03:20.454813Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4025239947511295773, trigger=click)\n2026-04-21T16:03:20.540316Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4025239947511295773, trigger=click)\n2026-04-21T16:03:22.683211Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4025239947511295773, trigger=visual_change)\n2026-04-21T16:03:36.139204Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=63 elapsed=6.008212292s\n2026-04-21T16:03:36.139322Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 63 eligible frames\n2026-04-21T16:03:37.473231Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1116166152131308044, trigger=click)\n2026-04-21T16:03:37.595185Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=click)\n2026-04-21T16:03:38.391239Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 4.1MB → 0.4MB (10.0x), 32 JPEGs deleted\n2026-04-21T16:03:40.661697Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 5.4MB → 2.3MB (2.3x), 29 JPEGs deleted\n2026-04-21T16:03:48.609749Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1116166152131308044, trigger=click)\n2026-04-21T16:03:48.744925Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=visual_change)\n2026-04-21T16:03:50.472701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1116166152131308044, trigger=visual_change)\n2026-04-21T16:03:51.569212Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=visual_change)\n2026-04-21T16:03:57.568165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=visual_change)\n2026-04-21T16:03:58.491291Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1116166152131308044, trigger=click)\n2026-04-21T16:03:58.627085Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=click)\n2026-04-21T16:04:02.611784Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1116166152131308044, trigger=visual_change)\n2026-04-21T16:04:12.375564Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1116166152131308044, trigger=visual_change)\n2026-04-21T16:04:12.929157Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=click)\n2026-04-21T16:04:30.915793Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=click)\n2026-04-21T16:04:57.195529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1116166152131308044, trigger=visual_change)\n2026-04-21T16:04:58.079114Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1116166152131308044, trigger=click)\n2026-04-21T16:04:58.230204Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=click)\n2026-04-21T16:05:12.566561Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1116166152131308044, trigger=visual_change)\n2026-04-21T16:05:12.855158Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=visual_change)\n2026-04-21T16:05:21.636677Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=visual_change)\n2026-04-21T16:05:24.926399Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=visual_change)\n2026-04-21T16:06:04.116239Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=visual_change)\n2026-04-21T16:06:24.678633Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2452943073484325532, trigger=click)\n2026-04-21T16:06:26.740732Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2452943073484325532, trigger=click)\n2026-04-21T16:06:26.894232Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2452943073484325532, trigger=click)\n2026-04-21T16:08:29.709550Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2784622108492791959, trigger=click)\n2026-04-21T16:08:30.471514Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2784622108492791959, trigger=visual_change)\n2026-04-21T16:08:36.029304Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=75691378564349849, trigger=visual_change)\n2026-04-21T16:08:37.823497Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=75691378564349849, trigger=visual_change)\n2026-04-21T16:08:47.835475Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=88 elapsed=7.182833s\n2026-04-21T16:08:47.836310Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 88 eligible frames\n2026-04-21T16:08:51.474399Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 46 frames, 5.9MB → 0.6MB (9.3x), 46 JPEGs deleted\n2026-04-21T16:08:56.880858Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 40 frames, 8.0MB → 3.5MB (2.3x), 40 JPEGs deleted\n2026-04-21T16:09:11.404363Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5560866901432731747, trigger=visual_change)\n2026-04-21T16:09:19.521573Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5218742967738517410, trigger=visual_change)\n2026-04-21T16:09:23.451591Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5218742967738517410, trigger=visual_change)\n2026-04-21T16:09:24.600660Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5218742967738517410, trigger=click)\n2026-04-21T16:09:24.813137Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5218742967738517410, trigger=click)\n2026-04-21T16:09:25.334988Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5218742967738517410, trigger=click)\n2026-04-21T16:09:53.757232Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8889319479238815843, trigger=click)\n2026-04-21T16:09:53.883019Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8889319479238815843, trigger=click)\n2026-04-21T16:09:56.453132Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8889319479238815843, trigger=visual_change)\n2026-04-21T16:09:57.689649Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8889319479238815843, trigger=visual_change)\n2026-04-21T16:09:58.297586Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8889319479238815843, trigger=click)\n2026-04-21T16:10:01.890864Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3521802135830221118, trigger=click)\n2026-04-21T16:10:02.099325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3521802135830221118, trigger=click)\n2026-04-21T16:10:06.032086Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3521802135830221118, trigger=visual_change)\n2026-04-21T16:10:09.704587Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=941395574046373634, trigger=visual_change)\n2026-04-21T16:10:12.783946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4616958244172810633, trigger=visual_change)\n2026-04-21T16:12:49.952858Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-123373349137473243, trigger=click)\n2026-04-21T16:12:50.087991Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-123373349137473243, trigger=click)\n2026-04-21T16:12:53.090814Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-123373349137473243, trigger=click)\n2026-04-21T16:12:53.225701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-123373349137473243, trigger=click)\n2026-04-21T16:12:54.436555Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-123373349137473243, trigger=click)\n2026-04-21T16:12:54.587230Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-123373349137473243, trigger=click)\n2026-04-21T16:12:59.666599Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-123373349137473243, trigger=click)\n2026-04-21T16:12:59.849594Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-123373349137473243, trigger=click)\n2026-04-21T16:13:01.462042Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-123373349137473243, trigger=visual_change)\n2026-04-21T16:13:17.704686Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-123373349137473243, trigger=click)\n2026-04-21T16:13:17.881020Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-123373349137473243, trigger=click)\n2026-04-21T16:13:25.121719Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-123373349137473243, trigger=click)\n2026-04-21T16:13:29.059212Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1980321148661859128, trigger=visual_change)\n2026-04-21T16:13:29.901114Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1980321148661859128, trigger=click)\n2026-04-21T16:13:30.107373Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1980321148661859128, trigger=click)\n2026-04-21T16:13:34.114790Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1980321148661859128, trigger=click)\n2026-04-21T16:13:34.287663Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1980321148661859128, trigger=click)\n2026-04-21T16:13:58.094458Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1980321148661859128, trigger=click)\n2026-04-21T16:14:03.164207Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=87 elapsed=6.263532125s\n2026-04-21T16:14:03.164392Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 87 eligible frames\n2026-04-21T16:14:05.747863Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 38 frames, 4.9MB → 0.7MB (6.9x), 38 JPEGs deleted\n2026-04-21T16:14:09.450248Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 47 frames, 7.2MB → 2.4MB (3.0x), 47 JPEGs deleted\n2026-04-21T16:14:09.494731Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1980321148661859128, trigger=click)\n2026-04-21T16:14:30.037778Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1980321148661859128, trigger=click)\n2026-04-21T16:14:32.515759Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1980321148661859128, trigger=visual_change)\n2026-04-21T16:14:35.314711Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1980321148661859128, trigger=click)\n2026-04-21T16:14:35.507419Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1980321148661859128, trigger=click)\n2026-04-21T16:14:39.332082Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1980321148661859128, trigger=visual_change)\n2026-04-21T16:15:16.219018Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4023789962951736249, trigger=click)\n2026-04-21T16:15:46.847760Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4029553059536117170, trigger=click)\n2026-04-21T16:15:47.086575Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4029553059536117170, trigger=click)\n2026-04-21T16:15:49.652277Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4029553059536117170, trigger=click)\n2026-04-21T16:15:49.811262Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4029553059536117170, trigger=click)\n2026-04-21T16:15:59.825614Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4029553059536117170, trigger=visual_change)\n2026-04-21T16:16:06.513537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4029553059536117170, trigger=click)\n2026-04-21T16:16:06.745111Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4029553059536117170, trigger=click)\n2026-04-21T16:16:08.901255Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4029553059536117170, trigger=visual_change)\n2026-04-21T16:16:10.268255Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4029553059536117170, trigger=click)\n2026-04-21T16:16:10.422562Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4029553059536117170, trigger=click)\n2026-04-21T16:16:16.344421Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3658909392690979501, trigger=click)\n2026-04-21T16:16:16.525379Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3658909392690979501, trigger=click)\n2026-04-21T16:16:27.262509Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3658909392690979501, trigger=visual_change)\n2026-04-21T16:16:30.098307Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3658909392690979501, trigger=visual_change)\n2026-04-21T16:16:33.063533Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3658909392690979501, trigger=visual_change)\n2026-04-21T16:16:36.082624Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3658909392690979501, trigger=visual_change)\n2026-04-21T16:16:43.249986Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=718360199604596957, trigger=visual_change)\n2026-04-21T16:16:45.281138Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=718360199604596957, trigger=click)\n2026-04-21T16:16:45.431571Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=718360199604596957, trigger=click)\n2026-04-21T16:16:46.085204Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=718360199604596957, trigger=click)\n2026-04-21T16:16:46.339290Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=718360199604596957, trigger=click)\n2026-04-21T16:16:54.878246Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6121257606737238481, trigger=click)\n2026-04-21T16:16:55.038097Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6121257606737238481, trigger=click)\n2026-04-21T16:16:58.147630Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6121257606737238481, trigger=click)\n2026-04-21T16:16:58.309169Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6121257606737238481, trigger=click)\n2026-04-21T16:17:08.291905Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3868718810860276938, trigger=visual_change)\n2026-04-21T16:17:11.295917Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3868718810860276938, trigger=visual_change)\n2026-04-21T16:17:25.196969Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3868718810860276938, trigger=click)\n2026-04-21T16:17:27.953237Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-123373349137473243, trigger=click)\n2026-04-21T16:17:29.174531Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-123373349137473243, trigger=click)\n2026-04-21T16:17:59.859780Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3521802135830221118, trigger=click)\n2026-04-21T16:18:00.105716Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3521802135830221118, trigger=click)\n2026-04-21T16:18:00.947735Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3521802135830221118, trigger=click)\n2026-04-21T16:18:01.907213Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3521802135830221118, trigger=click)\n2026-04-21T16:18:02.272567Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3521802135830221118, trigger=click)\n2026-04-21T16:18:02.852516Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3521802135830221118, trigger=click)\n2026-04-21T16:18:08.344417Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3521802135830221118, trigger=click)\n2026-04-21T16:18:11.910412Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3521802135830221118, trigger=click)\n2026-04-21T16:18:19.125073Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3521802135830221118, trigger=click)\n2026-04-21T16:18:19.476214Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3521802135830221118, trigger=click)\n2026-04-21T16:18:20.504342Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3521802135830221118, trigger=visual_change)\n2026-04-21T16:19:13.172448Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=66 elapsed=3.711616209s\n2026-04-21T16:19:13.173007Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 66 eligible frames\n2026-04-21T16:19:15.229077Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 34 frames, 4.4MB → 0.5MB (8.8x), 34 JPEGs deleted\n2026-04-21T16:19:17.283566Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 6.2MB → 2.4MB (2.6x), 30 JPEGs deleted\n2026-04-21T16:21:43.978231Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:21:46.449363Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:21:47.010888Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:21:47.267688Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:21:48.266276Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:21:48.523318Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:21:49.578569Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:21:49.753862Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:21:50.593155Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:21:50.762539Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:21:52.220085Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:21:52.378200Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:21:53.544495Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:21:53.776243Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:21:55.479563Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:21:55.616256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:21:56.134887Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:21:56.376072Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:22:02.656872Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:22:03.509234Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2017155528422073121, trigger=visual_change)\n2026-04-21T16:22:05.023479Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:22:06.542978Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:22:08.044712Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2017155528422073121, trigger=visual_change)\n2026-04-21T16:22:08.340690Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:22:12.210747Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:22:12.423930Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:23:15.199698Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-30521469954674190, trigger=click)\n2026-04-21T16:23:15.354743Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-30521469954674190, trigger=click)\n2026-04-21T16:23:18.610038Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-30521469954674190, trigger=click)\n2026-04-21T16:23:21.130558Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-30521469954674190, trigger=visual_change)\n2026-04-21T16:24:18.871045Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=49 elapsed=1.535675291s\n2026-04-21T16:24:18.871172Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 49 eligible frames\n2026-04-21T16:24:20.557940Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 4.9MB → 2.0MB (2.4x), 23 JPEGs deleted\n2026-04-21T16:24:22.772790Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 5.0MB → 2.0MB (2.5x), 24 JPEGs deleted\n2026-04-21T16:24:39.491422Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=visual_change)\n2026-04-21T16:27:08.488294Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5087545351716304990, trigger=visual_change)\n2026-04-21T16:27:41.920414Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-686109667244869288, trigger=visual_change)\n2026-04-21T16:27:47.209691Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:27:48.325281Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:27:48.568437Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:27:51.265858Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=visual_change)\n2026-04-21T16:27:53.167123Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:27:53.333292Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:27:54.408256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=visual_change)\n2026-04-21T16:27:55.663421Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:27:56.020447Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:27:58.403599Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=visual_change)\n2026-04-21T16:27:59.132903Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:27:59.354436Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:28:00.026741Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:28:02.693849Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:28:03.000321Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:28:04.341119Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=visual_change)\n2026-04-21T16:28:04.600979Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:28:05.371674Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:28:05.692863Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:28:56.190858Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2535035496832215689, trigger=click)\n2026-04-21T16:29:25.624016Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=50 elapsed=2.842206042s\n2026-04-21T16:29:25.624819Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 50 eligible frames\n2026-04-21T16:29:27.556180Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.8MB → 1.1MB (5.5x), 25 JPEGs deleted\n2026-04-21T16:29:29.399803Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 4.7MB → 2.1MB (2.2x), 23 JPEGs deleted\n2026-04-21T16:30:44.161002Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8757469993753059500, trigger=click)\n2026-04-21T16:30:44.305286Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8757469993753059500, trigger=click)\n2026-04-21T16:31:32.916835Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7603519901961973104, trigger=click)\n2026-04-21T16:31:33.066629Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7603519901961973104, trigger=click)\n2026-04-21T16:31:54.062496Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2156736956977387025, trigger=click)\n2026-04-21T16:33:05.302686Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=665070061356436616, trigger=click)\n2026-04-21T16:33:05.429602Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=665070061356436616, trigger=click)\n2026-04-21T16:33:06.915467Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=665070061356436616, trigger=click)\n2026-04-21T16:33:07.095841Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=665070061356436616, trigger=click)\n2026-04-21T16:33:38.752838Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-225993066349542266, trigger=click)\n2026-04-21T16:34:32.128508Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=32 elapsed=2.71939625s\n2026-04-21T16:34:32.128621Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 32 eligible frames\n2026-04-21T16:34:33.230523Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.1MB → 0.6MB (5.1x), 17 JPEGs deleted\n2026-04-21T16:34:34.516567Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.7MB → 1.1MB (2.4x), 13 JPEGs deleted\n2026-04-21T16:36:49.435926Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4592186608403217716, trigger=click)\n2026-04-21T16:36:50.599109Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4592186608403217716, trigger=visual_change)\n2026-04-21T16:39:00.566828Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3077590213613135779, trigger=click)\n2026-04-21T16:39:00.685917Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3077590213613135779, trigger=click)\n2026-04-21T16:39:09.669053Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6113312556119042207, trigger=click)\n2026-04-21T16:39:28.954550Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=869328293033429183, trigger=click)\n2026-04-21T16:39:29.084826Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=869328293033429183, trigger=click)\n2026-04-21T16:39:31.752392Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4079194444055345358, trigger=click)\n2026-04-21T16:39:31.941130Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4079194444055345358, trigger=click)\n2026-04-21T16:39:37.082813Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=50 elapsed=2.555752875s\n2026-04-21T16:39:37.082914Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 50 eligible frames\n2026-04-21T16:39:39.896800Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.4MB → 0.9MB (4.9x), 24 JPEGs deleted\n2026-04-21T16:39:42.979598Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.6MB → 1.9MB (2.5x), 24 JPEGs deleted\n2026-04-21T16:39:54.138147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=869328293033429183, trigger=click)\n2026-04-21T16:41:34.967355Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:41:35.133385Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:43:15.919099Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8254246256813675665, trigger=click)\n2026-04-21T16:43:44.014066Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8254246256813675665, trigger=visual_change)\n2026-04-21T16:44:45.410923Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=35 elapsed=2.419201375s\n2026-04-21T16:44:45.411045Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 35 eligible frames\n2026-04-21T16:44:46.383629Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.8MB → 0.3MB (9.5x), 15 JPEGs deleted\n2026-04-21T16:44:47.792527Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.6MB → 0.8MB (4.3x), 18 JPEGs deleted\n2026-04-21T16:49:53.308820Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=47 elapsed=5.487768917s\n2026-04-21T16:49:53.309371Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 47 eligible frames\n2026-04-21T16:49:54.673701Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.9MB → 0.3MB (13.1x), 21 JPEGs deleted\n2026-04-21T16:49:56.314871Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.7MB → 1.2MB (4.0x), 24 JPEGs deleted\n2026-04-21T16:54:59.385017Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=62 elapsed=3.057419917s\n2026-04-21T16:54:59.385210Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 62 eligible frames\n2026-04-21T16:55:00.998239Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.8MB → 0.5MB (10.3x), 26 JPEGs deleted\n2026-04-21T16:55:03.739041Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 34 frames, 5.8MB → 2.6MB (2.2x), 34 JPEGs deleted\n2026-04-21T16:55:17.768634Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)\n2026-04-21T17:23:59.183039Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)\n2026-04-21T17:23:59.216966Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2\n2026-04-21T17:24:00.832399Z INFO screenpipe_engine::vision_manager::monitor_watcher: Monitor 2 disconnected, stopping recording\n2026-04-21T17:24:00.832464Z INFO screenpipe_engine::vision_manager::manager: Stopping vision recording for monitor 2\n2026-04-21T17:24:00.832336Z INFO sck_rs::stream_manager: stopped 2 persistent stream(s)\n2026-04-21T17:24:04.654209Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-21T17:24:30.699969Z ERROR screenpipe_engine::resource_monitor: Failed to send resource usage to PostHog: error sending request for url (https://us.i.posthog.com/capture/)\n2026-04-21T17:25:01.085383Z INFO screenpipe_engine::vision_manager::monitor_watcher: Monitor 2 reconnected, resuming recording\n2026-04-21T17:25:01.273818Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-21T17:25:01.273870Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-21T17:25:01.273896Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-21T17:25:02.310236Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-21T17:25:02.808234Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=66228, dur=365ms\n2026-04-21T17:25:04.889075Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:07.887565Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:10.918390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:14.039034Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:17.160521Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:26.096276Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:29.061270Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:32.067380Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:35.263701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:41.164753Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:44.239172Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:47.149320Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:50.242915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:53.308794Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:56.218138Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:59.144297Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:26:05.965946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:08.584110Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:11.350189Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:14.339609Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:17.398251Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:20.782119Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:23.385506Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:26.427626Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:29.573661Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:32.450744Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:38.464132Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:41.456915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:44.496278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:47.541313Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:50.596256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:53.597171Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:56.764522Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:59.751576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:02.719391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:08.829090Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:11.800601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:14.811724Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:17.855339Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:26.878741Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:29.933020Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:32.947216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:36.041239Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:38.993657Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:42.039373Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:45.172399Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:48.081804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:51.142939Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:54.169253Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:00.341347Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:03.322832Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:06.631198Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:09.537232Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:12.406113Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:15.381764Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:15.806839Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=44 elapsed=5.777403s\n2026-04-21T17:28:15.806951Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 44 eligible frames\n2026-04-21T17:28:17.108106Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.9MB → 0.3MB (13.1x), 21 JPEGs deleted\n2026-04-21T17:28:18.370832Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.6MB → 0.5MB (7.8x), 21 JPEGs deleted\n2026-04-21T17:28:18.461408Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:22.068097Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:24.604711Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:27.608060Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:33.774822Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:36.697278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:39.729251Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:42.728755Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:45.748204Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:48.768910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:51.814752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:54.970698Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:57.869874Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:00.913837Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:07.461529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:10.043928Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:13.182411Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:16.080133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:19.108570Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:22.322033Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:25.172666Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:28.398354Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:31.249083Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:34.289745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:40.303310Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:43.308015Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:46.360649Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:49.356069Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:52.450205Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:55.422975Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:58.446390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:01.491253Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:04.500380Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:16.830925Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:19.856895Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:23.100486Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:25.938910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:28.953603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:32.061536Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:35.030958Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:38.162895Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:41.148165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:44.019513Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:50.259576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:53.148070Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:56.309979Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:59.185610Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:02.278235Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:05.287341Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:08.409426Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:11.489977Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:14.319338Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:17.348153Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:23.351025Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:26.427529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:29.337254Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:32.386165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:35.653387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:38.430216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:41.428909Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:44.432459Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:47.448603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:50.432780Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:56.535727Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:59.590792Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:02.621444Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:05.627964Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:08.710139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:11.765247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:14.787638Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:17.876480Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)\n2026-04-21T17:32:20.977937Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)\n2026-04-21T17:32:29.888970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8116870867026519513, trigger=click)\n2026-04-21T17:32:33.123648Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)\n2026-04-21T17:33:03.355082Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)\n2026-04-21T17:33:05.517897Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=click)\n2026-04-21T17:33:06.399783Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)\n2026-04-21T17:33:09.478894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)\n2026-04-21T17:33:19.151217Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-21T17:33:21.431006Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6379516332769645744, trigger=visual_change)\n2026-04-21T17:33:33.494463Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7500553589467718193, trigger=visual_change)\n2026-04-21T17:34:00.725974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2275300387038012183, trigger=click)\n2026-04-21T17:34:07.214867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2063499064757931498, trigger=visual_change)\n2026-04-21T17:34:31.480257Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=visual_change)\n2026-04-21T17:34:34.482370Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=visual_change)\n2026-04-21T17:35:53.801549Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7652433743467416760, trigger=click)\n2026-04-21T17:35:53.954311Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7652433743467416760, trigger=click)\n2026-04-21T17:35:54.740695Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7652433743467416760, trigger=click)\n2026-04-21T17:36:06.295752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5335392039126841536, trigger=visual_change)\n2026-04-21T17:36:28.893337Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5927780310531960690, trigger=visual_change)\n2026-04-21T17:38:15.647110Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)\n2026-04-21T17:38:17.801901Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)\n2026-04-21T17:38:17.962831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)\n2026-04-21T17:38:22.819710Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7137414965816212018, trigger=click)\n2026-04-21T17:38:22.917176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=click)\n2026-04-21T17:38:23.042830Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=28 elapsed=3.882772625s\n2026-04-21T17:38:23.042920Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames\n2026-04-21T17:38:24.717251Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 2.8MB → 0.4MB (6.3x), 18 JPEGs deleted\n2026-04-21T17:38:26.727027Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.1MB → 0.2MB (5.7x), 10 JPEGs deleted\n2026-04-21T17:38:35.971287Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=click)\n2026-04-21T17:38:36.106246Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7137414965816212018, trigger=click)\n2026-04-21T17:38:37.368009Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=visual_change)\n2026-04-21T17:38:43.431620Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8741356672789266752, trigger=visual_change)\n2026-04-21T17:38:49.319886Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5149767057649118192, trigger=click)\n2026-04-21T17:38:49.477325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5149767057649118192, trigger=click)\n2026-04-21T17:38:51.019231Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5149767057649118192, trigger=visual_change)\n2026-04-21T17:39:04.249890Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7355944135161080033, trigger=click)\n2026-04-21T17:39:23.256256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4983811095206295613, trigger=click)\n2026-04-21T17:39:23.385820Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4983811095206295613, trigger=click)\n2026-04-21T17:39:24.367407Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4983811095206295613, trigger=visual_change)\n2026-04-21T17:39:24.895784Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4983811095206295613, trigger=click)\n2026-04-21T17:39:46.438272Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=372069959735326508, trigger=visual_change)\n2026-04-21T17:39:49.101085Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4964238948655865655, trigger=visual_change)\n2026-04-21T17:39:58.083750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)\n2026-04-21T17:40:01.375315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)\n2026-04-21T17:40:04.195859Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)\n2026-04-21T17:40:12.117004Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2989278587618621353, trigger=click)\n2026-04-21T17:40:12.244666Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2989278587618621353, trigger=click)\n2026-04-21T17:40:13.925024Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2989278587618621353, trigger=visual_change)\n2026-04-21T17:40:23.294147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=visual_change)\n2026-04-21T17:40:55.989498Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3182674559678505325, trigger=click)\n2026-04-21T17:40:58.413325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3182674559678505325, trigger=visual_change)\n2026-04-21T17:41:23.101094Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5616874458658671741, trigger=visual_change)\n2026-04-21T17:41:29.504783Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2744778324521007391, trigger=visual_change)\n2026-04-21T17:42:13.830352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6664909184667365933, trigger=click)\n2026-04-21T17:42:13.905614Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=click)\n2026-04-21T17:42:14.689622Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6664909184667365933, trigger=click)\n2026-04-21T17:43:13.738786Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5563100798252317961, trigger=visual_change)\n2026-04-21T17:43:31.769731Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=40 elapsed=4.870364084s\n2026-04-21T17:43:31.770321Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames\n2026-04-21T17:43:32.514133Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.1MB → 0.1MB (8.9x), 11 JPEGs deleted\n2026-04-21T17:43:34.391762Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 3.0MB → 0.5MB (5.9x), 27 JPEGs deleted\n2026-04-21T17:44:19.021163Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-263228306577803226, trigger=click)\n2026-04-21T17:44:32.036390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8360298266192684601, trigger=click)\n2026-04-21T17:44:33.859332Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8360298266192684601, trigger=visual_change)\n2026-04-21T17:44:42.936361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=visual_change)\n2026-04-21T17:44:46.420662Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=visual_change)\n2026-04-21T17:46:17.725934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7286082578618580481, trigger=click)\n2026-04-21T17:46:18.733766Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=click)\n2026-04-21T17:46:19.506484Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7286082578618580481, trigger=click)\n2026-04-21T17:46:20.729229Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=click)\n2026-04-21T17:46:27.956655Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8942982652250876029, trigger=click)\n2026-04-21T17:46:29.490950Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8942982652250876029, trigger=click)\n2026-04-21T17:46:45.634752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5761541209609855314, trigger=click)\n2026-04-21T17:46:45.971315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5761541209609855314, trigger=click)\n2026-04-21T17:46:50.988867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5607564885929685542, trigger=click)\n2026-04-21T17:46:51.601750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5607564885929685542, trigger=click)\n2026-04-21T17:46:56.353647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4497988824039212795, trigger=click)\n2026-04-21T17:47:24.716661Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4864885406063659925, trigger=visual_change)\n2026-04-21T17:47:29.793942Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:30.097043Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)\n2026-04-21T17:47:30.960214Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:32.707746Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)\n2026-04-21T17:47:36.181007Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:36.362574Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:37.093511Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:41.720206Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)\n2026-04-21T17:47:44.706704Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)\n2026-04-21T17:47:48.602580Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:48.776278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:52.582982Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5658848090639979218, trigger=click)\n2026-04-21T17:47:57.282103Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8902771592702756196, trigger=click)\n2026-04-21T17:48:06.880071Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8902771592702756196, trigger=click)\n2026-04-21T17:48:07.656377Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8902771592702756196, trigger=click)\n2026-04-21T17:48:23.785117Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:24.032602Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:26.587906Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:32.180582Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:48:34.022831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:34.363583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:39.363585Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=83 elapsed=4.983598708s\n2026-04-21T17:48:39.363733Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 83 eligible frames\n2026-04-21T17:48:41.479158Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 3.3MB → 0.2MB (17.7x), 31 JPEGs deleted\n2026-04-21T17:48:44.682560Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 50 frames, 6.5MB → 2.0MB (3.3x), 50 JPEGs deleted\n2026-04-21T17:48:53.828851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:48:56.563636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:48:59.291654Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:59.467275Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:00.295226Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:00.453357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:49:13.301518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:49:16.454207Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:49:16.837288Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:18.900202Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:19.229376Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:20.418502Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:20.706966Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:21.269855Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:22.896443Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:23.115745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:29.927553Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1234240076182081719, trigger=click)\n2026-04-21T17:49:40.567042Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1506528968255096811, trigger=click)\n2026-04-21T17:49:40.722412Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1506528968255096811, trigger=click)\n2026-04-21T17:49:44.790415Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1506528968255096811, trigger=visual_change)\n2026-04-21T17:49:44.983133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1506528968255096811, trigger=visual_change)\n2026-04-21T17:51:50.315220Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)\n2026-04-21T17:51:53.337571Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)\n2026-04-21T17:51:59.473328Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)\n2026-04-21T17:52:02.455277Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)\n2026-04-21T17:52:05.862297Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:52:07.729450Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:52:16.901254Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:52:29.702852Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:52:36.533775Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:39.599515Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:45.700237Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:48.638819Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:54.704399Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:57.751791Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:53:10.186965Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:53:46.867091Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=116 elapsed=2.178958s\n2026-04-21T17:53:46.867199Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 116 eligible frames\n2026-04-21T17:53:49.254310Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:53:50.410056Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 56 frames, 12.3MB → 3.7MB (3.3x), 56 JPEGs deleted\n2026-04-21T17:53:51.388237Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:53:53.983042Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 58 frames, 9.0MB → 2.6MB (3.5x), 58 JPEGs deleted\n2026-04-21T17:53:56.223709Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:25.250317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:54:25.727105Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:54:32.633019Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:33.984547Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:54:35.401305Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:35.511290Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:38.494935Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:38.630637Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:41.245537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:54:45.441966Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:54:50.148639Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:50.313941Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:51.769427Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:51.915582Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:58.755543Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:55:01.758776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:55:25.745659Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3428322026263856254, trigger=click)\n2026-04-21T17:55:27.298490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3428322026263856254, trigger=visual_change)\n2026-04-21T17:55:33.297808Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3428322026263856254, trigger=visual_change)\n2026-04-21T17:55:48.491529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7233070170495400552, trigger=visual_change)\n2026-04-21T17:55:49.809101Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7233070170495400552, trigger=visual_change)\n2026-04-21T17:55:54.025243Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7233070170495400552, trigger=click)\n2026-04-21T17:55:54.165626Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7233070170495400552, trigger=click)\n2026-04-21T17:55:58.086411Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1463712168180952345, trigger=visual_change)\n2026-04-21T17:56:04.943502Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7233070170495400552, trigger=visual_change)\n2026-04-21T17:57:22.021701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:23.588692Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:30.517012Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:31.818301Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:31.972732Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:40.727074Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:42.330179Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:42.494853Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:45.528669Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:46.132479Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:46.358876Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:58:36.946109Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6074307134448385817, trigger=visual_change)\n2026-04-21T17:58:57.225929Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=117 elapsed=3.2365965s\n2026-04-21T17:58:57.226687Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 117 eligible frames\n2026-04-21T17:59:01.078632Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 58 frames, 12.8MB → 4.3MB (3.0x), 58 JPEGs deleted\n2026-04-21T17:59:04.938676Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 57 frames, 10.8MB → 4.0MB (2.7x), 57 JPEGs deleted\n2026-04-21T18:00:27.589643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9170086261988994041, trigger=click)\n2026-04-21T18:00:28.469646Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9170086261988994041, trigger=visual_change)\n2026-04-21T18:00:37.318027Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=9170086261988994041, trigger=click)\n2026-04-21T18:00:42.194585Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=9170086261988994041, trigger=click)\n2026-04-21T18:00:42.367049Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9170086261988994041, trigger=click)\n2026-04-21T18:01:07.200973Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:08.642294Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:08.873831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=visual_change)\n2026-04-21T18:01:09.931490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:10.189484Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:11.594292Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=visual_change)\n2026-04-21T18:01:12.844254Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:13.095866Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:49.712611Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5610420548393517496, trigger=click)\n2026-04-21T18:01:49.878502Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5610420548393517496, trigger=click)\n2026-04-21T18:01:54.385999Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4075180225844497251, trigger=click)\n2026-04-21T18:02:03.320721Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:04.589973Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:06.402101Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:08.459207Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:17.915785Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:20.289378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:53.363091Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:59.854804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6485088808083200508, trigger=visual_change)\n2026-04-21T18:03:23.692602Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2923142241079919801, trigger=visual_change)\n2026-04-21T18:03:38.383745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:03:38.666324Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:03:40.611795Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:03:46.691879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:03:49.696169Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:03:58.796193Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:10.455866Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=65 elapsed=5.507644708s\n2026-04-21T18:04:10.456994Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 65 eligible frames\n2026-04-21T18:04:10.784720Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:12.979583Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 8.1MB → 3.1MB (2.6x), 36 JPEGs deleted\n2026-04-21T18:04:13.808201Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:15.311040Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 5.7MB → 2.1MB (2.7x), 27 JPEGs deleted\n2026-04-21T18:04:22.870405Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:25.858949Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:47.178867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:47.409147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:48.621959Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:48.823996Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:49.613197Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:49.840589Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:54.113636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:54.333250Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:56.158603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:56.345340Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:24.653256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2923142241079919801, trigger=visual_change)\n2026-04-21T18:05:27.506644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2923142241079919801, trigger=visual_change)\n2026-04-21T18:05:52.127185Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:52.385537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:54.464579Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:54.740600Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:06:01.884193Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:06:04.917243Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:06:15.788550Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:06:16.090123Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:06:17.179267Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:07:04.992532Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:08.003078Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:17.121489Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:17.302355Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:27.025619Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:29.771279Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:31.137970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:36.086848Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:36.306717Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:37.369851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:37.634865Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:38.805129Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:39.104738Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:40.060624Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)","depth":4,"value":"2026-04-21T15:17:49.549473Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3869963790957274395, trigger=click)\n2026-04-21T15:17:50.408526Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3869963790957274395, trigger=visual_change)\n2026-04-21T15:17:51.367993Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3869963790957274395, trigger=click)\n2026-04-21T15:17:51.658544Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3869963790957274395, trigger=click)\n2026-04-21T15:17:59.512794Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2138257446817006938, trigger=click)\n2026-04-21T15:17:59.630806Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2138257446817006938, trigger=click)\n2026-04-21T15:18:02.612463Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2138257446817006938, trigger=visual_change)\n2026-04-21T15:18:05.031295Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2138257446817006938, trigger=click)\n2026-04-21T15:18:05.949953Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2138257446817006938, trigger=visual_change)\n2026-04-21T15:18:07.005054Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2138257446817006938, trigger=click)\n2026-04-21T15:18:07.240048Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2138257446817006938, trigger=click)\n2026-04-21T15:18:08.321397Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2138257446817006938, trigger=click)\n2026-04-21T15:18:09.330989Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2138257446817006938, trigger=click)\n2026-04-21T15:18:16.198885Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4512592763947671045, trigger=click)\n2026-04-21T15:18:25.174657Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2138257446817006938, trigger=visual_change)\n2026-04-21T15:18:25.979747Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2138257446817006938, trigger=click)\n2026-04-21T15:18:26.174344Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2138257446817006938, trigger=click)\n2026-04-21T15:18:27.329517Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2138257446817006938, trigger=click)\n2026-04-21T15:18:27.442331Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2138257446817006938, trigger=click)\n2026-04-21T15:18:34.134351Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2138257446817006938, trigger=visual_change)\n2026-04-21T15:18:34.454235Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2138257446817006938, trigger=click)\n2026-04-21T15:19:23.799546Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2134448310261037766, trigger=visual_change)\n2026-04-21T15:19:35.195461Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2134448310261037766, trigger=visual_change)\n2026-04-21T15:19:36.616914Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2134448310261037766, trigger=visual_change)\n2026-04-21T15:19:43.812610Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:19:46.459367Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:19:51.103859Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:19:51.961944Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:19:52.167527Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:19:56.622639Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:19:56.728247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:20:02.598979Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:20:02.924826Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:20:05.668202Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:20:11.789308Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:20:14.756464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:20:20.882925Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:20:38.171496Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:20:41.202478Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:20:41.928948Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:20:48.058419Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:20:51.039890Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:22:03.799949Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:22:13.010196Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:22:19.940721Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=36 elapsed=1.206931458s\n2026-04-21T15:22:19.940942Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 36 eligible frames\n2026-04-21T15:22:21.367797Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 3.8MB → 1.6MB (2.4x), 15 JPEGs deleted\n2026-04-21T15:22:22.862852Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 4.4MB → 1.3MB (3.3x), 19 JPEGs deleted\n2026-04-21T15:22:28.040013Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:22:31.043424Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:22:37.137451Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:22:40.189158Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:22:46.342577Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:22:52.360301Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:22:55.361962Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:23:01.361462Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:23:04.429481Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:24:03.316425Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8540343042990809979, trigger=visual_change)\n2026-04-21T15:24:09.357754Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8540343042990809979, trigger=visual_change)\n2026-04-21T15:24:17.045608Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-357712155289738757, trigger=click)\n2026-04-21T15:24:17.229938Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-357712155289738757, trigger=click)\n2026-04-21T15:24:39.299106Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2318587192590272303, trigger=click)\n2026-04-21T15:24:39.503939Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2318587192590272303, trigger=click)\n2026-04-21T15:24:40.703200Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2318587192590272303, trigger=visual_change)\n2026-04-21T15:25:20.207959Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-115592740355774573, trigger=visual_change)\n2026-04-21T15:25:34.045255Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5357895394186669836, trigger=visual_change)\n2026-04-21T15:25:34.611160Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5357895394186669836, trigger=click)\n2026-04-21T15:25:37.799744Z WARN sqlx::query: summary=\"COMMIT\" db.statement=\"\" rows_affected=1 rows_returned=0 elapsed=1.72370025s\n2026-04-21T15:25:37.956786Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5357895394186669836, trigger=click)\n2026-04-21T15:25:38.065798Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5357895394186669836, trigger=click)\n2026-04-21T15:27:27.008772Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=46 elapsed=4.119326709s\n2026-04-21T15:27:27.008926Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 46 eligible frames\n2026-04-21T15:27:28.808464Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 4.8MB → 2.5MB (1.9x), 19 JPEGs deleted\n2026-04-21T15:27:29.051101Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=525296185995483322, trigger=visual_change)\n2026-04-21T15:27:30.940888Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.6MB → 2.0MB (2.3x), 25 JPEGs deleted\n2026-04-21T15:27:38.326692Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=525296185995483322, trigger=visual_change)\n2026-04-21T15:27:46.472144Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2318587192590272303, trigger=click)\n2026-04-21T15:27:53.687585Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:27:53.821391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:27:56.568366Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:30:07.617208Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7345067017169779372, trigger=visual_change)\n2026-04-21T15:30:35.626228Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:30:38.496521Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:30:47.627510Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:30:50.578236Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:30:50.726770Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:30:56.653721Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:31:02.747003Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:31:05.748607Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:31:17.869430Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:31:20.951104Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:31:26.942644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:31:30.113620Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:31:31.259291Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:31:31.514010Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:31:33.767000Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:31:33.920466Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:31:35.506530Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:31:35.685079Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:31:36.710558Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:31:36.953539Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:31:38.451284Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:31:38.659646Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)\n2026-04-21T15:31:41.384919Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=visual_change)\n2026-04-21T15:32:26.999680Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:32:29.990647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:32:36.791142Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=59 elapsed=5.839242958s\n2026-04-21T15:32:36.791363Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 59 eligible frames\n2026-04-21T15:32:39.153877Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 8.5MB → 3.9MB (2.2x), 31 JPEGs deleted\n2026-04-21T15:32:43.055663Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.3MB → 2.2MB (2.0x), 26 JPEGs deleted\n2026-04-21T15:33:58.964559Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=click)\n2026-04-21T15:34:01.370038Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:34:16.496030Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:34:19.493349Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:35:07.898889Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:35:16.972268Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:35:20.035784Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:35:26.049636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:35:32.118199Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:35:35.122849Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:35:44.214841Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:35:47.232611Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:35:53.252836Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:35:56.262473Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:36:03.912825Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=32684078525934003, trigger=click)\n2026-04-21T15:36:04.039319Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=click)\n2026-04-21T15:36:06.889882Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=click)\n2026-04-21T15:36:17.457615Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:36:27.555065Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1505193671044774267, trigger=click)\n2026-04-21T15:36:42.607815Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2864109645901807081, trigger=click)\n2026-04-21T15:37:44.772586Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=69 elapsed=1.703329916s\n2026-04-21T15:37:44.772693Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 69 eligible frames\n2026-04-21T15:37:47.061751Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 8.3MB → 4.1MB (2.0x), 32 JPEGs deleted\n2026-04-21T15:37:49.263118Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 35 frames, 4.9MB → 1.5MB (3.3x), 35 JPEGs deleted\n2026-04-21T15:38:48.339863Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7345067017169779372, trigger=visual_change)\n2026-04-21T15:39:04.763572Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4843719893880893793, trigger=visual_change)\n2026-04-21T15:40:05.496361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:40:29.591282Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:41:16.164160Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2900812915277822723, trigger=click)\n2026-04-21T15:41:23.661891Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:41:26.703461Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:41:32.781037Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:41:35.789883Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:41:41.811272Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:41:44.919455Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)\n2026-04-21T15:42:05.404072Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5004276282384800505, trigger=click)\n2026-04-21T15:42:06.660073Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5004276282384800505, trigger=visual_change)\n2026-04-21T15:42:21.721735Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5004276282384800505, trigger=visual_change)\n2026-04-21T15:42:24.767284Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5004276282384800505, trigger=visual_change)\n2026-04-21T15:42:30.886797Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5004276282384800505, trigger=visual_change)\n2026-04-21T15:42:32.353284Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5004276282384800505, trigger=click)\n2026-04-21T15:42:53.342750Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=52 elapsed=4.068091375s\n2026-04-21T15:42:53.343209Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 52 eligible frames\n2026-04-21T15:43:00.350701Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 7.7MB → 3.8MB (2.0x), 32 JPEGs deleted\n2026-04-21T15:43:04.665303Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.0MB → 1.4MB (2.2x), 18 JPEGs deleted\n2026-04-21T15:43:34.607312Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=853482337029112184, trigger=click)\n2026-04-21T15:43:34.872392Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=853482337029112184, trigger=click)\n2026-04-21T15:43:35.899763Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=853482337029112184, trigger=click)\n2026-04-21T15:43:48.406088Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=853482337029112184, trigger=click)\n2026-04-21T15:43:48.585014Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=853482337029112184, trigger=click)\n2026-04-21T15:43:50.163180Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=853482337029112184, trigger=click)\n2026-04-21T15:43:50.385739Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=853482337029112184, trigger=click)\n2026-04-21T15:43:53.195867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=853482337029112184, trigger=click)\n2026-04-21T15:44:13.974997Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7638600394188067596, trigger=click)\n2026-04-21T15:45:09.004346Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1645333894657549955, trigger=visual_change)\n2026-04-21T15:45:25.499345Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3128527177503635561, trigger=click)\n2026-04-21T15:45:26.508782Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3128527177503635561, trigger=visual_change)\n2026-04-21T15:45:29.578474Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3128527177503635561, trigger=visual_change)\n2026-04-21T15:45:33.069643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3128527177503635561, trigger=visual_change)\n2026-04-21T15:45:35.154439Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3128527177503635561, trigger=click)\n2026-04-21T15:45:50.867873Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:45:51.543329Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=click)\n2026-04-21T15:45:51.688145Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=click)\n2026-04-21T15:45:56.968268Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:45:59.992989Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:46:15.190380Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:46:21.349140Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:46:24.108646Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=click)\n2026-04-21T15:46:24.239949Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=click)\n2026-04-21T15:46:31.011607Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:46:34.038038Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:46:40.140459Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:46:43.202999Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:46:49.666830Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=click)\n2026-04-21T15:46:52.233599Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:46:52.919343Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=click)\n2026-04-21T15:47:01.421995Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:47:04.387592Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:47:13.219366Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=click)\n2026-04-21T15:47:14.410197Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=click)\n2026-04-21T15:47:14.555427Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:47:47.182774Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-926939256350628341, trigger=click)\n2026-04-21T15:47:47.313085Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-926939256350628341, trigger=click)\n2026-04-21T15:47:51.007142Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-926939256350628341, trigger=visual_change)\n2026-04-21T15:47:57.147902Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=click)\n2026-04-21T15:47:57.339006Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:47:58.246964Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:48:10.859817Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=60 elapsed=6.154614084s\n2026-04-21T15:48:10.860968Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 60 eligible frames\n2026-04-21T15:48:12.865127Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 3.8MB → 0.4MB (8.5x), 29 JPEGs deleted\n2026-04-21T15:48:15.453116Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 5.3MB → 1.9MB (2.8x), 29 JPEGs deleted\n2026-04-21T15:48:47.469195Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1918324922935553040, trigger=visual_change)\n2026-04-21T15:49:03.828434Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1918324922935553040, trigger=visual_change)\n2026-04-21T15:49:32.798887Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6658269488663706414, trigger=click)\n2026-04-21T15:50:07.795304Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:50:22.939421Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6692792019664876292, trigger=visual_change)\n2026-04-21T15:51:11.513005Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9198264877289985337, trigger=visual_change)\n2026-04-21T15:51:22.759879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9198264877289985337, trigger=click)\n2026-04-21T15:52:06.151994Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2061546572815694422, trigger=visual_change)\n2026-04-21T15:52:10.101525Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2061546572815694422, trigger=visual_change)\n2026-04-21T15:52:10.447385Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2061546572815694422, trigger=click)\n2026-04-21T15:52:17.973740Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2061546572815694422, trigger=visual_change)\n2026-04-21T15:52:27.034549Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6654491695696088287, trigger=visual_change)\n2026-04-21T15:52:34.865867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=click)\n2026-04-21T15:52:37.002754Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:52:37.758891Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=click)\n2026-04-21T15:52:37.903061Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=click)\n2026-04-21T15:52:58.490245Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2319943303696444798, trigger=click)\n2026-04-21T15:52:58.636967Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2319943303696444798, trigger=click)\n2026-04-21T15:53:05.413509Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=click)\n2026-04-21T15:53:05.635434Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=click)\n2026-04-21T15:53:14.450507Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:53:16.412940Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 56 eligible frames\n2026-04-21T15:53:17.458900Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:53:18.382936Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 3.9MB → 0.4MB (10.1x), 30 JPEGs deleted\n2026-04-21T15:53:20.404928Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 5.2MB → 2.5MB (2.1x), 24 JPEGs deleted\n2026-04-21T15:53:29.578611Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:53:32.631242Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:53:43.980351Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=click)\n2026-04-21T15:53:45.448681Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:53:45.981861Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:53:51.490843Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:53:54.503801Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:54:00.554133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:54:03.594215Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:54:12.603968Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)\n2026-04-21T15:54:18.363794Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=click)\n2026-04-21T15:54:18.534215Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=click)\n2026-04-21T15:54:45.841588Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1261864652156529447, trigger=click)\n2026-04-21T15:54:46.025388Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1261864652156529447, trigger=click)\n2026-04-21T15:54:49.896744Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1261864652156529447, trigger=visual_change)\n2026-04-21T15:54:56.016125Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1261864652156529447, trigger=visual_change)\n2026-04-21T15:54:59.114088Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1261864652156529447, trigger=visual_change)\n2026-04-21T15:55:00.284632Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1261864652156529447, trigger=click)\n2026-04-21T15:55:00.406838Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1261864652156529447, trigger=click)\n2026-04-21T15:55:02.079710Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1261864652156529447, trigger=click)\n2026-04-21T15:55:02.308488Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1261864652156529447, trigger=click)\n2026-04-21T15:55:17.433420Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1236411717024251211, trigger=click)\n2026-04-21T15:55:22.382212Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3575572948672507206, trigger=visual_change)\n2026-04-21T15:55:33.553348Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3575572948672507206, trigger=click)\n2026-04-21T15:55:33.725630Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3575572948672507206, trigger=click)\n2026-04-21T15:55:36.499986Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3575572948672507206, trigger=click)\n2026-04-21T15:55:36.647384Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3575572948672507206, trigger=visual_change)\n2026-04-21T15:55:38.675147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3575572948672507206, trigger=click)\n2026-04-21T15:55:38.953368Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3575572948672507206, trigger=click)\n2026-04-21T15:55:49.727745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1928477198450198789, trigger=click)\n2026-04-21T15:55:51.600613Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1928477198450198789, trigger=visual_change)\n2026-04-21T15:55:58.958653Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6305115209475227780, trigger=click)\n2026-04-21T15:56:10.814040Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2683270687017607806, trigger=click)\n2026-04-21T15:56:23.872451Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8011254159114411036, trigger=visual_change)\n2026-04-21T15:56:24.893455Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8011254159114411036, trigger=visual_change)\n2026-04-21T15:56:38.964984Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2061546572815694422, trigger=click)\n2026-04-21T15:57:05.134874Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8011254159114411036, trigger=visual_change)\n2026-04-21T15:57:05.481118Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8011254159114411036, trigger=click)\n2026-04-21T15:57:06.604281Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8011254159114411036, trigger=click)\n2026-04-21T15:57:06.770499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8011254159114411036, trigger=click)\n2026-04-21T15:57:07.327121Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8011254159114411036, trigger=click)\n2026-04-21T15:57:12.184374Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8011254159114411036, trigger=visual_change)\n2026-04-21T15:57:17.777283Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8011254159114411036, trigger=click)\n2026-04-21T15:57:17.883656Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8011254159114411036, trigger=click)\n2026-04-21T15:58:03.328237Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2061546572815694422, trigger=visual_change)\n2026-04-21T15:58:04.873241Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2061546572815694422, trigger=click)\n2026-04-21T15:58:05.083940Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2061546572815694422, trigger=click)\n2026-04-21T15:58:25.172235Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=69 elapsed=4.754634416s\n2026-04-21T15:58:25.172952Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 69 eligible frames\n2026-04-21T15:58:27.752106Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 5.0MB → 0.7MB (7.7x), 39 JPEGs deleted\n2026-04-21T15:58:28.844185Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1714600494192977193, trigger=click)\n2026-04-21T15:58:30.120472Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 6.0MB → 2.7MB (2.2x), 28 JPEGs deleted\n2026-04-21T15:59:45.857732Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2993864580543626498, trigger=click)\n2026-04-21T15:59:47.242506Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2993864580543626498, trigger=visual_change)\n2026-04-21T15:59:49.794356Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2993864580543626498, trigger=click)\n2026-04-21T15:59:49.900792Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2993864580543626498, trigger=click)\n2026-04-21T16:00:06.761409Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3195608759585503031, trigger=visual_change)\n2026-04-21T16:00:13.468752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2319222304555239268, trigger=click)\n2026-04-21T16:00:17.757305Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5732830672832053181, trigger=click)\n2026-04-21T16:00:17.870684Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5732830672832053181, trigger=click)\n2026-04-21T16:01:48.777919Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2131760867504785678, trigger=visual_change)\n2026-04-21T16:01:51.903624Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2131760867504785678, trigger=visual_change)\n2026-04-21T16:02:01.343178Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4025239947511295773, trigger=visual_change)\n2026-04-21T16:02:02.388155Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4025239947511295773, trigger=visual_change)\n2026-04-21T16:02:10.799801Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3195608759585503031, trigger=click)\n2026-04-21T16:02:15.237578Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3195608759585503031, trigger=click)\n2026-04-21T16:02:15.453443Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3195608759585503031, trigger=click)\n2026-04-21T16:02:17.716070Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3195608759585503031, trigger=visual_change)\n2026-04-21T16:02:26.881689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=click)\n2026-04-21T16:02:27.030824Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1116166152131308044, trigger=click)\n2026-04-21T16:02:31.513617Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1116166152131308044, trigger=visual_change)\n2026-04-21T16:02:42.461634Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=click)\n2026-04-21T16:02:42.710546Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1116166152131308044, trigger=click)\n2026-04-21T16:02:46.369193Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=visual_change)\n2026-04-21T16:02:52.431259Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=visual_change)\n2026-04-21T16:02:52.856920Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1116166152131308044, trigger=click)\n2026-04-21T16:02:55.643958Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=visual_change)\n2026-04-21T16:02:56.549511Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1116166152131308044, trigger=visual_change)\n2026-04-21T16:02:59.878468Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=click)\n2026-04-21T16:03:00.026944Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1116166152131308044, trigger=click)\n2026-04-21T16:03:00.966506Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=click)\n2026-04-21T16:03:14.972630Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=visual_change)\n2026-04-21T16:03:19.566899Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4025239947511295773, trigger=click)\n2026-04-21T16:03:19.671409Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4025239947511295773, trigger=visual_change)\n2026-04-21T16:03:20.454813Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4025239947511295773, trigger=click)\n2026-04-21T16:03:20.540316Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4025239947511295773, trigger=click)\n2026-04-21T16:03:22.683211Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4025239947511295773, trigger=visual_change)\n2026-04-21T16:03:36.139204Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=63 elapsed=6.008212292s\n2026-04-21T16:03:36.139322Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 63 eligible frames\n2026-04-21T16:03:37.473231Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1116166152131308044, trigger=click)\n2026-04-21T16:03:37.595185Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=click)\n2026-04-21T16:03:38.391239Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 4.1MB → 0.4MB (10.0x), 32 JPEGs deleted\n2026-04-21T16:03:40.661697Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 5.4MB → 2.3MB (2.3x), 29 JPEGs deleted\n2026-04-21T16:03:48.609749Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1116166152131308044, trigger=click)\n2026-04-21T16:03:48.744925Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=visual_change)\n2026-04-21T16:03:50.472701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1116166152131308044, trigger=visual_change)\n2026-04-21T16:03:51.569212Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=visual_change)\n2026-04-21T16:03:57.568165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=visual_change)\n2026-04-21T16:03:58.491291Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1116166152131308044, trigger=click)\n2026-04-21T16:03:58.627085Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=click)\n2026-04-21T16:04:02.611784Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1116166152131308044, trigger=visual_change)\n2026-04-21T16:04:12.375564Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1116166152131308044, trigger=visual_change)\n2026-04-21T16:04:12.929157Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=click)\n2026-04-21T16:04:30.915793Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=click)\n2026-04-21T16:04:57.195529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1116166152131308044, trigger=visual_change)\n2026-04-21T16:04:58.079114Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1116166152131308044, trigger=click)\n2026-04-21T16:04:58.230204Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=click)\n2026-04-21T16:05:12.566561Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1116166152131308044, trigger=visual_change)\n2026-04-21T16:05:12.855158Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=visual_change)\n2026-04-21T16:05:21.636677Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=visual_change)\n2026-04-21T16:05:24.926399Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=visual_change)\n2026-04-21T16:06:04.116239Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=visual_change)\n2026-04-21T16:06:24.678633Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2452943073484325532, trigger=click)\n2026-04-21T16:06:26.740732Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2452943073484325532, trigger=click)\n2026-04-21T16:06:26.894232Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2452943073484325532, trigger=click)\n2026-04-21T16:08:29.709550Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2784622108492791959, trigger=click)\n2026-04-21T16:08:30.471514Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2784622108492791959, trigger=visual_change)\n2026-04-21T16:08:36.029304Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=75691378564349849, trigger=visual_change)\n2026-04-21T16:08:37.823497Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=75691378564349849, trigger=visual_change)\n2026-04-21T16:08:47.835475Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=88 elapsed=7.182833s\n2026-04-21T16:08:47.836310Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 88 eligible frames\n2026-04-21T16:08:51.474399Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 46 frames, 5.9MB → 0.6MB (9.3x), 46 JPEGs deleted\n2026-04-21T16:08:56.880858Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 40 frames, 8.0MB → 3.5MB (2.3x), 40 JPEGs deleted\n2026-04-21T16:09:11.404363Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5560866901432731747, trigger=visual_change)\n2026-04-21T16:09:19.521573Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5218742967738517410, trigger=visual_change)\n2026-04-21T16:09:23.451591Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5218742967738517410, trigger=visual_change)\n2026-04-21T16:09:24.600660Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5218742967738517410, trigger=click)\n2026-04-21T16:09:24.813137Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5218742967738517410, trigger=click)\n2026-04-21T16:09:25.334988Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5218742967738517410, trigger=click)\n2026-04-21T16:09:53.757232Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8889319479238815843, trigger=click)\n2026-04-21T16:09:53.883019Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8889319479238815843, trigger=click)\n2026-04-21T16:09:56.453132Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8889319479238815843, trigger=visual_change)\n2026-04-21T16:09:57.689649Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8889319479238815843, trigger=visual_change)\n2026-04-21T16:09:58.297586Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8889319479238815843, trigger=click)\n2026-04-21T16:10:01.890864Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3521802135830221118, trigger=click)\n2026-04-21T16:10:02.099325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3521802135830221118, trigger=click)\n2026-04-21T16:10:06.032086Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3521802135830221118, trigger=visual_change)\n2026-04-21T16:10:09.704587Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=941395574046373634, trigger=visual_change)\n2026-04-21T16:10:12.783946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4616958244172810633, trigger=visual_change)\n2026-04-21T16:12:49.952858Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-123373349137473243, trigger=click)\n2026-04-21T16:12:50.087991Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-123373349137473243, trigger=click)\n2026-04-21T16:12:53.090814Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-123373349137473243, trigger=click)\n2026-04-21T16:12:53.225701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-123373349137473243, trigger=click)\n2026-04-21T16:12:54.436555Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-123373349137473243, trigger=click)\n2026-04-21T16:12:54.587230Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-123373349137473243, trigger=click)\n2026-04-21T16:12:59.666599Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-123373349137473243, trigger=click)\n2026-04-21T16:12:59.849594Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-123373349137473243, trigger=click)\n2026-04-21T16:13:01.462042Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-123373349137473243, trigger=visual_change)\n2026-04-21T16:13:17.704686Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-123373349137473243, trigger=click)\n2026-04-21T16:13:17.881020Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-123373349137473243, trigger=click)\n2026-04-21T16:13:25.121719Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-123373349137473243, trigger=click)\n2026-04-21T16:13:29.059212Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1980321148661859128, trigger=visual_change)\n2026-04-21T16:13:29.901114Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1980321148661859128, trigger=click)\n2026-04-21T16:13:30.107373Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1980321148661859128, trigger=click)\n2026-04-21T16:13:34.114790Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1980321148661859128, trigger=click)\n2026-04-21T16:13:34.287663Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1980321148661859128, trigger=click)\n2026-04-21T16:13:58.094458Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1980321148661859128, trigger=click)\n2026-04-21T16:14:03.164207Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=87 elapsed=6.263532125s\n2026-04-21T16:14:03.164392Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 87 eligible frames\n2026-04-21T16:14:05.747863Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 38 frames, 4.9MB → 0.7MB (6.9x), 38 JPEGs deleted\n2026-04-21T16:14:09.450248Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 47 frames, 7.2MB → 2.4MB (3.0x), 47 JPEGs deleted\n2026-04-21T16:14:09.494731Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1980321148661859128, trigger=click)\n2026-04-21T16:14:30.037778Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1980321148661859128, trigger=click)\n2026-04-21T16:14:32.515759Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1980321148661859128, trigger=visual_change)\n2026-04-21T16:14:35.314711Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1980321148661859128, trigger=click)\n2026-04-21T16:14:35.507419Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1980321148661859128, trigger=click)\n2026-04-21T16:14:39.332082Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1980321148661859128, trigger=visual_change)\n2026-04-21T16:15:16.219018Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4023789962951736249, trigger=click)\n2026-04-21T16:15:46.847760Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4029553059536117170, trigger=click)\n2026-04-21T16:15:47.086575Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4029553059536117170, trigger=click)\n2026-04-21T16:15:49.652277Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4029553059536117170, trigger=click)\n2026-04-21T16:15:49.811262Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4029553059536117170, trigger=click)\n2026-04-21T16:15:59.825614Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4029553059536117170, trigger=visual_change)\n2026-04-21T16:16:06.513537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4029553059536117170, trigger=click)\n2026-04-21T16:16:06.745111Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4029553059536117170, trigger=click)\n2026-04-21T16:16:08.901255Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4029553059536117170, trigger=visual_change)\n2026-04-21T16:16:10.268255Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4029553059536117170, trigger=click)\n2026-04-21T16:16:10.422562Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4029553059536117170, trigger=click)\n2026-04-21T16:16:16.344421Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3658909392690979501, trigger=click)\n2026-04-21T16:16:16.525379Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3658909392690979501, trigger=click)\n2026-04-21T16:16:27.262509Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3658909392690979501, trigger=visual_change)\n2026-04-21T16:16:30.098307Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3658909392690979501, trigger=visual_change)\n2026-04-21T16:16:33.063533Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3658909392690979501, trigger=visual_change)\n2026-04-21T16:16:36.082624Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3658909392690979501, trigger=visual_change)\n2026-04-21T16:16:43.249986Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=718360199604596957, trigger=visual_change)\n2026-04-21T16:16:45.281138Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=718360199604596957, trigger=click)\n2026-04-21T16:16:45.431571Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=718360199604596957, trigger=click)\n2026-04-21T16:16:46.085204Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=718360199604596957, trigger=click)\n2026-04-21T16:16:46.339290Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=718360199604596957, trigger=click)\n2026-04-21T16:16:54.878246Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6121257606737238481, trigger=click)\n2026-04-21T16:16:55.038097Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6121257606737238481, trigger=click)\n2026-04-21T16:16:58.147630Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6121257606737238481, trigger=click)\n2026-04-21T16:16:58.309169Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6121257606737238481, trigger=click)\n2026-04-21T16:17:08.291905Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3868718810860276938, trigger=visual_change)\n2026-04-21T16:17:11.295917Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3868718810860276938, trigger=visual_change)\n2026-04-21T16:17:25.196969Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3868718810860276938, trigger=click)\n2026-04-21T16:17:27.953237Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-123373349137473243, trigger=click)\n2026-04-21T16:17:29.174531Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-123373349137473243, trigger=click)\n2026-04-21T16:17:59.859780Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3521802135830221118, trigger=click)\n2026-04-21T16:18:00.105716Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3521802135830221118, trigger=click)\n2026-04-21T16:18:00.947735Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3521802135830221118, trigger=click)\n2026-04-21T16:18:01.907213Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3521802135830221118, trigger=click)\n2026-04-21T16:18:02.272567Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3521802135830221118, trigger=click)\n2026-04-21T16:18:02.852516Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3521802135830221118, trigger=click)\n2026-04-21T16:18:08.344417Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3521802135830221118, trigger=click)\n2026-04-21T16:18:11.910412Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3521802135830221118, trigger=click)\n2026-04-21T16:18:19.125073Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3521802135830221118, trigger=click)\n2026-04-21T16:18:19.476214Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3521802135830221118, trigger=click)\n2026-04-21T16:18:20.504342Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3521802135830221118, trigger=visual_change)\n2026-04-21T16:19:13.172448Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=66 elapsed=3.711616209s\n2026-04-21T16:19:13.173007Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 66 eligible frames\n2026-04-21T16:19:15.229077Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 34 frames, 4.4MB → 0.5MB (8.8x), 34 JPEGs deleted\n2026-04-21T16:19:17.283566Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 6.2MB → 2.4MB (2.6x), 30 JPEGs deleted\n2026-04-21T16:21:43.978231Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:21:46.449363Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:21:47.010888Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:21:47.267688Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:21:48.266276Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:21:48.523318Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:21:49.578569Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:21:49.753862Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:21:50.593155Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:21:50.762539Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:21:52.220085Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:21:52.378200Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:21:53.544495Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:21:53.776243Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:21:55.479563Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:21:55.616256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:21:56.134887Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:21:56.376072Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:22:02.656872Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:22:03.509234Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2017155528422073121, trigger=visual_change)\n2026-04-21T16:22:05.023479Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:22:06.542978Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:22:08.044712Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2017155528422073121, trigger=visual_change)\n2026-04-21T16:22:08.340690Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:22:12.210747Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:22:12.423930Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2017155528422073121, trigger=click)\n2026-04-21T16:23:15.199698Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-30521469954674190, trigger=click)\n2026-04-21T16:23:15.354743Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-30521469954674190, trigger=click)\n2026-04-21T16:23:18.610038Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-30521469954674190, trigger=click)\n2026-04-21T16:23:21.130558Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-30521469954674190, trigger=visual_change)\n2026-04-21T16:24:18.871045Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=49 elapsed=1.535675291s\n2026-04-21T16:24:18.871172Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 49 eligible frames\n2026-04-21T16:24:20.557940Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 4.9MB → 2.0MB (2.4x), 23 JPEGs deleted\n2026-04-21T16:24:22.772790Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 5.0MB → 2.0MB (2.5x), 24 JPEGs deleted\n2026-04-21T16:24:39.491422Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=visual_change)\n2026-04-21T16:27:08.488294Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5087545351716304990, trigger=visual_change)\n2026-04-21T16:27:41.920414Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-686109667244869288, trigger=visual_change)\n2026-04-21T16:27:47.209691Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:27:48.325281Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:27:48.568437Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:27:51.265858Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=visual_change)\n2026-04-21T16:27:53.167123Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:27:53.333292Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:27:54.408256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=visual_change)\n2026-04-21T16:27:55.663421Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:27:56.020447Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:27:58.403599Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=visual_change)\n2026-04-21T16:27:59.132903Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:27:59.354436Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:28:00.026741Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:28:02.693849Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:28:03.000321Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:28:04.341119Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=visual_change)\n2026-04-21T16:28:04.600979Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:28:05.371674Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:28:05.692863Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:28:56.190858Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2535035496832215689, trigger=click)\n2026-04-21T16:29:25.624016Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=50 elapsed=2.842206042s\n2026-04-21T16:29:25.624819Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 50 eligible frames\n2026-04-21T16:29:27.556180Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.8MB → 1.1MB (5.5x), 25 JPEGs deleted\n2026-04-21T16:29:29.399803Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 4.7MB → 2.1MB (2.2x), 23 JPEGs deleted\n2026-04-21T16:30:44.161002Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8757469993753059500, trigger=click)\n2026-04-21T16:30:44.305286Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8757469993753059500, trigger=click)\n2026-04-21T16:31:32.916835Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7603519901961973104, trigger=click)\n2026-04-21T16:31:33.066629Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7603519901961973104, trigger=click)\n2026-04-21T16:31:54.062496Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2156736956977387025, trigger=click)\n2026-04-21T16:33:05.302686Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=665070061356436616, trigger=click)\n2026-04-21T16:33:05.429602Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=665070061356436616, trigger=click)\n2026-04-21T16:33:06.915467Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=665070061356436616, trigger=click)\n2026-04-21T16:33:07.095841Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=665070061356436616, trigger=click)\n2026-04-21T16:33:38.752838Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-225993066349542266, trigger=click)\n2026-04-21T16:34:32.128508Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=32 elapsed=2.71939625s\n2026-04-21T16:34:32.128621Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 32 eligible frames\n2026-04-21T16:34:33.230523Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.1MB → 0.6MB (5.1x), 17 JPEGs deleted\n2026-04-21T16:34:34.516567Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.7MB → 1.1MB (2.4x), 13 JPEGs deleted\n2026-04-21T16:36:49.435926Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4592186608403217716, trigger=click)\n2026-04-21T16:36:50.599109Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4592186608403217716, trigger=visual_change)\n2026-04-21T16:39:00.566828Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3077590213613135779, trigger=click)\n2026-04-21T16:39:00.685917Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3077590213613135779, trigger=click)\n2026-04-21T16:39:09.669053Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6113312556119042207, trigger=click)\n2026-04-21T16:39:28.954550Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=869328293033429183, trigger=click)\n2026-04-21T16:39:29.084826Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=869328293033429183, trigger=click)\n2026-04-21T16:39:31.752392Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4079194444055345358, trigger=click)\n2026-04-21T16:39:31.941130Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4079194444055345358, trigger=click)\n2026-04-21T16:39:37.082813Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=50 elapsed=2.555752875s\n2026-04-21T16:39:37.082914Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 50 eligible frames\n2026-04-21T16:39:39.896800Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.4MB → 0.9MB (4.9x), 24 JPEGs deleted\n2026-04-21T16:39:42.979598Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.6MB → 1.9MB (2.5x), 24 JPEGs deleted\n2026-04-21T16:39:54.138147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=869328293033429183, trigger=click)\n2026-04-21T16:41:34.967355Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:41:35.133385Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)\n2026-04-21T16:43:15.919099Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8254246256813675665, trigger=click)\n2026-04-21T16:43:44.014066Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8254246256813675665, trigger=visual_change)\n2026-04-21T16:44:45.410923Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=35 elapsed=2.419201375s\n2026-04-21T16:44:45.411045Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 35 eligible frames\n2026-04-21T16:44:46.383629Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.8MB → 0.3MB (9.5x), 15 JPEGs deleted\n2026-04-21T16:44:47.792527Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.6MB → 0.8MB (4.3x), 18 JPEGs deleted\n2026-04-21T16:49:53.308820Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=47 elapsed=5.487768917s\n2026-04-21T16:49:53.309371Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 47 eligible frames\n2026-04-21T16:49:54.673701Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.9MB → 0.3MB (13.1x), 21 JPEGs deleted\n2026-04-21T16:49:56.314871Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.7MB → 1.2MB (4.0x), 24 JPEGs deleted\n2026-04-21T16:54:59.385017Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=62 elapsed=3.057419917s\n2026-04-21T16:54:59.385210Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 62 eligible frames\n2026-04-21T16:55:00.998239Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.8MB → 0.5MB (10.3x), 26 JPEGs deleted\n2026-04-21T16:55:03.739041Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 34 frames, 5.8MB → 2.6MB (2.2x), 34 JPEGs deleted\n2026-04-21T16:55:17.768634Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)\n2026-04-21T17:23:59.183039Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)\n2026-04-21T17:23:59.216966Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 2\n2026-04-21T17:24:00.832399Z INFO screenpipe_engine::vision_manager::monitor_watcher: Monitor 2 disconnected, stopping recording\n2026-04-21T17:24:00.832464Z INFO screenpipe_engine::vision_manager::manager: Stopping vision recording for monitor 2\n2026-04-21T17:24:00.832336Z INFO sck_rs::stream_manager: stopped 2 persistent stream(s)\n2026-04-21T17:24:04.654209Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)\n2026-04-21T17:24:30.699969Z ERROR screenpipe_engine::resource_monitor: Failed to send resource usage to PostHog: error sending request for url (https://us.i.posthog.com/capture/)\n2026-04-21T17:25:01.085383Z INFO screenpipe_engine::vision_manager::monitor_watcher: Monitor 2 reconnected, resuming recording\n2026-04-21T17:25:01.273818Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-21T17:25:01.273870Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-21T17:25:01.273896Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-21T17:25:02.310236Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)\n2026-04-21T17:25:02.808234Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=66228, dur=365ms\n2026-04-21T17:25:04.889075Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:07.887565Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:10.918390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:14.039034Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:17.160521Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:26.096276Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:29.061270Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:32.067380Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:35.263701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2258191199743945139, trigger=visual_change)\n2026-04-21T17:25:41.164753Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:44.239172Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:47.149320Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:50.242915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:53.308794Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:56.218138Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:25:59.144297Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4876286725156376418, trigger=visual_change)\n2026-04-21T17:26:05.965946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:08.584110Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:11.350189Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:14.339609Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:17.398251Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:20.782119Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:23.385506Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:26.427626Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:29.573661Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:32.450744Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:38.464132Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:41.456915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:44.496278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:47.541313Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:50.596256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:53.597171Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:56.764522Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:26:59.751576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:02.719391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:08.829090Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:11.800601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:14.811724Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:17.855339Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:26.878741Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:29.933020Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:32.947216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:36.041239Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:38.993657Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:42.039373Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:45.172399Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:48.081804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:51.142939Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:27:54.169253Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:00.341347Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:03.322832Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:06.631198Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:09.537232Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:12.406113Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:15.381764Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:15.806839Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=44 elapsed=5.777403s\n2026-04-21T17:28:15.806951Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 44 eligible frames\n2026-04-21T17:28:17.108106Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.9MB → 0.3MB (13.1x), 21 JPEGs deleted\n2026-04-21T17:28:18.370832Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 3.6MB → 0.5MB (7.8x), 21 JPEGs deleted\n2026-04-21T17:28:18.461408Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:22.068097Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:24.604711Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:27.608060Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:33.774822Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:36.697278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:39.729251Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:42.728755Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:45.748204Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:48.768910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:51.814752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:54.970698Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:28:57.869874Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:00.913837Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:07.461529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:10.043928Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:13.182411Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:16.080133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:19.108570Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:22.322033Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:25.172666Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:28.398354Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:31.249083Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:34.289745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:40.303310Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:43.308015Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:46.360649Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:49.356069Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:52.450205Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:55.422975Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:29:58.446390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:01.491253Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:04.500380Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:16.830925Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:19.856895Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:23.100486Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:25.938910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:28.953603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:32.061536Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:35.030958Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:38.162895Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:41.148165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:44.019513Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:50.259576Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:53.148070Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:56.309979Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:30:59.185610Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:02.278235Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:05.287341Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:08.409426Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:11.489977Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:14.319338Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:17.348153Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:23.351025Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:26.427529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:29.337254Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:32.386165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:35.653387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:38.430216Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:41.428909Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:44.432459Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:47.448603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:50.432780Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:56.535727Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:31:59.590792Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:02.621444Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:05.627964Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:08.710139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:11.765247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:14.787638Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4069326767323596168, trigger=visual_change)\n2026-04-21T17:32:17.876480Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)\n2026-04-21T17:32:20.977937Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)\n2026-04-21T17:32:29.888970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8116870867026519513, trigger=click)\n2026-04-21T17:32:33.123648Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8116870867026519513, trigger=visual_change)\n2026-04-21T17:33:03.355082Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)\n2026-04-21T17:33:05.517897Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=click)\n2026-04-21T17:33:06.399783Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)\n2026-04-21T17:33:09.478894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2116952762348440045, trigger=visual_change)\n2026-04-21T17:33:19.151217Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-21T17:33:21.431006Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6379516332769645744, trigger=visual_change)\n2026-04-21T17:33:33.494463Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7500553589467718193, trigger=visual_change)\n2026-04-21T17:34:00.725974Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2275300387038012183, trigger=click)\n2026-04-21T17:34:07.214867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2063499064757931498, trigger=visual_change)\n2026-04-21T17:34:31.480257Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=visual_change)\n2026-04-21T17:34:34.482370Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=visual_change)\n2026-04-21T17:35:53.801549Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7652433743467416760, trigger=click)\n2026-04-21T17:35:53.954311Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7652433743467416760, trigger=click)\n2026-04-21T17:35:54.740695Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7652433743467416760, trigger=click)\n2026-04-21T17:36:06.295752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5335392039126841536, trigger=visual_change)\n2026-04-21T17:36:28.893337Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5927780310531960690, trigger=visual_change)\n2026-04-21T17:38:15.647110Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)\n2026-04-21T17:38:17.801901Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9176130278548829292, trigger=click)\n2026-04-21T17:38:17.962831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=click)\n2026-04-21T17:38:22.819710Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7137414965816212018, trigger=click)\n2026-04-21T17:38:22.917176Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=click)\n2026-04-21T17:38:23.042830Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=28 elapsed=3.882772625s\n2026-04-21T17:38:23.042920Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames\n2026-04-21T17:38:24.717251Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 2.8MB → 0.4MB (6.3x), 18 JPEGs deleted\n2026-04-21T17:38:26.727027Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.1MB → 0.2MB (5.7x), 10 JPEGs deleted\n2026-04-21T17:38:35.971287Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=click)\n2026-04-21T17:38:36.106246Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7137414965816212018, trigger=click)\n2026-04-21T17:38:37.368009Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7137414965816212018, trigger=visual_change)\n2026-04-21T17:38:43.431620Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8741356672789266752, trigger=visual_change)\n2026-04-21T17:38:49.319886Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5149767057649118192, trigger=click)\n2026-04-21T17:38:49.477325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5149767057649118192, trigger=click)\n2026-04-21T17:38:51.019231Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5149767057649118192, trigger=visual_change)\n2026-04-21T17:39:04.249890Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7355944135161080033, trigger=click)\n2026-04-21T17:39:23.256256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4983811095206295613, trigger=click)\n2026-04-21T17:39:23.385820Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4983811095206295613, trigger=click)\n2026-04-21T17:39:24.367407Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4983811095206295613, trigger=visual_change)\n2026-04-21T17:39:24.895784Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4983811095206295613, trigger=click)\n2026-04-21T17:39:46.438272Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=372069959735326508, trigger=visual_change)\n2026-04-21T17:39:49.101085Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4964238948655865655, trigger=visual_change)\n2026-04-21T17:39:58.083750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)\n2026-04-21T17:40:01.375315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)\n2026-04-21T17:40:04.195859Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9162568517366634523, trigger=visual_change)\n2026-04-21T17:40:12.117004Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2989278587618621353, trigger=click)\n2026-04-21T17:40:12.244666Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2989278587618621353, trigger=click)\n2026-04-21T17:40:13.925024Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2989278587618621353, trigger=visual_change)\n2026-04-21T17:40:23.294147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9176130278548829292, trigger=visual_change)\n2026-04-21T17:40:55.989498Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3182674559678505325, trigger=click)\n2026-04-21T17:40:58.413325Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3182674559678505325, trigger=visual_change)\n2026-04-21T17:41:23.101094Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5616874458658671741, trigger=visual_change)\n2026-04-21T17:41:29.504783Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2744778324521007391, trigger=visual_change)\n2026-04-21T17:42:13.830352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6664909184667365933, trigger=click)\n2026-04-21T17:42:13.905614Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6664909184667365933, trigger=click)\n2026-04-21T17:42:14.689622Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6664909184667365933, trigger=click)\n2026-04-21T17:43:13.738786Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5563100798252317961, trigger=visual_change)\n2026-04-21T17:43:31.769731Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=40 elapsed=4.870364084s\n2026-04-21T17:43:31.770321Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames\n2026-04-21T17:43:32.514133Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.1MB → 0.1MB (8.9x), 11 JPEGs deleted\n2026-04-21T17:43:34.391762Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 3.0MB → 0.5MB (5.9x), 27 JPEGs deleted\n2026-04-21T17:44:19.021163Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-263228306577803226, trigger=click)\n2026-04-21T17:44:32.036390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8360298266192684601, trigger=click)\n2026-04-21T17:44:33.859332Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8360298266192684601, trigger=visual_change)\n2026-04-21T17:44:42.936361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=visual_change)\n2026-04-21T17:44:46.420662Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=visual_change)\n2026-04-21T17:46:17.725934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7286082578618580481, trigger=click)\n2026-04-21T17:46:18.733766Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=click)\n2026-04-21T17:46:19.506484Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7286082578618580481, trigger=click)\n2026-04-21T17:46:20.729229Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7286082578618580481, trigger=click)\n2026-04-21T17:46:27.956655Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8942982652250876029, trigger=click)\n2026-04-21T17:46:29.490950Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8942982652250876029, trigger=click)\n2026-04-21T17:46:45.634752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5761541209609855314, trigger=click)\n2026-04-21T17:46:45.971315Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5761541209609855314, trigger=click)\n2026-04-21T17:46:50.988867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5607564885929685542, trigger=click)\n2026-04-21T17:46:51.601750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5607564885929685542, trigger=click)\n2026-04-21T17:46:56.353647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4497988824039212795, trigger=click)\n2026-04-21T17:47:24.716661Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4864885406063659925, trigger=visual_change)\n2026-04-21T17:47:29.793942Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:30.097043Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)\n2026-04-21T17:47:30.960214Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:32.707746Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)\n2026-04-21T17:47:36.181007Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:36.362574Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:37.093511Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:41.720206Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)\n2026-04-21T17:47:44.706704Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=visual_change)\n2026-04-21T17:47:48.602580Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:48.776278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1467704874256515457, trigger=click)\n2026-04-21T17:47:52.582982Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5658848090639979218, trigger=click)\n2026-04-21T17:47:57.282103Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8902771592702756196, trigger=click)\n2026-04-21T17:48:06.880071Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8902771592702756196, trigger=click)\n2026-04-21T17:48:07.656377Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8902771592702756196, trigger=click)\n2026-04-21T17:48:23.785117Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:24.032602Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:26.587906Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:32.180582Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:48:34.022831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:34.363583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:39.363585Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=83 elapsed=4.983598708s\n2026-04-21T17:48:39.363733Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 83 eligible frames\n2026-04-21T17:48:41.479158Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 3.3MB → 0.2MB (17.7x), 31 JPEGs deleted\n2026-04-21T17:48:44.682560Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 50 frames, 6.5MB → 2.0MB (3.3x), 50 JPEGs deleted\n2026-04-21T17:48:53.828851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:48:56.563636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:48:59.291654Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:48:59.467275Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:00.295226Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:00.453357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:49:13.301518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:49:16.454207Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=visual_change)\n2026-04-21T17:49:16.837288Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:18.900202Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:19.229376Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:20.418502Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:20.706966Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:21.269855Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:22.896443Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:23.115745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3163136488953525261, trigger=click)\n2026-04-21T17:49:29.927553Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1234240076182081719, trigger=click)\n2026-04-21T17:49:40.567042Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1506528968255096811, trigger=click)\n2026-04-21T17:49:40.722412Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1506528968255096811, trigger=click)\n2026-04-21T17:49:44.790415Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1506528968255096811, trigger=visual_change)\n2026-04-21T17:49:44.983133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1506528968255096811, trigger=visual_change)\n2026-04-21T17:51:50.315220Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)\n2026-04-21T17:51:53.337571Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)\n2026-04-21T17:51:59.473328Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)\n2026-04-21T17:52:02.455277Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6124108434802279273, trigger=visual_change)\n2026-04-21T17:52:05.862297Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:52:07.729450Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:52:16.901254Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:52:29.702852Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:52:36.533775Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:39.599515Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:45.700237Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:48.638819Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:54.704399Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:52:57.751791Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:53:10.186965Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1211481214920485263, trigger=visual_change)\n2026-04-21T17:53:46.867091Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=116 elapsed=2.178958s\n2026-04-21T17:53:46.867199Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 116 eligible frames\n2026-04-21T17:53:49.254310Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:53:50.410056Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 56 frames, 12.3MB → 3.7MB (3.3x), 56 JPEGs deleted\n2026-04-21T17:53:51.388237Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:53:53.983042Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 58 frames, 9.0MB → 2.6MB (3.5x), 58 JPEGs deleted\n2026-04-21T17:53:56.223709Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:25.250317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:54:25.727105Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T17:54:32.633019Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:33.984547Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:54:35.401305Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:35.511290Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:38.494935Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:38.630637Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:41.245537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:54:45.441966Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:54:50.148639Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:50.313941Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:51.769427Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:51.915582Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6879345585135723292, trigger=click)\n2026-04-21T17:54:58.755543Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:55:01.758776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6879345585135723292, trigger=visual_change)\n2026-04-21T17:55:25.745659Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3428322026263856254, trigger=click)\n2026-04-21T17:55:27.298490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3428322026263856254, trigger=visual_change)\n2026-04-21T17:55:33.297808Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3428322026263856254, trigger=visual_change)\n2026-04-21T17:55:48.491529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7233070170495400552, trigger=visual_change)\n2026-04-21T17:55:49.809101Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7233070170495400552, trigger=visual_change)\n2026-04-21T17:55:54.025243Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7233070170495400552, trigger=click)\n2026-04-21T17:55:54.165626Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7233070170495400552, trigger=click)\n2026-04-21T17:55:58.086411Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1463712168180952345, trigger=visual_change)\n2026-04-21T17:56:04.943502Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7233070170495400552, trigger=visual_change)\n2026-04-21T17:57:22.021701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:23.588692Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:30.517012Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:31.818301Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:31.972732Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:40.727074Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:42.330179Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:42.494853Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:45.528669Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=visual_change)\n2026-04-21T17:57:46.132479Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:57:46.358876Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4654731704120970079, trigger=click)\n2026-04-21T17:58:36.946109Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6074307134448385817, trigger=visual_change)\n2026-04-21T17:58:57.225929Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=117 elapsed=3.2365965s\n2026-04-21T17:58:57.226687Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 117 eligible frames\n2026-04-21T17:59:01.078632Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 58 frames, 12.8MB → 4.3MB (3.0x), 58 JPEGs deleted\n2026-04-21T17:59:04.938676Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 57 frames, 10.8MB → 4.0MB (2.7x), 57 JPEGs deleted\n2026-04-21T18:00:27.589643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9170086261988994041, trigger=click)\n2026-04-21T18:00:28.469646Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9170086261988994041, trigger=visual_change)\n2026-04-21T18:00:37.318027Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=9170086261988994041, trigger=click)\n2026-04-21T18:00:42.194585Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=9170086261988994041, trigger=click)\n2026-04-21T18:00:42.367049Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9170086261988994041, trigger=click)\n2026-04-21T18:01:07.200973Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:08.642294Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:08.873831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=visual_change)\n2026-04-21T18:01:09.931490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:10.189484Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:11.594292Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=visual_change)\n2026-04-21T18:01:12.844254Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:13.095866Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5682276111922228423, trigger=click)\n2026-04-21T18:01:49.712611Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5610420548393517496, trigger=click)\n2026-04-21T18:01:49.878502Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5610420548393517496, trigger=click)\n2026-04-21T18:01:54.385999Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4075180225844497251, trigger=click)\n2026-04-21T18:02:03.320721Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:04.589973Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:06.402101Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:08.459207Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:17.915785Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:20.289378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:53.363091Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2385966524984094377, trigger=visual_change)\n2026-04-21T18:02:59.854804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6485088808083200508, trigger=visual_change)\n2026-04-21T18:03:23.692602Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2923142241079919801, trigger=visual_change)\n2026-04-21T18:03:38.383745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:03:38.666324Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:03:40.611795Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:03:46.691879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:03:49.696169Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:03:58.796193Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:10.455866Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=65 elapsed=5.507644708s\n2026-04-21T18:04:10.456994Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 65 eligible frames\n2026-04-21T18:04:10.784720Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:12.979583Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 36 frames, 8.1MB → 3.1MB (2.6x), 36 JPEGs deleted\n2026-04-21T18:04:13.808201Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:15.311040Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 5.7MB → 2.1MB (2.7x), 27 JPEGs deleted\n2026-04-21T18:04:22.870405Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:25.858949Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:04:47.178867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:47.409147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:48.621959Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:48.823996Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:49.613197Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:49.840589Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:54.113636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:54.333250Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:56.158603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:04:56.345340Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:24.653256Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2923142241079919801, trigger=visual_change)\n2026-04-21T18:05:27.506644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2923142241079919801, trigger=visual_change)\n2026-04-21T18:05:52.127185Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:52.385537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:54.464579Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:05:54.740600Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:06:01.884193Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:06:04.917243Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:06:15.788550Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:06:16.090123Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6532606308203292909, trigger=click)\n2026-04-21T18:06:17.179267Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6532606308203292909, trigger=visual_change)\n2026-04-21T18:07:04.992532Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:08.003078Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:17.121489Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:17.302355Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:27.025619Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:29.771279Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:31.137970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:36.086848Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:36.306717Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=visual_change)\n2026-04-21T18:07:37.369851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:37.634865Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:38.805129Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:39.104738Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8009497465838817994, trigger=click)\n2026-04-21T18:07:40.060624Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8009497465838817994, trigger=click)","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.05236037,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.3226396,"top":1.0,"width":0.05236037,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3246343,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"✳ Build full day activity summary from Screenpipe (node)","depth":2,"bounds":{"left":0.375,"top":1.0,"width":0.05236037,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.37699467,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"docker","depth":2,"bounds":{"left":0.4273604,"top":1.0,"width":0.05236037,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.42935506,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.47972074,"top":1.0,"width":0.05236037,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.4817154,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.5320811,"top":1.0,"width":0.05236037,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5340758,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.5844415,"top":1.0,"width":0.05219415,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.58643615,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"ec2-user@ip-10-30-159-186:~ (nc)","depth":2,"bounds":{"left":0.63663566,"top":1.0,"width":0.05219415,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.63863033,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.6888298,"top":1.0,"width":0.05219415,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.69082445,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7273936,"top":1.0,"width":0.01861702,"height":-0.023144484},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"screenpipe\"","depth":1,"bounds":{"left":0.4956782,"top":1.0,"width":0.027925532,"height":-0.02394259},"role_description":"text"}]...
|
225662525454064324
|
3294849421620127097
|
click
|
accessibility
|
NULL
|
2026-04-21T15:17:49.549473Z INFO screenpipe_engin 2026-04-21T15:17:49.549473Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3869963790957274395, trigger=click)
2026-04-21T15:17:50.408526Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3869963790957274395, trigger=visual_change)
2026-04-21T15:17:51.367993Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3869963790957274395, trigger=click)
2026-04-21T15:17:51.658544Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3869963790957274395, trigger=click)
2026-04-21T15:17:59.512794Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2138257446817006938, trigger=click)
2026-04-21T15:17:59.630806Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2138257446817006938, trigger=click)
2026-04-21T15:18:02.612463Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2138257446817006938, trigger=visual_change)
2026-04-21T15:18:05.031295Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2138257446817006938, trigger=click)
2026-04-21T15:18:05.949953Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2138257446817006938, trigger=visual_change)
2026-04-21T15:18:07.005054Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2138257446817006938, trigger=click)
2026-04-21T15:18:07.240048Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2138257446817006938, trigger=click)
2026-04-21T15:18:08.321397Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2138257446817006938, trigger=click)
2026-04-21T15:18:09.330989Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2138257446817006938, trigger=click)
2026-04-21T15:18:16.198885Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4512592763947671045, trigger=click)
2026-04-21T15:18:25.174657Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2138257446817006938, trigger=visual_change)
2026-04-21T15:18:25.979747Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2138257446817006938, trigger=click)
2026-04-21T15:18:26.174344Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2138257446817006938, trigger=click)
2026-04-21T15:18:27.329517Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2138257446817006938, trigger=click)
2026-04-21T15:18:27.442331Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2138257446817006938, trigger=click)
2026-04-21T15:18:34.134351Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2138257446817006938, trigger=visual_change)
2026-04-21T15:18:34.454235Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2138257446817006938, trigger=click)
2026-04-21T15:19:23.799546Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2134448310261037766, trigger=visual_change)
2026-04-21T15:19:35.195461Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2134448310261037766, trigger=visual_change)
2026-04-21T15:19:36.616914Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2134448310261037766, trigger=visual_change)
2026-04-21T15:19:43.812610Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)
2026-04-21T15:19:46.459367Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:19:51.103859Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)
2026-04-21T15:19:51.961944Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)
2026-04-21T15:19:52.167527Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=click)
2026-04-21T15:19:56.622639Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)
2026-04-21T15:19:56.728247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=click)
2026-04-21T15:20:02.598979Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:20:02.924826Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)
2026-04-21T15:20:05.668202Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:20:11.789308Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:20:14.756464Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:20:20.882925Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:20:38.171496Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:20:41.202478Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:20:41.928948Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:20:48.058419Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:20:51.039890Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:22:03.799949Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:22:13.010196Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:22:19.940721Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=36 elapsed=1.206931458s
2026-04-21T15:22:19.940942Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 36 eligible frames
2026-04-21T15:22:21.367797Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 3.8MB → 1.6MB (2.4x), 15 JPEGs deleted
2026-04-21T15:22:22.862852Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 4.4MB → 1.3MB (3.3x), 19 JPEGs deleted
2026-04-21T15:22:28.040013Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:22:31.043424Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:22:37.137451Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:22:40.189158Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:22:46.342577Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:22:52.360301Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:22:55.361962Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:23:01.361462Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:23:04.429481Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:24:03.316425Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8540343042990809979, trigger=visual_change)
2026-04-21T15:24:09.357754Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8540343042990809979, trigger=visual_change)
2026-04-21T15:24:17.045608Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-357712155289738757, trigger=click)
2026-04-21T15:24:17.229938Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-357712155289738757, trigger=click)
2026-04-21T15:24:39.299106Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2318587192590272303, trigger=click)
2026-04-21T15:24:39.503939Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2318587192590272303, trigger=click)
2026-04-21T15:24:40.703200Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2318587192590272303, trigger=visual_change)
2026-04-21T15:25:20.207959Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-115592740355774573, trigger=visual_change)
2026-04-21T15:25:34.045255Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5357895394186669836, trigger=visual_change)
2026-04-21T15:25:34.611160Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5357895394186669836, trigger=click)
2026-04-21T15:25:37.799744Z WARN sqlx::query: summary="COMMIT" db.statement="" rows_affected=1 rows_returned=0 elapsed=1.72370025s
2026-04-21T15:25:37.956786Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5357895394186669836, trigger=click)
2026-04-21T15:25:38.065798Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5357895394186669836, trigger=click)
2026-04-21T15:27:27.008772Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=46 elapsed=4.119326709s
2026-04-21T15:27:27.008926Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 46 eligible frames
2026-04-21T15:27:28.808464Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 4.8MB → 2.5MB (1.9x), 19 JPEGs deleted
2026-04-21T15:27:29.051101Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=525296185995483322, trigger=visual_change)
2026-04-21T15:27:30.940888Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.6MB → 2.0MB (2.3x), 25 JPEGs deleted
2026-04-21T15:27:38.326692Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=525296185995483322, trigger=visual_change)
2026-04-21T15:27:46.472144Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2318587192590272303, trigger=click)
2026-04-21T15:27:53.687585Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=click)
2026-04-21T15:27:53.821391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)
2026-04-21T15:27:56.568366Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:30:07.617208Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7345067017169779372, trigger=visual_change)
2026-04-21T15:30:35.626228Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:30:38.496521Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:30:47.627510Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:30:50.578236Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)
2026-04-21T15:30:50.726770Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=click)
2026-04-21T15:30:56.653721Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:31:02.747003Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:31:05.748607Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:31:17.869430Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:31:20.951104Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:31:26.942644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:31:30.113620Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)
2026-04-21T15:31:31.259291Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)
2026-04-21T15:31:31.514010Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=click)
2026-04-21T15:31:33.767000Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)
2026-04-21T15:31:33.920466Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=click)
2026-04-21T15:31:35.506530Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)
2026-04-21T15:31:35.685079Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=click)
2026-04-21T15:31:36.710558Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=click)
2026-04-21T15:31:36.953539Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)
2026-04-21T15:31:38.451284Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6916869621394806617, trigger=click)
2026-04-21T15:31:38.659646Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=click)
2026-04-21T15:31:41.384919Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6916869621394806617, trigger=visual_change)
2026-04-21T15:32:26.999680Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:32:29.990647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:32:36.791142Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=59 elapsed=5.839242958s
2026-04-21T15:32:36.791363Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 59 eligible frames
2026-04-21T15:32:39.153877Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 8.5MB → 3.9MB (2.2x), 31 JPEGs deleted
2026-04-21T15:32:43.055663Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.3MB → 2.2MB (2.0x), 26 JPEGs deleted
2026-04-21T15:33:58.964559Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=click)
2026-04-21T15:34:01.370038Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:34:16.496030Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:34:19.493349Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:35:07.898889Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:35:16.972268Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:35:20.035784Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:35:26.049636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:35:32.118199Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:35:35.122849Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:35:44.214841Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:35:47.232611Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:35:53.252836Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:35:56.262473Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:36:03.912825Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=32684078525934003, trigger=click)
2026-04-21T15:36:04.039319Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=click)
2026-04-21T15:36:06.889882Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=click)
2026-04-21T15:36:17.457615Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:36:27.555065Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1505193671044774267, trigger=click)
2026-04-21T15:36:42.607815Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2864109645901807081, trigger=click)
2026-04-21T15:37:44.772586Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=69 elapsed=1.703329916s
2026-04-21T15:37:44.772693Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 69 eligible frames
2026-04-21T15:37:47.061751Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 8.3MB → 4.1MB (2.0x), 32 JPEGs deleted
2026-04-21T15:37:49.263118Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 35 frames, 4.9MB → 1.5MB (3.3x), 35 JPEGs deleted
2026-04-21T15:38:48.339863Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7345067017169779372, trigger=visual_change)
2026-04-21T15:39:04.763572Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4843719893880893793, trigger=visual_change)
2026-04-21T15:40:05.496361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:40:29.591282Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:41:16.164160Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2900812915277822723, trigger=click)
2026-04-21T15:41:23.661891Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:41:26.703461Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:41:32.781037Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:41:35.789883Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:41:41.811272Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:41:44.919455Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=32684078525934003, trigger=visual_change)
2026-04-21T15:42:05.404072Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5004276282384800505, trigger=click)
2026-04-21T15:42:06.660073Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5004276282384800505, trigger=visual_change)
2026-04-21T15:42:21.721735Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5004276282384800505, trigger=visual_change)
2026-04-21T15:42:24.767284Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5004276282384800505, trigger=visual_change)
2026-04-21T15:42:30.886797Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5004276282384800505, trigger=visual_change)
2026-04-21T15:42:32.353284Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5004276282384800505, trigger=click)
2026-04-21T15:42:53.342750Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=52 elapsed=4.068091375s
2026-04-21T15:42:53.343209Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 52 eligible frames
2026-04-21T15:43:00.350701Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 7.7MB → 3.8MB (2.0x), 32 JPEGs deleted
2026-04-21T15:43:04.665303Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.0MB → 1.4MB (2.2x), 18 JPEGs deleted
2026-04-21T15:43:34.607312Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=853482337029112184, trigger=click)
2026-04-21T15:43:34.872392Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=853482337029112184, trigger=click)
2026-04-21T15:43:35.899763Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=853482337029112184, trigger=click)
2026-04-21T15:43:48.406088Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=853482337029112184, trigger=click)
2026-04-21T15:43:48.585014Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=853482337029112184, trigger=click)
2026-04-21T15:43:50.163180Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=853482337029112184, trigger=click)
2026-04-21T15:43:50.385739Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=853482337029112184, trigger=click)
2026-04-21T15:43:53.195867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=853482337029112184, trigger=click)
2026-04-21T15:44:13.974997Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7638600394188067596, trigger=click)
2026-04-21T15:45:09.004346Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1645333894657549955, trigger=visual_change)
2026-04-21T15:45:25.499345Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3128527177503635561, trigger=click)
2026-04-21T15:45:26.508782Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3128527177503635561, trigger=visual_change)
2026-04-21T15:45:29.578474Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3128527177503635561, trigger=visual_change)
2026-04-21T15:45:33.069643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3128527177503635561, trigger=visual_change)
2026-04-21T15:45:35.154439Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3128527177503635561, trigger=click)
2026-04-21T15:45:50.867873Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:45:51.543329Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=click)
2026-04-21T15:45:51.688145Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=click)
2026-04-21T15:45:56.968268Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:45:59.992989Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:46:15.190380Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:46:21.349140Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:46:24.108646Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=click)
2026-04-21T15:46:24.239949Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=click)
2026-04-21T15:46:31.011607Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:46:34.038038Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:46:40.140459Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:46:43.202999Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:46:49.666830Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=click)
2026-04-21T15:46:52.233599Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:46:52.919343Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=click)
2026-04-21T15:47:01.421995Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:47:04.387592Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:47:13.219366Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=click)
2026-04-21T15:47:14.410197Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=click)
2026-04-21T15:47:14.555427Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:47:47.182774Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-926939256350628341, trigger=click)
2026-04-21T15:47:47.313085Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-926939256350628341, trigger=click)
2026-04-21T15:47:51.007142Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-926939256350628341, trigger=visual_change)
2026-04-21T15:47:57.147902Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=click)
2026-04-21T15:47:57.339006Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:47:58.246964Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:48:10.859817Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=60 elapsed=6.154614084s
2026-04-21T15:48:10.860968Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 60 eligible frames
2026-04-21T15:48:12.865127Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 3.8MB → 0.4MB (8.5x), 29 JPEGs deleted
2026-04-21T15:48:15.453116Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 5.3MB → 1.9MB (2.8x), 29 JPEGs deleted
2026-04-21T15:48:47.469195Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1918324922935553040, trigger=visual_change)
2026-04-21T15:49:03.828434Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1918324922935553040, trigger=visual_change)
2026-04-21T15:49:32.798887Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6658269488663706414, trigger=click)
2026-04-21T15:50:07.795304Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:50:22.939421Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6692792019664876292, trigger=visual_change)
2026-04-21T15:51:11.513005Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9198264877289985337, trigger=visual_change)
2026-04-21T15:51:22.759879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9198264877289985337, trigger=click)
2026-04-21T15:52:06.151994Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2061546572815694422, trigger=visual_change)
2026-04-21T15:52:10.101525Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2061546572815694422, trigger=visual_change)
2026-04-21T15:52:10.447385Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2061546572815694422, trigger=click)
2026-04-21T15:52:17.973740Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2061546572815694422, trigger=visual_change)
2026-04-21T15:52:27.034549Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6654491695696088287, trigger=visual_change)
2026-04-21T15:52:34.865867Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=click)
2026-04-21T15:52:37.002754Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:52:37.758891Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=click)
2026-04-21T15:52:37.903061Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=click)
2026-04-21T15:52:58.490245Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2319943303696444798, trigger=click)
2026-04-21T15:52:58.636967Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2319943303696444798, trigger=click)
2026-04-21T15:53:05.413509Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=click)
2026-04-21T15:53:05.635434Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=click)
2026-04-21T15:53:14.450507Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:53:16.412940Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 56 eligible frames
2026-04-21T15:53:17.458900Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:53:18.382936Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 3.9MB → 0.4MB (10.1x), 30 JPEGs deleted
2026-04-21T15:53:20.404928Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 5.2MB → 2.5MB (2.1x), 24 JPEGs deleted
2026-04-21T15:53:29.578611Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:53:32.631242Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:53:43.980351Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=click)
2026-04-21T15:53:45.448681Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:53:45.981861Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:53:51.490843Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:53:54.503801Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:54:00.554133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:54:03.594215Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:54:12.603968Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=visual_change)
2026-04-21T15:54:18.363794Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4763765791207834399, trigger=click)
2026-04-21T15:54:18.534215Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4763765791207834399, trigger=click)
2026-04-21T15:54:45.841588Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1261864652156529447, trigger=click)
2026-04-21T15:54:46.025388Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1261864652156529447, trigger=click)
2026-04-21T15:54:49.896744Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1261864652156529447, trigger=visual_change)
2026-04-21T15:54:56.016125Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1261864652156529447, trigger=visual_change)
2026-04-21T15:54:59.114088Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1261864652156529447, trigger=visual_change)
2026-04-21T15:55:00.284632Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1261864652156529447, trigger=click)
2026-04-21T15:55:00.406838Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1261864652156529447, trigger=click)
2026-04-21T15:55:02.079710Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1261864652156529447, trigger=click)
2026-04-21T15:55:02.308488Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1261864652156529447, trigger=click)
2026-04-21T15:55:17.433420Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1236411717024251211, trigger=click)
2026-04-21T15:55:22.382212Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3575572948672507206, trigger=visual_change)
2026-04-21T15:55:33.553348Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3575572948672507206, trigger=click)
2026-04-21T15:55:33.725630Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3575572948672507206, trigger=click)
2026-04-21T15:55:36.499986Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3575572948672507206, trigger=click)
2026-04-21T15:55:36.647384Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3575572948672507206, trigger=visual_change)
2026-04-21T15:55:38.675147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3575572948672507206, trigger=click)
2026-04-21T15:55:38.953368Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3575572948672507206, trigger=click)
2026-04-21T15:55:49.727745Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1928477198450198789, trigger=click)
2026-04-21T15:55:51.600613Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1928477198450198789, trigger=visual_change)
2026-04-21T15:55:58.958653Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6305115209475227780, trigger=click)
2026-04-21T15:56:10.814040Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2683270687017607806, trigger=click)
2026-04-21T15:56:23.872451Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8011254159114411036, trigger=visual_change)
2026-04-21T15:56:24.893455Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8011254159114411036, trigger=visual_change)
2026-04-21T15:56:38.964984Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2061546572815694422, trigger=click)
2026-04-21T15:57:05.134874Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8011254159114411036, trigger=visual_change)
2026-04-21T15:57:05.481118Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8011254159114411036, trigger=click)
2026-04-21T15:57:06.604281Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8011254159114411036, trigger=click)
2026-04-21T15:57:06.770499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8011254159114411036, trigger=click)
2026-04-21T15:57:07.327121Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8011254159114411036, trigger=click)
2026-04-21T15:57:12.184374Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8011254159114411036, trigger=visual_change)
2026-04-21T15:57:17.777283Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8011254159114411036, trigger=click)
2026-04-21T15:57:17.883656Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8011254159114411036, trigger=click)
2026-04-21T15:58:03.328237Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2061546572815694422, trigger=visual_change)
2026-04-21T15:58:04.873241Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2061546572815694422, trigger=click)
2026-04-21T15:58:05.083940Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2061546572815694422, trigger=click)
2026-04-21T15:58:25.172235Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=69 elapsed=4.754634416s
2026-04-21T15:58:25.172952Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 69 eligible frames
2026-04-21T15:58:27.752106Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 5.0MB → 0.7MB (7.7x), 39 JPEGs deleted
2026-04-21T15:58:28.844185Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1714600494192977193, trigger=click)
2026-04-21T15:58:30.120472Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 28 frames, 6.0MB → 2.7MB (2.2x), 28 JPEGs deleted
2026-04-21T15:59:45.857732Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2993864580543626498, trigger=click)
2026-04-21T15:59:47.242506Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2993864580543626498, trigger=visual_change)
2026-04-21T15:59:49.794356Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2993864580543626498, trigger=click)
2026-04-21T15:59:49.900792Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2993864580543626498, trigger=click)
2026-04-21T16:00:06.761409Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3195608759585503031, trigger=visual_change)
2026-04-21T16:00:13.468752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2319222304555239268, trigger=click)
2026-04-21T16:00:17.757305Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5732830672832053181, trigger=click)
2026-04-21T16:00:17.870684Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5732830672832053181, trigger=click)
2026-04-21T16:01:48.777919Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2131760867504785678, trigger=visual_change)
2026-04-21T16:01:51.903624Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2131760867504785678, trigger=visual_change)
2026-04-21T16:02:01.343178Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4025239947511295773, trigger=visual_change)
2026-04-21T16:02:02.388155Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4025239947511295773, trigger=visual_change)
2026-04-21T16:02:10.799801Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3195608759585503031, trigger=click)
2026-04-21T16:02:15.237578Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3195608759585503031, trigger=click)
2026-04-21T16:02:15.453443Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3195608759585503031, trigger=click)
2026-04-21T16:02:17.716070Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3195608759585503031, trigger=visual_change)
2026-04-21T16:02:26.881689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1116166152131308044, trigger=click)
2026-04-21T16:02:27.03082...
|
NULL
|
|
60838
|
1310
|
49
|
2026-04-21T06:20:26.351508+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-21/1776 /Users/lukas/.screenpipe/data/data/2026-04-21/1776752426351_m1.jpg...
|
iTerm2
|
screenpipe"
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Last login: Mon Apr 20 20:51:30 on ttys009
Poetry Last login: Mon Apr 20 20:51:30 on ttys009
Poetry could not find a pyproject.toml file in /Users/lukas or its parents
Poetry could not find a pyproject.toml file in /Users/lukas or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-start
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-04-21T09:09:26.267672Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store
checking permissions...
screen recording: ok
accessibility: ok
2026-04-21T09:09:26.330305Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-04-21T09:09:26.876072Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-04-21T09:09:26.877941Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-04-21T09:09:26.878456Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-04-21T09:09:26.911814Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-04-21T09:09:26.911854Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-04-21T09:09:26.912050Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-04-21T09:09:26.912073Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-04-21T09:09:26.912102Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-04-21T09:09:26.912144Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-04-21T09:09:26.912110Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-04-21T09:09:26.921311Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))
2026-04-21T09:09:26.927270Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-04-21T09:09:26.927460Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-04-21T09:09:26.928100Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-04-21T09:09:26.928278Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-04-21T09:09:26.928424Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-04-21T09:09:26.929174Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary
2026-04-21T09:09:26.929195Z INFO screenpipe_core::pipes: loaded 6 pipes from "/Users/lukas/.screenpipe/pipes"
_
__________________ ___ ____ ____ (_____ ___
/ ___/ ___/ ___/ _ \/ _ \/ __ \ / __ \/ / __ \/ _ \
(__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/
/____/\___/_/ \___/\___/_/ /_/ / .___/_/ .___/\___/
/_/ /_/
power AI by everything you've seen, said or heard
open source | runs locally | developer friendly
┌────────────────────────┬────────────────────────────────────┐
│ setting │ value │
├────────────────────────┼────────────────────────────────────┤
│ audio chunk duration │ 30 seconds │
│ port │ 3030 │
│ audio disabled │ true │
│ vision disabled │ false │
│ pause on DRM content │ false │
2026-04-21T09:09:26.929953Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)
│ audio engine │ Parakeet │
│ vad engine │ Silero │
│ data directory │ /Users/lukas/.screenpipe │
│ debug mode │ false │
│ telemetry │ true │
│ use pii removal │ true │
│ use all monitors │ true │
│ ignored windows │ ["Boosteroid"] │
│ included windows │ [] │
│ cloud sync │ disabled │
│ auto-destruct pid │ 0 │
│ deepgram key │ not set │
│ api auth │ enabled │
2026-04-21T09:09:26.933254Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh
│ encrypt secrets │ disabled │
│ retention days │ 14 │
├────────────────────────┼────────────────────────────────────┤
│ languages │ │
│ │ all languages │
├────────────────────────┼────────────────────────────────────┤
│ monitors │ │
│ │ id: 1 │
│ │ id: 2 │
├────────────────────────┼────────────────────────────────────┤
│ audio devices │ │
│ │ disabled │
└────────────────────────┴────────────────────────────────────┘
you are using local processing. all your data stays on your computer.
warning: telemetry is enabled. only error-level data will be sent.
to disable, use the --disable-telemetry flag.
check latest changes here: https://github.com/screenpipe/screenpipe/releases
2026-04-21T09:09:26.944288Z INFO screenpipe: starting UI event capture
2026-04-21T09:09:26.957412Z INFO screenpipe_engine::ui_recorder: Starting UI event capture
2026-04-21T09:09:26.970637Z INFO screenpipe_engine::ui_recorder: UI recording session started: a22e844d-73cb-42be-b71f-3243cecbaf5c
2026-04-21T09:09:26.970744Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)
2026-04-21T09:09:26.970792Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-20 06:09:26.970791 UTC to 2026-04-21 06:09:26.970791 UTC)
2026-04-21T09:09:26.971462Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)
2026-04-21T09:09:26.978353Z INFO screenpipe_engine::server: Server listening on [IP_ADDRESS]:3030
2026-04-21T09:09:26.982750Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030
2026-04-21T09:09:26.999552Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)
2026-04-21T09:09:26.999658Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)
2026-04-21T09:09:26.999699Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)
2026-04-21T09:09:27.033668Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-04-21T09:09:27.033695Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-04-21T09:09:27.033706Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)
2026-04-21T09:09:27.033708Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-04-21T09:09:27.033714Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)
2026-04-21T09:09:27.685135Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)
2026-04-21T09:09:27.761411Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)
2026-04-21T09:09:27.797356Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=60600, dur=57ms
2026-04-21T09:09:27.906796Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=60601, dur=95ms
2026-04-21T09:09:31.724879Z WARN sqlx::query: summary="SELECT f.id, f.timestamp, f.offset_index, …" db.statement="\n\nSELECT\n f.id,\n f.timestamp,\n f.offset_index,\n COALESCE(\n SUBSTR(f.full_text, 1, 200),\n SUBSTR(f.accessibility_text, 1, 200),\n (\n SELECT\n SUBSTR(ot.text, 1, 200)\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as text,\n COALESCE(\n f.app_name,\n (\n SELECT\n ot.app_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as app_name,\n COALESCE(\n f.window_name,\n (\n SELECT\n ot.window_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as window_name,\n COALESCE(vc.device_name, f.device_name) as screen_device,\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\n COALESCE(vc.fps, 0.033) as chunk_fps,\n f.browser_url,\n f.machine_id\nFROM\n frames f\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\nWHERE\n f.timestamp >= ?1\n AND f.timestamp <= ?2\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\nORDER BY\n f.timestamp DESC,\n f.offset_index DESC\nLIMIT\n 10000\n" rows_affected=0 rows_returned=9080 elapsed=4.753475958s
2026-04-21T09:09:31.744802Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 9080 frame entries, coverage from 2026-04-20 06:09:26.970791 UTC
2026-04-21T09:09:33.176060Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8494955593014645957, trigger=visual_change)
2026-04-21T09:09:33.259133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8494955593014645957, trigger=click)
2026-04-21T09:09:39.972766Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2700142422186852288, trigger=click)
2026-04-21T09:09:45.290493Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2196825192572756169, trigger=visual_change)
2026-04-21T09:09:48.296536Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2196825192572756169, trigger=visual_change)
2026-04-21T09:09:57.405382Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6029799176853791417, trigger=visual_change)
2026-04-21T09:10:30.793177Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=68 elapsed=3.880348084s
2026-04-21T09:10:30.793343Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 68 eligible frames
2026-04-21T09:10:32.782345Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 33 frames, 9.0MB → 1.4MB (6.2x), 33 JPEGs deleted
2026-04-21T09:10:34.729084Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 33 frames, 3.8MB → 0.7MB (5.3x), 33 JPEGs deleted
2026-04-21T09:14:41.491289Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5618287936463319477, trigger=visual_change)
2026-04-21T09:14:42.023992Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5618287936463319477, trigger=visual_change)
2026-04-21T09:14:44.991818Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5618287936463319477, trigger=visual_change)
2026-04-21T09:14:51.083977Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5618287936463319477, trigger=visual_change)
2026-04-21T09:14:54.140981Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5618287936463319477, trigger=visual_change)
2026-04-21T09:15:00.165923Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5618287936463319477, trigger=visual_change)
2026-04-21T09:15:35.927100Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=2 elapsed=1.199599292s
2026-04-21T09:15:35.927173Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
2026-04-21T09:17:09.049247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2040777845502947880, trigger=visual_change)
2026-04-21T09:17:21.165695Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6207854274181758758, trigger=visual_change)
2026-04-21T09:18:37.508537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1104388310719845288, trigger=visual_change)
2026-04-21T09:18:54.604696Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1104388310719845288, trigger=click)
2026-04-21T09:19:11.380975Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1104388310719845288, trigger=visual_change)
DOCKER
Close Tab
-zsh
Close Tab
-zsh
Close Tab
✳ Build full day activity summary from Screenpipe (node)
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
APP (-zsh)
Close Tab
⌥⌘1
screenpipe"...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"Last login: Mon Apr 20 20:51:30 on ttys009\n\nPoetry could not find a pyproject.toml file in /Users/lukas or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-start\ndetected hardware tier: Mid\nwarning: parakeet is not supported on this platform, using whisper-tiny instead\n2026-04-21T09:09:26.267672Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store\nchecking permissions...\n screen recording: ok\n accessibility: ok\n2026-04-21T09:09:26.330305Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6\n2026-04-21T09:09:26.876072Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor\n2026-04-21T09:09:26.877941Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)\n2026-04-21T09:09:26.878456Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)\n2026-04-21T09:09:26.911814Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true\n2026-04-21T09:09:26.911854Z INFO screenpipe: meeting detector enabled — independent of transcription mode\n2026-04-21T09:09:26.912050Z INFO screenpipe: API server listening on 127.0.0.1:3030 (localhost only)\n2026-04-21T09:09:26.912073Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key\n2026-04-21T09:09:26.912102Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)\n2026-04-21T09:09:26.912144Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager\n2026-04-21T09:09:26.912110Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)\n2026-04-21T09:09:26.921311Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-21T09:09:26.927270Z INFO screenpipe_core::pipes: loaded pipe: day-recap\n2026-04-21T09:09:26.927460Z INFO screenpipe_core::pipes: loaded pipe: standup-update\n2026-04-21T09:09:26.928100Z INFO screenpipe_core::pipes: loaded pipe: ai-habits\n2026-04-21T09:09:26.928278Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown\n2026-04-21T09:09:26.928424Z INFO screenpipe_core::pipes: loaded pipe: video-export\n2026-04-21T09:09:26.929174Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary\n2026-04-21T09:09:26.929195Z INFO screenpipe_core::pipes: loaded 6 pipes from \"/Users/lukas/.screenpipe/pipes\"\n\n\n\n _ \n __________________ ___ ____ ____ (_____ ___ \n / ___/ ___/ ___/ _ \\/ _ \\/ __ \\ / __ \\/ / __ \\/ _ \\\n (__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/\n/____/\\___/_/ \\___/\\___/_/ /_/ / .___/_/ .___/\\___/ \n /_/ /_/ \n\n\n\npower AI by everything you've seen, said or heard\nopen source | runs locally | developer friendly\n\n\n┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ true │\n│ vision disabled │ false │\n│ pause on DRM content │ false │\n2026-04-21T09:09:26.929953Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n│ ignored windows │ [\"Boosteroid\"] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n│ api auth │ enabled │\n2026-04-21T09:09:26.933254Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n│ encrypt secrets │ disabled │\n│ retention days │ 14 │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ id: 1 │\n│ │ id: 2 │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ disabled │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-21T09:09:26.944288Z INFO screenpipe: starting UI event capture\n2026-04-21T09:09:26.957412Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-21T09:09:26.970637Z INFO screenpipe_engine::ui_recorder: UI recording session started: a22e844d-73cb-42be-b71f-3243cecbaf5c\n2026-04-21T09:09:26.970744Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-21T09:09:26.970792Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-20 06:09:26.970791 UTC to 2026-04-21 06:09:26.970791 UTC)\n2026-04-21T09:09:26.971462Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-21T09:09:26.978353Z INFO screenpipe_engine::server: Server listening on 127.0.0.1:3030\n2026-04-21T09:09:26.982750Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-21T09:09:26.999552Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-21T09:09:26.999658Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-21T09:09:26.999699Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-21T09:09:27.033668Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-21T09:09:27.033695Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-21T09:09:27.033706Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)\n2026-04-21T09:09:27.033708Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-21T09:09:27.033714Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)\n2026-04-21T09:09:27.685135Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)\n2026-04-21T09:09:27.761411Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)\n2026-04-21T09:09:27.797356Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=60600, dur=57ms\n2026-04-21T09:09:27.906796Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=60601, dur=95ms\n2026-04-21T09:09:31.724879Z WARN sqlx::query: summary=\"SELECT f.id, f.timestamp, f.offset_index, …\" db.statement=\"\\n\\nSELECT\\n f.id,\\n f.timestamp,\\n f.offset_index,\\n COALESCE(\\n SUBSTR(f.full_text, 1, 200),\\n SUBSTR(f.accessibility_text, 1, 200),\\n (\\n SELECT\\n SUBSTR(ot.text, 1, 200)\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as text,\\n COALESCE(\\n f.app_name,\\n (\\n SELECT\\n ot.app_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as app_name,\\n COALESCE(\\n f.window_name,\\n (\\n SELECT\\n ot.window_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as window_name,\\n COALESCE(vc.device_name, f.device_name) as screen_device,\\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\\n COALESCE(vc.fps, 0.033) as chunk_fps,\\n f.browser_url,\\n f.machine_id\\nFROM\\n frames f\\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\\nWHERE\\n f.timestamp >= ?1\\n AND f.timestamp <= ?2\\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\\nORDER BY\\n f.timestamp DESC,\\n f.offset_index DESC\\nLIMIT\\n 10000\\n\" rows_affected=0 rows_returned=9080 elapsed=4.753475958s\n2026-04-21T09:09:31.744802Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 9080 frame entries, coverage from 2026-04-20 06:09:26.970791 UTC\n2026-04-21T09:09:33.176060Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8494955593014645957, trigger=visual_change)\n2026-04-21T09:09:33.259133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8494955593014645957, trigger=click)\n2026-04-21T09:09:39.972766Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2700142422186852288, trigger=click)\n2026-04-21T09:09:45.290493Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2196825192572756169, trigger=visual_change)\n2026-04-21T09:09:48.296536Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2196825192572756169, trigger=visual_change)\n2026-04-21T09:09:57.405382Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6029799176853791417, trigger=visual_change)\n2026-04-21T09:10:30.793177Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=68 elapsed=3.880348084s\n2026-04-21T09:10:30.793343Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 68 eligible frames\n2026-04-21T09:10:32.782345Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 33 frames, 9.0MB → 1.4MB (6.2x), 33 JPEGs deleted\n2026-04-21T09:10:34.729084Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 33 frames, 3.8MB → 0.7MB (5.3x), 33 JPEGs deleted\n2026-04-21T09:14:41.491289Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5618287936463319477, trigger=visual_change)\n2026-04-21T09:14:42.023992Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5618287936463319477, trigger=visual_change)\n2026-04-21T09:14:44.991818Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5618287936463319477, trigger=visual_change)\n2026-04-21T09:14:51.083977Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5618287936463319477, trigger=visual_change)\n2026-04-21T09:14:54.140981Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5618287936463319477, trigger=visual_change)\n2026-04-21T09:15:00.165923Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5618287936463319477, trigger=visual_change)\n2026-04-21T09:15:35.927100Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=2 elapsed=1.199599292s\n2026-04-21T09:15:35.927173Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-21T09:17:09.049247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2040777845502947880, trigger=visual_change)\n2026-04-21T09:17:21.165695Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6207854274181758758, trigger=visual_change)\n2026-04-21T09:18:37.508537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1104388310719845288, trigger=visual_change)\n2026-04-21T09:18:54.604696Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1104388310719845288, trigger=click)\n2026-04-21T09:19:11.380975Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1104388310719845288, trigger=visual_change)","depth":4,"value":"Last login: Mon Apr 20 20:51:30 on ttys009\n\nPoetry could not find a pyproject.toml file in /Users/lukas or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-start\ndetected hardware tier: Mid\nwarning: parakeet is not supported on this platform, using whisper-tiny instead\n2026-04-21T09:09:26.267672Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store\nchecking permissions...\n screen recording: ok\n accessibility: ok\n2026-04-21T09:09:26.330305Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6\n2026-04-21T09:09:26.876072Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor\n2026-04-21T09:09:26.877941Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)\n2026-04-21T09:09:26.878456Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)\n2026-04-21T09:09:26.911814Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true\n2026-04-21T09:09:26.911854Z INFO screenpipe: meeting detector enabled — independent of transcription mode\n2026-04-21T09:09:26.912050Z INFO screenpipe: API server listening on 127.0.0.1:3030 (localhost only)\n2026-04-21T09:09:26.912073Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key\n2026-04-21T09:09:26.912102Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)\n2026-04-21T09:09:26.912144Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager\n2026-04-21T09:09:26.912110Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)\n2026-04-21T09:09:26.921311Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-21T09:09:26.927270Z INFO screenpipe_core::pipes: loaded pipe: day-recap\n2026-04-21T09:09:26.927460Z INFO screenpipe_core::pipes: loaded pipe: standup-update\n2026-04-21T09:09:26.928100Z INFO screenpipe_core::pipes: loaded pipe: ai-habits\n2026-04-21T09:09:26.928278Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown\n2026-04-21T09:09:26.928424Z INFO screenpipe_core::pipes: loaded pipe: video-export\n2026-04-21T09:09:26.929174Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary\n2026-04-21T09:09:26.929195Z INFO screenpipe_core::pipes: loaded 6 pipes from \"/Users/lukas/.screenpipe/pipes\"\n\n\n\n _ \n __________________ ___ ____ ____ (_____ ___ \n / ___/ ___/ ___/ _ \\/ _ \\/ __ \\ / __ \\/ / __ \\/ _ \\\n (__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/\n/____/\\___/_/ \\___/\\___/_/ /_/ / .___/_/ .___/\\___/ \n /_/ /_/ \n\n\n\npower AI by everything you've seen, said or heard\nopen source | runs locally | developer friendly\n\n\n┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ true │\n│ vision disabled │ false │\n│ pause on DRM content │ false │\n2026-04-21T09:09:26.929953Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n│ ignored windows │ [\"Boosteroid\"] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n│ api auth │ enabled │\n2026-04-21T09:09:26.933254Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n│ encrypt secrets │ disabled │\n│ retention days │ 14 │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ id: 1 │\n│ │ id: 2 │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ disabled │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-21T09:09:26.944288Z INFO screenpipe: starting UI event capture\n2026-04-21T09:09:26.957412Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-21T09:09:26.970637Z INFO screenpipe_engine::ui_recorder: UI recording session started: a22e844d-73cb-42be-b71f-3243cecbaf5c\n2026-04-21T09:09:26.970744Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-21T09:09:26.970792Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-20 06:09:26.970791 UTC to 2026-04-21 06:09:26.970791 UTC)\n2026-04-21T09:09:26.971462Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-21T09:09:26.978353Z INFO screenpipe_engine::server: Server listening on 127.0.0.1:3030\n2026-04-21T09:09:26.982750Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-21T09:09:26.999552Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-21T09:09:26.999658Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-21T09:09:26.999699Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-21T09:09:27.033668Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-21T09:09:27.033695Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-21T09:09:27.033706Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)\n2026-04-21T09:09:27.033708Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-21T09:09:27.033714Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)\n2026-04-21T09:09:27.685135Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)\n2026-04-21T09:09:27.761411Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)\n2026-04-21T09:09:27.797356Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=60600, dur=57ms\n2026-04-21T09:09:27.906796Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=60601, dur=95ms\n2026-04-21T09:09:31.724879Z WARN sqlx::query: summary=\"SELECT f.id, f.timestamp, f.offset_index, …\" db.statement=\"\\n\\nSELECT\\n f.id,\\n f.timestamp,\\n f.offset_index,\\n COALESCE(\\n SUBSTR(f.full_text, 1, 200),\\n SUBSTR(f.accessibility_text, 1, 200),\\n (\\n SELECT\\n SUBSTR(ot.text, 1, 200)\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as text,\\n COALESCE(\\n f.app_name,\\n (\\n SELECT\\n ot.app_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as app_name,\\n COALESCE(\\n f.window_name,\\n (\\n SELECT\\n ot.window_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as window_name,\\n COALESCE(vc.device_name, f.device_name) as screen_device,\\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\\n COALESCE(vc.fps, 0.033) as chunk_fps,\\n f.browser_url,\\n f.machine_id\\nFROM\\n frames f\\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\\nWHERE\\n f.timestamp >= ?1\\n AND f.timestamp <= ?2\\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\\nORDER BY\\n f.timestamp DESC,\\n f.offset_index DESC\\nLIMIT\\n 10000\\n\" rows_affected=0 rows_returned=9080 elapsed=4.753475958s\n2026-04-21T09:09:31.744802Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 9080 frame entries, coverage from 2026-04-20 06:09:26.970791 UTC\n2026-04-21T09:09:33.176060Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8494955593014645957, trigger=visual_change)\n2026-04-21T09:09:33.259133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8494955593014645957, trigger=click)\n2026-04-21T09:09:39.972766Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2700142422186852288, trigger=click)\n2026-04-21T09:09:45.290493Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2196825192572756169, trigger=visual_change)\n2026-04-21T09:09:48.296536Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2196825192572756169, trigger=visual_change)\n2026-04-21T09:09:57.405382Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6029799176853791417, trigger=visual_change)\n2026-04-21T09:10:30.793177Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=68 elapsed=3.880348084s\n2026-04-21T09:10:30.793343Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 68 eligible frames\n2026-04-21T09:10:32.782345Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 33 frames, 9.0MB → 1.4MB (6.2x), 33 JPEGs deleted\n2026-04-21T09:10:34.729084Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 33 frames, 3.8MB → 0.7MB (5.3x), 33 JPEGs deleted\n2026-04-21T09:14:41.491289Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5618287936463319477, trigger=visual_change)\n2026-04-21T09:14:42.023992Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5618287936463319477, trigger=visual_change)\n2026-04-21T09:14:44.991818Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5618287936463319477, trigger=visual_change)\n2026-04-21T09:14:51.083977Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5618287936463319477, trigger=visual_change)\n2026-04-21T09:14:54.140981Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5618287936463319477, trigger=visual_change)\n2026-04-21T09:15:00.165923Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5618287936463319477, trigger=visual_change)\n2026-04-21T09:15:35.927100Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=2 elapsed=1.199599292s\n2026-04-21T09:15:35.927173Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-21T09:17:09.049247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2040777845502947880, trigger=visual_change)\n2026-04-21T09:17:21.165695Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6207854274181758758, trigger=visual_change)\n2026-04-21T09:18:37.508537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1104388310719845288, trigger=visual_change)\n2026-04-21T09:18:54.604696Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1104388310719845288, trigger=click)\n2026-04-21T09:19:11.380975Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1104388310719845288, trigger=visual_change)","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.14097223,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.14097223,"top":0.05888889,"width":0.14097223,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.14513889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.28194445,"top":0.05888889,"width":0.14097223,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.28611112,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"✳ Build full day activity summary from Screenpipe (node)","depth":2,"bounds":{"left":0.42291668,"top":0.05888889,"width":0.14097223,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.42708334,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.5638889,"top":0.05888889,"width":0.14097223,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.56805557,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.7048611,"top":0.05888889,"width":0.140625,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.70902777,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.8454861,"top":0.05888889,"width":0.140625,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.84965277,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"screenpipe\"","depth":1,"bounds":{"left":0.4722222,"top":0.033333335,"width":0.058333334,"height":0.017777778},"role_description":"text"}]...
|
8871613370884906715
|
7256900187427288433
|
visual_change
|
accessibility
|
NULL
|
Last login: Mon Apr 20 20:51:30 on ttys009
Poetry Last login: Mon Apr 20 20:51:30 on ttys009
Poetry could not find a pyproject.toml file in /Users/lukas or its parents
Poetry could not find a pyproject.toml file in /Users/lukas or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-start
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-04-21T09:09:26.267672Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store
checking permissions...
screen recording: ok
accessibility: ok
2026-04-21T09:09:26.330305Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-04-21T09:09:26.876072Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-04-21T09:09:26.877941Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-04-21T09:09:26.878456Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-04-21T09:09:26.911814Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-04-21T09:09:26.911854Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-04-21T09:09:26.912050Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-04-21T09:09:26.912073Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-04-21T09:09:26.912102Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-04-21T09:09:26.912144Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-04-21T09:09:26.912110Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-04-21T09:09:26.921311Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))
2026-04-21T09:09:26.927270Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-04-21T09:09:26.927460Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-04-21T09:09:26.928100Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-04-21T09:09:26.928278Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-04-21T09:09:26.928424Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-04-21T09:09:26.929174Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary
2026-04-21T09:09:26.929195Z INFO screenpipe_core::pipes: loaded 6 pipes from "/Users/lukas/.screenpipe/pipes"
_
__________________ ___ ____ ____ (_____ ___
/ ___/ ___/ ___/ _ \/ _ \/ __ \ / __ \/ / __ \/ _ \
(__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/
/____/\___/_/ \___/\___/_/ /_/ / .___/_/ .___/\___/
/_/ /_/
power AI by everything you've seen, said or heard
open source | runs locally | developer friendly
┌────────────────────────┬────────────────────────────────────┐
│ setting │ value │
├────────────────────────┼────────────────────────────────────┤
│ audio chunk duration │ 30 seconds │
│ port │ 3030 │
│ audio disabled │ true │
│ vision disabled │ false │
│ pause on DRM content │ false │
2026-04-21T09:09:26.929953Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)
│ audio engine │ Parakeet │
│ vad engine │ Silero │
│ data directory │ /Users/lukas/.screenpipe │
│ debug mode │ false │
│ telemetry │ true │
│ use pii removal │ true │
│ use all monitors │ true │
│ ignored windows │ ["Boosteroid"] │
│ included windows │ [] │
│ cloud sync │ disabled │
│ auto-destruct pid │ 0 │
│ deepgram key │ not set │
│ api auth │ enabled │
2026-04-21T09:09:26.933254Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh
│ encrypt secrets │ disabled │
│ retention days │ 14 │
├────────────────────────┼────────────────────────────────────┤
│ languages │ │
│ │ all languages │
├────────────────────────┼────────────────────────────────────┤
│ monitors │ │
│ │ id: 1 │
│ │ id: 2 │
├────────────────────────┼────────────────────────────────────┤
│ audio devices │ │
│ │ disabled │
└────────────────────────┴────────────────────────────────────┘
you are using local processing. all your data stays on your computer.
warning: telemetry is enabled. only error-level data will be sent.
to disable, use the --disable-telemetry flag.
check latest changes here: https://github.com/screenpipe/screenpipe/releases
2026-04-21T09:09:26.944288Z INFO screenpipe: starting UI event capture
2026-04-21T09:09:26.957412Z INFO screenpipe_engine::ui_recorder: Starting UI event capture
2026-04-21T09:09:26.970637Z INFO screenpipe_engine::ui_recorder: UI recording session started: a22e844d-73cb-42be-b71f-3243cecbaf5c
2026-04-21T09:09:26.970744Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)
2026-04-21T09:09:26.970792Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-20 06:09:26.970791 UTC to 2026-04-21 06:09:26.970791 UTC)
2026-04-21T09:09:26.971462Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)
2026-04-21T09:09:26.978353Z INFO screenpipe_engine::server: Server listening on [IP_ADDRESS]:3030
2026-04-21T09:09:26.982750Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030
2026-04-21T09:09:26.999552Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)
2026-04-21T09:09:26.999658Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)
2026-04-21T09:09:26.999699Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)
2026-04-21T09:09:27.033668Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-04-21T09:09:27.033695Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-04-21T09:09:27.033706Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)
2026-04-21T09:09:27.033708Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-04-21T09:09:27.033714Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)
2026-04-21T09:09:27.685135Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)
2026-04-21T09:09:27.761411Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)
2026-04-21T09:09:27.797356Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=60600, dur=57ms
2026-04-21T09:09:27.906796Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=60601, dur=95ms
2026-04-21T09:09:31.724879Z WARN sqlx::query: summary="SELECT f.id, f.timestamp, f.offset_index, …" db.statement="\n\nSELECT\n f.id,\n f.timestamp,\n f.offset_index,\n COALESCE(\n SUBSTR(f.full_text, 1, 200),\n SUBSTR(f.accessibility_text, 1, 200),\n (\n SELECT\n SUBSTR(ot.text, 1, 200)\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as text,\n COALESCE(\n f.app_name,\n (\n SELECT\n ot.app_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as app_name,\n COALESCE(\n f.window_name,\n (\n SELECT\n ot.window_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as window_name,\n COALESCE(vc.device_name, f.device_name) as screen_device,\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\n COALESCE(vc.fps, 0.033) as chunk_fps,\n f.browser_url,\n f.machine_id\nFROM\n frames f\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\nWHERE\n f.timestamp >= ?1\n AND f.timestamp <= ?2\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\nORDER BY\n f.timestamp DESC,\n f.offset_index DESC\nLIMIT\n 10000\n" rows_affected=0 rows_returned=9080 elapsed=4.753475958s
2026-04-21T09:09:31.744802Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 9080 frame entries, coverage from 2026-04-20 06:09:26.970791 UTC
2026-04-21T09:09:33.176060Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8494955593014645957, trigger=visual_change)
2026-04-21T09:09:33.259133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8494955593014645957, trigger=click)
2026-04-21T09:09:39.972766Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2700142422186852288, trigger=click)
2026-04-21T09:09:45.290493Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2196825192572756169, trigger=visual_change)
2026-04-21T09:09:48.296536Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2196825192572756169, trigger=visual_change)
2026-04-21T09:09:57.405382Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6029799176853791417, trigger=visual_change)
2026-04-21T09:10:30.793177Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=68 elapsed=3.880348084s
2026-04-21T09:10:30.793343Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 68 eligible frames
2026-04-21T09:10:32.782345Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 33 frames, 9.0MB → 1.4MB (6.2x), 33 JPEGs deleted
2026-04-21T09:10:34.729084Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 33 frames, 3.8MB → 0.7MB (5.3x), 33 JPEGs deleted
2026-04-21T09:14:41.491289Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5618287936463319477, trigger=visual_change)
2026-04-21T09:14:42.023992Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5618287936463319477, trigger=visual_change)
2026-04-21T09:14:44.991818Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5618287936463319477, trigger=visual_change)
2026-04-21T09:14:51.083977Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5618287936463319477, trigger=visual_change)
2026-04-21T09:14:54.140981Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5618287936463319477, trigger=visual_change)
2026-04-21T09:15:00.165923Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5618287936463319477, trigger=visual_change)
2026-04-21T09:15:35.927100Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=2 elapsed=1.199599292s
2026-04-21T09:15:35.927173Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
2026-04-21T09:17:09.049247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2040777845502947880, trigger=visual_change)
2026-04-21T09:17:21.165695Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6207854274181758758, trigger=visual_change)
2026-04-21T09:18:37.508537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1104388310719845288, trigger=visual_change)
2026-04-21T09:18:54.604696Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1104388310719845288, trigger=click)
2026-04-21T09:19:11.380975Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1104388310719845288, trigger=visual_change)
DOCKER
Close Tab
-zsh
Close Tab
-zsh
Close Tab
✳ Build full day activity summary from Screenpipe (node)
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
APP (-zsh)
Close Tab
⌥⌘1
screenpipe"...
|
NULL
|
|
60837
|
1311
|
51
|
2026-04-21T06:20:25.540218+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-21/1776 /Users/lukas/.screenpipe/data/data/2026-04-21/1776752425540_m2.jpg...
|
iTerm2
|
screenpipe"
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Last login: Mon Apr 20 20:51:30 on ttys009
Poetry Last login: Mon Apr 20 20:51:30 on ttys009
Poetry could not find a pyproject.toml file in /Users/lukas or its parents
Poetry could not find a pyproject.toml file in /Users/lukas or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-start
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-04-21T09:09:26.267672Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store
checking permissions...
screen recording: ok
accessibility: ok
2026-04-21T09:09:26.330305Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-04-21T09:09:26.876072Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-04-21T09:09:26.877941Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-04-21T09:09:26.878456Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-04-21T09:09:26.911814Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-04-21T09:09:26.911854Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-04-21T09:09:26.912050Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-04-21T09:09:26.912073Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-04-21T09:09:26.912102Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-04-21T09:09:26.912144Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-04-21T09:09:26.912110Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-04-21T09:09:26.921311Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))
2026-04-21T09:09:26.927270Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-04-21T09:09:26.927460Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-04-21T09:09:26.928100Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-04-21T09:09:26.928278Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-04-21T09:09:26.928424Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-04-21T09:09:26.929174Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary
2026-04-21T09:09:26.929195Z INFO screenpipe_core::pipes: loaded 6 pipes from "/Users/lukas/.screenpipe/pipes"
_
__________________ ___ ____ ____ (_____ ___
/ ___/ ___/ ___/ _ \/ _ \/ __ \ / __ \/ / __ \/ _ \
(__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/
/____/\___/_/ \___/\___/_/ /_/ / .___/_/ .___/\___/
/_/ /_/
power AI by everything you've seen, said or heard
open source | runs locally | developer friendly
┌────────────────────────┬────────────────────────────────────┐
│ setting │ value │
├────────────────────────┼────────────────────────────────────┤
│ audio chunk duration │ 30 seconds │
│ port │ 3030 │
│ audio disabled │ true │
│ vision disabled │ false │
│ pause on DRM content │ false │
2026-04-21T09:09:26.929953Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)
│ audio engine │ Parakeet │
│ vad engine │ Silero │
│ data directory │ /Users/lukas/.screenpipe │
│ debug mode │ false │
│ telemetry │ true │
│ use pii removal │ true │
│ use all monitors │ true │
│ ignored windows │ ["Boosteroid"] │
│ included windows │ [] │
│ cloud sync │ disabled │
│ auto-destruct pid │ 0 │
│ deepgram key │ not set │
│ api auth │ enabled │
2026-04-21T09:09:26.933254Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh
│ encrypt secrets │ disabled │
│ retention days │ 14 │
├────────────────────────┼────────────────────────────────────┤
│ languages │ │
│ │ all languages │
├────────────────────────┼────────────────────────────────────┤
│ monitors │ │
│ │ id: 1 │
│ │ id: 2 │
├────────────────────────┼────────────────────────────────────┤
│ audio devices │ │
│ │ disabled │
└────────────────────────┴────────────────────────────────────┘
you are using local processing. all your data stays on your computer.
warning: telemetry is enabled. only error-level data will be sent.
to disable, use the --disable-telemetry flag.
check latest changes here: https://github.com/screenpipe/screenpipe/releases
2026-04-21T09:09:26.944288Z INFO screenpipe: starting UI event capture
2026-04-21T09:09:26.957412Z INFO screenpipe_engine::ui_recorder: Starting UI event capture
2026-04-21T09:09:26.970637Z INFO screenpipe_engine::ui_recorder: UI recording session started: a22e844d-73cb-42be-b71f-3243cecbaf5c
2026-04-21T09:09:26.970744Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)
2026-04-21T09:09:26.970792Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-20 06:09:26.970791 UTC to 2026-04-21 06:09:26.970791 UTC)
2026-04-21T09:09:26.971462Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)
2026-04-21T09:09:26.978353Z INFO screenpipe_engine::server: Server listening on [IP_ADDRESS]:3030
2026-04-21T09:09:26.982750Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030
2026-04-21T09:09:26.999552Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)
2026-04-21T09:09:26.999658Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)
2026-04-21T09:09:26.999699Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)
2026-04-21T09:09:27.033668Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-04-21T09:09:27.033695Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-04-21T09:09:27.033706Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)
2026-04-21T09:09:27.033708Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-04-21T09:09:27.033714Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)
2026-04-21T09:09:27.685135Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)
2026-04-21T09:09:27.761411Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)
2026-04-21T09:09:27.797356Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=60600, dur=57ms
2026-04-21T09:09:27.906796Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=60601, dur=95ms
2026-04-21T09:09:31.724879Z WARN sqlx::query: summary="SELECT f.id, f.timestamp, f.offset_index, …" db.statement="\n\nSELECT\n f.id,\n f.timestamp,\n f.offset_index,\n COALESCE(\n SUBSTR(f.full_text, 1, 200),\n SUBSTR(f.accessibility_text, 1, 200),\n (\n SELECT\n SUBSTR(ot.text, 1, 200)\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as text,\n COALESCE(\n f.app_name,\n (\n SELECT\n ot.app_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as app_name,\n COALESCE(\n f.window_name,\n (\n SELECT\n ot.window_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as window_name,\n COALESCE(vc.device_name, f.device_name) as screen_device,\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\n COALESCE(vc.fps, 0.033) as chunk_fps,\n f.browser_url,\n f.machine_id\nFROM\n frames f\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\nWHERE\n f.timestamp >= ?1\n AND f.timestamp <= ?2\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\nORDER BY\n f.timestamp DESC,\n f.offset_index DESC\nLIMIT\n 10000\n" rows_affected=0 rows_returned=9080 elapsed=4.753475958s
2026-04-21T09:09:31.744802Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 9080 frame entries, coverage from 2026-04-20 06:09:26.970791 UTC
2026-04-21T09:09:33.176060Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8494955593014645957, trigger=visual_change)
2026-04-21T09:09:33.259133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8494955593014645957, trigger=click)
2026-04-21T09:09:39.972766Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2700142422186852288, trigger=click)
2026-04-21T09:09:45.290493Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2196825192572756169, trigger=visual_change)
2026-04-21T09:09:48.296536Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2196825192572756169, trigger=visual_change)
2026-04-21T09:09:57.405382Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6029799176853791417, trigger=visual_change)
2026-04-21T09:10:30.793177Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=68 elapsed=3.880348084s
2026-04-21T09:10:30.793343Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 68 eligible frames
2026-04-21T09:10:32.782345Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 33 frames, 9.0MB → 1.4MB (6.2x), 33 JPEGs deleted
2026-04-21T09:10:34.729084Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 33 frames, 3.8MB → 0.7MB (5.3x), 33 JPEGs deleted
2026-04-21T09:14:41.491289Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5618287936463319477, trigger=visual_change)
2026-04-21T09:14:42.023992Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5618287936463319477, trigger=visual_change)
2026-04-21T09:14:44.991818Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5618287936463319477, trigger=visual_change)
2026-04-21T09:14:51.083977Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5618287936463319477, trigger=visual_change)
2026-04-21T09:14:54.140981Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5618287936463319477, trigger=visual_change)
2026-04-21T09:15:00.165923Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5618287936463319477, trigger=visual_change)
2026-04-21T09:15:35.927100Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=2 elapsed=1.199599292s
2026-04-21T09:15:35.927173Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
2026-04-21T09:17:09.049247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2040777845502947880, trigger=visual_change)
2026-04-21T09:17:21.165695Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6207854274181758758, trigger=visual_change)
2026-04-21T09:18:37.508537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1104388310719845288, trigger=visual_change)
2026-04-21T09:18:54.604696Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1104388310719845288, trigger=click)
2026-04-21T09:19:11.380975Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1104388310719845288, trigger=visual_change)
DOCKER
Close Tab
-zsh
Close Tab
-zsh
Close Tab
✳ Build full day activity summary from Screenpipe (node)
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
APP (-zsh)
Close Tab
⌥⌘1
screenpipe"...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"Last login: Mon Apr 20 20:51:30 on ttys009\n\nPoetry could not find a pyproject.toml file in /Users/lukas or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-start\ndetected hardware tier: Mid\nwarning: parakeet is not supported on this platform, using whisper-tiny instead\n2026-04-21T09:09:26.267672Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store\nchecking permissions...\n screen recording: ok\n accessibility: ok\n2026-04-21T09:09:26.330305Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6\n2026-04-21T09:09:26.876072Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor\n2026-04-21T09:09:26.877941Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)\n2026-04-21T09:09:26.878456Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)\n2026-04-21T09:09:26.911814Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true\n2026-04-21T09:09:26.911854Z INFO screenpipe: meeting detector enabled — independent of transcription mode\n2026-04-21T09:09:26.912050Z INFO screenpipe: API server listening on 127.0.0.1:3030 (localhost only)\n2026-04-21T09:09:26.912073Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key\n2026-04-21T09:09:26.912102Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)\n2026-04-21T09:09:26.912144Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager\n2026-04-21T09:09:26.912110Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)\n2026-04-21T09:09:26.921311Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-21T09:09:26.927270Z INFO screenpipe_core::pipes: loaded pipe: day-recap\n2026-04-21T09:09:26.927460Z INFO screenpipe_core::pipes: loaded pipe: standup-update\n2026-04-21T09:09:26.928100Z INFO screenpipe_core::pipes: loaded pipe: ai-habits\n2026-04-21T09:09:26.928278Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown\n2026-04-21T09:09:26.928424Z INFO screenpipe_core::pipes: loaded pipe: video-export\n2026-04-21T09:09:26.929174Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary\n2026-04-21T09:09:26.929195Z INFO screenpipe_core::pipes: loaded 6 pipes from \"/Users/lukas/.screenpipe/pipes\"\n\n\n\n _ \n __________________ ___ ____ ____ (_____ ___ \n / ___/ ___/ ___/ _ \\/ _ \\/ __ \\ / __ \\/ / __ \\/ _ \\\n (__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/\n/____/\\___/_/ \\___/\\___/_/ /_/ / .___/_/ .___/\\___/ \n /_/ /_/ \n\n\n\npower AI by everything you've seen, said or heard\nopen source | runs locally | developer friendly\n\n\n┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ true │\n│ vision disabled │ false │\n│ pause on DRM content │ false │\n2026-04-21T09:09:26.929953Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n│ ignored windows │ [\"Boosteroid\"] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n│ api auth │ enabled │\n2026-04-21T09:09:26.933254Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n│ encrypt secrets │ disabled │\n│ retention days │ 14 │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ id: 1 │\n│ │ id: 2 │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ disabled │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-21T09:09:26.944288Z INFO screenpipe: starting UI event capture\n2026-04-21T09:09:26.957412Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-21T09:09:26.970637Z INFO screenpipe_engine::ui_recorder: UI recording session started: a22e844d-73cb-42be-b71f-3243cecbaf5c\n2026-04-21T09:09:26.970744Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-21T09:09:26.970792Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-20 06:09:26.970791 UTC to 2026-04-21 06:09:26.970791 UTC)\n2026-04-21T09:09:26.971462Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-21T09:09:26.978353Z INFO screenpipe_engine::server: Server listening on 127.0.0.1:3030\n2026-04-21T09:09:26.982750Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-21T09:09:26.999552Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-21T09:09:26.999658Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-21T09:09:26.999699Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-21T09:09:27.033668Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-21T09:09:27.033695Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-21T09:09:27.033706Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)\n2026-04-21T09:09:27.033708Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-21T09:09:27.033714Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)\n2026-04-21T09:09:27.685135Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)\n2026-04-21T09:09:27.761411Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)\n2026-04-21T09:09:27.797356Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=60600, dur=57ms\n2026-04-21T09:09:27.906796Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=60601, dur=95ms\n2026-04-21T09:09:31.724879Z WARN sqlx::query: summary=\"SELECT f.id, f.timestamp, f.offset_index, …\" db.statement=\"\\n\\nSELECT\\n f.id,\\n f.timestamp,\\n f.offset_index,\\n COALESCE(\\n SUBSTR(f.full_text, 1, 200),\\n SUBSTR(f.accessibility_text, 1, 200),\\n (\\n SELECT\\n SUBSTR(ot.text, 1, 200)\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as text,\\n COALESCE(\\n f.app_name,\\n (\\n SELECT\\n ot.app_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as app_name,\\n COALESCE(\\n f.window_name,\\n (\\n SELECT\\n ot.window_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as window_name,\\n COALESCE(vc.device_name, f.device_name) as screen_device,\\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\\n COALESCE(vc.fps, 0.033) as chunk_fps,\\n f.browser_url,\\n f.machine_id\\nFROM\\n frames f\\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\\nWHERE\\n f.timestamp >= ?1\\n AND f.timestamp <= ?2\\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\\nORDER BY\\n f.timestamp DESC,\\n f.offset_index DESC\\nLIMIT\\n 10000\\n\" rows_affected=0 rows_returned=9080 elapsed=4.753475958s\n2026-04-21T09:09:31.744802Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 9080 frame entries, coverage from 2026-04-20 06:09:26.970791 UTC\n2026-04-21T09:09:33.176060Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8494955593014645957, trigger=visual_change)\n2026-04-21T09:09:33.259133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8494955593014645957, trigger=click)\n2026-04-21T09:09:39.972766Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2700142422186852288, trigger=click)\n2026-04-21T09:09:45.290493Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2196825192572756169, trigger=visual_change)\n2026-04-21T09:09:48.296536Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2196825192572756169, trigger=visual_change)\n2026-04-21T09:09:57.405382Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6029799176853791417, trigger=visual_change)\n2026-04-21T09:10:30.793177Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=68 elapsed=3.880348084s\n2026-04-21T09:10:30.793343Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 68 eligible frames\n2026-04-21T09:10:32.782345Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 33 frames, 9.0MB → 1.4MB (6.2x), 33 JPEGs deleted\n2026-04-21T09:10:34.729084Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 33 frames, 3.8MB → 0.7MB (5.3x), 33 JPEGs deleted\n2026-04-21T09:14:41.491289Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5618287936463319477, trigger=visual_change)\n2026-04-21T09:14:42.023992Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5618287936463319477, trigger=visual_change)\n2026-04-21T09:14:44.991818Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5618287936463319477, trigger=visual_change)\n2026-04-21T09:14:51.083977Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5618287936463319477, trigger=visual_change)\n2026-04-21T09:14:54.140981Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5618287936463319477, trigger=visual_change)\n2026-04-21T09:15:00.165923Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5618287936463319477, trigger=visual_change)\n2026-04-21T09:15:35.927100Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=2 elapsed=1.199599292s\n2026-04-21T09:15:35.927173Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-21T09:17:09.049247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2040777845502947880, trigger=visual_change)\n2026-04-21T09:17:21.165695Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6207854274181758758, trigger=visual_change)\n2026-04-21T09:18:37.508537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1104388310719845288, trigger=visual_change)\n2026-04-21T09:18:54.604696Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1104388310719845288, trigger=click)\n2026-04-21T09:19:11.380975Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1104388310719845288, trigger=visual_change)","depth":4,"value":"Last login: Mon Apr 20 20:51:30 on ttys009\n\nPoetry could not find a pyproject.toml file in /Users/lukas or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-start\ndetected hardware tier: Mid\nwarning: parakeet is not supported on this platform, using whisper-tiny instead\n2026-04-21T09:09:26.267672Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store\nchecking permissions...\n screen recording: ok\n accessibility: ok\n2026-04-21T09:09:26.330305Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6\n2026-04-21T09:09:26.876072Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor\n2026-04-21T09:09:26.877941Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)\n2026-04-21T09:09:26.878456Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)\n2026-04-21T09:09:26.911814Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true\n2026-04-21T09:09:26.911854Z INFO screenpipe: meeting detector enabled — independent of transcription mode\n2026-04-21T09:09:26.912050Z INFO screenpipe: API server listening on 127.0.0.1:3030 (localhost only)\n2026-04-21T09:09:26.912073Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key\n2026-04-21T09:09:26.912102Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)\n2026-04-21T09:09:26.912144Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager\n2026-04-21T09:09:26.912110Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)\n2026-04-21T09:09:26.921311Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-21T09:09:26.927270Z INFO screenpipe_core::pipes: loaded pipe: day-recap\n2026-04-21T09:09:26.927460Z INFO screenpipe_core::pipes: loaded pipe: standup-update\n2026-04-21T09:09:26.928100Z INFO screenpipe_core::pipes: loaded pipe: ai-habits\n2026-04-21T09:09:26.928278Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown\n2026-04-21T09:09:26.928424Z INFO screenpipe_core::pipes: loaded pipe: video-export\n2026-04-21T09:09:26.929174Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary\n2026-04-21T09:09:26.929195Z INFO screenpipe_core::pipes: loaded 6 pipes from \"/Users/lukas/.screenpipe/pipes\"\n\n\n\n _ \n __________________ ___ ____ ____ (_____ ___ \n / ___/ ___/ ___/ _ \\/ _ \\/ __ \\ / __ \\/ / __ \\/ _ \\\n (__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/\n/____/\\___/_/ \\___/\\___/_/ /_/ / .___/_/ .___/\\___/ \n /_/ /_/ \n\n\n\npower AI by everything you've seen, said or heard\nopen source | runs locally | developer friendly\n\n\n┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ true │\n│ vision disabled │ false │\n│ pause on DRM content │ false │\n2026-04-21T09:09:26.929953Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n│ ignored windows │ [\"Boosteroid\"] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n│ api auth │ enabled │\n2026-04-21T09:09:26.933254Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n│ encrypt secrets │ disabled │\n│ retention days │ 14 │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ id: 1 │\n│ │ id: 2 │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ disabled │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-21T09:09:26.944288Z INFO screenpipe: starting UI event capture\n2026-04-21T09:09:26.957412Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-21T09:09:26.970637Z INFO screenpipe_engine::ui_recorder: UI recording session started: a22e844d-73cb-42be-b71f-3243cecbaf5c\n2026-04-21T09:09:26.970744Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-21T09:09:26.970792Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-20 06:09:26.970791 UTC to 2026-04-21 06:09:26.970791 UTC)\n2026-04-21T09:09:26.971462Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-21T09:09:26.978353Z INFO screenpipe_engine::server: Server listening on 127.0.0.1:3030\n2026-04-21T09:09:26.982750Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-21T09:09:26.999552Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-21T09:09:26.999658Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-21T09:09:26.999699Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-21T09:09:27.033668Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-21T09:09:27.033695Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-21T09:09:27.033706Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)\n2026-04-21T09:09:27.033708Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-21T09:09:27.033714Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)\n2026-04-21T09:09:27.685135Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)\n2026-04-21T09:09:27.761411Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)\n2026-04-21T09:09:27.797356Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=60600, dur=57ms\n2026-04-21T09:09:27.906796Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=60601, dur=95ms\n2026-04-21T09:09:31.724879Z WARN sqlx::query: summary=\"SELECT f.id, f.timestamp, f.offset_index, …\" db.statement=\"\\n\\nSELECT\\n f.id,\\n f.timestamp,\\n f.offset_index,\\n COALESCE(\\n SUBSTR(f.full_text, 1, 200),\\n SUBSTR(f.accessibility_text, 1, 200),\\n (\\n SELECT\\n SUBSTR(ot.text, 1, 200)\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as text,\\n COALESCE(\\n f.app_name,\\n (\\n SELECT\\n ot.app_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as app_name,\\n COALESCE(\\n f.window_name,\\n (\\n SELECT\\n ot.window_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as window_name,\\n COALESCE(vc.device_name, f.device_name) as screen_device,\\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\\n COALESCE(vc.fps, 0.033) as chunk_fps,\\n f.browser_url,\\n f.machine_id\\nFROM\\n frames f\\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\\nWHERE\\n f.timestamp >= ?1\\n AND f.timestamp <= ?2\\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\\nORDER BY\\n f.timestamp DESC,\\n f.offset_index DESC\\nLIMIT\\n 10000\\n\" rows_affected=0 rows_returned=9080 elapsed=4.753475958s\n2026-04-21T09:09:31.744802Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 9080 frame entries, coverage from 2026-04-20 06:09:26.970791 UTC\n2026-04-21T09:09:33.176060Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8494955593014645957, trigger=visual_change)\n2026-04-21T09:09:33.259133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8494955593014645957, trigger=click)\n2026-04-21T09:09:39.972766Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2700142422186852288, trigger=click)\n2026-04-21T09:09:45.290493Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2196825192572756169, trigger=visual_change)\n2026-04-21T09:09:48.296536Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2196825192572756169, trigger=visual_change)\n2026-04-21T09:09:57.405382Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6029799176853791417, trigger=visual_change)\n2026-04-21T09:10:30.793177Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=68 elapsed=3.880348084s\n2026-04-21T09:10:30.793343Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 68 eligible frames\n2026-04-21T09:10:32.782345Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 33 frames, 9.0MB → 1.4MB (6.2x), 33 JPEGs deleted\n2026-04-21T09:10:34.729084Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 33 frames, 3.8MB → 0.7MB (5.3x), 33 JPEGs deleted\n2026-04-21T09:14:41.491289Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5618287936463319477, trigger=visual_change)\n2026-04-21T09:14:42.023992Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5618287936463319477, trigger=visual_change)\n2026-04-21T09:14:44.991818Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5618287936463319477, trigger=visual_change)\n2026-04-21T09:14:51.083977Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5618287936463319477, trigger=visual_change)\n2026-04-21T09:14:54.140981Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5618287936463319477, trigger=visual_change)\n2026-04-21T09:15:00.165923Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5618287936463319477, trigger=visual_change)\n2026-04-21T09:15:35.927100Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=2 elapsed=1.199599292s\n2026-04-21T09:15:35.927173Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-21T09:17:09.049247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2040777845502947880, trigger=visual_change)\n2026-04-21T09:17:21.165695Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6207854274181758758, trigger=visual_change)\n2026-04-21T09:18:37.508537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1104388310719845288, trigger=visual_change)\n2026-04-21T09:18:54.604696Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1104388310719845288, trigger=click)\n2026-04-21T09:19:11.380975Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1104388310719845288, trigger=visual_change)","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.0674867,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.33776596,"top":1.0,"width":0.0674867,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.33976063,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.40525267,"top":1.0,"width":0.0674867,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.40724733,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"✳ Build full day activity summary from Screenpipe (node)","depth":2,"bounds":{"left":0.47273937,"top":1.0,"width":0.0674867,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.47473404,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.54022604,"top":1.0,"width":0.0674867,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5422208,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.60771275,"top":1.0,"width":0.06732048,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6097075,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.6750333,"top":1.0,"width":0.06732048,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.67702794,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7287234,"top":1.0,"width":0.01861702,"height":-0.023144484},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"screenpipe\"","depth":1,"bounds":{"left":0.49634308,"top":1.0,"width":0.027925532,"height":-0.02394259},"role_description":"text"}]...
|
8871613370884906715
|
7256900187427288433
|
click
|
accessibility
|
NULL
|
Last login: Mon Apr 20 20:51:30 on ttys009
Poetry Last login: Mon Apr 20 20:51:30 on ttys009
Poetry could not find a pyproject.toml file in /Users/lukas or its parents
Poetry could not find a pyproject.toml file in /Users/lukas or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-start
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-04-21T09:09:26.267672Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store
checking permissions...
screen recording: ok
accessibility: ok
2026-04-21T09:09:26.330305Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-04-21T09:09:26.876072Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-04-21T09:09:26.877941Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-04-21T09:09:26.878456Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-04-21T09:09:26.911814Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-04-21T09:09:26.911854Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-04-21T09:09:26.912050Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-04-21T09:09:26.912073Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-04-21T09:09:26.912102Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-04-21T09:09:26.912144Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-04-21T09:09:26.912110Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-04-21T09:09:26.921311Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))
2026-04-21T09:09:26.927270Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-04-21T09:09:26.927460Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-04-21T09:09:26.928100Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-04-21T09:09:26.928278Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-04-21T09:09:26.928424Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-04-21T09:09:26.929174Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary
2026-04-21T09:09:26.929195Z INFO screenpipe_core::pipes: loaded 6 pipes from "/Users/lukas/.screenpipe/pipes"
_
__________________ ___ ____ ____ (_____ ___
/ ___/ ___/ ___/ _ \/ _ \/ __ \ / __ \/ / __ \/ _ \
(__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/
/____/\___/_/ \___/\___/_/ /_/ / .___/_/ .___/\___/
/_/ /_/
power AI by everything you've seen, said or heard
open source | runs locally | developer friendly
┌────────────────────────┬────────────────────────────────────┐
│ setting │ value │
├────────────────────────┼────────────────────────────────────┤
│ audio chunk duration │ 30 seconds │
│ port │ 3030 │
│ audio disabled │ true │
│ vision disabled │ false │
│ pause on DRM content │ false │
2026-04-21T09:09:26.929953Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)
│ audio engine │ Parakeet │
│ vad engine │ Silero │
│ data directory │ /Users/lukas/.screenpipe │
│ debug mode │ false │
│ telemetry │ true │
│ use pii removal │ true │
│ use all monitors │ true │
│ ignored windows │ ["Boosteroid"] │
│ included windows │ [] │
│ cloud sync │ disabled │
│ auto-destruct pid │ 0 │
│ deepgram key │ not set │
│ api auth │ enabled │
2026-04-21T09:09:26.933254Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh
│ encrypt secrets │ disabled │
│ retention days │ 14 │
├────────────────────────┼────────────────────────────────────┤
│ languages │ │
│ │ all languages │
├────────────────────────┼────────────────────────────────────┤
│ monitors │ │
│ │ id: 1 │
│ │ id: 2 │
├────────────────────────┼────────────────────────────────────┤
│ audio devices │ │
│ │ disabled │
└────────────────────────┴────────────────────────────────────┘
you are using local processing. all your data stays on your computer.
warning: telemetry is enabled. only error-level data will be sent.
to disable, use the --disable-telemetry flag.
check latest changes here: https://github.com/screenpipe/screenpipe/releases
2026-04-21T09:09:26.944288Z INFO screenpipe: starting UI event capture
2026-04-21T09:09:26.957412Z INFO screenpipe_engine::ui_recorder: Starting UI event capture
2026-04-21T09:09:26.970637Z INFO screenpipe_engine::ui_recorder: UI recording session started: a22e844d-73cb-42be-b71f-3243cecbaf5c
2026-04-21T09:09:26.970744Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)
2026-04-21T09:09:26.970792Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-20 06:09:26.970791 UTC to 2026-04-21 06:09:26.970791 UTC)
2026-04-21T09:09:26.971462Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)
2026-04-21T09:09:26.978353Z INFO screenpipe_engine::server: Server listening on [IP_ADDRESS]:3030
2026-04-21T09:09:26.982750Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030
2026-04-21T09:09:26.999552Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)
2026-04-21T09:09:26.999658Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)
2026-04-21T09:09:26.999699Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)
2026-04-21T09:09:27.033668Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-04-21T09:09:27.033695Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-04-21T09:09:27.033706Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)
2026-04-21T09:09:27.033708Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-04-21T09:09:27.033714Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)
2026-04-21T09:09:27.685135Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)
2026-04-21T09:09:27.761411Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)
2026-04-21T09:09:27.797356Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=60600, dur=57ms
2026-04-21T09:09:27.906796Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=60601, dur=95ms
2026-04-21T09:09:31.724879Z WARN sqlx::query: summary="SELECT f.id, f.timestamp, f.offset_index, …" db.statement="\n\nSELECT\n f.id,\n f.timestamp,\n f.offset_index,\n COALESCE(\n SUBSTR(f.full_text, 1, 200),\n SUBSTR(f.accessibility_text, 1, 200),\n (\n SELECT\n SUBSTR(ot.text, 1, 200)\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as text,\n COALESCE(\n f.app_name,\n (\n SELECT\n ot.app_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as app_name,\n COALESCE(\n f.window_name,\n (\n SELECT\n ot.window_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as window_name,\n COALESCE(vc.device_name, f.device_name) as screen_device,\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\n COALESCE(vc.fps, 0.033) as chunk_fps,\n f.browser_url,\n f.machine_id\nFROM\n frames f\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\nWHERE\n f.timestamp >= ?1\n AND f.timestamp <= ?2\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\nORDER BY\n f.timestamp DESC,\n f.offset_index DESC\nLIMIT\n 10000\n" rows_affected=0 rows_returned=9080 elapsed=4.753475958s
2026-04-21T09:09:31.744802Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 9080 frame entries, coverage from 2026-04-20 06:09:26.970791 UTC
2026-04-21T09:09:33.176060Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8494955593014645957, trigger=visual_change)
2026-04-21T09:09:33.259133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8494955593014645957, trigger=click)
2026-04-21T09:09:39.972766Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2700142422186852288, trigger=click)
2026-04-21T09:09:45.290493Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2196825192572756169, trigger=visual_change)
2026-04-21T09:09:48.296536Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2196825192572756169, trigger=visual_change)
2026-04-21T09:09:57.405382Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6029799176853791417, trigger=visual_change)
2026-04-21T09:10:30.793177Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=68 elapsed=3.880348084s
2026-04-21T09:10:30.793343Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 68 eligible frames
2026-04-21T09:10:32.782345Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 33 frames, 9.0MB → 1.4MB (6.2x), 33 JPEGs deleted
2026-04-21T09:10:34.729084Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 33 frames, 3.8MB → 0.7MB (5.3x), 33 JPEGs deleted
2026-04-21T09:14:41.491289Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5618287936463319477, trigger=visual_change)
2026-04-21T09:14:42.023992Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5618287936463319477, trigger=visual_change)
2026-04-21T09:14:44.991818Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5618287936463319477, trigger=visual_change)
2026-04-21T09:14:51.083977Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5618287936463319477, trigger=visual_change)
2026-04-21T09:14:54.140981Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5618287936463319477, trigger=visual_change)
2026-04-21T09:15:00.165923Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5618287936463319477, trigger=visual_change)
2026-04-21T09:15:35.927100Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=2 elapsed=1.199599292s
2026-04-21T09:15:35.927173Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
2026-04-21T09:17:09.049247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2040777845502947880, trigger=visual_change)
2026-04-21T09:17:21.165695Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6207854274181758758, trigger=visual_change)
2026-04-21T09:18:37.508537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1104388310719845288, trigger=visual_change)
2026-04-21T09:18:54.604696Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1104388310719845288, trigger=click)
2026-04-21T09:19:11.380975Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1104388310719845288, trigger=visual_change)
DOCKER
Close Tab
-zsh
Close Tab
-zsh
Close Tab
✳ Build full day activity summary from Screenpipe (node)
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
APP (-zsh)
Close Tab
⌥⌘1
screenpipe"...
|
60835
|
|
60836
|
1310
|
48
|
2026-04-21T06:20:25.441550+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-21/1776 /Users/lukas/.screenpipe/data/data/2026-04-21/1776752425441_m1.jpg...
|
iTerm2
|
screenpipe"
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Last login: Mon Apr 20 20:51:30 on ttys009
Poetry Last login: Mon Apr 20 20:51:30 on ttys009
Poetry could not find a pyproject.toml file in /Users/lukas or its parents
Poetry could not find a pyproject.toml file in /Users/lukas or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-start
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-04-21T09:09:26.267672Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store
checking permissions...
screen recording: ok
accessibility: ok
2026-04-21T09:09:26.330305Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-04-21T09:09:26.876072Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-04-21T09:09:26.877941Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-04-21T09:09:26.878456Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-04-21T09:09:26.911814Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-04-21T09:09:26.911854Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-04-21T09:09:26.912050Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-04-21T09:09:26.912073Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-04-21T09:09:26.912102Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-04-21T09:09:26.912144Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-04-21T09:09:26.912110Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-04-21T09:09:26.921311Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))
2026-04-21T09:09:26.927270Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-04-21T09:09:26.927460Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-04-21T09:09:26.928100Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-04-21T09:09:26.928278Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-04-21T09:09:26.928424Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-04-21T09:09:26.929174Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary
2026-04-21T09:09:26.929195Z INFO screenpipe_core::pipes: loaded 6 pipes from "/Users/lukas/.screenpipe/pipes"
_
__________________ ___ ____ ____ (_____ ___
/ ___/ ___/ ___/ _ \/ _ \/ __ \ / __ \/ / __ \/ _ \
(__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/
/____/\___/_/ \___/\___/_/ /_/ / .___/_/ .___/\___/
/_/ /_/
power AI by everything you've seen, said or heard
open source | runs locally | developer friendly
┌────────────────────────┬────────────────────────────────────┐
│ setting │ value │
├────────────────────────┼────────────────────────────────────┤
│ audio chunk duration │ 30 seconds │
│ port │ 3030 │
│ audio disabled │ true │
│ vision disabled │ false │
│ pause on DRM content │ false │
2026-04-21T09:09:26.929953Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)
│ audio engine │ Parakeet │
│ vad engine │ Silero │
│ data directory │ /Users/lukas/.screenpipe │
│ debug mode │ false │
│ telemetry │ true │
│ use pii removal │ true │
│ use all monitors │ true │
│ ignored windows │ ["Boosteroid"] │
│ included windows │ [] │
│ cloud sync │ disabled │
│ auto-destruct pid │ 0 │
│ deepgram key │ not set │
│ api auth │ enabled │
2026-04-21T09:09:26.933254Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh
│ encrypt secrets │ disabled │
│ retention days │ 14 │
├────────────────────────┼────────────────────────────────────┤
│ languages │ │
│ │ all languages │
├────────────────────────┼────────────────────────────────────┤
│ monitors │ │
│ │ id: 1 │
│ │ id: 2 │
├────────────────────────┼────────────────────────────────────┤
│ audio devices │ │
│ │ disabled │
└────────────────────────┴────────────────────────────────────┘
you are using local processing. all your data stays on your computer.
warning: telemetry is enabled. only error-level data will be sent.
to disable, use the --disable-telemetry flag.
check latest changes here: https://github.com/screenpipe/screenpipe/releases
2026-04-21T09:09:26.944288Z INFO screenpipe: starting UI event capture
2026-04-21T09:09:26.957412Z INFO screenpipe_engine::ui_recorder: Starting UI event capture
2026-04-21T09:09:26.970637Z INFO screenpipe_engine::ui_recorder: UI recording session started: a22e844d-73cb-42be-b71f-3243cecbaf5c
2026-04-21T09:09:26.970744Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)
2026-04-21T09:09:26.970792Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-20 06:09:26.970791 UTC to 2026-04-21 06:09:26.970791 UTC)
2026-04-21T09:09:26.971462Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)
2026-04-21T09:09:26.978353Z INFO screenpipe_engine::server: Server listening on [IP_ADDRESS]:3030
2026-04-21T09:09:26.982750Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030
2026-04-21T09:09:26.999552Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)
2026-04-21T09:09:26.999658Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)
2026-04-21T09:09:26.999699Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)
2026-04-21T09:09:27.033668Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-04-21T09:09:27.033695Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-04-21T09:09:27.033706Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)
2026-04-21T09:09:27.033708Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-04-21T09:09:27.033714Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)
2026-04-21T09:09:27.685135Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)
2026-04-21T09:09:27.761411Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)
2026-04-21T09:09:27.797356Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=60600, dur=57ms
2026-04-21T09:09:27.906796Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=60601, dur=95ms
2026-04-21T09:09:31.724879Z WARN sqlx::query: summary="SELECT f.id, f.timestamp, f.offset_index, …" db.statement="\n\nSELECT\n f.id,\n f.timestamp,\n f.offset_index,\n COALESCE(\n SUBSTR(f.full_text, 1, 200),\n SUBSTR(f.accessibility_text, 1, 200),\n (\n SELECT\n SUBSTR(ot.text, 1, 200)\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as text,\n COALESCE(\n f.app_name,\n (\n SELECT\n ot.app_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as app_name,\n COALESCE(\n f.window_name,\n (\n SELECT\n ot.window_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as window_name,\n COALESCE(vc.device_name, f.device_name) as screen_device,\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\n COALESCE(vc.fps, 0.033) as chunk_fps,\n f.browser_url,\n f.machine_id\nFROM\n frames f\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\nWHERE\n f.timestamp >= ?1\n AND f.timestamp <= ?2\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\nORDER BY\n f.timestamp DESC,\n f.offset_index DESC\nLIMIT\n 10000\n" rows_affected=0 rows_returned=9080 elapsed=4.753475958s
2026-04-21T09:09:31.744802Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 9080 frame entries, coverage from 2026-04-20 06:09:26.970791 UTC
2026-04-21T09:09:33.176060Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8494955593014645957, trigger=visual_change)
2026-04-21T09:09:33.259133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8494955593014645957, trigger=click)
2026-04-21T09:09:39.972766Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2700142422186852288, trigger=click)
2026-04-21T09:09:45.290493Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2196825192572756169, trigger=visual_change)
2026-04-21T09:09:48.296536Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2196825192572756169, trigger=visual_change)
2026-04-21T09:09:57.405382Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6029799176853791417, trigger=visual_change)
2026-04-21T09:10:30.793177Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=68 elapsed=3.880348084s
2026-04-21T09:10:30.793343Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 68 eligible frames
2026-04-21T09:10:32.782345Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 33 frames, 9.0MB → 1.4MB (6.2x), 33 JPEGs deleted
2026-04-21T09:10:34.729084Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 33 frames, 3.8MB → 0.7MB (5.3x), 33 JPEGs deleted
2026-04-21T09:14:41.491289Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5618287936463319477, trigger=visual_change)
2026-04-21T09:14:42.023992Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5618287936463319477, trigger=visual_change)
2026-04-21T09:14:44.991818Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5618287936463319477, trigger=visual_change)
2026-04-21T09:14:51.083977Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5618287936463319477, trigger=visual_change)
2026-04-21T09:14:54.140981Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5618287936463319477, trigger=visual_change)
2026-04-21T09:15:00.165923Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5618287936463319477, trigger=visual_change)
2026-04-21T09:15:35.927100Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=2 elapsed=1.199599292s
2026-04-21T09:15:35.927173Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
2026-04-21T09:17:09.049247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2040777845502947880, trigger=visual_change)
2026-04-21T09:17:21.165695Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6207854274181758758, trigger=visual_change)
2026-04-21T09:18:37.508537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1104388310719845288, trigger=visual_change)
2026-04-21T09:18:54.604696Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1104388310719845288, trigger=click)
2026-04-21T09:19:11.380975Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1104388310719845288, trigger=visual_change)
DOCKER
Close Tab
-zsh
Close Tab
-zsh
Close Tab
✳ Build full day activity summary from Screenpipe (node)
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
APP (-zsh)
Close Tab
⌥⌘1
screenpipe"...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"Last login: Mon Apr 20 20:51:30 on ttys009\n\nPoetry could not find a pyproject.toml file in /Users/lukas or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-start\ndetected hardware tier: Mid\nwarning: parakeet is not supported on this platform, using whisper-tiny instead\n2026-04-21T09:09:26.267672Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store\nchecking permissions...\n screen recording: ok\n accessibility: ok\n2026-04-21T09:09:26.330305Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6\n2026-04-21T09:09:26.876072Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor\n2026-04-21T09:09:26.877941Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)\n2026-04-21T09:09:26.878456Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)\n2026-04-21T09:09:26.911814Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true\n2026-04-21T09:09:26.911854Z INFO screenpipe: meeting detector enabled — independent of transcription mode\n2026-04-21T09:09:26.912050Z INFO screenpipe: API server listening on 127.0.0.1:3030 (localhost only)\n2026-04-21T09:09:26.912073Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key\n2026-04-21T09:09:26.912102Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)\n2026-04-21T09:09:26.912144Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager\n2026-04-21T09:09:26.912110Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)\n2026-04-21T09:09:26.921311Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-21T09:09:26.927270Z INFO screenpipe_core::pipes: loaded pipe: day-recap\n2026-04-21T09:09:26.927460Z INFO screenpipe_core::pipes: loaded pipe: standup-update\n2026-04-21T09:09:26.928100Z INFO screenpipe_core::pipes: loaded pipe: ai-habits\n2026-04-21T09:09:26.928278Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown\n2026-04-21T09:09:26.928424Z INFO screenpipe_core::pipes: loaded pipe: video-export\n2026-04-21T09:09:26.929174Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary\n2026-04-21T09:09:26.929195Z INFO screenpipe_core::pipes: loaded 6 pipes from \"/Users/lukas/.screenpipe/pipes\"\n\n\n\n _ \n __________________ ___ ____ ____ (_____ ___ \n / ___/ ___/ ___/ _ \\/ _ \\/ __ \\ / __ \\/ / __ \\/ _ \\\n (__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/\n/____/\\___/_/ \\___/\\___/_/ /_/ / .___/_/ .___/\\___/ \n /_/ /_/ \n\n\n\npower AI by everything you've seen, said or heard\nopen source | runs locally | developer friendly\n\n\n┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ true │\n│ vision disabled │ false │\n│ pause on DRM content │ false │\n2026-04-21T09:09:26.929953Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n│ ignored windows │ [\"Boosteroid\"] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n│ api auth │ enabled │\n2026-04-21T09:09:26.933254Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n│ encrypt secrets │ disabled │\n│ retention days │ 14 │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ id: 1 │\n│ │ id: 2 │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ disabled │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-21T09:09:26.944288Z INFO screenpipe: starting UI event capture\n2026-04-21T09:09:26.957412Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-21T09:09:26.970637Z INFO screenpipe_engine::ui_recorder: UI recording session started: a22e844d-73cb-42be-b71f-3243cecbaf5c\n2026-04-21T09:09:26.970744Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-21T09:09:26.970792Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-20 06:09:26.970791 UTC to 2026-04-21 06:09:26.970791 UTC)\n2026-04-21T09:09:26.971462Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-21T09:09:26.978353Z INFO screenpipe_engine::server: Server listening on 127.0.0.1:3030\n2026-04-21T09:09:26.982750Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-21T09:09:26.999552Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-21T09:09:26.999658Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-21T09:09:26.999699Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-21T09:09:27.033668Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-21T09:09:27.033695Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-21T09:09:27.033706Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)\n2026-04-21T09:09:27.033708Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-21T09:09:27.033714Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)\n2026-04-21T09:09:27.685135Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)\n2026-04-21T09:09:27.761411Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)\n2026-04-21T09:09:27.797356Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=60600, dur=57ms\n2026-04-21T09:09:27.906796Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=60601, dur=95ms\n2026-04-21T09:09:31.724879Z WARN sqlx::query: summary=\"SELECT f.id, f.timestamp, f.offset_index, …\" db.statement=\"\\n\\nSELECT\\n f.id,\\n f.timestamp,\\n f.offset_index,\\n COALESCE(\\n SUBSTR(f.full_text, 1, 200),\\n SUBSTR(f.accessibility_text, 1, 200),\\n (\\n SELECT\\n SUBSTR(ot.text, 1, 200)\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as text,\\n COALESCE(\\n f.app_name,\\n (\\n SELECT\\n ot.app_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as app_name,\\n COALESCE(\\n f.window_name,\\n (\\n SELECT\\n ot.window_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as window_name,\\n COALESCE(vc.device_name, f.device_name) as screen_device,\\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\\n COALESCE(vc.fps, 0.033) as chunk_fps,\\n f.browser_url,\\n f.machine_id\\nFROM\\n frames f\\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\\nWHERE\\n f.timestamp >= ?1\\n AND f.timestamp <= ?2\\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\\nORDER BY\\n f.timestamp DESC,\\n f.offset_index DESC\\nLIMIT\\n 10000\\n\" rows_affected=0 rows_returned=9080 elapsed=4.753475958s\n2026-04-21T09:09:31.744802Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 9080 frame entries, coverage from 2026-04-20 06:09:26.970791 UTC\n2026-04-21T09:09:33.176060Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8494955593014645957, trigger=visual_change)\n2026-04-21T09:09:33.259133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8494955593014645957, trigger=click)\n2026-04-21T09:09:39.972766Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2700142422186852288, trigger=click)\n2026-04-21T09:09:45.290493Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2196825192572756169, trigger=visual_change)\n2026-04-21T09:09:48.296536Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2196825192572756169, trigger=visual_change)\n2026-04-21T09:09:57.405382Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6029799176853791417, trigger=visual_change)\n2026-04-21T09:10:30.793177Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=68 elapsed=3.880348084s\n2026-04-21T09:10:30.793343Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 68 eligible frames\n2026-04-21T09:10:32.782345Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 33 frames, 9.0MB → 1.4MB (6.2x), 33 JPEGs deleted\n2026-04-21T09:10:34.729084Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 33 frames, 3.8MB → 0.7MB (5.3x), 33 JPEGs deleted\n2026-04-21T09:14:41.491289Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5618287936463319477, trigger=visual_change)\n2026-04-21T09:14:42.023992Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5618287936463319477, trigger=visual_change)\n2026-04-21T09:14:44.991818Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5618287936463319477, trigger=visual_change)\n2026-04-21T09:14:51.083977Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5618287936463319477, trigger=visual_change)\n2026-04-21T09:14:54.140981Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5618287936463319477, trigger=visual_change)\n2026-04-21T09:15:00.165923Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5618287936463319477, trigger=visual_change)\n2026-04-21T09:15:35.927100Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=2 elapsed=1.199599292s\n2026-04-21T09:15:35.927173Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-21T09:17:09.049247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2040777845502947880, trigger=visual_change)\n2026-04-21T09:17:21.165695Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6207854274181758758, trigger=visual_change)\n2026-04-21T09:18:37.508537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1104388310719845288, trigger=visual_change)\n2026-04-21T09:18:54.604696Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1104388310719845288, trigger=click)\n2026-04-21T09:19:11.380975Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1104388310719845288, trigger=visual_change)","depth":4,"value":"Last login: Mon Apr 20 20:51:30 on ttys009\n\nPoetry could not find a pyproject.toml file in /Users/lukas or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-start\ndetected hardware tier: Mid\nwarning: parakeet is not supported on this platform, using whisper-tiny instead\n2026-04-21T09:09:26.267672Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store\nchecking permissions...\n screen recording: ok\n accessibility: ok\n2026-04-21T09:09:26.330305Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6\n2026-04-21T09:09:26.876072Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor\n2026-04-21T09:09:26.877941Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)\n2026-04-21T09:09:26.878456Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)\n2026-04-21T09:09:26.911814Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true\n2026-04-21T09:09:26.911854Z INFO screenpipe: meeting detector enabled — independent of transcription mode\n2026-04-21T09:09:26.912050Z INFO screenpipe: API server listening on 127.0.0.1:3030 (localhost only)\n2026-04-21T09:09:26.912073Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key\n2026-04-21T09:09:26.912102Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)\n2026-04-21T09:09:26.912144Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager\n2026-04-21T09:09:26.912110Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)\n2026-04-21T09:09:26.921311Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-21T09:09:26.927270Z INFO screenpipe_core::pipes: loaded pipe: day-recap\n2026-04-21T09:09:26.927460Z INFO screenpipe_core::pipes: loaded pipe: standup-update\n2026-04-21T09:09:26.928100Z INFO screenpipe_core::pipes: loaded pipe: ai-habits\n2026-04-21T09:09:26.928278Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown\n2026-04-21T09:09:26.928424Z INFO screenpipe_core::pipes: loaded pipe: video-export\n2026-04-21T09:09:26.929174Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary\n2026-04-21T09:09:26.929195Z INFO screenpipe_core::pipes: loaded 6 pipes from \"/Users/lukas/.screenpipe/pipes\"\n\n\n\n _ \n __________________ ___ ____ ____ (_____ ___ \n / ___/ ___/ ___/ _ \\/ _ \\/ __ \\ / __ \\/ / __ \\/ _ \\\n (__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/\n/____/\\___/_/ \\___/\\___/_/ /_/ / .___/_/ .___/\\___/ \n /_/ /_/ \n\n\n\npower AI by everything you've seen, said or heard\nopen source | runs locally | developer friendly\n\n\n┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ true │\n│ vision disabled │ false │\n│ pause on DRM content │ false │\n2026-04-21T09:09:26.929953Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n│ ignored windows │ [\"Boosteroid\"] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n│ api auth │ enabled │\n2026-04-21T09:09:26.933254Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n│ encrypt secrets │ disabled │\n│ retention days │ 14 │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ id: 1 │\n│ │ id: 2 │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ disabled │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-21T09:09:26.944288Z INFO screenpipe: starting UI event capture\n2026-04-21T09:09:26.957412Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-21T09:09:26.970637Z INFO screenpipe_engine::ui_recorder: UI recording session started: a22e844d-73cb-42be-b71f-3243cecbaf5c\n2026-04-21T09:09:26.970744Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-21T09:09:26.970792Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-20 06:09:26.970791 UTC to 2026-04-21 06:09:26.970791 UTC)\n2026-04-21T09:09:26.971462Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-21T09:09:26.978353Z INFO screenpipe_engine::server: Server listening on 127.0.0.1:3030\n2026-04-21T09:09:26.982750Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-21T09:09:26.999552Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-21T09:09:26.999658Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-21T09:09:26.999699Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-21T09:09:27.033668Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-21T09:09:27.033695Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-21T09:09:27.033706Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)\n2026-04-21T09:09:27.033708Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-21T09:09:27.033714Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)\n2026-04-21T09:09:27.685135Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)\n2026-04-21T09:09:27.761411Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)\n2026-04-21T09:09:27.797356Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=60600, dur=57ms\n2026-04-21T09:09:27.906796Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=60601, dur=95ms\n2026-04-21T09:09:31.724879Z WARN sqlx::query: summary=\"SELECT f.id, f.timestamp, f.offset_index, …\" db.statement=\"\\n\\nSELECT\\n f.id,\\n f.timestamp,\\n f.offset_index,\\n COALESCE(\\n SUBSTR(f.full_text, 1, 200),\\n SUBSTR(f.accessibility_text, 1, 200),\\n (\\n SELECT\\n SUBSTR(ot.text, 1, 200)\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as text,\\n COALESCE(\\n f.app_name,\\n (\\n SELECT\\n ot.app_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as app_name,\\n COALESCE(\\n f.window_name,\\n (\\n SELECT\\n ot.window_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as window_name,\\n COALESCE(vc.device_name, f.device_name) as screen_device,\\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\\n COALESCE(vc.fps, 0.033) as chunk_fps,\\n f.browser_url,\\n f.machine_id\\nFROM\\n frames f\\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\\nWHERE\\n f.timestamp >= ?1\\n AND f.timestamp <= ?2\\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\\nORDER BY\\n f.timestamp DESC,\\n f.offset_index DESC\\nLIMIT\\n 10000\\n\" rows_affected=0 rows_returned=9080 elapsed=4.753475958s\n2026-04-21T09:09:31.744802Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 9080 frame entries, coverage from 2026-04-20 06:09:26.970791 UTC\n2026-04-21T09:09:33.176060Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8494955593014645957, trigger=visual_change)\n2026-04-21T09:09:33.259133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8494955593014645957, trigger=click)\n2026-04-21T09:09:39.972766Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2700142422186852288, trigger=click)\n2026-04-21T09:09:45.290493Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2196825192572756169, trigger=visual_change)\n2026-04-21T09:09:48.296536Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2196825192572756169, trigger=visual_change)\n2026-04-21T09:09:57.405382Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6029799176853791417, trigger=visual_change)\n2026-04-21T09:10:30.793177Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=68 elapsed=3.880348084s\n2026-04-21T09:10:30.793343Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 68 eligible frames\n2026-04-21T09:10:32.782345Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 33 frames, 9.0MB → 1.4MB (6.2x), 33 JPEGs deleted\n2026-04-21T09:10:34.729084Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 33 frames, 3.8MB → 0.7MB (5.3x), 33 JPEGs deleted\n2026-04-21T09:14:41.491289Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5618287936463319477, trigger=visual_change)\n2026-04-21T09:14:42.023992Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5618287936463319477, trigger=visual_change)\n2026-04-21T09:14:44.991818Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5618287936463319477, trigger=visual_change)\n2026-04-21T09:14:51.083977Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5618287936463319477, trigger=visual_change)\n2026-04-21T09:14:54.140981Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5618287936463319477, trigger=visual_change)\n2026-04-21T09:15:00.165923Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5618287936463319477, trigger=visual_change)\n2026-04-21T09:15:35.927100Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=2 elapsed=1.199599292s\n2026-04-21T09:15:35.927173Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-21T09:17:09.049247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2040777845502947880, trigger=visual_change)\n2026-04-21T09:17:21.165695Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6207854274181758758, trigger=visual_change)\n2026-04-21T09:18:37.508537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1104388310719845288, trigger=visual_change)\n2026-04-21T09:18:54.604696Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1104388310719845288, trigger=click)\n2026-04-21T09:19:11.380975Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1104388310719845288, trigger=visual_change)","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.14097223,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.14097223,"top":0.05888889,"width":0.14097223,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.14513889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.28194445,"top":0.05888889,"width":0.14097223,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.28611112,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"✳ Build full day activity summary from Screenpipe (node)","depth":2,"bounds":{"left":0.42291668,"top":0.05888889,"width":0.14097223,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.42708334,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.5638889,"top":0.05888889,"width":0.14097223,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.56805557,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.7048611,"top":0.05888889,"width":0.140625,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.70902777,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.8454861,"top":0.05888889,"width":0.140625,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.84965277,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"screenpipe\"","depth":1,"bounds":{"left":0.4722222,"top":0.033333335,"width":0.058333334,"height":0.017777778},"role_description":"text"}]...
|
8871613370884906715
|
7256900187427288433
|
click
|
accessibility
|
NULL
|
Last login: Mon Apr 20 20:51:30 on ttys009
Poetry Last login: Mon Apr 20 20:51:30 on ttys009
Poetry could not find a pyproject.toml file in /Users/lukas or its parents
Poetry could not find a pyproject.toml file in /Users/lukas or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-start
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-04-21T09:09:26.267672Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store
checking permissions...
screen recording: ok
accessibility: ok
2026-04-21T09:09:26.330305Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-04-21T09:09:26.876072Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-04-21T09:09:26.877941Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-04-21T09:09:26.878456Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-04-21T09:09:26.911814Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-04-21T09:09:26.911854Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-04-21T09:09:26.912050Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-04-21T09:09:26.912073Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-04-21T09:09:26.912102Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-04-21T09:09:26.912144Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-04-21T09:09:26.912110Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-04-21T09:09:26.921311Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))
2026-04-21T09:09:26.927270Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-04-21T09:09:26.927460Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-04-21T09:09:26.928100Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-04-21T09:09:26.928278Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-04-21T09:09:26.928424Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-04-21T09:09:26.929174Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary
2026-04-21T09:09:26.929195Z INFO screenpipe_core::pipes: loaded 6 pipes from "/Users/lukas/.screenpipe/pipes"
_
__________________ ___ ____ ____ (_____ ___
/ ___/ ___/ ___/ _ \/ _ \/ __ \ / __ \/ / __ \/ _ \
(__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/
/____/\___/_/ \___/\___/_/ /_/ / .___/_/ .___/\___/
/_/ /_/
power AI by everything you've seen, said or heard
open source | runs locally | developer friendly
┌────────────────────────┬────────────────────────────────────┐
│ setting │ value │
├────────────────────────┼────────────────────────────────────┤
│ audio chunk duration │ 30 seconds │
│ port │ 3030 │
│ audio disabled │ true │
│ vision disabled │ false │
│ pause on DRM content │ false │
2026-04-21T09:09:26.929953Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)
│ audio engine │ Parakeet │
│ vad engine │ Silero │
│ data directory │ /Users/lukas/.screenpipe │
│ debug mode │ false │
│ telemetry │ true │
│ use pii removal │ true │
│ use all monitors │ true │
│ ignored windows │ ["Boosteroid"] │
│ included windows │ [] │
│ cloud sync │ disabled │
│ auto-destruct pid │ 0 │
│ deepgram key │ not set │
│ api auth │ enabled │
2026-04-21T09:09:26.933254Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh
│ encrypt secrets │ disabled │
│ retention days │ 14 │
├────────────────────────┼────────────────────────────────────┤
│ languages │ │
│ │ all languages │
├────────────────────────┼────────────────────────────────────┤
│ monitors │ │
│ │ id: 1 │
│ │ id: 2 │
├────────────────────────┼────────────────────────────────────┤
│ audio devices │ │
│ │ disabled │
└────────────────────────┴────────────────────────────────────┘
you are using local processing. all your data stays on your computer.
warning: telemetry is enabled. only error-level data will be sent.
to disable, use the --disable-telemetry flag.
check latest changes here: https://github.com/screenpipe/screenpipe/releases
2026-04-21T09:09:26.944288Z INFO screenpipe: starting UI event capture
2026-04-21T09:09:26.957412Z INFO screenpipe_engine::ui_recorder: Starting UI event capture
2026-04-21T09:09:26.970637Z INFO screenpipe_engine::ui_recorder: UI recording session started: a22e844d-73cb-42be-b71f-3243cecbaf5c
2026-04-21T09:09:26.970744Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)
2026-04-21T09:09:26.970792Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-20 06:09:26.970791 UTC to 2026-04-21 06:09:26.970791 UTC)
2026-04-21T09:09:26.971462Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)
2026-04-21T09:09:26.978353Z INFO screenpipe_engine::server: Server listening on [IP_ADDRESS]:3030
2026-04-21T09:09:26.982750Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030
2026-04-21T09:09:26.999552Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)
2026-04-21T09:09:26.999658Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)
2026-04-21T09:09:26.999699Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)
2026-04-21T09:09:27.033668Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-04-21T09:09:27.033695Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-04-21T09:09:27.033706Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)
2026-04-21T09:09:27.033708Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-04-21T09:09:27.033714Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)
2026-04-21T09:09:27.685135Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)
2026-04-21T09:09:27.761411Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)
2026-04-21T09:09:27.797356Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=60600, dur=57ms
2026-04-21T09:09:27.906796Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=60601, dur=95ms
2026-04-21T09:09:31.724879Z WARN sqlx::query: summary="SELECT f.id, f.timestamp, f.offset_index, …" db.statement="\n\nSELECT\n f.id,\n f.timestamp,\n f.offset_index,\n COALESCE(\n SUBSTR(f.full_text, 1, 200),\n SUBSTR(f.accessibility_text, 1, 200),\n (\n SELECT\n SUBSTR(ot.text, 1, 200)\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as text,\n COALESCE(\n f.app_name,\n (\n SELECT\n ot.app_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as app_name,\n COALESCE(\n f.window_name,\n (\n SELECT\n ot.window_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as window_name,\n COALESCE(vc.device_name, f.device_name) as screen_device,\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\n COALESCE(vc.fps, 0.033) as chunk_fps,\n f.browser_url,\n f.machine_id\nFROM\n frames f\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\nWHERE\n f.timestamp >= ?1\n AND f.timestamp <= ?2\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\nORDER BY\n f.timestamp DESC,\n f.offset_index DESC\nLIMIT\n 10000\n" rows_affected=0 rows_returned=9080 elapsed=4.753475958s
2026-04-21T09:09:31.744802Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 9080 frame entries, coverage from 2026-04-20 06:09:26.970791 UTC
2026-04-21T09:09:33.176060Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8494955593014645957, trigger=visual_change)
2026-04-21T09:09:33.259133Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8494955593014645957, trigger=click)
2026-04-21T09:09:39.972766Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2700142422186852288, trigger=click)
2026-04-21T09:09:45.290493Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2196825192572756169, trigger=visual_change)
2026-04-21T09:09:48.296536Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2196825192572756169, trigger=visual_change)
2026-04-21T09:09:57.405382Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6029799176853791417, trigger=visual_change)
2026-04-21T09:10:30.793177Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=68 elapsed=3.880348084s
2026-04-21T09:10:30.793343Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 68 eligible frames
2026-04-21T09:10:32.782345Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 33 frames, 9.0MB → 1.4MB (6.2x), 33 JPEGs deleted
2026-04-21T09:10:34.729084Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 33 frames, 3.8MB → 0.7MB (5.3x), 33 JPEGs deleted
2026-04-21T09:14:41.491289Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5618287936463319477, trigger=visual_change)
2026-04-21T09:14:42.023992Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5618287936463319477, trigger=visual_change)
2026-04-21T09:14:44.991818Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5618287936463319477, trigger=visual_change)
2026-04-21T09:14:51.083977Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5618287936463319477, trigger=visual_change)
2026-04-21T09:14:54.140981Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5618287936463319477, trigger=visual_change)
2026-04-21T09:15:00.165923Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5618287936463319477, trigger=visual_change)
2026-04-21T09:15:35.927100Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=2 elapsed=1.199599292s
2026-04-21T09:15:35.927173Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
2026-04-21T09:17:09.049247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2040777845502947880, trigger=visual_change)
2026-04-21T09:17:21.165695Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6207854274181758758, trigger=visual_change)
2026-04-21T09:18:37.508537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1104388310719845288, trigger=visual_change)
2026-04-21T09:18:54.604696Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1104388310719845288, trigger=click)
2026-04-21T09:19:11.380975Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1104388310719845288, trigger=visual_change)
DOCKER
Close Tab
-zsh
Close Tab
-zsh
Close Tab
✳ Build full day activity summary from Screenpipe (node)
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
APP (-zsh)
Close Tab
⌥⌘1
screenpipe"...
|
60834
|
|
60601
|
1307
|
0
|
2026-04-21T06:09:27.535489+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-21/1776 /Users/lukas/.screenpipe/data/data/2026-04-21/1776751767535_m2.jpg...
|
iTerm2
|
screenpipe"
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Last login: Mon Apr 20 20:51:30 on ttys009
Poetry Last login: Mon Apr 20 20:51:30 on ttys009
Poetry could not find a pyproject.toml file in /Users/lukas or its parents
Poetry could not find a pyproject.toml file in /Users/lukas or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-start
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-04-21T09:09:26.267672Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store
checking permissions...
screen recording: ok
accessibility: ok
2026-04-21T09:09:26.330305Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-04-21T09:09:26.876072Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-04-21T09:09:26.877941Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-04-21T09:09:26.878456Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-04-21T09:09:26.911814Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-04-21T09:09:26.911854Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-04-21T09:09:26.912050Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-04-21T09:09:26.912073Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-04-21T09:09:26.912102Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-04-21T09:09:26.912144Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-04-21T09:09:26.912110Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-04-21T09:09:26.921311Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))
2026-04-21T09:09:26.927270Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-04-21T09:09:26.927460Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-04-21T09:09:26.928100Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-04-21T09:09:26.928278Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-04-21T09:09:26.928424Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-04-21T09:09:26.929174Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary
2026-04-21T09:09:26.929195Z INFO screenpipe_core::pipes: loaded 6 pipes from "/Users/lukas/.screenpipe/pipes"
_
__________________ ___ ____ ____ (_____ ___
/ ___/ ___/ ___/ _ \/ _ \/ __ \ / __ \/ / __ \/ _ \
(__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/
/____/\___/_/ \___/\___/_/ /_/ / .___/_/ .___/\___/
/_/ /_/
power AI by everything you've seen, said or heard
open source | runs locally | developer friendly
┌────────────────────────┬────────────────────────────────────┐
│ setting │ value │
├────────────────────────┼────────────────────────────────────┤
│ audio chunk duration │ 30 seconds │
│ port │ 3030 │
│ audio disabled │ true │
│ vision disabled │ false │
│ pause on DRM content │ false │
2026-04-21T09:09:26.929953Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)
│ audio engine │ Parakeet │
│ vad engine │ Silero │
│ data directory │ /Users/lukas/.screenpipe │
│ debug mode │ false │
│ telemetry │ true │
│ use pii removal │ true │
│ use all monitors │ true │
│ ignored windows │ ["Boosteroid"] │
│ included windows │ [] │
│ cloud sync │ disabled │
│ auto-destruct pid │ 0 │
│ deepgram key │ not set │
│ api auth │ enabled │
2026-04-21T09:09:26.933254Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh
│ encrypt secrets │ disabled │
│ retention days │ 14 │
├────────────────────────┼────────────────────────────────────┤
│ languages │ │
│ │ all languages │
├────────────────────────┼────────────────────────────────────┤
│ monitors │ │
│ │ id: 1 │
│ │ id: 2 │
├────────────────────────┼────────────────────────────────────┤
│ audio devices │ │
│ │ disabled │
└────────────────────────┴────────────────────────────────────┘
you are using local processing. all your data stays on your computer.
warning: telemetry is enabled. only error-level data will be sent.
to disable, use the --disable-telemetry flag.
check latest changes here: https://github.com/screenpipe/screenpipe/releases
2026-04-21T09:09:26.944288Z INFO screenpipe: starting UI event capture
2026-04-21T09:09:26.957412Z INFO screenpipe_engine::ui_recorder: Starting UI event capture
2026-04-21T09:09:26.970637Z INFO screenpipe_engine::ui_recorder: UI recording session started: a22e844d-73cb-42be-b71f-3243cecbaf5c
2026-04-21T09:09:26.970744Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)
2026-04-21T09:09:26.970792Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-20 06:09:26.970791 UTC to 2026-04-21 06:09:26.970791 UTC)
2026-04-21T09:09:26.971462Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)
2026-04-21T09:09:26.978353Z INFO screenpipe_engine::server: Server listening on [IP_ADDRESS]:3030
2026-04-21T09:09:26.982750Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030
2026-04-21T09:09:26.999552Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)
2026-04-21T09:09:26.999658Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)
2026-04-21T09:09:26.999699Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)
2026-04-21T09:09:27.033668Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-04-21T09:09:27.033695Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-04-21T09:09:27.033706Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)
2026-04-21T09:09:27.033708Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-04-21T09:09:27.033714Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)
2026-04-21T09:09:27.685135Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)
2026-04-21T09:09:27.761411Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)
DOCKER
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
✳ Build full day activity summary from Screenpipe (node)
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
screenpipe"...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"Last login: Mon Apr 20 20:51:30 on ttys009\n\nPoetry could not find a pyproject.toml file in /Users/lukas or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-start\ndetected hardware tier: Mid\nwarning: parakeet is not supported on this platform, using whisper-tiny instead\n2026-04-21T09:09:26.267672Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store\nchecking permissions...\n screen recording: ok\n accessibility: ok\n2026-04-21T09:09:26.330305Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6\n2026-04-21T09:09:26.876072Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor\n2026-04-21T09:09:26.877941Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)\n2026-04-21T09:09:26.878456Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)\n2026-04-21T09:09:26.911814Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true\n2026-04-21T09:09:26.911854Z INFO screenpipe: meeting detector enabled — independent of transcription mode\n2026-04-21T09:09:26.912050Z INFO screenpipe: API server listening on 127.0.0.1:3030 (localhost only)\n2026-04-21T09:09:26.912073Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key\n2026-04-21T09:09:26.912102Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)\n2026-04-21T09:09:26.912144Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager\n2026-04-21T09:09:26.912110Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)\n2026-04-21T09:09:26.921311Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-21T09:09:26.927270Z INFO screenpipe_core::pipes: loaded pipe: day-recap\n2026-04-21T09:09:26.927460Z INFO screenpipe_core::pipes: loaded pipe: standup-update\n2026-04-21T09:09:26.928100Z INFO screenpipe_core::pipes: loaded pipe: ai-habits\n2026-04-21T09:09:26.928278Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown\n2026-04-21T09:09:26.928424Z INFO screenpipe_core::pipes: loaded pipe: video-export\n2026-04-21T09:09:26.929174Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary\n2026-04-21T09:09:26.929195Z INFO screenpipe_core::pipes: loaded 6 pipes from \"/Users/lukas/.screenpipe/pipes\"\n\n\n\n _ \n __________________ ___ ____ ____ (_____ ___ \n / ___/ ___/ ___/ _ \\/ _ \\/ __ \\ / __ \\/ / __ \\/ _ \\\n (__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/\n/____/\\___/_/ \\___/\\___/_/ /_/ / .___/_/ .___/\\___/ \n /_/ /_/ \n\n\n\npower AI by everything you've seen, said or heard\nopen source | runs locally | developer friendly\n\n\n┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ true │\n│ vision disabled │ false │\n│ pause on DRM content │ false │\n2026-04-21T09:09:26.929953Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n│ ignored windows │ [\"Boosteroid\"] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n│ api auth │ enabled │\n2026-04-21T09:09:26.933254Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n│ encrypt secrets │ disabled │\n│ retention days │ 14 │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ id: 1 │\n│ │ id: 2 │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ disabled │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-21T09:09:26.944288Z INFO screenpipe: starting UI event capture\n2026-04-21T09:09:26.957412Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-21T09:09:26.970637Z INFO screenpipe_engine::ui_recorder: UI recording session started: a22e844d-73cb-42be-b71f-3243cecbaf5c\n2026-04-21T09:09:26.970744Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-21T09:09:26.970792Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-20 06:09:26.970791 UTC to 2026-04-21 06:09:26.970791 UTC)\n2026-04-21T09:09:26.971462Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-21T09:09:26.978353Z INFO screenpipe_engine::server: Server listening on 127.0.0.1:3030\n2026-04-21T09:09:26.982750Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-21T09:09:26.999552Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-21T09:09:26.999658Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-21T09:09:26.999699Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-21T09:09:27.033668Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-21T09:09:27.033695Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-21T09:09:27.033706Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)\n2026-04-21T09:09:27.033708Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-21T09:09:27.033714Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)\n2026-04-21T09:09:27.685135Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)\n2026-04-21T09:09:27.761411Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)","depth":4,"bounds":{"left":0.27027926,"top":0.14365523,"width":0.4800532,"height":0.85634476},"value":"Last login: Mon Apr 20 20:51:30 on ttys009\n\nPoetry could not find a pyproject.toml file in /Users/lukas or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-start\ndetected hardware tier: Mid\nwarning: parakeet is not supported on this platform, using whisper-tiny instead\n2026-04-21T09:09:26.267672Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store\nchecking permissions...\n screen recording: ok\n accessibility: ok\n2026-04-21T09:09:26.330305Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6\n2026-04-21T09:09:26.876072Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor\n2026-04-21T09:09:26.877941Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)\n2026-04-21T09:09:26.878456Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)\n2026-04-21T09:09:26.911814Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true\n2026-04-21T09:09:26.911854Z INFO screenpipe: meeting detector enabled — independent of transcription mode\n2026-04-21T09:09:26.912050Z INFO screenpipe: API server listening on 127.0.0.1:3030 (localhost only)\n2026-04-21T09:09:26.912073Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key\n2026-04-21T09:09:26.912102Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)\n2026-04-21T09:09:26.912144Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager\n2026-04-21T09:09:26.912110Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)\n2026-04-21T09:09:26.921311Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-21T09:09:26.927270Z INFO screenpipe_core::pipes: loaded pipe: day-recap\n2026-04-21T09:09:26.927460Z INFO screenpipe_core::pipes: loaded pipe: standup-update\n2026-04-21T09:09:26.928100Z INFO screenpipe_core::pipes: loaded pipe: ai-habits\n2026-04-21T09:09:26.928278Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown\n2026-04-21T09:09:26.928424Z INFO screenpipe_core::pipes: loaded pipe: video-export\n2026-04-21T09:09:26.929174Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary\n2026-04-21T09:09:26.929195Z INFO screenpipe_core::pipes: loaded 6 pipes from \"/Users/lukas/.screenpipe/pipes\"\n\n\n\n _ \n __________________ ___ ____ ____ (_____ ___ \n / ___/ ___/ ___/ _ \\/ _ \\/ __ \\ / __ \\/ / __ \\/ _ \\\n (__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/\n/____/\\___/_/ \\___/\\___/_/ /_/ / .___/_/ .___/\\___/ \n /_/ /_/ \n\n\n\npower AI by everything you've seen, said or heard\nopen source | runs locally | developer friendly\n\n\n┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ true │\n│ vision disabled │ false │\n│ pause on DRM content │ false │\n2026-04-21T09:09:26.929953Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n│ ignored windows │ [\"Boosteroid\"] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n│ api auth │ enabled │\n2026-04-21T09:09:26.933254Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n│ encrypt secrets │ disabled │\n│ retention days │ 14 │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ id: 1 │\n│ │ id: 2 │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ disabled │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-21T09:09:26.944288Z INFO screenpipe: starting UI event capture\n2026-04-21T09:09:26.957412Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-21T09:09:26.970637Z INFO screenpipe_engine::ui_recorder: UI recording session started: a22e844d-73cb-42be-b71f-3243cecbaf5c\n2026-04-21T09:09:26.970744Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-21T09:09:26.970792Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-20 06:09:26.970791 UTC to 2026-04-21 06:09:26.970791 UTC)\n2026-04-21T09:09:26.971462Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-21T09:09:26.978353Z INFO screenpipe_engine::server: Server listening on 127.0.0.1:3030\n2026-04-21T09:09:26.982750Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-21T09:09:26.999552Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-21T09:09:26.999658Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-21T09:09:26.999699Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-21T09:09:27.033668Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-21T09:09:27.033695Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-21T09:09:27.033706Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)\n2026-04-21T09:09:27.033708Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-21T09:09:27.033714Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)\n2026-04-21T09:09:27.685135Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)\n2026-04-21T09:09:27.761411Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.0787899,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.34906915,"top":1.0,"width":0.0787899,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.35106382,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.42785904,"top":1.0,"width":0.07862367,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.42985374,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"✳ Build full day activity summary from Screenpipe (node)","depth":2,"bounds":{"left":0.5064827,"top":1.0,"width":0.07862367,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5084774,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.5851064,"top":1.0,"width":0.07862367,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.58710104,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.66373,"top":1.0,"width":0.07862367,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.66572475,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7287234,"top":1.0,"width":0.01861702,"height":-0.023144484},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"screenpipe\"","depth":1,"bounds":{"left":0.49634308,"top":1.0,"width":0.027925532,"height":-0.02394259},"role_description":"text"}]...
|
-3400411416856803862
|
7401480605826544929
|
manual
|
accessibility
|
NULL
|
Last login: Mon Apr 20 20:51:30 on ttys009
Poetry Last login: Mon Apr 20 20:51:30 on ttys009
Poetry could not find a pyproject.toml file in /Users/lukas or its parents
Poetry could not find a pyproject.toml file in /Users/lukas or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-start
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-04-21T09:09:26.267672Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store
checking permissions...
screen recording: ok
accessibility: ok
2026-04-21T09:09:26.330305Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-04-21T09:09:26.876072Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-04-21T09:09:26.877941Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-04-21T09:09:26.878456Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-04-21T09:09:26.911814Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-04-21T09:09:26.911854Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-04-21T09:09:26.912050Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-04-21T09:09:26.912073Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-04-21T09:09:26.912102Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-04-21T09:09:26.912144Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-04-21T09:09:26.912110Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-04-21T09:09:26.921311Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))
2026-04-21T09:09:26.927270Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-04-21T09:09:26.927460Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-04-21T09:09:26.928100Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-04-21T09:09:26.928278Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-04-21T09:09:26.928424Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-04-21T09:09:26.929174Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary
2026-04-21T09:09:26.929195Z INFO screenpipe_core::pipes: loaded 6 pipes from "/Users/lukas/.screenpipe/pipes"
_
__________________ ___ ____ ____ (_____ ___
/ ___/ ___/ ___/ _ \/ _ \/ __ \ / __ \/ / __ \/ _ \
(__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/
/____/\___/_/ \___/\___/_/ /_/ / .___/_/ .___/\___/
/_/ /_/
power AI by everything you've seen, said or heard
open source | runs locally | developer friendly
┌────────────────────────┬────────────────────────────────────┐
│ setting │ value │
├────────────────────────┼────────────────────────────────────┤
│ audio chunk duration │ 30 seconds │
│ port │ 3030 │
│ audio disabled │ true │
│ vision disabled │ false │
│ pause on DRM content │ false │
2026-04-21T09:09:26.929953Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)
│ audio engine │ Parakeet │
│ vad engine │ Silero │
│ data directory │ /Users/lukas/.screenpipe │
│ debug mode │ false │
│ telemetry │ true │
│ use pii removal │ true │
│ use all monitors │ true │
│ ignored windows │ ["Boosteroid"] │
│ included windows │ [] │
│ cloud sync │ disabled │
│ auto-destruct pid │ 0 │
│ deepgram key │ not set │
│ api auth │ enabled │
2026-04-21T09:09:26.933254Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh
│ encrypt secrets │ disabled │
│ retention days │ 14 │
├────────────────────────┼────────────────────────────────────┤
│ languages │ │
│ │ all languages │
├────────────────────────┼────────────────────────────────────┤
│ monitors │ │
│ │ id: 1 │
│ │ id: 2 │
├────────────────────────┼────────────────────────────────────┤
│ audio devices │ │
│ │ disabled │
└────────────────────────┴────────────────────────────────────┘
you are using local processing. all your data stays on your computer.
warning: telemetry is enabled. only error-level data will be sent.
to disable, use the --disable-telemetry flag.
check latest changes here: https://github.com/screenpipe/screenpipe/releases
2026-04-21T09:09:26.944288Z INFO screenpipe: starting UI event capture
2026-04-21T09:09:26.957412Z INFO screenpipe_engine::ui_recorder: Starting UI event capture
2026-04-21T09:09:26.970637Z INFO screenpipe_engine::ui_recorder: UI recording session started: a22e844d-73cb-42be-b71f-3243cecbaf5c
2026-04-21T09:09:26.970744Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)
2026-04-21T09:09:26.970792Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-20 06:09:26.970791 UTC to 2026-04-21 06:09:26.970791 UTC)
2026-04-21T09:09:26.971462Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)
2026-04-21T09:09:26.978353Z INFO screenpipe_engine::server: Server listening on [IP_ADDRESS]:3030
2026-04-21T09:09:26.982750Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030
2026-04-21T09:09:26.999552Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)
2026-04-21T09:09:26.999658Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)
2026-04-21T09:09:26.999699Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)
2026-04-21T09:09:27.033668Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-04-21T09:09:27.033695Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-04-21T09:09:27.033706Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)
2026-04-21T09:09:27.033708Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-04-21T09:09:27.033714Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)
2026-04-21T09:09:27.685135Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)
2026-04-21T09:09:27.761411Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 2 excluded)
DOCKER
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
✳ Build full day activity summary from Screenpipe (node)
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
screenpipe"...
|
NULL
|
|
60600
|
1306
|
0
|
2026-04-21T06:09:27.500527+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-21/1776 /Users/lukas/.screenpipe/data/data/2026-04-21/1776751767500_m1.jpg...
|
iTerm2
|
screenpipe"
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Last login: Mon Apr 20 20:51:30 on ttys009
Poetry Last login: Mon Apr 20 20:51:30 on ttys009
Poetry could not find a pyproject.toml file in /Users/lukas or its parents
Poetry could not find a pyproject.toml file in /Users/lukas or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-start
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-04-21T09:09:26.267672Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store
checking permissions...
screen recording: ok
accessibility: ok
2026-04-21T09:09:26.330305Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-04-21T09:09:26.876072Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-04-21T09:09:26.877941Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-04-21T09:09:26.878456Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-04-21T09:09:26.911814Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-04-21T09:09:26.911854Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-04-21T09:09:26.912050Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-04-21T09:09:26.912073Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-04-21T09:09:26.912102Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-04-21T09:09:26.912144Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-04-21T09:09:26.912110Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-04-21T09:09:26.921311Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))
2026-04-21T09:09:26.927270Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-04-21T09:09:26.927460Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-04-21T09:09:26.928100Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-04-21T09:09:26.928278Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-04-21T09:09:26.928424Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-04-21T09:09:26.929174Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary
2026-04-21T09:09:26.929195Z INFO screenpipe_core::pipes: loaded 6 pipes from "/Users/lukas/.screenpipe/pipes"
_
__________________ ___ ____ ____ (_____ ___
/ ___/ ___/ ___/ _ \/ _ \/ __ \ / __ \/ / __ \/ _ \
(__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/
/____/\___/_/ \___/\___/_/ /_/ / .___/_/ .___/\___/
/_/ /_/
power AI by everything you've seen, said or heard
open source | runs locally | developer friendly
┌────────────────────────┬────────────────────────────────────┐
│ setting │ value │
├────────────────────────┼────────────────────────────────────┤
│ audio chunk duration │ 30 seconds │
│ port │ 3030 │
│ audio disabled │ true │
│ vision disabled │ false │
│ pause on DRM content │ false │
2026-04-21T09:09:26.929953Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)
│ audio engine │ Parakeet │
│ vad engine │ Silero │
│ data directory │ /Users/lukas/.screenpipe │
│ debug mode │ false │
│ telemetry │ true │
│ use pii removal │ true │
│ use all monitors │ true │
│ ignored windows │ ["Boosteroid"] │
│ included windows │ [] │
│ cloud sync │ disabled │
│ auto-destruct pid │ 0 │
│ deepgram key │ not set │
│ api auth │ enabled │
2026-04-21T09:09:26.933254Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh
│ encrypt secrets │ disabled │
│ retention days │ 14 │
├────────────────────────┼────────────────────────────────────┤
│ languages │ │
│ │ all languages │
├────────────────────────┼────────────────────────────────────┤
│ monitors │ │
│ │ id: 1 │
│ │ id: 2 │
├────────────────────────┼────────────────────────────────────┤
│ audio devices │ │
│ │ disabled │
└────────────────────────┴────────────────────────────────────┘
you are using local processing. all your data stays on your computer.
warning: telemetry is enabled. only error-level data will be sent.
to disable, use the --disable-telemetry flag.
check latest changes here: https://github.com/screenpipe/screenpipe/releases
2026-04-21T09:09:26.944288Z INFO screenpipe: starting UI event capture
2026-04-21T09:09:26.957412Z INFO screenpipe_engine::ui_recorder: Starting UI event capture
2026-04-21T09:09:26.970637Z INFO screenpipe_engine::ui_recorder: UI recording session started: a22e844d-73cb-42be-b71f-3243cecbaf5c
2026-04-21T09:09:26.970744Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)
2026-04-21T09:09:26.970792Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-20 06:09:26.970791 UTC to 2026-04-21 06:09:26.970791 UTC)
2026-04-21T09:09:26.971462Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)
2026-04-21T09:09:26.978353Z INFO screenpipe_engine::server: Server listening on [IP_ADDRESS]:3030
2026-04-21T09:09:26.982750Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030
2026-04-21T09:09:26.999552Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)
2026-04-21T09:09:26.999658Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)
2026-04-21T09:09:26.999699Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)
2026-04-21T09:09:27.033668Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-04-21T09:09:27.033695Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-04-21T09:09:27.033706Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)
2026-04-21T09:09:27.033708Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-04-21T09:09:27.033714Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)
2026-04-21T09:09:27.685135Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)
DOCKER
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
✳ Build full day activity summary from Screenpipe (node)
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
screenpipe"...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"Last login: Mon Apr 20 20:51:30 on ttys009\n\nPoetry could not find a pyproject.toml file in /Users/lukas or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-start\ndetected hardware tier: Mid\nwarning: parakeet is not supported on this platform, using whisper-tiny instead\n2026-04-21T09:09:26.267672Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store\nchecking permissions...\n screen recording: ok\n accessibility: ok\n2026-04-21T09:09:26.330305Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6\n2026-04-21T09:09:26.876072Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor\n2026-04-21T09:09:26.877941Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)\n2026-04-21T09:09:26.878456Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)\n2026-04-21T09:09:26.911814Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true\n2026-04-21T09:09:26.911854Z INFO screenpipe: meeting detector enabled — independent of transcription mode\n2026-04-21T09:09:26.912050Z INFO screenpipe: API server listening on 127.0.0.1:3030 (localhost only)\n2026-04-21T09:09:26.912073Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key\n2026-04-21T09:09:26.912102Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)\n2026-04-21T09:09:26.912144Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager\n2026-04-21T09:09:26.912110Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)\n2026-04-21T09:09:26.921311Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-21T09:09:26.927270Z INFO screenpipe_core::pipes: loaded pipe: day-recap\n2026-04-21T09:09:26.927460Z INFO screenpipe_core::pipes: loaded pipe: standup-update\n2026-04-21T09:09:26.928100Z INFO screenpipe_core::pipes: loaded pipe: ai-habits\n2026-04-21T09:09:26.928278Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown\n2026-04-21T09:09:26.928424Z INFO screenpipe_core::pipes: loaded pipe: video-export\n2026-04-21T09:09:26.929174Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary\n2026-04-21T09:09:26.929195Z INFO screenpipe_core::pipes: loaded 6 pipes from \"/Users/lukas/.screenpipe/pipes\"\n\n\n\n _ \n __________________ ___ ____ ____ (_____ ___ \n / ___/ ___/ ___/ _ \\/ _ \\/ __ \\ / __ \\/ / __ \\/ _ \\\n (__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/\n/____/\\___/_/ \\___/\\___/_/ /_/ / .___/_/ .___/\\___/ \n /_/ /_/ \n\n\n\npower AI by everything you've seen, said or heard\nopen source | runs locally | developer friendly\n\n\n┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ true │\n│ vision disabled │ false │\n│ pause on DRM content │ false │\n2026-04-21T09:09:26.929953Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n│ ignored windows │ [\"Boosteroid\"] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n│ api auth │ enabled │\n2026-04-21T09:09:26.933254Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n│ encrypt secrets │ disabled │\n│ retention days │ 14 │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ id: 1 │\n│ │ id: 2 │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ disabled │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-21T09:09:26.944288Z INFO screenpipe: starting UI event capture\n2026-04-21T09:09:26.957412Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-21T09:09:26.970637Z INFO screenpipe_engine::ui_recorder: UI recording session started: a22e844d-73cb-42be-b71f-3243cecbaf5c\n2026-04-21T09:09:26.970744Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-21T09:09:26.970792Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-20 06:09:26.970791 UTC to 2026-04-21 06:09:26.970791 UTC)\n2026-04-21T09:09:26.971462Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-21T09:09:26.978353Z INFO screenpipe_engine::server: Server listening on 127.0.0.1:3030\n2026-04-21T09:09:26.982750Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-21T09:09:26.999552Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-21T09:09:26.999658Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-21T09:09:26.999699Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-21T09:09:27.033668Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-21T09:09:27.033695Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-21T09:09:27.033706Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)\n2026-04-21T09:09:27.033708Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-21T09:09:27.033714Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)\n2026-04-21T09:09:27.685135Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)","depth":4,"value":"Last login: Mon Apr 20 20:51:30 on ttys009\n\nPoetry could not find a pyproject.toml file in /Users/lukas or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-start\ndetected hardware tier: Mid\nwarning: parakeet is not supported on this platform, using whisper-tiny instead\n2026-04-21T09:09:26.267672Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store\nchecking permissions...\n screen recording: ok\n accessibility: ok\n2026-04-21T09:09:26.330305Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6\n2026-04-21T09:09:26.876072Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor\n2026-04-21T09:09:26.877941Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)\n2026-04-21T09:09:26.878456Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)\n2026-04-21T09:09:26.911814Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true\n2026-04-21T09:09:26.911854Z INFO screenpipe: meeting detector enabled — independent of transcription mode\n2026-04-21T09:09:26.912050Z INFO screenpipe: API server listening on 127.0.0.1:3030 (localhost only)\n2026-04-21T09:09:26.912073Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key\n2026-04-21T09:09:26.912102Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)\n2026-04-21T09:09:26.912144Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager\n2026-04-21T09:09:26.912110Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)\n2026-04-21T09:09:26.921311Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-21T09:09:26.927270Z INFO screenpipe_core::pipes: loaded pipe: day-recap\n2026-04-21T09:09:26.927460Z INFO screenpipe_core::pipes: loaded pipe: standup-update\n2026-04-21T09:09:26.928100Z INFO screenpipe_core::pipes: loaded pipe: ai-habits\n2026-04-21T09:09:26.928278Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown\n2026-04-21T09:09:26.928424Z INFO screenpipe_core::pipes: loaded pipe: video-export\n2026-04-21T09:09:26.929174Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary\n2026-04-21T09:09:26.929195Z INFO screenpipe_core::pipes: loaded 6 pipes from \"/Users/lukas/.screenpipe/pipes\"\n\n\n\n _ \n __________________ ___ ____ ____ (_____ ___ \n / ___/ ___/ ___/ _ \\/ _ \\/ __ \\ / __ \\/ / __ \\/ _ \\\n (__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/\n/____/\\___/_/ \\___/\\___/_/ /_/ / .___/_/ .___/\\___/ \n /_/ /_/ \n\n\n\npower AI by everything you've seen, said or heard\nopen source | runs locally | developer friendly\n\n\n┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ true │\n│ vision disabled │ false │\n│ pause on DRM content │ false │\n2026-04-21T09:09:26.929953Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n│ ignored windows │ [\"Boosteroid\"] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n│ api auth │ enabled │\n2026-04-21T09:09:26.933254Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n│ encrypt secrets │ disabled │\n│ retention days │ 14 │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ id: 1 │\n│ │ id: 2 │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ disabled │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-21T09:09:26.944288Z INFO screenpipe: starting UI event capture\n2026-04-21T09:09:26.957412Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-21T09:09:26.970637Z INFO screenpipe_engine::ui_recorder: UI recording session started: a22e844d-73cb-42be-b71f-3243cecbaf5c\n2026-04-21T09:09:26.970744Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-21T09:09:26.970792Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-20 06:09:26.970791 UTC to 2026-04-21 06:09:26.970791 UTC)\n2026-04-21T09:09:26.971462Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-21T09:09:26.978353Z INFO screenpipe_engine::server: Server listening on 127.0.0.1:3030\n2026-04-21T09:09:26.982750Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-21T09:09:26.999552Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-21T09:09:26.999658Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-21T09:09:26.999699Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-21T09:09:27.033668Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-21T09:09:27.033695Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-21T09:09:27.033706Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)\n2026-04-21T09:09:27.033708Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-21T09:09:27.033714Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)\n2026-04-21T09:09:27.685135Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.16458334,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.16458334,"top":0.05888889,"width":0.16458334,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.16875,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.32916668,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.33333334,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"✳ Build full day activity summary from Screenpipe (node)","depth":2,"bounds":{"left":0.49340278,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.49756944,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.6576389,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.66180557,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.821875,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.82604164,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"screenpipe\"","depth":1,"bounds":{"left":0.4722222,"top":0.033333335,"width":0.058333334,"height":0.017777778},"role_description":"text"}]...
|
7456446880175357205
|
7473538199864472865
|
manual
|
accessibility
|
NULL
|
Last login: Mon Apr 20 20:51:30 on ttys009
Poetry Last login: Mon Apr 20 20:51:30 on ttys009
Poetry could not find a pyproject.toml file in /Users/lukas or its parents
Poetry could not find a pyproject.toml file in /Users/lukas or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-start
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-04-21T09:09:26.267672Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store
checking permissions...
screen recording: ok
accessibility: ok
2026-04-21T09:09:26.330305Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-04-21T09:09:26.876072Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-04-21T09:09:26.877941Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-04-21T09:09:26.878456Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-04-21T09:09:26.911814Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-04-21T09:09:26.911854Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-04-21T09:09:26.912050Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-04-21T09:09:26.912073Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-04-21T09:09:26.912102Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-04-21T09:09:26.912144Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-04-21T09:09:26.912110Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-04-21T09:09:26.921311Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))
2026-04-21T09:09:26.927270Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-04-21T09:09:26.927460Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-04-21T09:09:26.928100Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-04-21T09:09:26.928278Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-04-21T09:09:26.928424Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-04-21T09:09:26.929174Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary
2026-04-21T09:09:26.929195Z INFO screenpipe_core::pipes: loaded 6 pipes from "/Users/lukas/.screenpipe/pipes"
_
__________________ ___ ____ ____ (_____ ___
/ ___/ ___/ ___/ _ \/ _ \/ __ \ / __ \/ / __ \/ _ \
(__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/
/____/\___/_/ \___/\___/_/ /_/ / .___/_/ .___/\___/
/_/ /_/
power AI by everything you've seen, said or heard
open source | runs locally | developer friendly
┌────────────────────────┬────────────────────────────────────┐
│ setting │ value │
├────────────────────────┼────────────────────────────────────┤
│ audio chunk duration │ 30 seconds │
│ port │ 3030 │
│ audio disabled │ true │
│ vision disabled │ false │
│ pause on DRM content │ false │
2026-04-21T09:09:26.929953Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)
│ audio engine │ Parakeet │
│ vad engine │ Silero │
│ data directory │ /Users/lukas/.screenpipe │
│ debug mode │ false │
│ telemetry │ true │
│ use pii removal │ true │
│ use all monitors │ true │
│ ignored windows │ ["Boosteroid"] │
│ included windows │ [] │
│ cloud sync │ disabled │
│ auto-destruct pid │ 0 │
│ deepgram key │ not set │
│ api auth │ enabled │
2026-04-21T09:09:26.933254Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh
│ encrypt secrets │ disabled │
│ retention days │ 14 │
├────────────────────────┼────────────────────────────────────┤
│ languages │ │
│ │ all languages │
├────────────────────────┼────────────────────────────────────┤
│ monitors │ │
│ │ id: 1 │
│ │ id: 2 │
├────────────────────────┼────────────────────────────────────┤
│ audio devices │ │
│ │ disabled │
└────────────────────────┴────────────────────────────────────┘
you are using local processing. all your data stays on your computer.
warning: telemetry is enabled. only error-level data will be sent.
to disable, use the --disable-telemetry flag.
check latest changes here: https://github.com/screenpipe/screenpipe/releases
2026-04-21T09:09:26.944288Z INFO screenpipe: starting UI event capture
2026-04-21T09:09:26.957412Z INFO screenpipe_engine::ui_recorder: Starting UI event capture
2026-04-21T09:09:26.970637Z INFO screenpipe_engine::ui_recorder: UI recording session started: a22e844d-73cb-42be-b71f-3243cecbaf5c
2026-04-21T09:09:26.970744Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)
2026-04-21T09:09:26.970792Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-20 06:09:26.970791 UTC to 2026-04-21 06:09:26.970791 UTC)
2026-04-21T09:09:26.971462Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)
2026-04-21T09:09:26.978353Z INFO screenpipe_engine::server: Server listening on [IP_ADDRESS]:3030
2026-04-21T09:09:26.982750Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030
2026-04-21T09:09:26.999552Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)
2026-04-21T09:09:26.999658Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)
2026-04-21T09:09:26.999699Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)
2026-04-21T09:09:27.033668Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-04-21T09:09:27.033695Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-04-21T09:09:27.033706Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)
2026-04-21T09:09:27.033708Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-04-21T09:09:27.033714Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)
2026-04-21T09:09:27.685135Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 2 excluded)
DOCKER
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
✳ Build full day activity summary from Screenpipe (node)
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
screenpipe"...
|
NULL
|
|
54532
|
1178
|
16
|
2026-04-20T09:03:06.048154+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776675786048_m2.jpg...
|
iTerm2
|
screenpipe"
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Last login: Mon Apr 20 10:16:41 on ttys009
Poetry Last login: Mon Apr 20 10:16:41 on ttys009
Poetry could not find a pyproject.toml file in /Users/lukas or its parents
Poetry could not find a pyproject.toml file in /Users/lukas or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-start
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-04-20T10:17:08.672567Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store
checking permissions...
screen recording: ok
accessibility: ok
2026-04-20T10:17:08.735636Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-04-20T10:17:09.168849Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-04-20T10:17:09.170474Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-04-20T10:17:09.170918Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-04-20T10:17:09.203704Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-04-20T10:17:09.203780Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-04-20T10:17:09.203962Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-04-20T10:17:09.203976Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-04-20T10:17:09.203934Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-04-20T10:17:09.204030Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-04-20T10:17:09.203954Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-04-20T10:17:09.215020Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))
2026-04-20T10:17:09.220127Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-04-20T10:17:09.220306Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-04-20T10:17:09.220863Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-04-20T10:17:09.221034Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-04-20T10:17:09.221177Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-04-20T10:17:09.221820Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary
2026-04-20T10:17:09.221839Z INFO screenpipe_core::pipes: loaded 6 pipes from "/Users/lukas/.screenpipe/pipes"
_
__________________ ___ ____ ____ (_____ ___
/ ___/ ___/ ___/ _ \/ _ \/ __ \ / __ \/ / __ \/ _ \
(__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/
/____/\___/_/ \___/\___/_/ /_/ / .___/_/ .___/\___/
/_/ /_/
power AI by everything you've seen, said or heard
open source | runs locally | developer friendly
┌────────────────────────┬────────────────────────────────────┐
│ setting │ value │
├────────────────────────┼────────────────────────────────────┤
│ audio chunk duration │ 30 seconds │
│ port │ 3030 │
│ audio disabled │ true │
│ vision disabled │ false │
│ pause on DRM content │ false │
│ audio engine │ Parakeet │
│ vad engine │ Silero │
│ data directory │ /Users/lukas/.screenpipe │
│ debug mode │ false │
│ telemetry │ true │
│ use pii removal │ true │
│ use all monitors │ true │
2026-04-20T10:17:09.223448Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)
│ ignored windows │ ["Boosteroid"] │
│ included windows │ [] │
│ cloud sync │ disabled │
│ auto-destruct pid │ 0 │
│ deepgram key │ not set │
│ api auth │ enabled │
2026-04-20T10:17:09.227535Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh
│ encrypt secrets │ disabled │
│ retention days │ 14 │
├────────────────────────┼────────────────────────────────────┤
│ languages │ │
│ │ all languages │
├────────────────────────┼────────────────────────────────────┤
│ monitors │ │
│ │ id: 1 │
│ │ id: 2 │
├────────────────────────┼────────────────────────────────────┤
│ audio devices │ │
│ │ disabled │
└────────────────────────┴────────────────────────────────────┘
you are using local processing. all your data stays on your computer.
warning: telemetry is enabled. only error-level data will be sent.
to disable, use the --disable-telemetry flag.
check latest changes here: https://github.com/screenpipe/screenpipe/releases
2026-04-20T10:17:09.240088Z INFO screenpipe: starting UI event capture
2026-04-20T10:17:09.253668Z INFO screenpipe_engine::ui_recorder: Starting UI event capture
2026-04-20T10:17:09.267973Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)
2026-04-20T10:17:09.268072Z INFO screenpipe_engine::ui_recorder: UI recording session started: f196d677-2a10-4dec-93e7-9dd9048a1d8e
2026-04-20T10:17:09.268173Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-19 07:17:09.268169 UTC to 2026-04-20 07:17:09.268169 UTC)
2026-04-20T10:17:09.268665Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)
2026-04-20T10:17:09.275204Z INFO screenpipe_engine::server: Server listening on [IP_ADDRESS]:3030
2026-04-20T10:17:09.280547Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030
2026-04-20T10:17:09.284876Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)
2026-04-20T10:17:09.284906Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)
2026-04-20T10:17:09.284942Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)
2026-04-20T10:17:09.316523Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-04-20T10:17:09.316557Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-04-20T10:17:09.316583Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)
2026-04-20T10:17:09.316603Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-04-20T10:17:09.975374Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 1 excluded)
2026-04-20T10:17:10.050320Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 1 excluded)
2026-04-20T10:17:10.109022Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=52481, dur=72ms
2026-04-20T10:17:10.197530Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=52482, dur=98ms
2026-04-20T10:17:10.926185Z WARN sqlx::query: summary="SELECT f.id, f.timestamp, f.offset_index, …" db.statement="\n\nSELECT\n f.id,\n f.timestamp,\n f.offset_index,\n COALESCE(\n SUBSTR(f.full_text, 1, 200),\n SUBSTR(f.accessibility_text, 1, 200),\n (\n SELECT\n SUBSTR(ot.text, 1, 200)\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as text,\n COALESCE(\n f.app_name,\n (\n SELECT\n ot.app_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as app_name,\n COALESCE(\n f.window_name,\n (\n SELECT\n ot.window_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as window_name,\n COALESCE(vc.device_name, f.device_name) as screen_device,\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\n COALESCE(vc.fps, 0.033) as chunk_fps,\n f.browser_url,\n f.machine_id\nFROM\n frames f\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\nWHERE\n f.timestamp >= ?1\n AND f.timestamp <= ?2\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\nORDER BY\n f.timestamp DESC,\n f.offset_index DESC\nLIMIT\n 10000\n" rows_affected=0 rows_returned=974 elapsed=1.657379083s
2026-04-20T10:17:10.928810Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 974 frame entries, coverage from 2026-04-19 07:17:09.268169 UTC
2026-04-20T10:17:36.605708Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5556097941235749601, trigger=visual_change)
2026-04-20T10:17:41.066595Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5621935701738529327, trigger=click)
2026-04-20T10:17:41.100078Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5621935701738529327, trigger=click)
2026-04-20T10:17:46.116429Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5621935701738529327, trigger=click)
2026-04-20T10:17:46.148269Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5621935701738529327, trigger=click)
2026-04-20T10:18:13.360099Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=145 elapsed=4.153777416s
2026-04-20T10:18:13.360276Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 145 eligible frames
2026-04-20T10:18:18.937138Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 90 frames, 15.2MB → 6.4MB (2.4x), 90 JPEGs deleted
2026-04-20T10:18:22.014745Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 53 frames, 9.4MB → 2.0MB (4.6x), 53 JPEGs deleted
2026-04-20T10:18:56.067965Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1399546062189663050, trigger=visual_change)
2026-04-20T10:18:56.859644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1399546062189663050, trigger=click)
2026-04-20T10:18:59.894779Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=[CREDIT_CARD], trigger=click)
2026-04-20T10:19:12.201247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5621935701738529327, trigger=visual_change)
2026-04-20T10:21:22.063263Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1399546062189663050, trigger=visual_change)
2026-04-20T10:21:35.657143Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5007800743451086391, trigger=visual_change)
2026-04-20T10:21:35.899663Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5007800743451086391, trigger=visual_change)
2026-04-20T10:21:38.094166Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5007800743451086391, trigger=click)
2026-04-20T10:21:38.149655Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5007800743451086391, trigger=click)
2026-04-20T10:21:38.947641Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5007800743451086391, trigger=click)
2026-04-20T10:21:38.991934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5007800743451086391, trigger=click)
2026-04-20T10:23:28.231526Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=2 elapsed=6.103025792s
2026-04-20T10:23:28.232845Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
2026-04-20T10:25:18.292352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=133505750984754566, trigger=click)
2026-04-20T10:25:33.154631Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:25:33.227754Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:25:34.786990Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)
2026-04-20T10:25:36.507114Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:25:36.556707Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:25:37.741060Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)
2026-04-20T10:25:39.466175Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:25:39.547293Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:26:02.072902Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2625703622302799632, trigger=visual_change)
2026-04-20T10:26:05.038754Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8395829747728977847, trigger=visual_change)
2026-04-20T10:26:10.400901Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:26:10.459718Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:26:14.431146Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)
2026-04-20T10:26:17.437868Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=visual_change)
2026-04-20T10:26:35.296162Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:26:35.339241Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:26:37.233387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:26:37.326557Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:00.031681Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:00.067495Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:01.950749Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:02.027316Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:13.045805Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:13.116607Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:15.272022Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:15.311144Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:17.880859Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:17.952143Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:21.645455Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:21.706889Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:36.304603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:36.380537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:37.368951Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:37.459157Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:40.420505Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:40.469217Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:41.179717Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)
2026-04-20T10:28:00.173884Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:00.251737Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:01.241028Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:01.288002Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:02.985445Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:03.078932Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:04.726087Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:04.770305Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:18.186992Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:18.272249Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:28.337807Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 14 eligible frames
2026-04-20T10:28:29.608030Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 0.7MB → 0.5MB (1.4x), 8 JPEGs deleted
2026-04-20T10:28:30.685845Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 6 frames, 1.2MB → 0.7MB (1.8x), 6 JPEGs deleted
2026-04-20T10:28:49.943477Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:49.984595Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:50.611087Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:50.628530Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:54.853245Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:57.739309Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)
2026-04-20T10:29:03.177558Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:03.231322Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:03.857989Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)
2026-04-20T10:29:04.993121Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:05.032838Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:06.923393Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)
2026-04-20T10:29:07.890421Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:07.960410Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:08.812301Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:26.656780Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:26.775833Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:27.602791Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:27.639583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:34.060332Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2389025338591748766, trigger=visual_change)
2026-04-20T10:29:37.050675Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2389025338591748766, trigger=click)
2026-04-20T10:29:37.085946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2389025338591748766, trigger=click)
2026-04-20T10:29:40.501396Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2389025338591748766, trigger=visual_change)
2026-04-20T10:29:43.751715Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)
2026-04-20T10:29:43.843367Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:44.468329Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:46.931137Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:49.616400Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:49.692474Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:50.298335Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)
2026-04-20T10:29:51.348506Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:51.436585Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:30:12.602958Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8200761366188343712, trigger=click)
2026-04-20T10:31:17.535958Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5166044279428207369, trigger=click)
2026-04-20T10:31:18.668547Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5166044279428207369, trigger=visual_change)
2026-04-20T10:31:19.518515Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5166044279428207369, trigger=click)
2026-04-20T10:31:19.681398Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5166044279428207369, trigger=click)
2026-04-20T10:31:21.044436Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5166044279428207369, trigger=click)
2026-04-20T10:31:21.086009Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5166044279428207369, trigger=click)
2026-04-20T10:31:21.680970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5166044279428207369, trigger=visual_change)
2026-04-20T10:32:05.428125Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=visual_change)
2026-04-20T10:32:07.004460Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=click)
2026-04-20T10:32:07.088172Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6999516640019587394, trigger=click)
2026-04-20T10:32:08.380482Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=visual_change)
2026-04-20T10:32:11.588306Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=click)
2026-04-20T10:32:11.689288Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6999516640019587394, trigger=click)
2026-04-20T10:32:12.318265Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6999516640019587394, trigger=click)
2026-04-20T10:32:12.381069Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=click)
2026-04-20T10:32:20.139124Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)
2026-04-20T10:32:20.175356Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)
2026-04-20T10:32:23.490851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=click)
2026-04-20T10:32:27.111949Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=visual_change)
2026-04-20T10:32:37.220458Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6999516640019587394, trigger=click)
2026-04-20T10:32:37.303363Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=click)
2026-04-20T10:32:38.554270Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=click)
2026-04-20T10:32:38.619116Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6999516640019587394, trigger=click)
2026-04-20T10:32:44.030894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=click)
2026-04-20T10:32:44.098803Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4838132251856752988, trigger=click)
2026-04-20T10:32:45.233990Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=click)
2026-04-20T10:32:45.238569Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4838132251856752988, trigger=click)
2026-04-20T10:32:48.884987Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=visual_change)
2026-04-20T10:32:51.832116Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)
2026-04-20T10:32:51.860110Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)
2026-04-20T10:32:53.754008Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)
2026-04-20T10:32:53.796899Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)
2026-04-20T10:32:55.635715Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)
2026-04-20T10:32:55.675828Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)
2026-04-20T10:32:57.084341Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)
2026-04-20T10:32:57.128626Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)
2026-04-20T10:32:58.841455Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)
2026-04-20T10:32:58.882031Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)
2026-04-20T10:33:00.965217Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)
2026-04-20T10:33:01.040922Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)
2026-04-20T10:33:02.591751Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)
2026-04-20T10:33:02.633245Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)
2026-04-20T10:33:03.324241Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)
2026-04-20T10:33:03.353493Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)
2026-04-20T10:33:05.802391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)
2026-04-20T10:33:05.849275Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)
2026-04-20T10:33:06.911518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=visual_change)
2026-04-20T10:33:14.484135Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=click)
2026-04-20T10:33:14.530843Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4838132251856752988, trigger=click)
2026-04-20T10:33:34.189406Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4838132251856752988, trigger=click)
2026-04-20T10:33:34.205308Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=94 elapsed=3.603974333s
2026-04-20T10:33:34.205567Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 94 eligible frames
2026-04-20T10:33:34.240884Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=visual_change)
2026-04-20T10:33:35.686677Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4838132251856752988, trigger=click)
2026-04-20T10:33:35.780825Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=click)
2026-04-20T10:33:37.134576Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 38 frames, 8.0MB → 4.4MB (1.8x), 38 JPEGs deleted
2026-04-20T10:33:40.850354Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 54 frames, 7.9MB → 3.4MB (2.3x), 54 JPEGs deleted
2026-04-20T10:33:55.372436Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=visual_change)
2026-04-20T10:35:01.169212Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)
2026-04-20T10:35:01.245363Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)
2026-04-20T10:35:02.392419Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=visual_change)
2026-04-20T10:35:05.029174Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)
2026-04-20T10:35:05.073174Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)
2026-04-20T10:35:07.222477Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)
2026-04-20T10:35:07.329020Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)
2026-04-20T10:35:08.707660Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=visual_change)
2026-04-20T10:35:27.744689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)
2026-04-20T10:35:27.812062Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)
2026-04-20T10:36:18.265456Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)
2026-04-20T10:36:18.437457Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)
2026-04-20T10:36:23.437791Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)
2026-04-20T10:36:23.487637Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)
2026-04-20T10:36:24.299771Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=visual_change)
2026-04-20T10:36:25.135894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)
2026-04-20T10:36:25.257064Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)
2026-04-20T10:36:27.317393Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=visual_change)
2026-04-20T10:36:50.815358Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)
2026-04-20T10:38:04.728644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4435744464912499495, trigger=visual_change)
2026-04-20T10:38:07.749721Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4435744464912499495, trigger=visual_change)
2026-04-20T10:38:13.318000Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=visual_change)
2026-04-20T10:38:13.969769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=visual_change)
2026-04-20T10:38:14.800566Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)
2026-04-20T10:38:14.834512Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)
2026-04-20T10:38:17.252696Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)
2026-04-20T10:38:17.328544Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)
2026-04-20T10:38:24.892322Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)
2026-04-20T10:38:24.943640Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)
2026-04-20T10:38:35.256001Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)
2026-04-20T10:38:35.322251Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)
2026-04-20T10:38:40.980335Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 88 eligible frames
2026-04-20T10:38:43.345927Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 6.6MB → 2.6MB (2.5x), 39 JPEGs deleted
2026-04-20T10:38:46.544495Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 47 frames, 7.3MB → 2.8MB (2.6x), 47 JPEGs deleted
2026-04-20T10:39:26.663352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=visual_change)
2026-04-20T10:39:29.597544Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)
2026-04-20T10:39:29.637879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)
2026-04-20T10:40:07.495065Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=visual_change)
2026-04-20T10:40:11.064923Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=visual_change)
2026-04-20T10:40:11.431065Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)
2026-04-20T10:40:12.068565Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=click)
2026-04-20T10:40:12.110719Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)
2026-04-20T10:40:14.179306Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=click)
2026-04-20T10:40:14.239361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)
2026-04-20T10:41:20.489623Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=click)
2026-04-20T10:43:48.184341Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=82 elapsed=1.63218175s
2026-04-20T10:43:48.184571Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 82 eligible frames
2026-04-20T10:43:50.234957Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 2.2MB → 0.1MB (16.1x), 30 JPEGs deleted
2026-04-20T10:43:55.342383Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 50 frames, 7.9MB → 3.2MB (2.5x), 50 JPEGs deleted
2026-04-20T10:44:06.225390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4079037146782974603, trigger=click)
2026-04-20T10:44:14.808445Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Slack, signals=2)
2026-04-20T10:44:19.110273Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-539912533838677065, trigger=click)
2026-04-20T10:44:19.155111Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-539912533838677065, trigger=click)
2026-04-20T10:44:19.832463Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Slack, signals=2, browser=false)
2026-04-20T10:44:19.834928Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=3, app=Slack, title=None)
2026-04-20T10:44:27.766267Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5412550087722993493, trigger=visual_change)
2026-04-20T10:44:39.799864Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5412550087722993493, trigger=visual_change)
2026-04-20T10:44:57.832108Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5412550087722993493, trigger=visual_change)
2026-04-20T10:44:57.940548Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5412550087722993493, trigger=click)
2026-04-20T10:44:58.605782Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5412550087722993493, trigger=click)
2026-04-20T10:44:58.637243Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5412550087722993493, trigger=click)
2026-04-20T10:45:00.807501Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5412550087722993493, trigger=visual_change)
2026-04-20T10:45:16.166619Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8594311245071571574, trigger=visual_change)
2026-04-20T10:45:56.391618Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)
2026-04-20T10:45:56.468127Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=click)
2026-04-20T10:46:03.056730Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8594311245071571574, trigger=visual_change)
2026-04-20T10:46:12.195973Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8594311245071571574, trigger=visual_change)
2026-04-20T10:46:17.958643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=click)
2026-04-20T10:46:18.011452Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)
2026-04-20T10:47:02.211065Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5662459752758049610, trigger=click)
2026-04-20T10:47:02.257675Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5662459752758049610, trigger=click)
2026-04-20T10:47:05.697096Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5662459752758049610, trigger=click)
2026-04-20T10:47:06.566076Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5662459752758049610, trigger=click)
2026-04-20T10:47:07.827281Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping captur...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"Last login: Mon Apr 20 10:16:41 on ttys009\n\nPoetry could not find a pyproject.toml file in /Users/lukas or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-start \ndetected hardware tier: Mid\nwarning: parakeet is not supported on this platform, using whisper-tiny instead\n2026-04-20T10:17:08.672567Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store\nchecking permissions...\n screen recording: ok\n accessibility: ok\n2026-04-20T10:17:08.735636Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6\n2026-04-20T10:17:09.168849Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor\n2026-04-20T10:17:09.170474Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)\n2026-04-20T10:17:09.170918Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)\n2026-04-20T10:17:09.203704Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true\n2026-04-20T10:17:09.203780Z INFO screenpipe: meeting detector enabled — independent of transcription mode\n2026-04-20T10:17:09.203962Z INFO screenpipe: API server listening on 127.0.0.1:3030 (localhost only)\n2026-04-20T10:17:09.203976Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key\n2026-04-20T10:17:09.203934Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)\n2026-04-20T10:17:09.204030Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager\n2026-04-20T10:17:09.203954Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)\n2026-04-20T10:17:09.215020Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-20T10:17:09.220127Z INFO screenpipe_core::pipes: loaded pipe: day-recap\n2026-04-20T10:17:09.220306Z INFO screenpipe_core::pipes: loaded pipe: standup-update\n2026-04-20T10:17:09.220863Z INFO screenpipe_core::pipes: loaded pipe: ai-habits\n2026-04-20T10:17:09.221034Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown\n2026-04-20T10:17:09.221177Z INFO screenpipe_core::pipes: loaded pipe: video-export\n2026-04-20T10:17:09.221820Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary\n2026-04-20T10:17:09.221839Z INFO screenpipe_core::pipes: loaded 6 pipes from \"/Users/lukas/.screenpipe/pipes\"\n\n\n\n _ \n __________________ ___ ____ ____ (_____ ___ \n / ___/ ___/ ___/ _ \\/ _ \\/ __ \\ / __ \\/ / __ \\/ _ \\\n (__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/\n/____/\\___/_/ \\___/\\___/_/ /_/ / .___/_/ .___/\\___/ \n /_/ /_/ \n\n\n\npower AI by everything you've seen, said or heard\nopen source | runs locally | developer friendly\n\n\n┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ true │\n│ vision disabled │ false │\n│ pause on DRM content │ false │\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n2026-04-20T10:17:09.223448Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n│ ignored windows │ [\"Boosteroid\"] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n│ api auth │ enabled │\n2026-04-20T10:17:09.227535Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n│ encrypt secrets │ disabled │\n│ retention days │ 14 │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ id: 1 │\n│ │ id: 2 │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ disabled │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-20T10:17:09.240088Z INFO screenpipe: starting UI event capture\n2026-04-20T10:17:09.253668Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-20T10:17:09.267973Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-20T10:17:09.268072Z INFO screenpipe_engine::ui_recorder: UI recording session started: f196d677-2a10-4dec-93e7-9dd9048a1d8e\n2026-04-20T10:17:09.268173Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-19 07:17:09.268169 UTC to 2026-04-20 07:17:09.268169 UTC)\n2026-04-20T10:17:09.268665Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-20T10:17:09.275204Z INFO screenpipe_engine::server: Server listening on 127.0.0.1:3030\n2026-04-20T10:17:09.280547Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-20T10:17:09.284876Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-20T10:17:09.284906Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-20T10:17:09.284942Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-20T10:17:09.316523Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-20T10:17:09.316557Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-20T10:17:09.316583Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)\n2026-04-20T10:17:09.316603Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-20T10:17:09.975374Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 1 excluded)\n2026-04-20T10:17:10.050320Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 1 excluded)\n2026-04-20T10:17:10.109022Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=52481, dur=72ms\n2026-04-20T10:17:10.197530Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=52482, dur=98ms\n2026-04-20T10:17:10.926185Z WARN sqlx::query: summary=\"SELECT f.id, f.timestamp, f.offset_index, …\" db.statement=\"\\n\\nSELECT\\n f.id,\\n f.timestamp,\\n f.offset_index,\\n COALESCE(\\n SUBSTR(f.full_text, 1, 200),\\n SUBSTR(f.accessibility_text, 1, 200),\\n (\\n SELECT\\n SUBSTR(ot.text, 1, 200)\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as text,\\n COALESCE(\\n f.app_name,\\n (\\n SELECT\\n ot.app_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as app_name,\\n COALESCE(\\n f.window_name,\\n (\\n SELECT\\n ot.window_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as window_name,\\n COALESCE(vc.device_name, f.device_name) as screen_device,\\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\\n COALESCE(vc.fps, 0.033) as chunk_fps,\\n f.browser_url,\\n f.machine_id\\nFROM\\n frames f\\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\\nWHERE\\n f.timestamp >= ?1\\n AND f.timestamp <= ?2\\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\\nORDER BY\\n f.timestamp DESC,\\n f.offset_index DESC\\nLIMIT\\n 10000\\n\" rows_affected=0 rows_returned=974 elapsed=1.657379083s\n2026-04-20T10:17:10.928810Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 974 frame entries, coverage from 2026-04-19 07:17:09.268169 UTC\n2026-04-20T10:17:36.605708Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5556097941235749601, trigger=visual_change)\n2026-04-20T10:17:41.066595Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5621935701738529327, trigger=click)\n2026-04-20T10:17:41.100078Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5621935701738529327, trigger=click)\n2026-04-20T10:17:46.116429Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5621935701738529327, trigger=click)\n2026-04-20T10:17:46.148269Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5621935701738529327, trigger=click)\n2026-04-20T10:18:13.360099Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=145 elapsed=4.153777416s\n2026-04-20T10:18:13.360276Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 145 eligible frames\n2026-04-20T10:18:18.937138Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 90 frames, 15.2MB → 6.4MB (2.4x), 90 JPEGs deleted\n2026-04-20T10:18:22.014745Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 53 frames, 9.4MB → 2.0MB (4.6x), 53 JPEGs deleted\n2026-04-20T10:18:56.067965Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1399546062189663050, trigger=visual_change)\n2026-04-20T10:18:56.859644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1399546062189663050, trigger=click)\n2026-04-20T10:18:59.894779Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7926243118367575, trigger=click)\n2026-04-20T10:19:12.201247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5621935701738529327, trigger=visual_change)\n2026-04-20T10:21:22.063263Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1399546062189663050, trigger=visual_change)\n2026-04-20T10:21:35.657143Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5007800743451086391, trigger=visual_change)\n2026-04-20T10:21:35.899663Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5007800743451086391, trigger=visual_change)\n2026-04-20T10:21:38.094166Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5007800743451086391, trigger=click)\n2026-04-20T10:21:38.149655Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5007800743451086391, trigger=click)\n2026-04-20T10:21:38.947641Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5007800743451086391, trigger=click)\n2026-04-20T10:21:38.991934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5007800743451086391, trigger=click)\n2026-04-20T10:23:28.231526Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=2 elapsed=6.103025792s\n2026-04-20T10:23:28.232845Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-20T10:25:18.292352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=133505750984754566, trigger=click)\n2026-04-20T10:25:33.154631Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:25:33.227754Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:25:34.786990Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)\n2026-04-20T10:25:36.507114Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:25:36.556707Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:25:37.741060Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)\n2026-04-20T10:25:39.466175Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:25:39.547293Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:26:02.072902Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2625703622302799632, trigger=visual_change)\n2026-04-20T10:26:05.038754Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8395829747728977847, trigger=visual_change)\n2026-04-20T10:26:10.400901Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:26:10.459718Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:26:14.431146Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)\n2026-04-20T10:26:17.437868Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=visual_change)\n2026-04-20T10:26:35.296162Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:26:35.339241Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:26:37.233387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:26:37.326557Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:00.031681Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:00.067495Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:01.950749Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:02.027316Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:13.045805Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:13.116607Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:15.272022Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:15.311144Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:17.880859Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:17.952143Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:21.645455Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:21.706889Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:36.304603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:36.380537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:37.368951Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:37.459157Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:40.420505Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:40.469217Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:41.179717Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)\n2026-04-20T10:28:00.173884Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:00.251737Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:01.241028Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:01.288002Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:02.985445Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:03.078932Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:04.726087Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:04.770305Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:18.186992Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:18.272249Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:28.337807Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 14 eligible frames\n2026-04-20T10:28:29.608030Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 0.7MB → 0.5MB (1.4x), 8 JPEGs deleted\n2026-04-20T10:28:30.685845Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 6 frames, 1.2MB → 0.7MB (1.8x), 6 JPEGs deleted\n2026-04-20T10:28:49.943477Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:49.984595Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:50.611087Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:50.628530Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:54.853245Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:57.739309Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)\n2026-04-20T10:29:03.177558Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:03.231322Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:03.857989Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)\n2026-04-20T10:29:04.993121Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:05.032838Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:06.923393Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)\n2026-04-20T10:29:07.890421Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:07.960410Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:08.812301Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:26.656780Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:26.775833Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:27.602791Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:27.639583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:34.060332Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2389025338591748766, trigger=visual_change)\n2026-04-20T10:29:37.050675Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2389025338591748766, trigger=click)\n2026-04-20T10:29:37.085946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2389025338591748766, trigger=click)\n2026-04-20T10:29:40.501396Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2389025338591748766, trigger=visual_change)\n2026-04-20T10:29:43.751715Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)\n2026-04-20T10:29:43.843367Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:44.468329Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:46.931137Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:49.616400Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:49.692474Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:50.298335Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)\n2026-04-20T10:29:51.348506Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:51.436585Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:30:12.602958Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8200761366188343712, trigger=click)\n2026-04-20T10:31:17.535958Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5166044279428207369, trigger=click)\n2026-04-20T10:31:18.668547Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5166044279428207369, trigger=visual_change)\n2026-04-20T10:31:19.518515Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5166044279428207369, trigger=click)\n2026-04-20T10:31:19.681398Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5166044279428207369, trigger=click)\n2026-04-20T10:31:21.044436Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5166044279428207369, trigger=click)\n2026-04-20T10:31:21.086009Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5166044279428207369, trigger=click)\n2026-04-20T10:31:21.680970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5166044279428207369, trigger=visual_change)\n2026-04-20T10:32:05.428125Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=visual_change)\n2026-04-20T10:32:07.004460Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=click)\n2026-04-20T10:32:07.088172Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6999516640019587394, trigger=click)\n2026-04-20T10:32:08.380482Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=visual_change)\n2026-04-20T10:32:11.588306Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=click)\n2026-04-20T10:32:11.689288Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6999516640019587394, trigger=click)\n2026-04-20T10:32:12.318265Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6999516640019587394, trigger=click)\n2026-04-20T10:32:12.381069Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=click)\n2026-04-20T10:32:20.139124Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:32:20.175356Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:32:23.490851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=click)\n2026-04-20T10:32:27.111949Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=visual_change)\n2026-04-20T10:32:37.220458Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6999516640019587394, trigger=click)\n2026-04-20T10:32:37.303363Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=click)\n2026-04-20T10:32:38.554270Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=click)\n2026-04-20T10:32:38.619116Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6999516640019587394, trigger=click)\n2026-04-20T10:32:44.030894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=click)\n2026-04-20T10:32:44.098803Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4838132251856752988, trigger=click)\n2026-04-20T10:32:45.233990Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=click)\n2026-04-20T10:32:45.238569Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4838132251856752988, trigger=click)\n2026-04-20T10:32:48.884987Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=visual_change)\n2026-04-20T10:32:51.832116Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:32:51.860110Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:32:53.754008Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:32:53.796899Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:32:55.635715Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:32:55.675828Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:32:57.084341Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:32:57.128626Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:32:58.841455Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:32:58.882031Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:33:00.965217Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:33:01.040922Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:33:02.591751Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:33:02.633245Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:33:03.324241Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:33:03.353493Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:33:05.802391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:33:05.849275Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:33:06.911518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=visual_change)\n2026-04-20T10:33:14.484135Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=click)\n2026-04-20T10:33:14.530843Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4838132251856752988, trigger=click)\n2026-04-20T10:33:34.189406Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4838132251856752988, trigger=click)\n2026-04-20T10:33:34.205308Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=94 elapsed=3.603974333s\n2026-04-20T10:33:34.205567Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 94 eligible frames\n2026-04-20T10:33:34.240884Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=visual_change)\n2026-04-20T10:33:35.686677Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4838132251856752988, trigger=click)\n2026-04-20T10:33:35.780825Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=click)\n2026-04-20T10:33:37.134576Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 38 frames, 8.0MB → 4.4MB (1.8x), 38 JPEGs deleted\n2026-04-20T10:33:40.850354Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 54 frames, 7.9MB → 3.4MB (2.3x), 54 JPEGs deleted\n2026-04-20T10:33:55.372436Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=visual_change)\n2026-04-20T10:35:01.169212Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:35:01.245363Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:35:02.392419Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=visual_change)\n2026-04-20T10:35:05.029174Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:35:05.073174Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:35:07.222477Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:35:07.329020Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:35:08.707660Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=visual_change)\n2026-04-20T10:35:27.744689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:35:27.812062Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:36:18.265456Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:36:18.437457Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:36:23.437791Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:36:23.487637Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:36:24.299771Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=visual_change)\n2026-04-20T10:36:25.135894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:36:25.257064Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:36:27.317393Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=visual_change)\n2026-04-20T10:36:50.815358Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:38:04.728644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4435744464912499495, trigger=visual_change)\n2026-04-20T10:38:07.749721Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4435744464912499495, trigger=visual_change)\n2026-04-20T10:38:13.318000Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=visual_change)\n2026-04-20T10:38:13.969769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=visual_change)\n2026-04-20T10:38:14.800566Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:38:14.834512Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:38:17.252696Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:38:17.328544Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:38:24.892322Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:38:24.943640Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:38:35.256001Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:38:35.322251Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:38:40.980335Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 88 eligible frames\n2026-04-20T10:38:43.345927Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 6.6MB → 2.6MB (2.5x), 39 JPEGs deleted\n2026-04-20T10:38:46.544495Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 47 frames, 7.3MB → 2.8MB (2.6x), 47 JPEGs deleted\n2026-04-20T10:39:26.663352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=visual_change)\n2026-04-20T10:39:29.597544Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:39:29.637879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:40:07.495065Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=visual_change)\n2026-04-20T10:40:11.064923Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=visual_change)\n2026-04-20T10:40:11.431065Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)\n2026-04-20T10:40:12.068565Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=click)\n2026-04-20T10:40:12.110719Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)\n2026-04-20T10:40:14.179306Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=click)\n2026-04-20T10:40:14.239361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)\n2026-04-20T10:41:20.489623Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=click)\n2026-04-20T10:43:48.184341Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=82 elapsed=1.63218175s\n2026-04-20T10:43:48.184571Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 82 eligible frames\n2026-04-20T10:43:50.234957Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 2.2MB → 0.1MB (16.1x), 30 JPEGs deleted\n2026-04-20T10:43:55.342383Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 50 frames, 7.9MB → 3.2MB (2.5x), 50 JPEGs deleted\n2026-04-20T10:44:06.225390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4079037146782974603, trigger=click)\n2026-04-20T10:44:14.808445Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Slack, signals=2)\n2026-04-20T10:44:19.110273Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-539912533838677065, trigger=click)\n2026-04-20T10:44:19.155111Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-539912533838677065, trigger=click)\n2026-04-20T10:44:19.832463Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Slack, signals=2, browser=false)\n2026-04-20T10:44:19.834928Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=3, app=Slack, title=None)\n2026-04-20T10:44:27.766267Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5412550087722993493, trigger=visual_change)\n2026-04-20T10:44:39.799864Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5412550087722993493, trigger=visual_change)\n2026-04-20T10:44:57.832108Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5412550087722993493, trigger=visual_change)\n2026-04-20T10:44:57.940548Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5412550087722993493, trigger=click)\n2026-04-20T10:44:58.605782Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5412550087722993493, trigger=click)\n2026-04-20T10:44:58.637243Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5412550087722993493, trigger=click)\n2026-04-20T10:45:00.807501Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5412550087722993493, trigger=visual_change)\n2026-04-20T10:45:16.166619Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8594311245071571574, trigger=visual_change)\n2026-04-20T10:45:56.391618Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)\n2026-04-20T10:45:56.468127Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=click)\n2026-04-20T10:46:03.056730Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8594311245071571574, trigger=visual_change)\n2026-04-20T10:46:12.195973Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8594311245071571574, trigger=visual_change)\n2026-04-20T10:46:17.958643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=click)\n2026-04-20T10:46:18.011452Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)\n2026-04-20T10:47:02.211065Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5662459752758049610, trigger=click)\n2026-04-20T10:47:02.257675Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5662459752758049610, trigger=click)\n2026-04-20T10:47:05.697096Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5662459752758049610, trigger=click)\n2026-04-20T10:47:06.566076Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5662459752758049610, trigger=click)\n2026-04-20T10:47:07.827281Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5662459752758049610, trigger=click)\n2026-04-20T10:47:40.405629Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1571710488795535897, trigger=visual_change)\n2026-04-20T10:47:49.440068Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1557699132616565226, trigger=visual_change)\n2026-04-20T10:47:52.572612Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1557699132616565226, trigger=visual_change)\n2026-04-20T10:47:58.689857Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4346016681512348210, trigger=visual_change)\n2026-04-20T10:48:07.634676Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1557699132616565226, trigger=visual_change)\n2026-04-20T10:48:13.649498Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1557699132616565226, trigger=visual_change)\n2026-04-20T10:48:19.703789Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1557699132616565226, trigger=visual_change)\n2026-04-20T10:48:52.948919Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1420790294153145145, trigger=visual_change)\n2026-04-20T10:48:55.891318Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1420790294153145145, trigger=visual_change)\n2026-04-20T10:48:57.225561Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=44 elapsed=1.875780625s\n2026-04-20T10:48:57.225944Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 44 eligible frames\n2026-04-20T10:48:58.265979Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 1.2MB → 0.1MB (11.0x), 16 JPEGs deleted\n2026-04-20T10:49:00.653282Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.4MB → 2.7MB (1.6x), 26 JPEGs deleted\n2026-04-20T10:49:32.916674Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1420790294153145145, trigger=visual_change)\n2026-04-20T10:49:36.017852Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1420790294153145145, trigger=visual_change)\n2026-04-20T10:49:38.836425Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5221054553112749208, trigger=visual_change)\n2026-04-20T10:49:42.792319Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Slack, id=3, grace=30s)\n2026-04-20T10:49:59.717149Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8395829747728977847, trigger=visual_change)\n2026-04-20T10:50:05.893490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9218245258814534702, trigger=visual_change)\n2026-04-20T10:50:13.558613Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Idle (timeout=30s, app=Slack, id=3)\n2026-04-20T10:50:13.776444Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting ended (id=3)\n2026-04-20T10:50:30.296877Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8395829747728977847, trigger=visual_change)\n2026-04-20T10:50:31.009005Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8395829747728977847, trigger=visual_change)\n2026-04-20T10:50:35.710448Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2997155127408295500, trigger=click)\n2026-04-20T10:50:39.411258Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2997155127408295500, trigger=visual_change)\n2026-04-20T10:50:42.426737Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2997155127408295500, trigger=visual_change)\n2026-04-20T10:50:44.695606Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2997155127408295500, trigger=click)\n2026-04-20T10:51:10.075065Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4346016681512348210, trigger=click)\n2026-04-20T10:51:10.162124Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4346016681512348210, trigger=click)\n2026-04-20T10:51:29.550593Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4346016681512348210, trigger=click)\n2026-04-20T10:51:33.066966Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=click)\n2026-04-20T10:51:34.845466Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)\n2026-04-20T10:51:34.910786Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=click)\n2026-04-20T10:52:43.260524Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8163403335606540090, trigger=click)\n2026-04-20T10:52:43.340992Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8163403335606540090, trigger=click)\n2026-04-20T10:52:48.268094Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=159194235337566135, trigger=visual_change)\n2026-04-20T10:52:51.322127Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=159194235337566135, trigger=click)\n2026-04-20T10:52:51.391904Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=159194235337566135, trigger=click)\n2026-04-20T10:53:43.515437Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-813068054433851605, trigger=visual_change)\n2026-04-20T10:54:05.099685Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=48 elapsed=4.409245042s\n2026-04-20T10:54:05.099971Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 48 eligible frames\n2026-04-20T10:54:06.503270Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 1.6MB → 0.1MB (20.0x), 22 JPEGs deleted\n2026-04-20T10:54:08.444918Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.3MB → 2.1MB (2.0x), 24 JPEGs deleted\n2026-04-20T10:54:35.036274Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8163403335606540090, trigger=visual_change)\n2026-04-20T10:54:35.171848Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8163403335606540090, trigger=visual_change)\n2026-04-20T10:54:36.475203Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8163403335606540090, trigger=click)\n2026-04-20T10:54:36.541896Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8163403335606540090, trigger=click)\n2026-04-20T10:54:37.380023Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8163403335606540090, trigger=click)\n2026-04-20T10:54:37.445729Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8163403335606540090, trigger=click)\n2026-04-20T10:55:03.555125Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8163403335606540090, trigger=click)\n2026-04-20T10:55:03.640618Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8163403335606540090, trigger=click)\n2026-04-20T10:55:19.315053Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:30.302435Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:30.370524Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:33.629673Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:33.680190Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:34.225728Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=visual_change)\n2026-04-20T10:55:36.487309Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:36.553300Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:37.266499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=visual_change)\n2026-04-20T10:55:41.784038Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:41.805901Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:43.326649Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=visual_change)\n2026-04-20T10:55:45.080360Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:45.118718Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:46.357519Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=visual_change)\n2026-04-20T10:55:47.480883Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:47.537710Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:49.291790Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:49.326846Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:52.992748Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8138726509372139947, trigger=click)\n2026-04-20T10:55:54.240859Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:55.950255Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:55.991282Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:58.736523Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:58.802298Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:59.902655Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:59.944572Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:56:07.794877Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5942962546669254600, trigger=click)\n2026-04-20T10:56:07.851635Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5942962546669254600, trigger=click)\n2026-04-20T10:56:48.563398Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7990927160457220959, trigger=visual_change)\n2026-04-20T10:57:32.104953Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=9150043812320386523, trigger=click)\n2026-04-20T10:57:32.144287Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9150043812320386523, trigger=click)\n2026-04-20T10:58:28.399190Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260395566585322026, trigger=click)\n2026-04-20T10:58:28.442157Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260395566585322026, trigger=click)\n2026-04-20T10:59:08.570536Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 81 eligible frames\n2026-04-20T10:59:10.567201Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 33 frames, 2.4MB → 0.1MB (18.5x), 33 JPEGs deleted\n2026-04-20T10:59:14.364266Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 46 frames, 8.7MB → 4.7MB (1.9x), 46 JPEGs deleted\n2026-04-20T10:59:58.111173Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5381531899229729064, trigger=click)\n2026-04-20T10:59:58.142222Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5381531899229729064, trigger=click)\n2026-04-20T11:00:36.141673Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9207198899289182946, trigger=click)\n2026-04-20T11:00:36.183623Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9207198899289182946, trigger=click)\n2026-04-20T11:01:42.348670Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8842760806676108827, trigger=click)\n2026-04-20T11:01:46.579137Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3692713192977136429, trigger=visual_change)\n2026-04-20T11:02:24.402529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3769719286299940254, trigger=visual_change)\n2026-04-20T11:03:17.195875Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-838946827693869464, trigger=click)\n2026-04-20T11:04:18.906189Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=visual_change)\n2026-04-20T11:04:19.288145Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=154 elapsed=4.909861708s\n2026-04-20T11:04:19.288239Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 154 eligible frames\n2026-04-20T11:04:21.929712Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=visual_change)\n2026-04-20T11:04:23.364885Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 71 frames, 5.8MB → 0.9MB (6.6x), 71 JPEGs deleted\n2026-04-20T11:04:24.973084Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=visual_change)\n2026-04-20T11:04:27.204317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2406143553526754098, trigger=click)\n2026-04-20T11:04:27.256852Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T11:04:29.050253Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 81 frames, 12.7MB → 5.0MB (2.5x), 81 JPEGs deleted\n2026-04-20T11:04:33.163125Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2340404083908403127, trigger=click)\n2026-04-20T11:04:54.879253Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2453433494247683376, trigger=click)\n2026-04-20T11:05:12.089056Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4318090145782937453, trigger=visual_change)\n2026-04-20T11:05:13.095729Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4318090145782937453, trigger=click)\n2026-04-20T11:05:15.103808Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4318090145782937453, trigger=visual_change)\n2026-04-20T11:05:16.310357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4318090145782937453, trigger=click)\n2026-04-20T11:05:16.383203Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4318090145782937453, trigger=click)\n2026-04-20T11:05:18.172083Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4318090145782937453, trigger=visual_change)\n2026-04-20T11:05:18.982699Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4318090145782937453, trigger=click)\n2026-04-20T11:05:19.029420Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4318090145782937453, trigger=click)\n2026-04-20T11:05:21.205027Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4318090145782937453, trigger=visual_change)\n2026-04-20T11:05:30.714779Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4318090145782937453, trigger=visual_change)\n2026-04-20T11:05:33.817783Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4318090145782937453, trigger=visual_change)\n2026-04-20T11:05:36.802961Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4318090145782937453, trigger=visual_change)\n2026-04-20T11:05:39.813482Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4318090145782937453, trigger=visual_change)\n2026-04-20T11:09:00.185306Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=visual_change)\n2026-04-20T11:09:03.706142Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T11:09:03.822044Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2406143553526754098, trigger=click)\n2026-04-20T11:09:33.034069Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=96 elapsed=3.973269334s\n2026-04-20T11:09:33.034177Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 96 eligible frames\n2026-04-20T11:09:35.558135Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 42 frames, 3.2MB → 0.2MB (16.4x), 42 JPEGs deleted\n2026-04-20T11:09:39.031687Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 52 frames, 8.1MB → 3.6MB (2.2x), 52 JPEGs deleted\n2026-04-20T11:10:16.370525Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)\n2026-04-20T11:10:19.252001Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)\n2026-04-20T11:10:19.806142Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)\n2026-04-20T11:13:16.227087Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T11:13:20.596574Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T11:13:20.661227Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T11:13:23.902473Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5954939318163518708, trigger=click)\n2026-04-20T11:13:24.516393Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5954939318163518708, trigger=click)\n2026-04-20T11:13:24.587417Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5954939318163518708, trigger=click)\n2026-04-20T11:13:27.637011Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1070969666032687649, trigger=visual_change)\n2026-04-20T11:13:27.807847Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1070969666032687649, trigger=click)\n2026-04-20T11:13:30.623373Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1070969666032687649, trigger=visual_change)\n2026-04-20T11:13:56.362486Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=click)\n2026-04-20T11:14:22.232710Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2535035496832215689, trigger=click)\n2026-04-20T11:14:40.999263Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=128 elapsed=1.951355041s\n2026-04-20T11:14:40.999365Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 128 eligible frames\n2026-04-20T11:14:43.717104Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 47 frames, 3.5MB → 0.2MB (22.4x), 47 JPEGs deleted\n2026-04-20T11:14:49.191609Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 79 frames, 11.9MB → 6.7MB (1.8x), 79 JPEGs deleted\n2026-04-20T11:15:53.591341Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6836450022093940164, trigger=click)\n2026-04-20T11:15:54.531935Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6836450022093940164, trigger=visual_change)\n2026-04-20T11:16:23.234607Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7020057609110231149, trigger=click)\n2026-04-20T11:16:24.573477Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7020057609110231149, trigger=click)\n2026-04-20T11:16:24.645049Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7020057609110231149, trigger=click)\n2026-04-20T11:18:31.210018Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6218747896970871837, trigger=visual_change)\n2026-04-20T11:18:58.718719Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8395829747728977847, trigger=click)\n2026-04-20T11:18:58.773796Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8395829747728977847, trigger=click)\n2026-04-20T11:19:17.843843Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-546694883753369466, trigger=visual_change)\n2026-04-20T11:19:51.764181Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6984505730173949536, trigger=click)\n2026-04-20T11:19:51.846529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6984505730173949536, trigger=click)\n2026-04-20T11:19:52.311562Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6984505730173949536, trigger=visual_change)\n2026-04-20T11:19:55.528956Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=118 elapsed=6.325625375s\n2026-04-20T11:19:55.530818Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 118 eligible frames\n2026-04-20T11:19:59.068315Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 45 frames, 3.9MB → 0.7MB (5.6x), 45 JPEGs deleted\n2026-04-20T11:20:10.114363Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 71 frames, 10.3MB → 5.8MB (1.8x), 71 JPEGs deleted\n2026-04-20T11:22:03.257339Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2781687757078580755, trigger=visual_change)\n2026-04-20T11:22:06.280970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2781687757078580755, trigger=visual_change)\n2026-04-20T11:23:00.888485Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2781687757078580755, trigger=visual_change)\n2026-04-20T11:23:04.422725Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4258649287240007454, trigger=click)\n2026-04-20T11:23:06.787493Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4258649287240007454, trigger=visual_change)\n2026-04-20T11:23:26.757727Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-971663991893619042, trigger=click)\n2026-04-20T11:23:27.530382Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-971663991893619042, trigger=click)\n2026-04-20T11:23:27.629616Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-971663991893619042, trigger=click)\n2026-04-20T11:24:20.636646Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=142107347844094212, trigger=visual_change)\n2026-04-20T11:25:11.487497Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=85 elapsed=1.352837292s\n2026-04-20T11:25:11.487736Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 85 eligible frames\n2026-04-20T11:25:13.473260Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8313898756799688709, trigger=click)\n2026-04-20T11:25:13.930021Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8313898756799688709, trigger=click)\n2026-04-20T11:25:14.300911Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 5.7MB → 0.9MB (6.4x), 30 JPEGs deleted\n2026-04-20T11:25:22.765819Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 53 frames, 7.8MB → 3.6MB (2.1x), 53 JPEGs deleted\n2026-04-20T11:25:48.941557Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2643788392031168472, trigger=click)\n2026-04-20T11:25:52.682820Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2643788392031168472, trigger=visual_change)\n2026-04-20T11:27:06.674474Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:27:22.265798Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:27:34.544704Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8004693622225847515, trigger=visual_change)\n2026-04-20T11:27:35.112605Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:27:35.773265Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:27:53.132990Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8004693622225847515, trigger=visual_change)\n2026-04-20T11:27:53.439763Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:27:54.884154Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:27:54.911699Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:27:55.792546Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:27:55.856492Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:27:56.377118Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:27:56.421804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:27:57.385862Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:27:57.433093Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:28:15.099335Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:28:18.161712Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3897675075138840599, trigger=visual_change)\n2026-04-20T11:28:24.420260Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:29:09.322794Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6684718794164531158, trigger=visual_change)\n2026-04-20T11:29:12.232781Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6684718794164531158, trigger=visual_change)\n2026-04-20T11:29:13.714491Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6684718794164531158, trigger=click)\n2026-04-20T11:29:15.297078Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6684718794164531158, trigger=visual_change)\n2026-04-20T11:29:18.279439Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6684718794164531158, trigger=visual_change)\n2026-04-20T11:29:21.288709Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6684718794164531158, trigger=visual_change)\n2026-04-20T11:29:36.889190Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1183751968977138305, trigger=click)\n2026-04-20T11:29:36.935914Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1183751968977138305, trigger=click)\n2026-04-20T11:29:44.265375Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1744865349186139800, trigger=click)\n2026-04-20T11:29:45.438891Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1744865349186139800, trigger=visual_change)\n2026-04-20T11:29:48.445512Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1744865349186139800, trigger=visual_change)\n2026-04-20T11:30:00.582835Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=214677970165296243, trigger=click)\n2026-04-20T11:30:00.930875Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=214677970165296243, trigger=visual_change)\n2026-04-20T11:30:03.983533Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=214677970165296243, trigger=visual_change)\n2026-04-20T11:30:25.190331Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=144 elapsed=2.413845166s\n2026-04-20T11:30:25.191014Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 144 eligible frames\n2026-04-20T11:30:28.644851Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 59 frames, 8.9MB → 1.9MB (4.8x), 59 JPEGs deleted\n2026-04-20T11:30:34.292740Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 83 frames, 12.0MB → 6.2MB (1.9x), 83 JPEGs deleted\n2026-04-20T11:30:49.731059Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6771186432168714093, trigger=visual_change)\n2026-04-20T11:30:52.714807Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6771186432168714093, trigger=click)\n2026-04-20T11:30:52.764209Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6771186432168714093, trigger=click)\n2026-04-20T11:30:53.030418Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6771186432168714093, trigger=visual_change)\n2026-04-20T11:30:56.085725Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6771186432168714093, trigger=visual_change)\n2026-04-20T11:30:57.236790Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6771186432168714093, trigger=visual_change)\n2026-04-20T11:31:57.345054Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5799305003809379240, trigger=visual_change)\n2026-04-20T11:32:34.844223Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5799305003809379240, trigger=click)\n2026-04-20T11:33:01.295072Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2331312136567929026, trigger=visual_change)\n2026-04-20T11:33:02.667241Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2331312136567929026, trigger=visual_change)\n2026-04-20T11:33:40.313987Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Slack, signals=2)\n2026-04-20T11:33:40.621030Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6376510702070023487, trigger=visual_change)\n2026-04-20T11:33:45.357469Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Slack, signals=2, browser=false)\n2026-04-20T11:33:45.361133Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=4, app=Slack, title=None)\n2026-04-20T11:33:50.248270Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2305043043211837966, trigger=visual_change)\n2026-04-20T11:33:55.493928Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Slack, id=4, grace=30s)\n2026-04-20T11:34:26.223427Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Idle (timeout=30s, app=Slack, id=4)\n2026-04-20T11:34:26.415026Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting ended (id=4)\n2026-04-20T11:35:35.008400Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 86 eligible frames\n2026-04-20T11:35:37.449048Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 35 frames, 8.2MB → 2.2MB (3.8x), 35 JPEGs deleted\n2026-04-20T11:35:40.752978Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 5.9MB → 3.0MB (2.0x), 49 JPEGs deleted\n2026-04-20T11:35:57.468649Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Slack, signals=2)\n2026-04-20T11:36:02.566427Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Slack, signals=2, browser=false)\n2026-04-20T11:36:02.570096Z INFO screenpipe_engine::meeting_detector: meeting v2: reopened recent meeting (id=4, app=Slack)\n2026-04-20T11:36:11.034023Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7051916521891946593, trigger=click)\n2026-04-20T11:36:12.782467Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7051916521891946593, trigger=visual_change)\n2026-04-20T11:36:18.849412Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8299397926977483522, trigger=visual_change)\n2026-04-20T11:36:31.060551Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4229935992045172066, trigger=visual_change)\n2026-04-20T11:36:40.745263Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6895312360846969419, trigger=visual_change)\n2026-04-20T11:36:51.141301Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5575905127528149150, trigger=click)\n2026-04-20T11:37:10.853815Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1985697427151442712, trigger=click)\n2026-04-20T11:37:10.900023Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1985697427151442712, trigger=click)\n2026-04-20T11:37:23.414384Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9098743064037159085, trigger=visual_change)\n2026-04-20T11:37:27.259925Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7267777192673742381, trigger=click)\n2026-04-20T11:37:27.289716Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7267777192673742381, trigger=click)\n2026-04-20T11:37:29.306353Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7267777192673742381, trigger=click)\n2026-04-20T11:37:29.353781Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7267777192673742381, trigger=click)\n2026-04-20T11:37:29.703017Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7267777192673742381, trigger=visual_change)\n2026-04-20T11:37:48.167442Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6972880851711695642, trigger=visual_change)\n2026-04-20T11:37:51.131020Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7497803955284800173, trigger=visual_change)\n2026-04-20T11:37:51.606964Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7497803955284800173, trigger=click)\n2026-04-20T11:38:03.649693Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9147325036326340894, trigger=visual_change)\n2026-04-20T11:38:03.797616Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9147325036326340894, trigger=click)\n2026-04-20T11:38:15.258513Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7947348293642214978, trigger=click)\n2026-04-20T11:38:15.324902Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7947348293642214978, trigger=click)\n2026-04-20T11:38:21.259898Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=181147586093327944, trigger=click)\n2026-04-20T11:38:27.343543Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7497803955284800173, trigger=click)\n2026-04-20T11:38:27.389951Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7497803955284800173, trigger=click)\n2026-04-20T11:38:30.491260Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7497803955284800173, trigger=click)\n2026-04-20T11:38:30.546381Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7497803955284800173, trigger=click)\n2026-04-20T11:38:37.600021Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6921034694780173826, trigger=visual_change)\n2026-04-20T11:38:50.355690Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5480310180026203579, trigger=click)\n2026-04-20T11:38:50.404005Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5480310180026203579, trigger=click)\n2026-04-20T11:39:08.307526Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7497803955284800173, trigger=visual_change)\n2026-04-20T11:39:09.091514Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7497803955284800173, trigger=click)\n2026-04-20T11:39:09.161743Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7497803955284800173, trigger=click)\n2026-04-20T11:39:20.638047Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4229935992045172066, trigger=visual_change)\n2026-04-20T11:39:23.591141Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4229935992045172066, trigger=visual_change)\n2026-04-20T11:39:29.583292Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4229935992045172066, trigger=visual_change)\n2026-04-20T11:39:37.360066Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4229935992045172066, trigger=click)\n2026-04-20T11:39:44.814358Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6671609150327009848, trigger=visual_change)\n2026-04-20T11:39:45.924485Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6671609150327009848, trigger=click)\n2026-04-20T11:39:45.996345Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6671609150327009848, trigger=click)\n2026-04-20T11:40:20.394394Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1671671177896523754, trigger=click)\n2026-04-20T11:40:21.375675Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1671671177896523754, trigger=visual_change)\n2026-04-20T11:40:23.202671Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3155554097147706318, trigger=visual_change)\n2026-04-20T11:40:43.253092Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4229935992045172066, trigger=visual_change)\n2026-04-20T11:40:43.695721Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=131 elapsed=2.9322245s\n2026-04-20T11:40:43.695827Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 131 eligible frames\n2026-04-20T11:40:47.649371Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 61 frames, 7.4MB → 2.5MB (2.9x), 61 JPEGs deleted\n2026-04-20T11:40:47.781508Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6895312360846969419, trigger=click)\n2026-04-20T11:40:52.046914Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 68 frames, 9.2MB → 3.4MB (2.7x), 68 JPEGs deleted\n2026-04-20T11:40:59.460075Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-456029760066552990, trigger=visual_change)\n2026-04-20T11:41:02.495697Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-456029760066552990, trigger=visual_change)\n2026-04-20T11:41:05.496427Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-456029760066552990, trigger=visual_change)\n2026-04-20T11:41:08.546403Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-456029760066552990, trigger=visual_change)\n2026-04-20T11:42:34.401639Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-456029760066552990, trigger=visual_change)\n2026-04-20T11:42:43.277648Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3155554097147706318, trigger=click)\n2026-04-20T11:42:44.143615Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3155554097147706318, trigger=click)\n2026-04-20T11:42:44.214701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3155554097147706318, trigger=click)\n2026-04-20T11:42:47.032602Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3155554097147706318, trigger=click)\n2026-04-20T11:42:47.080822Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3155554097147706318, trigger=click)\n2026-04-20T11:43:06.469036Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3155554097147706318, trigger=click)\n2026-04-20T11:43:07.387591Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3155554097147706318, trigger=click)\n2026-04-20T11:43:08.580298Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2132333697539486641, trigger=click)\n2026-04-20T11:43:36.517926Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8547944451951971235, trigger=visual_change)\n2026-04-20T11:43:48.604378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=987107508425736725, trigger=visual_change)\n2026-04-20T11:43:57.614359Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8547944451951971235, trigger=visual_change)\n2026-04-20T11:44:18.824990Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8547944451951971235, trigger=visual_change)\n2026-04-20T11:44:24.907462Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8547944451951971235, trigger=visual_change)\n2026-04-20T11:45:14.820258Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8547944451951971235, trigger=visual_change)\n2026-04-20T11:45:17.865890Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8547944451951971235, trigger=visual_change)\n2026-04-20T11:45:45.016855Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:45:45.107955Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:45:51.754851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:45:51.856465Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:45:52.816897Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:45:52.891807Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:45:53.075541Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=139 elapsed=1.017660667s\n2026-04-20T11:45:53.075652Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 139 eligible frames\n2026-04-20T11:45:53.378781Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:45:58.733979Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 62 frames, 12.9MB → 3.2MB (4.0x), 62 JPEGs deleted\n2026-04-20T11:46:06.485751Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 75 frames, 11.9MB → 4.1MB (2.9x), 75 JPEGs deleted\n2026-04-20T11:46:39.095124Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=987107508425736725, trigger=visual_change)\n2026-04-20T11:46:42.057902Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=987107508425736725, trigger=visual_change)\n2026-04-20T11:48:11.765669Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=9195472439744667829, trigger=click)\n2026-04-20T11:48:15.524597Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Slack, id=4, grace=30s)\n2026-04-20T11:48:21.832650Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4229935992045172066, trigger=visual_change)\n2026-04-20T11:48:46.695881Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Idle (timeout=30s, app=Slack, id=4)\n2026-04-20T11:48:46.921237Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting ended (id=4)\n2026-04-20T11:48:50.943040Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:48:51.021231Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:49:10.755384Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4229935992045172066, trigger=visual_change)\n2026-04-20T11:49:17.161498Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7106754424718048973, trigger=click)\n2026-04-20T11:49:21.158818Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7106754424718048973, trigger=visual_change)\n2026-04-20T11:49:22.487278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7106754424718048973, trigger=click)\n2026-04-20T11:49:22.530338Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7106754424718048973, trigger=click)\n2026-04-20T11:49:23.006416Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7106754424718048973, trigger=click)\n2026-04-20T11:49:23.047268Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7106754424718048973, trigger=click)\n2026-04-20T11:49:37.147379Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7106754424718048973, trigger=click)\n2026-04-20T11:50:39.151894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:50:39.232274Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:50:43.572057Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:50:43.624058Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:50:48.638461Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:50:48.728784Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:50:51.101000Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:50:51.164752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:09.566936Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=192 elapsed=3.068271875s\n2026-04-20T11:51:09.567545Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 192 eligible frames\n2026-04-20T11:51:20.254226Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 99 frames, 13.0MB → 3.8MB (3.4x), 99 JPEGs deleted\n2026-04-20T11:51:21.236766Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 4 frames, 0.5MB → 0.2MB (3.1x), 4 JPEGs deleted\n2026-04-20T11:51:27.711099Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 87 frames, 18.0MB → 2.3MB (7.9x), 87 JPEGs deleted\n2026-04-20T11:51:31.197932Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:31.303759Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:32.213378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:32.274981Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:35.101541Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:35.200979Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:36.153649Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:36.189190Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:36.685206Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:37.415842Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:37.529712Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:48.634934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:48.699131Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:51.963953Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:51.997497Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:54.179984Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:54.228458Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:52:46.320080Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:52:49.012351Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:52:51.071555Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:52:51.123083Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:53:00.887309Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7089240009464300311, trigger=click)\n2026-04-20T11:53:00.940245Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7089240009464300311, trigger=click)\n2026-04-20T11:55:45.932772Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5694682761366780141, trigger=visual_change)\n2026-04-20T11:55:53.915956Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4530837260207295611, trigger=click)\n2026-04-20T11:55:54.002399Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4530837260207295611, trigger=click)\n2026-04-20T11:55:54.965125Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4530837260207295611, trigger=visual_change)\n2026-04-20T11:55:58.041145Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4530837260207295611, trigger=visual_change)\n2026-04-20T11:56:09.233089Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6479409851876233602, trigger=click)\n2026-04-20T11:56:09.295538Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6479409851876233602, trigger=click)\n2026-04-20T11:56:10.268022Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6479409851876233602, trigger=click)\n2026-04-20T11:56:10.343195Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6479409851876233602, trigger=click)\n2026-04-20T11:56:13.105773Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6479409851876233602, trigger=visual_change)\n2026-04-20T11:56:20.539351Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5840499593443530124, trigger=click)\n2026-04-20T11:56:28.576130Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 46 eligible frames\n2026-04-20T11:56:29.835734Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.3MB → 0.2MB (12.9x), 17 JPEGs deleted\n2026-04-20T11:56:33.611672Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.4MB → 2.5MB (1.8x), 26 JPEGs deleted\n2026-04-20T11:57:24.788972Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=visual_change)\n2026-04-20T11:57:36.481689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=click)\n2026-04-20T11:57:37.756625Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3030885276270352434, trigger=click)\n2026-04-20T11:57:37.834390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=click)\n2026-04-20T11:57:49.238635Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=visual_change)\n2026-04-20T11:57:52.246590Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=visual_change)\n2026-04-20T11:57:55.241832Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=visual_change)\n2026-04-20T11:57:58.301374Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=visual_change)\n2026-04-20T11:58:01.337222Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=visual_change)\n2026-04-20T11:58:26.816413Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=visual_change)\n2026-04-20T11:58:29.856452Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=visual_change)\n2026-04-20T11:58:30.666522Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=click)\n2026-04-20T11:58:30.701317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3030885276270352434, trigger=click)\n2026-04-20T11:58:35.989225Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=visual_change)\n2026-04-20T11:58:38.498940Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3030885276270352434, trigger=click)\n2026-04-20T11:58:40.794993Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=click)\n2026-04-20T11:58:42.377239Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=visual_change)\n2026-04-20T11:58:59.532131Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6813386454352183033, trigger=visual_change)\n2026-04-20T11:59:39.744543Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6813386454352183033, trigger=visual_change)\n2026-04-20T11:59:58.627407Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3151396900374529455, trigger=visual_change)\n2026-04-20T12:01:34.882479Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=87 elapsed=1.259418542s\n2026-04-20T12:01:34.882676Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 87 eligible frames\n2026-04-20T12:01:37.375070Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 35 frames, 10.6MB → 2.3MB (4.6x), 35 JPEGs deleted\n2026-04-20T12:01:45.894068Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 50 frames, 8.1MB → 4.1MB (2.0x), 50 JPEGs deleted\n2026-04-20T12:01:50.133673Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3134476686614698911, trigger=click)\n2026-04-20T12:01:50.211171Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3134476686614698911, trigger=click)\n2026-04-20T12:01:55.273763Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=467660169672458461, trigger=visual_change)\n2026-04-20T12:02:00.095574Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=467660169672458461, trigger=click)\n2026-04-20T12:02:15.114277Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=467660169672458461, trigger=click)\n2026-04-20T12:02:15.166674Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=467660169672458461, trigger=click)\n2026-04-20T12:02:16.372669Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=467660169672458461, trigger=click)\n2026-04-20T12:02:16.452496Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=467660169672458461, trigger=click)\n2026-04-20T12:02:17.931496Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=467660169672458461, trigger=click)\n2026-04-20T12:02:17.993032Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=467660169672458461, trigger=click)\n2026-04-20T12:02:20.527678Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=467660169672458461, trigger=click)\n2026-04-20T12:02:20.583726Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=467660169672458461, trigger=click)\n2026-04-20T12:02:24.944153Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-218291911025499455, trigger=click)\n2026-04-20T12:02:26.245682Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-218291911025499455, trigger=click)\n2026-04-20T12:02:27.227059Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-218291911025499455, trigger=click)\n2026-04-20T12:02:27.321541Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-218291911025499455, trigger=click)\n2026-04-20T12:02:59.757184Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8912532918897684009, trigger=click)\n2026-04-20T12:02:59.854055Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8912532918897684009, trigger=click)","depth":4,"value":"Last login: Mon Apr 20 10:16:41 on ttys009\n\nPoetry could not find a pyproject.toml file in /Users/lukas or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-start \ndetected hardware tier: Mid\nwarning: parakeet is not supported on this platform, using whisper-tiny instead\n2026-04-20T10:17:08.672567Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store\nchecking permissions...\n screen recording: ok\n accessibility: ok\n2026-04-20T10:17:08.735636Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6\n2026-04-20T10:17:09.168849Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor\n2026-04-20T10:17:09.170474Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)\n2026-04-20T10:17:09.170918Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)\n2026-04-20T10:17:09.203704Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true\n2026-04-20T10:17:09.203780Z INFO screenpipe: meeting detector enabled — independent of transcription mode\n2026-04-20T10:17:09.203962Z INFO screenpipe: API server listening on 127.0.0.1:3030 (localhost only)\n2026-04-20T10:17:09.203976Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key\n2026-04-20T10:17:09.203934Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)\n2026-04-20T10:17:09.204030Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager\n2026-04-20T10:17:09.203954Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)\n2026-04-20T10:17:09.215020Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-20T10:17:09.220127Z INFO screenpipe_core::pipes: loaded pipe: day-recap\n2026-04-20T10:17:09.220306Z INFO screenpipe_core::pipes: loaded pipe: standup-update\n2026-04-20T10:17:09.220863Z INFO screenpipe_core::pipes: loaded pipe: ai-habits\n2026-04-20T10:17:09.221034Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown\n2026-04-20T10:17:09.221177Z INFO screenpipe_core::pipes: loaded pipe: video-export\n2026-04-20T10:17:09.221820Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary\n2026-04-20T10:17:09.221839Z INFO screenpipe_core::pipes: loaded 6 pipes from \"/Users/lukas/.screenpipe/pipes\"\n\n\n\n _ \n __________________ ___ ____ ____ (_____ ___ \n / ___/ ___/ ___/ _ \\/ _ \\/ __ \\ / __ \\/ / __ \\/ _ \\\n (__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/\n/____/\\___/_/ \\___/\\___/_/ /_/ / .___/_/ .___/\\___/ \n /_/ /_/ \n\n\n\npower AI by everything you've seen, said or heard\nopen source | runs locally | developer friendly\n\n\n┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ true │\n│ vision disabled │ false │\n│ pause on DRM content │ false │\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n2026-04-20T10:17:09.223448Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n│ ignored windows │ [\"Boosteroid\"] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n│ api auth │ enabled │\n2026-04-20T10:17:09.227535Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n│ encrypt secrets │ disabled │\n│ retention days │ 14 │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ id: 1 │\n│ │ id: 2 │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ disabled │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-20T10:17:09.240088Z INFO screenpipe: starting UI event capture\n2026-04-20T10:17:09.253668Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-20T10:17:09.267973Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-20T10:17:09.268072Z INFO screenpipe_engine::ui_recorder: UI recording session started: f196d677-2a10-4dec-93e7-9dd9048a1d8e\n2026-04-20T10:17:09.268173Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-19 07:17:09.268169 UTC to 2026-04-20 07:17:09.268169 UTC)\n2026-04-20T10:17:09.268665Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-20T10:17:09.275204Z INFO screenpipe_engine::server: Server listening on 127.0.0.1:3030\n2026-04-20T10:17:09.280547Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-20T10:17:09.284876Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-20T10:17:09.284906Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-20T10:17:09.284942Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-20T10:17:09.316523Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-20T10:17:09.316557Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-20T10:17:09.316583Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)\n2026-04-20T10:17:09.316603Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-20T10:17:09.975374Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 1 excluded)\n2026-04-20T10:17:10.050320Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 1 excluded)\n2026-04-20T10:17:10.109022Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=52481, dur=72ms\n2026-04-20T10:17:10.197530Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=52482, dur=98ms\n2026-04-20T10:17:10.926185Z WARN sqlx::query: summary=\"SELECT f.id, f.timestamp, f.offset_index, …\" db.statement=\"\\n\\nSELECT\\n f.id,\\n f.timestamp,\\n f.offset_index,\\n COALESCE(\\n SUBSTR(f.full_text, 1, 200),\\n SUBSTR(f.accessibility_text, 1, 200),\\n (\\n SELECT\\n SUBSTR(ot.text, 1, 200)\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as text,\\n COALESCE(\\n f.app_name,\\n (\\n SELECT\\n ot.app_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as app_name,\\n COALESCE(\\n f.window_name,\\n (\\n SELECT\\n ot.window_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as window_name,\\n COALESCE(vc.device_name, f.device_name) as screen_device,\\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\\n COALESCE(vc.fps, 0.033) as chunk_fps,\\n f.browser_url,\\n f.machine_id\\nFROM\\n frames f\\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\\nWHERE\\n f.timestamp >= ?1\\n AND f.timestamp <= ?2\\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\\nORDER BY\\n f.timestamp DESC,\\n f.offset_index DESC\\nLIMIT\\n 10000\\n\" rows_affected=0 rows_returned=974 elapsed=1.657379083s\n2026-04-20T10:17:10.928810Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 974 frame entries, coverage from 2026-04-19 07:17:09.268169 UTC\n2026-04-20T10:17:36.605708Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5556097941235749601, trigger=visual_change)\n2026-04-20T10:17:41.066595Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5621935701738529327, trigger=click)\n2026-04-20T10:17:41.100078Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5621935701738529327, trigger=click)\n2026-04-20T10:17:46.116429Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5621935701738529327, trigger=click)\n2026-04-20T10:17:46.148269Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5621935701738529327, trigger=click)\n2026-04-20T10:18:13.360099Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=145 elapsed=4.153777416s\n2026-04-20T10:18:13.360276Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 145 eligible frames\n2026-04-20T10:18:18.937138Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 90 frames, 15.2MB → 6.4MB (2.4x), 90 JPEGs deleted\n2026-04-20T10:18:22.014745Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 53 frames, 9.4MB → 2.0MB (4.6x), 53 JPEGs deleted\n2026-04-20T10:18:56.067965Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1399546062189663050, trigger=visual_change)\n2026-04-20T10:18:56.859644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1399546062189663050, trigger=click)\n2026-04-20T10:18:59.894779Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7926243118367575, trigger=click)\n2026-04-20T10:19:12.201247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5621935701738529327, trigger=visual_change)\n2026-04-20T10:21:22.063263Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1399546062189663050, trigger=visual_change)\n2026-04-20T10:21:35.657143Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5007800743451086391, trigger=visual_change)\n2026-04-20T10:21:35.899663Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5007800743451086391, trigger=visual_change)\n2026-04-20T10:21:38.094166Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5007800743451086391, trigger=click)\n2026-04-20T10:21:38.149655Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5007800743451086391, trigger=click)\n2026-04-20T10:21:38.947641Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5007800743451086391, trigger=click)\n2026-04-20T10:21:38.991934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5007800743451086391, trigger=click)\n2026-04-20T10:23:28.231526Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=2 elapsed=6.103025792s\n2026-04-20T10:23:28.232845Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-20T10:25:18.292352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=133505750984754566, trigger=click)\n2026-04-20T10:25:33.154631Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:25:33.227754Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:25:34.786990Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)\n2026-04-20T10:25:36.507114Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:25:36.556707Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:25:37.741060Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)\n2026-04-20T10:25:39.466175Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:25:39.547293Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:26:02.072902Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2625703622302799632, trigger=visual_change)\n2026-04-20T10:26:05.038754Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8395829747728977847, trigger=visual_change)\n2026-04-20T10:26:10.400901Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:26:10.459718Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:26:14.431146Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)\n2026-04-20T10:26:17.437868Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=visual_change)\n2026-04-20T10:26:35.296162Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:26:35.339241Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:26:37.233387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:26:37.326557Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:00.031681Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:00.067495Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:01.950749Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:02.027316Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:13.045805Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:13.116607Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:15.272022Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:15.311144Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:17.880859Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:17.952143Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:21.645455Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:21.706889Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:36.304603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:36.380537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:37.368951Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:37.459157Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:40.420505Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:40.469217Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:41.179717Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)\n2026-04-20T10:28:00.173884Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:00.251737Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:01.241028Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:01.288002Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:02.985445Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:03.078932Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:04.726087Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:04.770305Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:18.186992Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:18.272249Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:28.337807Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 14 eligible frames\n2026-04-20T10:28:29.608030Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 0.7MB → 0.5MB (1.4x), 8 JPEGs deleted\n2026-04-20T10:28:30.685845Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 6 frames, 1.2MB → 0.7MB (1.8x), 6 JPEGs deleted\n2026-04-20T10:28:49.943477Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:49.984595Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:50.611087Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:50.628530Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:54.853245Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:57.739309Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)\n2026-04-20T10:29:03.177558Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:03.231322Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:03.857989Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)\n2026-04-20T10:29:04.993121Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:05.032838Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:06.923393Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)\n2026-04-20T10:29:07.890421Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:07.960410Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:08.812301Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:26.656780Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:26.775833Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:27.602791Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:27.639583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:34.060332Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2389025338591748766, trigger=visual_change)\n2026-04-20T10:29:37.050675Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2389025338591748766, trigger=click)\n2026-04-20T10:29:37.085946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2389025338591748766, trigger=click)\n2026-04-20T10:29:40.501396Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2389025338591748766, trigger=visual_change)\n2026-04-20T10:29:43.751715Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)\n2026-04-20T10:29:43.843367Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:44.468329Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:46.931137Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:49.616400Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:49.692474Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:50.298335Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)\n2026-04-20T10:29:51.348506Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:51.436585Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:30:12.602958Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8200761366188343712, trigger=click)\n2026-04-20T10:31:17.535958Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5166044279428207369, trigger=click)\n2026-04-20T10:31:18.668547Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5166044279428207369, trigger=visual_change)\n2026-04-20T10:31:19.518515Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5166044279428207369, trigger=click)\n2026-04-20T10:31:19.681398Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5166044279428207369, trigger=click)\n2026-04-20T10:31:21.044436Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5166044279428207369, trigger=click)\n2026-04-20T10:31:21.086009Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5166044279428207369, trigger=click)\n2026-04-20T10:31:21.680970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5166044279428207369, trigger=visual_change)\n2026-04-20T10:32:05.428125Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=visual_change)\n2026-04-20T10:32:07.004460Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=click)\n2026-04-20T10:32:07.088172Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6999516640019587394, trigger=click)\n2026-04-20T10:32:08.380482Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=visual_change)\n2026-04-20T10:32:11.588306Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=click)\n2026-04-20T10:32:11.689288Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6999516640019587394, trigger=click)\n2026-04-20T10:32:12.318265Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6999516640019587394, trigger=click)\n2026-04-20T10:32:12.381069Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=click)\n2026-04-20T10:32:20.139124Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:32:20.175356Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:32:23.490851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=click)\n2026-04-20T10:32:27.111949Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=visual_change)\n2026-04-20T10:32:37.220458Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6999516640019587394, trigger=click)\n2026-04-20T10:32:37.303363Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=click)\n2026-04-20T10:32:38.554270Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=click)\n2026-04-20T10:32:38.619116Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6999516640019587394, trigger=click)\n2026-04-20T10:32:44.030894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=click)\n2026-04-20T10:32:44.098803Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4838132251856752988, trigger=click)\n2026-04-20T10:32:45.233990Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=click)\n2026-04-20T10:32:45.238569Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4838132251856752988, trigger=click)\n2026-04-20T10:32:48.884987Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=visual_change)\n2026-04-20T10:32:51.832116Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:32:51.860110Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:32:53.754008Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:32:53.796899Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:32:55.635715Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:32:55.675828Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:32:57.084341Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:32:57.128626Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:32:58.841455Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:32:58.882031Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:33:00.965217Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:33:01.040922Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:33:02.591751Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:33:02.633245Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:33:03.324241Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:33:03.353493Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:33:05.802391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:33:05.849275Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:33:06.911518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=visual_change)\n2026-04-20T10:33:14.484135Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=click)\n2026-04-20T10:33:14.530843Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4838132251856752988, trigger=click)\n2026-04-20T10:33:34.189406Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4838132251856752988, trigger=click)\n2026-04-20T10:33:34.205308Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=94 elapsed=3.603974333s\n2026-04-20T10:33:34.205567Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 94 eligible frames\n2026-04-20T10:33:34.240884Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=visual_change)\n2026-04-20T10:33:35.686677Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4838132251856752988, trigger=click)\n2026-04-20T10:33:35.780825Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=click)\n2026-04-20T10:33:37.134576Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 38 frames, 8.0MB → 4.4MB (1.8x), 38 JPEGs deleted\n2026-04-20T10:33:40.850354Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 54 frames, 7.9MB → 3.4MB (2.3x), 54 JPEGs deleted\n2026-04-20T10:33:55.372436Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=visual_change)\n2026-04-20T10:35:01.169212Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:35:01.245363Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:35:02.392419Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=visual_change)\n2026-04-20T10:35:05.029174Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:35:05.073174Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:35:07.222477Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:35:07.329020Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:35:08.707660Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=visual_change)\n2026-04-20T10:35:27.744689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:35:27.812062Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:36:18.265456Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:36:18.437457Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:36:23.437791Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:36:23.487637Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:36:24.299771Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=visual_change)\n2026-04-20T10:36:25.135894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:36:25.257064Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:36:27.317393Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=visual_change)\n2026-04-20T10:36:50.815358Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:38:04.728644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4435744464912499495, trigger=visual_change)\n2026-04-20T10:38:07.749721Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4435744464912499495, trigger=visual_change)\n2026-04-20T10:38:13.318000Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=visual_change)\n2026-04-20T10:38:13.969769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=visual_change)\n2026-04-20T10:38:14.800566Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:38:14.834512Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:38:17.252696Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:38:17.328544Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:38:24.892322Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:38:24.943640Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:38:35.256001Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:38:35.322251Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:38:40.980335Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 88 eligible frames\n2026-04-20T10:38:43.345927Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 6.6MB → 2.6MB (2.5x), 39 JPEGs deleted\n2026-04-20T10:38:46.544495Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 47 frames, 7.3MB → 2.8MB (2.6x), 47 JPEGs deleted\n2026-04-20T10:39:26.663352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=visual_change)\n2026-04-20T10:39:29.597544Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:39:29.637879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:40:07.495065Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=visual_change)\n2026-04-20T10:40:11.064923Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=visual_change)\n2026-04-20T10:40:11.431065Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)\n2026-04-20T10:40:12.068565Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=click)\n2026-04-20T10:40:12.110719Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)\n2026-04-20T10:40:14.179306Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=click)\n2026-04-20T10:40:14.239361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)\n2026-04-20T10:41:20.489623Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=click)\n2026-04-20T10:43:48.184341Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=82 elapsed=1.63218175s\n2026-04-20T10:43:48.184571Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 82 eligible frames\n2026-04-20T10:43:50.234957Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 2.2MB → 0.1MB (16.1x), 30 JPEGs deleted\n2026-04-20T10:43:55.342383Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 50 frames, 7.9MB → 3.2MB (2.5x), 50 JPEGs deleted\n2026-04-20T10:44:06.225390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4079037146782974603, trigger=click)\n2026-04-20T10:44:14.808445Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Slack, signals=2)\n2026-04-20T10:44:19.110273Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-539912533838677065, trigger=click)\n2026-04-20T10:44:19.155111Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-539912533838677065, trigger=click)\n2026-04-20T10:44:19.832463Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Slack, signals=2, browser=false)\n2026-04-20T10:44:19.834928Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=3, app=Slack, title=None)\n2026-04-20T10:44:27.766267Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5412550087722993493, trigger=visual_change)\n2026-04-20T10:44:39.799864Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5412550087722993493, trigger=visual_change)\n2026-04-20T10:44:57.832108Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5412550087722993493, trigger=visual_change)\n2026-04-20T10:44:57.940548Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5412550087722993493, trigger=click)\n2026-04-20T10:44:58.605782Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5412550087722993493, trigger=click)\n2026-04-20T10:44:58.637243Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5412550087722993493, trigger=click)\n2026-04-20T10:45:00.807501Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5412550087722993493, trigger=visual_change)\n2026-04-20T10:45:16.166619Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8594311245071571574, trigger=visual_change)\n2026-04-20T10:45:56.391618Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)\n2026-04-20T10:45:56.468127Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=click)\n2026-04-20T10:46:03.056730Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8594311245071571574, trigger=visual_change)\n2026-04-20T10:46:12.195973Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8594311245071571574, trigger=visual_change)\n2026-04-20T10:46:17.958643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=click)\n2026-04-20T10:46:18.011452Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)\n2026-04-20T10:47:02.211065Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5662459752758049610, trigger=click)\n2026-04-20T10:47:02.257675Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5662459752758049610, trigger=click)\n2026-04-20T10:47:05.697096Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5662459752758049610, trigger=click)\n2026-04-20T10:47:06.566076Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5662459752758049610, trigger=click)\n2026-04-20T10:47:07.827281Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5662459752758049610, trigger=click)\n2026-04-20T10:47:40.405629Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1571710488795535897, trigger=visual_change)\n2026-04-20T10:47:49.440068Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1557699132616565226, trigger=visual_change)\n2026-04-20T10:47:52.572612Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1557699132616565226, trigger=visual_change)\n2026-04-20T10:47:58.689857Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4346016681512348210, trigger=visual_change)\n2026-04-20T10:48:07.634676Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1557699132616565226, trigger=visual_change)\n2026-04-20T10:48:13.649498Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1557699132616565226, trigger=visual_change)\n2026-04-20T10:48:19.703789Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1557699132616565226, trigger=visual_change)\n2026-04-20T10:48:52.948919Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1420790294153145145, trigger=visual_change)\n2026-04-20T10:48:55.891318Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1420790294153145145, trigger=visual_change)\n2026-04-20T10:48:57.225561Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=44 elapsed=1.875780625s\n2026-04-20T10:48:57.225944Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 44 eligible frames\n2026-04-20T10:48:58.265979Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 1.2MB → 0.1MB (11.0x), 16 JPEGs deleted\n2026-04-20T10:49:00.653282Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.4MB → 2.7MB (1.6x), 26 JPEGs deleted\n2026-04-20T10:49:32.916674Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1420790294153145145, trigger=visual_change)\n2026-04-20T10:49:36.017852Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1420790294153145145, trigger=visual_change)\n2026-04-20T10:49:38.836425Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5221054553112749208, trigger=visual_change)\n2026-04-20T10:49:42.792319Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Slack, id=3, grace=30s)\n2026-04-20T10:49:59.717149Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8395829747728977847, trigger=visual_change)\n2026-04-20T10:50:05.893490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9218245258814534702, trigger=visual_change)\n2026-04-20T10:50:13.558613Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Idle (timeout=30s, app=Slack, id=3)\n2026-04-20T10:50:13.776444Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting ended (id=3)\n2026-04-20T10:50:30.296877Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8395829747728977847, trigger=visual_change)\n2026-04-20T10:50:31.009005Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8395829747728977847, trigger=visual_change)\n2026-04-20T10:50:35.710448Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2997155127408295500, trigger=click)\n2026-04-20T10:50:39.411258Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2997155127408295500, trigger=visual_change)\n2026-04-20T10:50:42.426737Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2997155127408295500, trigger=visual_change)\n2026-04-20T10:50:44.695606Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2997155127408295500, trigger=click)\n2026-04-20T10:51:10.075065Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4346016681512348210, trigger=click)\n2026-04-20T10:51:10.162124Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4346016681512348210, trigger=click)\n2026-04-20T10:51:29.550593Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4346016681512348210, trigger=click)\n2026-04-20T10:51:33.066966Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=click)\n2026-04-20T10:51:34.845466Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)\n2026-04-20T10:51:34.910786Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=click)\n2026-04-20T10:52:43.260524Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8163403335606540090, trigger=click)\n2026-04-20T10:52:43.340992Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8163403335606540090, trigger=click)\n2026-04-20T10:52:48.268094Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=159194235337566135, trigger=visual_change)\n2026-04-20T10:52:51.322127Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=159194235337566135, trigger=click)\n2026-04-20T10:52:51.391904Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=159194235337566135, trigger=click)\n2026-04-20T10:53:43.515437Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-813068054433851605, trigger=visual_change)\n2026-04-20T10:54:05.099685Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=48 elapsed=4.409245042s\n2026-04-20T10:54:05.099971Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 48 eligible frames\n2026-04-20T10:54:06.503270Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 1.6MB → 0.1MB (20.0x), 22 JPEGs deleted\n2026-04-20T10:54:08.444918Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.3MB → 2.1MB (2.0x), 24 JPEGs deleted\n2026-04-20T10:54:35.036274Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8163403335606540090, trigger=visual_change)\n2026-04-20T10:54:35.171848Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8163403335606540090, trigger=visual_change)\n2026-04-20T10:54:36.475203Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8163403335606540090, trigger=click)\n2026-04-20T10:54:36.541896Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8163403335606540090, trigger=click)\n2026-04-20T10:54:37.380023Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8163403335606540090, trigger=click)\n2026-04-20T10:54:37.445729Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8163403335606540090, trigger=click)\n2026-04-20T10:55:03.555125Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8163403335606540090, trigger=click)\n2026-04-20T10:55:03.640618Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8163403335606540090, trigger=click)\n2026-04-20T10:55:19.315053Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:30.302435Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:30.370524Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:33.629673Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:33.680190Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:34.225728Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=visual_change)\n2026-04-20T10:55:36.487309Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:36.553300Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:37.266499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=visual_change)\n2026-04-20T10:55:41.784038Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:41.805901Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:43.326649Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=visual_change)\n2026-04-20T10:55:45.080360Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:45.118718Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:46.357519Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=visual_change)\n2026-04-20T10:55:47.480883Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:47.537710Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:49.291790Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:49.326846Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:52.992748Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8138726509372139947, trigger=click)\n2026-04-20T10:55:54.240859Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:55.950255Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:55.991282Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:58.736523Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:58.802298Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:59.902655Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:59.944572Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:56:07.794877Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5942962546669254600, trigger=click)\n2026-04-20T10:56:07.851635Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5942962546669254600, trigger=click)\n2026-04-20T10:56:48.563398Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7990927160457220959, trigger=visual_change)\n2026-04-20T10:57:32.104953Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=9150043812320386523, trigger=click)\n2026-04-20T10:57:32.144287Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9150043812320386523, trigger=click)\n2026-04-20T10:58:28.399190Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260395566585322026, trigger=click)\n2026-04-20T10:58:28.442157Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260395566585322026, trigger=click)\n2026-04-20T10:59:08.570536Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 81 eligible frames\n2026-04-20T10:59:10.567201Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 33 frames, 2.4MB → 0.1MB (18.5x), 33 JPEGs deleted\n2026-04-20T10:59:14.364266Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 46 frames, 8.7MB → 4.7MB (1.9x), 46 JPEGs deleted\n2026-04-20T10:59:58.111173Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5381531899229729064, trigger=click)\n2026-04-20T10:59:58.142222Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5381531899229729064, trigger=click)\n2026-04-20T11:00:36.141673Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9207198899289182946, trigger=click)\n2026-04-20T11:00:36.183623Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9207198899289182946, trigger=click)\n2026-04-20T11:01:42.348670Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8842760806676108827, trigger=click)\n2026-04-20T11:01:46.579137Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3692713192977136429, trigger=visual_change)\n2026-04-20T11:02:24.402529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3769719286299940254, trigger=visual_change)\n2026-04-20T11:03:17.195875Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-838946827693869464, trigger=click)\n2026-04-20T11:04:18.906189Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=visual_change)\n2026-04-20T11:04:19.288145Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=154 elapsed=4.909861708s\n2026-04-20T11:04:19.288239Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 154 eligible frames\n2026-04-20T11:04:21.929712Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=visual_change)\n2026-04-20T11:04:23.364885Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 71 frames, 5.8MB → 0.9MB (6.6x), 71 JPEGs deleted\n2026-04-20T11:04:24.973084Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=visual_change)\n2026-04-20T11:04:27.204317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2406143553526754098, trigger=click)\n2026-04-20T11:04:27.256852Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T11:04:29.050253Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 81 frames, 12.7MB → 5.0MB (2.5x), 81 JPEGs deleted\n2026-04-20T11:04:33.163125Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2340404083908403127, trigger=click)\n2026-04-20T11:04:54.879253Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2453433494247683376, trigger=click)\n2026-04-20T11:05:12.089056Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4318090145782937453, trigger=visual_change)\n2026-04-20T11:05:13.095729Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4318090145782937453, trigger=click)\n2026-04-20T11:05:15.103808Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4318090145782937453, trigger=visual_change)\n2026-04-20T11:05:16.310357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4318090145782937453, trigger=click)\n2026-04-20T11:05:16.383203Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4318090145782937453, trigger=click)\n2026-04-20T11:05:18.172083Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4318090145782937453, trigger=visual_change)\n2026-04-20T11:05:18.982699Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4318090145782937453, trigger=click)\n2026-04-20T11:05:19.029420Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4318090145782937453, trigger=click)\n2026-04-20T11:05:21.205027Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4318090145782937453, trigger=visual_change)\n2026-04-20T11:05:30.714779Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4318090145782937453, trigger=visual_change)\n2026-04-20T11:05:33.817783Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4318090145782937453, trigger=visual_change)\n2026-04-20T11:05:36.802961Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4318090145782937453, trigger=visual_change)\n2026-04-20T11:05:39.813482Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4318090145782937453, trigger=visual_change)\n2026-04-20T11:09:00.185306Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=visual_change)\n2026-04-20T11:09:03.706142Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T11:09:03.822044Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2406143553526754098, trigger=click)\n2026-04-20T11:09:33.034069Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=96 elapsed=3.973269334s\n2026-04-20T11:09:33.034177Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 96 eligible frames\n2026-04-20T11:09:35.558135Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 42 frames, 3.2MB → 0.2MB (16.4x), 42 JPEGs deleted\n2026-04-20T11:09:39.031687Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 52 frames, 8.1MB → 3.6MB (2.2x), 52 JPEGs deleted\n2026-04-20T11:10:16.370525Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)\n2026-04-20T11:10:19.252001Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)\n2026-04-20T11:10:19.806142Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)\n2026-04-20T11:13:16.227087Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T11:13:20.596574Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T11:13:20.661227Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T11:13:23.902473Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5954939318163518708, trigger=click)\n2026-04-20T11:13:24.516393Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5954939318163518708, trigger=click)\n2026-04-20T11:13:24.587417Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5954939318163518708, trigger=click)\n2026-04-20T11:13:27.637011Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1070969666032687649, trigger=visual_change)\n2026-04-20T11:13:27.807847Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1070969666032687649, trigger=click)\n2026-04-20T11:13:30.623373Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1070969666032687649, trigger=visual_change)\n2026-04-20T11:13:56.362486Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=click)\n2026-04-20T11:14:22.232710Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2535035496832215689, trigger=click)\n2026-04-20T11:14:40.999263Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=128 elapsed=1.951355041s\n2026-04-20T11:14:40.999365Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 128 eligible frames\n2026-04-20T11:14:43.717104Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 47 frames, 3.5MB → 0.2MB (22.4x), 47 JPEGs deleted\n2026-04-20T11:14:49.191609Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 79 frames, 11.9MB → 6.7MB (1.8x), 79 JPEGs deleted\n2026-04-20T11:15:53.591341Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6836450022093940164, trigger=click)\n2026-04-20T11:15:54.531935Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6836450022093940164, trigger=visual_change)\n2026-04-20T11:16:23.234607Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7020057609110231149, trigger=click)\n2026-04-20T11:16:24.573477Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7020057609110231149, trigger=click)\n2026-04-20T11:16:24.645049Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7020057609110231149, trigger=click)\n2026-04-20T11:18:31.210018Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6218747896970871837, trigger=visual_change)\n2026-04-20T11:18:58.718719Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8395829747728977847, trigger=click)\n2026-04-20T11:18:58.773796Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8395829747728977847, trigger=click)\n2026-04-20T11:19:17.843843Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-546694883753369466, trigger=visual_change)\n2026-04-20T11:19:51.764181Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6984505730173949536, trigger=click)\n2026-04-20T11:19:51.846529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6984505730173949536, trigger=click)\n2026-04-20T11:19:52.311562Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6984505730173949536, trigger=visual_change)\n2026-04-20T11:19:55.528956Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=118 elapsed=6.325625375s\n2026-04-20T11:19:55.530818Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 118 eligible frames\n2026-04-20T11:19:59.068315Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 45 frames, 3.9MB → 0.7MB (5.6x), 45 JPEGs deleted\n2026-04-20T11:20:10.114363Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 71 frames, 10.3MB → 5.8MB (1.8x), 71 JPEGs deleted\n2026-04-20T11:22:03.257339Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2781687757078580755, trigger=visual_change)\n2026-04-20T11:22:06.280970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2781687757078580755, trigger=visual_change)\n2026-04-20T11:23:00.888485Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2781687757078580755, trigger=visual_change)\n2026-04-20T11:23:04.422725Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4258649287240007454, trigger=click)\n2026-04-20T11:23:06.787493Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4258649287240007454, trigger=visual_change)\n2026-04-20T11:23:26.757727Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-971663991893619042, trigger=click)\n2026-04-20T11:23:27.530382Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-971663991893619042, trigger=click)\n2026-04-20T11:23:27.629616Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-971663991893619042, trigger=click)\n2026-04-20T11:24:20.636646Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=142107347844094212, trigger=visual_change)\n2026-04-20T11:25:11.487497Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=85 elapsed=1.352837292s\n2026-04-20T11:25:11.487736Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 85 eligible frames\n2026-04-20T11:25:13.473260Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8313898756799688709, trigger=click)\n2026-04-20T11:25:13.930021Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8313898756799688709, trigger=click)\n2026-04-20T11:25:14.300911Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 5.7MB → 0.9MB (6.4x), 30 JPEGs deleted\n2026-04-20T11:25:22.765819Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 53 frames, 7.8MB → 3.6MB (2.1x), 53 JPEGs deleted\n2026-04-20T11:25:48.941557Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2643788392031168472, trigger=click)\n2026-04-20T11:25:52.682820Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2643788392031168472, trigger=visual_change)\n2026-04-20T11:27:06.674474Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:27:22.265798Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:27:34.544704Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8004693622225847515, trigger=visual_change)\n2026-04-20T11:27:35.112605Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:27:35.773265Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:27:53.132990Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8004693622225847515, trigger=visual_change)\n2026-04-20T11:27:53.439763Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:27:54.884154Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:27:54.911699Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:27:55.792546Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:27:55.856492Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:27:56.377118Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:27:56.421804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:27:57.385862Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:27:57.433093Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:28:15.099335Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:28:18.161712Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3897675075138840599, trigger=visual_change)\n2026-04-20T11:28:24.420260Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:29:09.322794Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6684718794164531158, trigger=visual_change)\n2026-04-20T11:29:12.232781Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6684718794164531158, trigger=visual_change)\n2026-04-20T11:29:13.714491Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6684718794164531158, trigger=click)\n2026-04-20T11:29:15.297078Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6684718794164531158, trigger=visual_change)\n2026-04-20T11:29:18.279439Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6684718794164531158, trigger=visual_change)\n2026-04-20T11:29:21.288709Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6684718794164531158, trigger=visual_change)\n2026-04-20T11:29:36.889190Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1183751968977138305, trigger=click)\n2026-04-20T11:29:36.935914Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1183751968977138305, trigger=click)\n2026-04-20T11:29:44.265375Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1744865349186139800, trigger=click)\n2026-04-20T11:29:45.438891Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1744865349186139800, trigger=visual_change)\n2026-04-20T11:29:48.445512Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1744865349186139800, trigger=visual_change)\n2026-04-20T11:30:00.582835Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=214677970165296243, trigger=click)\n2026-04-20T11:30:00.930875Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=214677970165296243, trigger=visual_change)\n2026-04-20T11:30:03.983533Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=214677970165296243, trigger=visual_change)\n2026-04-20T11:30:25.190331Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=144 elapsed=2.413845166s\n2026-04-20T11:30:25.191014Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 144 eligible frames\n2026-04-20T11:30:28.644851Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 59 frames, 8.9MB → 1.9MB (4.8x), 59 JPEGs deleted\n2026-04-20T11:30:34.292740Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 83 frames, 12.0MB → 6.2MB (1.9x), 83 JPEGs deleted\n2026-04-20T11:30:49.731059Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6771186432168714093, trigger=visual_change)\n2026-04-20T11:30:52.714807Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6771186432168714093, trigger=click)\n2026-04-20T11:30:52.764209Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6771186432168714093, trigger=click)\n2026-04-20T11:30:53.030418Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6771186432168714093, trigger=visual_change)\n2026-04-20T11:30:56.085725Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6771186432168714093, trigger=visual_change)\n2026-04-20T11:30:57.236790Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6771186432168714093, trigger=visual_change)\n2026-04-20T11:31:57.345054Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5799305003809379240, trigger=visual_change)\n2026-04-20T11:32:34.844223Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5799305003809379240, trigger=click)\n2026-04-20T11:33:01.295072Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2331312136567929026, trigger=visual_change)\n2026-04-20T11:33:02.667241Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2331312136567929026, trigger=visual_change)\n2026-04-20T11:33:40.313987Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Slack, signals=2)\n2026-04-20T11:33:40.621030Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6376510702070023487, trigger=visual_change)\n2026-04-20T11:33:45.357469Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Slack, signals=2, browser=false)\n2026-04-20T11:33:45.361133Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=4, app=Slack, title=None)\n2026-04-20T11:33:50.248270Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2305043043211837966, trigger=visual_change)\n2026-04-20T11:33:55.493928Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Slack, id=4, grace=30s)\n2026-04-20T11:34:26.223427Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Idle (timeout=30s, app=Slack, id=4)\n2026-04-20T11:34:26.415026Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting ended (id=4)\n2026-04-20T11:35:35.008400Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 86 eligible frames\n2026-04-20T11:35:37.449048Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 35 frames, 8.2MB → 2.2MB (3.8x), 35 JPEGs deleted\n2026-04-20T11:35:40.752978Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 5.9MB → 3.0MB (2.0x), 49 JPEGs deleted\n2026-04-20T11:35:57.468649Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Slack, signals=2)\n2026-04-20T11:36:02.566427Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Slack, signals=2, browser=false)\n2026-04-20T11:36:02.570096Z INFO screenpipe_engine::meeting_detector: meeting v2: reopened recent meeting (id=4, app=Slack)\n2026-04-20T11:36:11.034023Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7051916521891946593, trigger=click)\n2026-04-20T11:36:12.782467Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7051916521891946593, trigger=visual_change)\n2026-04-20T11:36:18.849412Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8299397926977483522, trigger=visual_change)\n2026-04-20T11:36:31.060551Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4229935992045172066, trigger=visual_change)\n2026-04-20T11:36:40.745263Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6895312360846969419, trigger=visual_change)\n2026-04-20T11:36:51.141301Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5575905127528149150, trigger=click)\n2026-04-20T11:37:10.853815Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1985697427151442712, trigger=click)\n2026-04-20T11:37:10.900023Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1985697427151442712, trigger=click)\n2026-04-20T11:37:23.414384Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9098743064037159085, trigger=visual_change)\n2026-04-20T11:37:27.259925Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7267777192673742381, trigger=click)\n2026-04-20T11:37:27.289716Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7267777192673742381, trigger=click)\n2026-04-20T11:37:29.306353Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7267777192673742381, trigger=click)\n2026-04-20T11:37:29.353781Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7267777192673742381, trigger=click)\n2026-04-20T11:37:29.703017Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7267777192673742381, trigger=visual_change)\n2026-04-20T11:37:48.167442Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6972880851711695642, trigger=visual_change)\n2026-04-20T11:37:51.131020Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7497803955284800173, trigger=visual_change)\n2026-04-20T11:37:51.606964Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7497803955284800173, trigger=click)\n2026-04-20T11:38:03.649693Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9147325036326340894, trigger=visual_change)\n2026-04-20T11:38:03.797616Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9147325036326340894, trigger=click)\n2026-04-20T11:38:15.258513Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7947348293642214978, trigger=click)\n2026-04-20T11:38:15.324902Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7947348293642214978, trigger=click)\n2026-04-20T11:38:21.259898Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=181147586093327944, trigger=click)\n2026-04-20T11:38:27.343543Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7497803955284800173, trigger=click)\n2026-04-20T11:38:27.389951Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7497803955284800173, trigger=click)\n2026-04-20T11:38:30.491260Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7497803955284800173, trigger=click)\n2026-04-20T11:38:30.546381Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7497803955284800173, trigger=click)\n2026-04-20T11:38:37.600021Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6921034694780173826, trigger=visual_change)\n2026-04-20T11:38:50.355690Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5480310180026203579, trigger=click)\n2026-04-20T11:38:50.404005Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5480310180026203579, trigger=click)\n2026-04-20T11:39:08.307526Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7497803955284800173, trigger=visual_change)\n2026-04-20T11:39:09.091514Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7497803955284800173, trigger=click)\n2026-04-20T11:39:09.161743Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7497803955284800173, trigger=click)\n2026-04-20T11:39:20.638047Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4229935992045172066, trigger=visual_change)\n2026-04-20T11:39:23.591141Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4229935992045172066, trigger=visual_change)\n2026-04-20T11:39:29.583292Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4229935992045172066, trigger=visual_change)\n2026-04-20T11:39:37.360066Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4229935992045172066, trigger=click)\n2026-04-20T11:39:44.814358Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6671609150327009848, trigger=visual_change)\n2026-04-20T11:39:45.924485Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6671609150327009848, trigger=click)\n2026-04-20T11:39:45.996345Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6671609150327009848, trigger=click)\n2026-04-20T11:40:20.394394Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1671671177896523754, trigger=click)\n2026-04-20T11:40:21.375675Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1671671177896523754, trigger=visual_change)\n2026-04-20T11:40:23.202671Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3155554097147706318, trigger=visual_change)\n2026-04-20T11:40:43.253092Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4229935992045172066, trigger=visual_change)\n2026-04-20T11:40:43.695721Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=131 elapsed=2.9322245s\n2026-04-20T11:40:43.695827Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 131 eligible frames\n2026-04-20T11:40:47.649371Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 61 frames, 7.4MB → 2.5MB (2.9x), 61 JPEGs deleted\n2026-04-20T11:40:47.781508Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6895312360846969419, trigger=click)\n2026-04-20T11:40:52.046914Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 68 frames, 9.2MB → 3.4MB (2.7x), 68 JPEGs deleted\n2026-04-20T11:40:59.460075Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-456029760066552990, trigger=visual_change)\n2026-04-20T11:41:02.495697Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-456029760066552990, trigger=visual_change)\n2026-04-20T11:41:05.496427Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-456029760066552990, trigger=visual_change)\n2026-04-20T11:41:08.546403Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-456029760066552990, trigger=visual_change)\n2026-04-20T11:42:34.401639Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-456029760066552990, trigger=visual_change)\n2026-04-20T11:42:43.277648Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3155554097147706318, trigger=click)\n2026-04-20T11:42:44.143615Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3155554097147706318, trigger=click)\n2026-04-20T11:42:44.214701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3155554097147706318, trigger=click)\n2026-04-20T11:42:47.032602Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3155554097147706318, trigger=click)\n2026-04-20T11:42:47.080822Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3155554097147706318, trigger=click)\n2026-04-20T11:43:06.469036Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3155554097147706318, trigger=click)\n2026-04-20T11:43:07.387591Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3155554097147706318, trigger=click)\n2026-04-20T11:43:08.580298Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2132333697539486641, trigger=click)\n2026-04-20T11:43:36.517926Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8547944451951971235, trigger=visual_change)\n2026-04-20T11:43:48.604378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=987107508425736725, trigger=visual_change)\n2026-04-20T11:43:57.614359Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8547944451951971235, trigger=visual_change)\n2026-04-20T11:44:18.824990Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8547944451951971235, trigger=visual_change)\n2026-04-20T11:44:24.907462Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8547944451951971235, trigger=visual_change)\n2026-04-20T11:45:14.820258Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8547944451951971235, trigger=visual_change)\n2026-04-20T11:45:17.865890Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8547944451951971235, trigger=visual_change)\n2026-04-20T11:45:45.016855Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:45:45.107955Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:45:51.754851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:45:51.856465Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:45:52.816897Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:45:52.891807Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:45:53.075541Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=139 elapsed=1.017660667s\n2026-04-20T11:45:53.075652Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 139 eligible frames\n2026-04-20T11:45:53.378781Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:45:58.733979Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 62 frames, 12.9MB → 3.2MB (4.0x), 62 JPEGs deleted\n2026-04-20T11:46:06.485751Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 75 frames, 11.9MB → 4.1MB (2.9x), 75 JPEGs deleted\n2026-04-20T11:46:39.095124Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=987107508425736725, trigger=visual_change)\n2026-04-20T11:46:42.057902Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=987107508425736725, trigger=visual_change)\n2026-04-20T11:48:11.765669Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=9195472439744667829, trigger=click)\n2026-04-20T11:48:15.524597Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Slack, id=4, grace=30s)\n2026-04-20T11:48:21.832650Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4229935992045172066, trigger=visual_change)\n2026-04-20T11:48:46.695881Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Idle (timeout=30s, app=Slack, id=4)\n2026-04-20T11:48:46.921237Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting ended (id=4)\n2026-04-20T11:48:50.943040Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:48:51.021231Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:49:10.755384Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4229935992045172066, trigger=visual_change)\n2026-04-20T11:49:17.161498Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7106754424718048973, trigger=click)\n2026-04-20T11:49:21.158818Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7106754424718048973, trigger=visual_change)\n2026-04-20T11:49:22.487278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7106754424718048973, trigger=click)\n2026-04-20T11:49:22.530338Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7106754424718048973, trigger=click)\n2026-04-20T11:49:23.006416Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7106754424718048973, trigger=click)\n2026-04-20T11:49:23.047268Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7106754424718048973, trigger=click)\n2026-04-20T11:49:37.147379Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7106754424718048973, trigger=click)\n2026-04-20T11:50:39.151894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:50:39.232274Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:50:43.572057Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:50:43.624058Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:50:48.638461Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:50:48.728784Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:50:51.101000Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:50:51.164752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:09.566936Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=192 elapsed=3.068271875s\n2026-04-20T11:51:09.567545Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 192 eligible frames\n2026-04-20T11:51:20.254226Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 99 frames, 13.0MB → 3.8MB (3.4x), 99 JPEGs deleted\n2026-04-20T11:51:21.236766Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 4 frames, 0.5MB → 0.2MB (3.1x), 4 JPEGs deleted\n2026-04-20T11:51:27.711099Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 87 frames, 18.0MB → 2.3MB (7.9x), 87 JPEGs deleted\n2026-04-20T11:51:31.197932Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:31.303759Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:32.213378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:32.274981Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:35.101541Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:35.200979Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:36.153649Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:36.189190Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:36.685206Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:37.415842Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:37.529712Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:48.634934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:48.699131Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:51.963953Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:51.997497Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:54.179984Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:54.228458Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:52:46.320080Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:52:49.012351Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:52:51.071555Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:52:51.123083Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:53:00.887309Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7089240009464300311, trigger=click)\n2026-04-20T11:53:00.940245Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7089240009464300311, trigger=click)\n2026-04-20T11:55:45.932772Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5694682761366780141, trigger=visual_change)\n2026-04-20T11:55:53.915956Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4530837260207295611, trigger=click)\n2026-04-20T11:55:54.002399Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4530837260207295611, trigger=click)\n2026-04-20T11:55:54.965125Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4530837260207295611, trigger=visual_change)\n2026-04-20T11:55:58.041145Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4530837260207295611, trigger=visual_change)\n2026-04-20T11:56:09.233089Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6479409851876233602, trigger=click)\n2026-04-20T11:56:09.295538Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6479409851876233602, trigger=click)\n2026-04-20T11:56:10.268022Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6479409851876233602, trigger=click)\n2026-04-20T11:56:10.343195Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6479409851876233602, trigger=click)\n2026-04-20T11:56:13.105773Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6479409851876233602, trigger=visual_change)\n2026-04-20T11:56:20.539351Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5840499593443530124, trigger=click)\n2026-04-20T11:56:28.576130Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 46 eligible frames\n2026-04-20T11:56:29.835734Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.3MB → 0.2MB (12.9x), 17 JPEGs deleted\n2026-04-20T11:56:33.611672Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.4MB → 2.5MB (1.8x), 26 JPEGs deleted\n2026-04-20T11:57:24.788972Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=visual_change)\n2026-04-20T11:57:36.481689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=click)\n2026-04-20T11:57:37.756625Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3030885276270352434, trigger=click)\n2026-04-20T11:57:37.834390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=click)\n2026-04-20T11:57:49.238635Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=visual_change)\n2026-04-20T11:57:52.246590Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=visual_change)\n2026-04-20T11:57:55.241832Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=visual_change)\n2026-04-20T11:57:58.301374Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=visual_change)\n2026-04-20T11:58:01.337222Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=visual_change)\n2026-04-20T11:58:26.816413Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=visual_change)\n2026-04-20T11:58:29.856452Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=visual_change)\n2026-04-20T11:58:30.666522Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=click)\n2026-04-20T11:58:30.701317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3030885276270352434, trigger=click)\n2026-04-20T11:58:35.989225Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=visual_change)\n2026-04-20T11:58:38.498940Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3030885276270352434, trigger=click)\n2026-04-20T11:58:40.794993Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=click)\n2026-04-20T11:58:42.377239Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=visual_change)\n2026-04-20T11:58:59.532131Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6813386454352183033, trigger=visual_change)\n2026-04-20T11:59:39.744543Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6813386454352183033, trigger=visual_change)\n2026-04-20T11:59:58.627407Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3151396900374529455, trigger=visual_change)\n2026-04-20T12:01:34.882479Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=87 elapsed=1.259418542s\n2026-04-20T12:01:34.882676Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 87 eligible frames\n2026-04-20T12:01:37.375070Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 35 frames, 10.6MB → 2.3MB (4.6x), 35 JPEGs deleted\n2026-04-20T12:01:45.894068Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 50 frames, 8.1MB → 4.1MB (2.0x), 50 JPEGs deleted\n2026-04-20T12:01:50.133673Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3134476686614698911, trigger=click)\n2026-04-20T12:01:50.211171Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3134476686614698911, trigger=click)\n2026-04-20T12:01:55.273763Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=467660169672458461, trigger=visual_change)\n2026-04-20T12:02:00.095574Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=467660169672458461, trigger=click)\n2026-04-20T12:02:15.114277Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=467660169672458461, trigger=click)\n2026-04-20T12:02:15.166674Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=467660169672458461, trigger=click)\n2026-04-20T12:02:16.372669Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=467660169672458461, trigger=click)\n2026-04-20T12:02:16.452496Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=467660169672458461, trigger=click)\n2026-04-20T12:02:17.931496Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=467660169672458461, trigger=click)\n2026-04-20T12:02:17.993032Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=467660169672458461, trigger=click)\n2026-04-20T12:02:20.527678Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=467660169672458461, trigger=click)\n2026-04-20T12:02:20.583726Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=467660169672458461, trigger=click)\n2026-04-20T12:02:24.944153Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-218291911025499455, trigger=click)\n2026-04-20T12:02:26.245682Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-218291911025499455, trigger=click)\n2026-04-20T12:02:27.227059Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-218291911025499455, trigger=click)\n2026-04-20T12:02:27.321541Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-218291911025499455, trigger=click)\n2026-04-20T12:02:59.757184Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8912532918897684009, trigger=click)\n2026-04-20T12:02:59.854055Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8912532918897684009, trigger=click)","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.36469415,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.36668882,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.45910904,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.46110374,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.55352396,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5555186,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.64793885,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6499335,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7287234,"top":1.0,"width":0.01861702,"height":-0.023144484},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"screenpipe\"","depth":1,"bounds":{"left":0.49634308,"top":1.0,"width":0.027925532,"height":-0.02394259},"role_description":"text"}]...
|
6376510702070023487
|
2716136870039889273
|
visual_change
|
accessibility
|
NULL
|
Last login: Mon Apr 20 10:16:41 on ttys009
Poetry Last login: Mon Apr 20 10:16:41 on ttys009
Poetry could not find a pyproject.toml file in /Users/lukas or its parents
Poetry could not find a pyproject.toml file in /Users/lukas or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-start
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-04-20T10:17:08.672567Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store
checking permissions...
screen recording: ok
accessibility: ok
2026-04-20T10:17:08.735636Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-04-20T10:17:09.168849Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-04-20T10:17:09.170474Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-04-20T10:17:09.170918Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-04-20T10:17:09.203704Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-04-20T10:17:09.203780Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-04-20T10:17:09.203962Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-04-20T10:17:09.203976Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-04-20T10:17:09.203934Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-04-20T10:17:09.204030Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-04-20T10:17:09.203954Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-04-20T10:17:09.215020Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))
2026-04-20T10:17:09.220127Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-04-20T10:17:09.220306Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-04-20T10:17:09.220863Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-04-20T10:17:09.221034Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-04-20T10:17:09.221177Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-04-20T10:17:09.221820Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary
2026-04-20T10:17:09.221839Z INFO screenpipe_core::pipes: loaded 6 pipes from "/Users/lukas/.screenpipe/pipes"
_
__________________ ___ ____ ____ (_____ ___
/ ___/ ___/ ___/ _ \/ _ \/ __ \ / __ \/ / __ \/ _ \
(__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/
/____/\___/_/ \___/\___/_/ /_/ / .___/_/ .___/\___/
/_/ /_/
power AI by everything you've seen, said or heard
open source | runs locally | developer friendly
┌────────────────────────┬────────────────────────────────────┐
│ setting │ value │
├────────────────────────┼────────────────────────────────────┤
│ audio chunk duration │ 30 seconds │
│ port │ 3030 │
│ audio disabled │ true │
│ vision disabled │ false │
│ pause on DRM content │ false │
│ audio engine │ Parakeet │
│ vad engine │ Silero │
│ data directory │ /Users/lukas/.screenpipe │
│ debug mode │ false │
│ telemetry │ true │
│ use pii removal │ true │
│ use all monitors │ true │
2026-04-20T10:17:09.223448Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)
│ ignored windows │ ["Boosteroid"] │
│ included windows │ [] │
│ cloud sync │ disabled │
│ auto-destruct pid │ 0 │
│ deepgram key │ not set │
│ api auth │ enabled │
2026-04-20T10:17:09.227535Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh
│ encrypt secrets │ disabled │
│ retention days │ 14 │
├────────────────────────┼────────────────────────────────────┤
│ languages │ │
│ │ all languages │
├────────────────────────┼────────────────────────────────────┤
│ monitors │ │
│ │ id: 1 │
│ │ id: 2 │
├────────────────────────┼────────────────────────────────────┤
│ audio devices │ │
│ │ disabled │
└────────────────────────┴────────────────────────────────────┘
you are using local processing. all your data stays on your computer.
warning: telemetry is enabled. only error-level data will be sent.
to disable, use the --disable-telemetry flag.
check latest changes here: https://github.com/screenpipe/screenpipe/releases
2026-04-20T10:17:09.240088Z INFO screenpipe: starting UI event capture
2026-04-20T10:17:09.253668Z INFO screenpipe_engine::ui_recorder: Starting UI event capture
2026-04-20T10:17:09.267973Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)
2026-04-20T10:17:09.268072Z INFO screenpipe_engine::ui_recorder: UI recording session started: f196d677-2a10-4dec-93e7-9dd9048a1d8e
2026-04-20T10:17:09.268173Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-19 07:17:09.268169 UTC to 2026-04-20 07:17:09.268169 UTC)
2026-04-20T10:17:09.268665Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)
2026-04-20T10:17:09.275204Z INFO screenpipe_engine::server: Server listening on [IP_ADDRESS]:3030
2026-04-20T10:17:09.280547Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030
2026-04-20T10:17:09.284876Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)
2026-04-20T10:17:09.284906Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)
2026-04-20T10:17:09.284942Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)
2026-04-20T10:17:09.316523Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-04-20T10:17:09.316557Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-04-20T10:17:09.316583Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)
2026-04-20T10:17:09.316603Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-04-20T10:17:09.975374Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 1 excluded)
2026-04-20T10:17:10.050320Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 1 excluded)
2026-04-20T10:17:10.109022Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=52481, dur=72ms
2026-04-20T10:17:10.197530Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=52482, dur=98ms
2026-04-20T10:17:10.926185Z WARN sqlx::query: summary="SELECT f.id, f.timestamp, f.offset_index, …" db.statement="\n\nSELECT\n f.id,\n f.timestamp,\n f.offset_index,\n COALESCE(\n SUBSTR(f.full_text, 1, 200),\n SUBSTR(f.accessibility_text, 1, 200),\n (\n SELECT\n SUBSTR(ot.text, 1, 200)\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as text,\n COALESCE(\n f.app_name,\n (\n SELECT\n ot.app_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as app_name,\n COALESCE(\n f.window_name,\n (\n SELECT\n ot.window_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as window_name,\n COALESCE(vc.device_name, f.device_name) as screen_device,\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\n COALESCE(vc.fps, 0.033) as chunk_fps,\n f.browser_url,\n f.machine_id\nFROM\n frames f\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\nWHERE\n f.timestamp >= ?1\n AND f.timestamp <= ?2\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\nORDER BY\n f.timestamp DESC,\n f.offset_index DESC\nLIMIT\n 10000\n" rows_affected=0 rows_returned=974 elapsed=1.657379083s
2026-04-20T10:17:10.928810Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 974 frame entries, coverage from 2026-04-19 07:17:09.268169 UTC
2026-04-20T10:17:36.605708Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5556097941235749601, trigger=visual_change)
2026-04-20T10:17:41.066595Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5621935701738529327, trigger=click)
2026-04-20T10:17:41.100078Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5621935701738529327, trigger=click)
2026-04-20T10:17:46.116429Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5621935701738529327, trigger=click)
2026-04-20T10:17:46.148269Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5621935701738529327, trigger=click)
2026-04-20T10:18:13.360099Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=145 elapsed=4.153777416s
2026-04-20T10:18:13.360276Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 145 eligible frames
2026-04-20T10:18:18.937138Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 90 frames, 15.2MB → 6.4MB (2.4x), 90 JPEGs deleted
2026-04-20T10:18:22.014745Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 53 frames, 9.4MB → 2.0MB (4.6x), 53 JPEGs deleted
2026-04-20T10:18:56.067965Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1399546062189663050, trigger=visual_change)
2026-04-20T10:18:56.859644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1399546062189663050, trigger=click)
2026-04-20T10:18:59.894779Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=[CREDIT_CARD], trigger=click)
2026-04-20T10:19:12.201247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5621935701738529327, trigger=visual_change)
2026-04-20T10:21:22.063263Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1399546062189663050, trigger=visual_change)
2026-04-20T10:21:35.657143Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5007800743451086391, trigger=visual_change)
2026-04-20T10:21:35.899663Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5007800743451086391, trigger=visual_change)
2026-04-20T10:21:38.094166Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5007800743451086391, trigger=click)
2026-04-20T10:21:38.149655Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5007800743451086391, trigger=click)
2026-04-20T10:21:38.947641Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5007800743451086391, trigger=click)
2026-04-20T10:21:38.991934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5007800743451086391, trigger=click)
2026-04-20T10:23:28.231526Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=2 elapsed=6.103025792s
2026-04-20T10:23:28.232845Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
2026-04-20T10:25:18.292352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=133505750984754566, trigger=click)
2026-04-20T10:25:33.154631Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:25:33.227754Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:25:34.786990Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)
2026-04-20T10:25:36.507114Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:25:36.556707Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:25:37.741060Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)
2026-04-20T10:25:39.466175Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:25:39.547293Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:26:02.072902Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2625703622302799632, trigger=visual_change)
2026-04-20T10:26:05.038754Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8395829747728977847, trigger=visual_change)
2026-04-20T10:26:10.400901Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:26:10.459718Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:26:14.431146Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)
2026-04-20T10:26:17.437868Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=visual_change)
2026-04-20T10:26:35.296162Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:26:35.339241Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:26:37.233387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:26:37.326557Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:00.031681Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:00.067495Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:01.950749Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:02.027316Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:13.045805Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:13.116607Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:15.272022Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:15.311144Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:17.880859Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:17.952143Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:21.645455Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:21.706889Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:36.304603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:36.380537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:37.368951Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:37.459157Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:40.420505Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:40.469217Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:41.179717Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)
2026-04-20T10:28:00.173884Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:00.251737Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:01.241028Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:01.288002Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:02.985445Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:03.078932Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:04.726087Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:04.770305Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:18.186992Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:18.272249Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:28.337807Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 14 eligible frames
2026-04-20T10:28:29.608030Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 0.7MB → 0.5MB (1.4x), 8 JPEGs deleted
2026-04-20T10:28:30.685845Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 6 frames, 1.2MB → 0.7MB (1.8x), 6 JPEGs deleted
2026-04-20T10:28:49.943477Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:49.984595Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:50.611087Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:50.628530Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:54.853245Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:57.739309Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)
2026-04-20T10:29:03.177558Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:03.231322Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:03.857989Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)
2026-04-20T10:29:04.993121Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:05.032838Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:06.923393Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)
2026-04-20T10:29:07.890421Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:07.960410Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:08.812301Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:26.656780Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:26.775833Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:27.602791Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:27.639583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:34.060332Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2389025338591748766, trigger=visual_change)
2026-04-20T10:29:37.050675Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2389025338591748766, trigger=click)
2026-04-20T10:29:37.085946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2389025338591748766, trigger=click)
2026-04-20T10:29:40.501396Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2389025338591748766, trigger=visual_change)
2026-04-20T10:29:43.751715Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)
2026-04-20T10:29:43.843367Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:44.468329Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:46.931137Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:49.616400Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:49.692474Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:50.298335Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)
2026-04-20T10:29:51.348506Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:51.436585Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:30:12.602958Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8200761366188343712, trigger=click)
2026-04-20T10:31:17.535958Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5166044279428207369, trigger=click)
2026-04-20T10:31:18.668547Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5166044279428207369, trigger=visual_change)
2026-04-20T10:31:19.518515Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5166044279428207369, trigger=click)
2026-04-20T10:31:19.681398Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5166044279428207369, trigger=click)
2026-04-20T10:31:21.044436Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5166044279428207369, trigger=click)
2026-04-20T10:31:21.086009Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5166044279428207369, trigger=click)
2026-04-20T10:31:21.680970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5166044279428207369, trigger=visual_change)
2026-04-20T10:32:05.428125Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=visual_change)
2026-04-20T10:32:07.004460Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=click)
2026-04-20T10:32:07.088172Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6999516640019587394, trigger=click)
2026-04-20T10:32:08.380482Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=visual_change)
2026-04-20T10:32:11.588306Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=click)
2026-04-20T10:32:11.689288Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6999516640019587394, trigger=click)
2026-04-20T10:32:12.318265Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6999516640019587394, trigger=click)
2026-04-20T10:32:12.381069Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=click)
2026-04-20T10:32:20.139124Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)
2026-04-20T10:32:20.175356Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)
2026-04-20T10:32:23.490851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=click)
2026-04-20T10:32:27.111949Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=visual_change)
2026-04-20T10:32:37.220458Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6999516640019587394, trigger=click)
2026-04-20T10:32:37.303363Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=click)
2026-04-20T10:32:38.554270Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=click)
2026-04-20T10:32:38.619116Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6999516640019587394, trigger=click)
2026-04-20T10:32:44.030894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=click)
2026-04-20T10:32:44.098803Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4838132251856752988, trigger=click)
2026-04-20T10:32:45.233990Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=click)
2026-04-20T10:32:45.238569Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4838132251856752988, trigger=click)
2026-04-20T10:32:48.884987Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=visual_change)
2026-04-20T10:32:51.832116Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)
2026-04-20T10:32:51.860110Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)
2026-04-20T10:32:53.754008Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)
2026-04-20T10:32:53.796899Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)
2026-04-20T10:32:55.635715Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)
2026-04-20T10:32:55.675828Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)
2026-04-20T10:32:57.084341Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)
2026-04-20T10:32:57.128626Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)
2026-04-20T10:32:58.841455Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)
2026-04-20T10:32:58.882031Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)
2026-04-20T10:33:00.965217Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)
2026-04-20T10:33:01.040922Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)
2026-04-20T10:33:02.591751Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)
2026-04-20T10:33:02.633245Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)
2026-04-20T10:33:03.324241Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)
2026-04-20T10:33:03.353493Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)
2026-04-20T10:33:05.802391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)
2026-04-20T10:33:05.849275Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)
2026-04-20T10:33:06.911518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=visual_change)
2026-04-20T10:33:14.484135Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=click)
2026-04-20T10:33:14.530843Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4838132251856752988, trigger=click)
2026-04-20T10:33:34.189406Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4838132251856752988, trigger=click)
2026-04-20T10:33:34.205308Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=94 elapsed=3.603974333s
2026-04-20T10:33:34.205567Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 94 eligible frames
2026-04-20T10:33:34.240884Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=visual_change)
2026-04-20T10:33:35.686677Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4838132251856752988, trigger=click)
2026-04-20T10:33:35.780825Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=click)
2026-04-20T10:33:37.134576Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 38 frames, 8.0MB → 4.4MB (1.8x), 38 JPEGs deleted
2026-04-20T10:33:40.850354Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 54 frames, 7.9MB → 3.4MB (2.3x), 54 JPEGs deleted
2026-04-20T10:33:55.372436Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=visual_change)
2026-04-20T10:35:01.169212Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)
2026-04-20T10:35:01.245363Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)
2026-04-20T10:35:02.392419Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=visual_change)
2026-04-20T10:35:05.029174Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)
2026-04-20T10:35:05.073174Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)
2026-04-20T10:35:07.222477Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)
2026-04-20T10:35:07.329020Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)
2026-04-20T10:35:08.707660Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=visual_change)
2026-04-20T10:35:27.744689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)
2026-04-20T10:35:27.812062Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)
2026-04-20T10:36:18.265456Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)
2026-04-20T10:36:18.437457Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)
2026-04-20T10:36:23.437791Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)
2026-04-20T10:36:23.487637Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)
2026-04-20T10:36:24.299771Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=visual_change)
2026-04-20T10:36:25.135894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)
2026-04-20T10:36:25.257064Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)
2026-04-20T10:36:27.317393Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=visual_change)
2026-04-20T10:36:50.815358Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)
2026-04-20T10:38:04.728644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4435744464912499495, trigger=visual_change)
2026-04-20T10:38:07.749721Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4435744464912499495, trigger=visual_change)
2026-04-20T10:38:13.318000Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=visual_change)
2026-04-20T10:38:13.969769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=visual_change)
2026-04-20T10:38:14.800566Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)
2026-04-20T10:38:14.834512Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)
2026-04-20T10:38:17.252696Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)
2026-04-20T10:38:17.328544Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)
2026-04-20T10:38:24.892322Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)
2026-04-20T10:38:24.943640Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)
2026-04-20T10:38:35.256001Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)
2026-04-20T10:38:35.322251Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)
2026-04-20T10:38:40.980335Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 88 eligible frames
2026-04-20T10:38:43.345927Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 6.6MB → 2.6MB (2.5x), 39 JPEGs deleted
2026-04-20T10:38:46.544495Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 47 frames, 7.3MB → 2.8MB (2.6x), 47 JPEGs deleted
2026-04-20T10:39:26.663352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=visual_change)
2026-04-20T10:39:29.597544Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)
2026-04-20T10:39:29.637879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)
2026-04-20T10:40:07.495065Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=visual_change)
2026-04-20T10:40:11.064923Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=visual_change)
2026-04-20T10:40:11.431065Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)
2026-04-20T10:40:12.068565Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=click)
2026-04-20T10:40:12.110719Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)
2026-04-20T10:40:14.179306Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=click)
2026-04-20T10:40:14.239361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)
2026-04-20T10:41:20.489623Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=click)
2026-04-20T10:43:48.184341Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=82 elapsed=1.63218175s
2026-04-20T10:43:48.184571Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 82 eligible frames
2026-04-20T10:43:50.234957Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 2.2MB → 0.1MB (16.1x), 30 JPEGs deleted
2026-04-20T10:43:55.342383Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 50 frames, 7.9MB → 3.2MB (2.5x), 50 JPEGs deleted
2026-04-20T10:44:06.225390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4079037146782974603, trigger=click)
2026-04-20T10:44:14.808445Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Slack, signals=2)
2026-04-20T10:44:19.110273Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-539912533838677065, trigger=click)
2026-04-20T10:44:19.155111Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-539912533838677065, trigger=click)
2026-04-20T10:44:19.832463Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Slack, signals=2, browser=false)
2026-04-20T10:44:19.834928Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=3, app=Slack, title=None)
2026-04-20T10:44:27.766267Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5412550087722993493, trigger=visual_change)
2026-04-20T10:44:39.799864Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5412550087722993493, trigger=visual_change)
2026-04-20T10:44:57.832108Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5412550087722993493, trigger=visual_change)
2026-04-20T10:44:57.940548Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5412550087722993493, trigger=click)
2026-04-20T10:44:58.605782Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5412550087722993493, trigger=click)
2026-04-20T10:44:58.637243Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5412550087722993493, trigger=click)
2026-04-20T10:45:00.807501Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5412550087722993493, trigger=visual_change)
2026-04-20T10:45:16.166619Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8594311245071571574, trigger=visual_change)
2026-04-20T10:45:56.391618Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)
2026-04-20T10:45:56.468127Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=click)
2026-04-20T10:46:03.056730Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8594311245071571574, trigger=visual_change)
2026-04-20T10:46:12.195973Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8594311245071571574, trigger=visual_change)
2026-04-20T10:46:17.958643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=click)
2026-04-20T10:46:18.011452Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)
2026-04-20T10:47:02.211065Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5662459752758049610, trigger=click)
2026-04-20T10:47:02.257675Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5662459752758049610, trigger=click)
2026-04-20T10:47:05.697096Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5662459752758049610, trigger=click)
2026-04-20T10:47:06.566076Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5662459752758049610, trigger=click)
2026-04-20T10:47:07.827281Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping captur...
|
NULL
|
|
54531
|
1177
|
11
|
2026-04-20T09:03:05.663315+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776675785663_m1.jpg...
|
iTerm2
|
screenpipe"
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Last login: Mon Apr 20 10:16:41 on ttys009
Poetry Last login: Mon Apr 20 10:16:41 on ttys009
Poetry could not find a pyproject.toml file in /Users/lukas or its parents
Poetry could not find a pyproject.toml file in /Users/lukas or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-start
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-04-20T10:17:08.672567Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store
checking permissions...
screen recording: ok
accessibility: ok
2026-04-20T10:17:08.735636Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-04-20T10:17:09.168849Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-04-20T10:17:09.170474Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-04-20T10:17:09.170918Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-04-20T10:17:09.203704Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-04-20T10:17:09.203780Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-04-20T10:17:09.203962Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-04-20T10:17:09.203976Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-04-20T10:17:09.203934Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-04-20T10:17:09.204030Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-04-20T10:17:09.203954Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-04-20T10:17:09.215020Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))
2026-04-20T10:17:09.220127Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-04-20T10:17:09.220306Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-04-20T10:17:09.220863Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-04-20T10:17:09.221034Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-04-20T10:17:09.221177Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-04-20T10:17:09.221820Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary
2026-04-20T10:17:09.221839Z INFO screenpipe_core::pipes: loaded 6 pipes from "/Users/lukas/.screenpipe/pipes"
_
__________________ ___ ____ ____ (_____ ___
/ ___/ ___/ ___/ _ \/ _ \/ __ \ / __ \/ / __ \/ _ \
(__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/
/____/\___/_/ \___/\___/_/ /_/ / .___/_/ .___/\___/
/_/ /_/
power AI by everything you've seen, said or heard
open source | runs locally | developer friendly
┌────────────────────────┬────────────────────────────────────┐
│ setting │ value │
├────────────────────────┼────────────────────────────────────┤
│ audio chunk duration │ 30 seconds │
│ port │ 3030 │
│ audio disabled │ true │
│ vision disabled │ false │
│ pause on DRM content │ false │
│ audio engine │ Parakeet │
│ vad engine │ Silero │
│ data directory │ /Users/lukas/.screenpipe │
│ debug mode │ false │
│ telemetry │ true │
│ use pii removal │ true │
│ use all monitors │ true │
2026-04-20T10:17:09.223448Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)
│ ignored windows │ ["Boosteroid"] │
│ included windows │ [] │
│ cloud sync │ disabled │
│ auto-destruct pid │ 0 │
│ deepgram key │ not set │
│ api auth │ enabled │
2026-04-20T10:17:09.227535Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh
│ encrypt secrets │ disabled │
│ retention days │ 14 │
├────────────────────────┼────────────────────────────────────┤
│ languages │ │
│ │ all languages │
├────────────────────────┼────────────────────────────────────┤
│ monitors │ │
│ │ id: 1 │
│ │ id: 2 │
├────────────────────────┼────────────────────────────────────┤
│ audio devices │ │
│ │ disabled │
└────────────────────────┴────────────────────────────────────┘
you are using local processing. all your data stays on your computer.
warning: telemetry is enabled. only error-level data will be sent.
to disable, use the --disable-telemetry flag.
check latest changes here: https://github.com/screenpipe/screenpipe/releases
2026-04-20T10:17:09.240088Z INFO screenpipe: starting UI event capture
2026-04-20T10:17:09.253668Z INFO screenpipe_engine::ui_recorder: Starting UI event capture
2026-04-20T10:17:09.267973Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)
2026-04-20T10:17:09.268072Z INFO screenpipe_engine::ui_recorder: UI recording session started: f196d677-2a10-4dec-93e7-9dd9048a1d8e
2026-04-20T10:17:09.268173Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-19 07:17:09.268169 UTC to 2026-04-20 07:17:09.268169 UTC)
2026-04-20T10:17:09.268665Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)
2026-04-20T10:17:09.275204Z INFO screenpipe_engine::server: Server listening on [IP_ADDRESS]:3030
2026-04-20T10:17:09.280547Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030
2026-04-20T10:17:09.284876Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)
2026-04-20T10:17:09.284906Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)
2026-04-20T10:17:09.284942Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)
2026-04-20T10:17:09.316523Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-04-20T10:17:09.316557Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-04-20T10:17:09.316583Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)
2026-04-20T10:17:09.316603Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-04-20T10:17:09.975374Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 1 excluded)
2026-04-20T10:17:10.050320Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 1 excluded)
2026-04-20T10:17:10.109022Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=52481, dur=72ms
2026-04-20T10:17:10.197530Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=52482, dur=98ms
2026-04-20T10:17:10.926185Z WARN sqlx::query: summary="SELECT f.id, f.timestamp, f.offset_index, …" db.statement="\n\nSELECT\n f.id,\n f.timestamp,\n f.offset_index,\n COALESCE(\n SUBSTR(f.full_text, 1, 200),\n SUBSTR(f.accessibility_text, 1, 200),\n (\n SELECT\n SUBSTR(ot.text, 1, 200)\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as text,\n COALESCE(\n f.app_name,\n (\n SELECT\n ot.app_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as app_name,\n COALESCE(\n f.window_name,\n (\n SELECT\n ot.window_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as window_name,\n COALESCE(vc.device_name, f.device_name) as screen_device,\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\n COALESCE(vc.fps, 0.033) as chunk_fps,\n f.browser_url,\n f.machine_id\nFROM\n frames f\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\nWHERE\n f.timestamp >= ?1\n AND f.timestamp <= ?2\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\nORDER BY\n f.timestamp DESC,\n f.offset_index DESC\nLIMIT\n 10000\n" rows_affected=0 rows_returned=974 elapsed=1.657379083s
2026-04-20T10:17:10.928810Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 974 frame entries, coverage from 2026-04-19 07:17:09.268169 UTC
2026-04-20T10:17:36.605708Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5556097941235749601, trigger=visual_change)
2026-04-20T10:17:41.066595Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5621935701738529327, trigger=click)
2026-04-20T10:17:41.100078Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5621935701738529327, trigger=click)
2026-04-20T10:17:46.116429Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5621935701738529327, trigger=click)
2026-04-20T10:17:46.148269Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5621935701738529327, trigger=click)
2026-04-20T10:18:13.360099Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=145 elapsed=4.153777416s
2026-04-20T10:18:13.360276Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 145 eligible frames
2026-04-20T10:18:18.937138Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 90 frames, 15.2MB → 6.4MB (2.4x), 90 JPEGs deleted
2026-04-20T10:18:22.014745Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 53 frames, 9.4MB → 2.0MB (4.6x), 53 JPEGs deleted
2026-04-20T10:18:56.067965Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1399546062189663050, trigger=visual_change)
2026-04-20T10:18:56.859644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1399546062189663050, trigger=click)
2026-04-20T10:18:59.894779Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=[CREDIT_CARD], trigger=click)
2026-04-20T10:19:12.201247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5621935701738529327, trigger=visual_change)
2026-04-20T10:21:22.063263Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1399546062189663050, trigger=visual_change)
2026-04-20T10:21:35.657143Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5007800743451086391, trigger=visual_change)
2026-04-20T10:21:35.899663Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5007800743451086391, trigger=visual_change)
2026-04-20T10:21:38.094166Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5007800743451086391, trigger=click)
2026-04-20T10:21:38.149655Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5007800743451086391, trigger=click)
2026-04-20T10:21:38.947641Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5007800743451086391, trigger=click)
2026-04-20T10:21:38.991934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5007800743451086391, trigger=click)
2026-04-20T10:23:28.231526Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=2 elapsed=6.103025792s
2026-04-20T10:23:28.232845Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
2026-04-20T10:25:18.292352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=133505750984754566, trigger=click)
2026-04-20T10:25:33.154631Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:25:33.227754Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:25:34.786990Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)
2026-04-20T10:25:36.507114Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:25:36.556707Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:25:37.741060Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)
2026-04-20T10:25:39.466175Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:25:39.547293Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:26:02.072902Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2625703622302799632, trigger=visual_change)
2026-04-20T10:26:05.038754Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8395829747728977847, trigger=visual_change)
2026-04-20T10:26:10.400901Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:26:10.459718Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:26:14.431146Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)
2026-04-20T10:26:17.437868Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=visual_change)
2026-04-20T10:26:35.296162Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:26:35.339241Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:26:37.233387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:26:37.326557Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:00.031681Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:00.067495Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:01.950749Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:02.027316Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:13.045805Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:13.116607Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:15.272022Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:15.311144Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:17.880859Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:17.952143Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:21.645455Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:21.706889Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:36.304603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:36.380537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:37.368951Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:37.459157Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:40.420505Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:40.469217Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:41.179717Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)
2026-04-20T10:28:00.173884Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:00.251737Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:01.241028Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:01.288002Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:02.985445Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:03.078932Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:04.726087Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:04.770305Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:18.186992Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:18.272249Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:28.337807Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 14 eligible frames
2026-04-20T10:28:29.608030Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 0.7MB → 0.5MB (1.4x), 8 JPEGs deleted
2026-04-20T10:28:30.685845Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 6 frames, 1.2MB → 0.7MB (1.8x), 6 JPEGs deleted
2026-04-20T10:28:49.943477Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:49.984595Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:50.611087Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:50.628530Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:54.853245Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:57.739309Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)
2026-04-20T10:29:03.177558Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:03.231322Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:03.857989Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)
2026-04-20T10:29:04.993121Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:05.032838Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:06.923393Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)
2026-04-20T10:29:07.890421Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:07.960410Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:08.812301Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:26.656780Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:26.775833Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:27.602791Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:27.639583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:34.060332Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2389025338591748766, trigger=visual_change)
2026-04-20T10:29:37.050675Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2389025338591748766, trigger=click)
2026-04-20T10:29:37.085946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2389025338591748766, trigger=click)
2026-04-20T10:29:40.501396Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2389025338591748766, trigger=visual_change)
2026-04-20T10:29:43.751715Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)
2026-04-20T10:29:43.843367Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:44.468329Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:46.931137Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:49.616400Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:49.692474Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:50.298335Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)
2026-04-20T10:29:51.348506Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:51.436585Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:30:12.602958Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8200761366188343712, trigger=click)
2026-04-20T10:31:17.535958Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5166044279428207369, trigger=click)
2026-04-20T10:31:18.668547Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5166044279428207369, trigger=visual_change)
2026-04-20T10:31:19.518515Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5166044279428207369, trigger=click)
2026-04-20T10:31:19.681398Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5166044279428207369, trigger=click)
2026-04-20T10:31:21.044436Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5166044279428207369, trigger=click)
2026-04-20T10:31:21.086009Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5166044279428207369, trigger=click)
2026-04-20T10:31:21.680970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5166044279428207369, trigger=visual_change)
2026-04-20T10:32:05.428125Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=visual_change)
2026-04-20T10:32:07.004460Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=click)
2026-04-20T10:32:07.088172Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6999516640019587394, trigger=click)
2026-04-20T10:32:08.380482Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=visual_change)
2026-04-20T10:32:11.588306Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=click)
2026-04-20T10:32:11.689288Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6999516640019587394, trigger=click)
2026-04-20T10:32:12.318265Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6999516640019587394, trigger=click)
2026-04-20T10:32:12.381069Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=click)
2026-04-20T10:32:20.139124Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)
2026-04-20T10:32:20.175356Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)
2026-04-20T10:32:23.490851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=click)
2026-04-20T10:32:27.111949Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=visual_change)
2026-04-20T10:32:37.220458Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6999516640019587394, trigger=click)
2026-04-20T10:32:37.303363Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=click)
2026-04-20T10:32:38.554270Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=click)
2026-04-20T10:32:38.619116Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6999516640019587394, trigger=click)
2026-04-20T10:32:44.030894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=click)
2026-04-20T10:32:44.098803Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4838132251856752988, trigger=click)
2026-04-20T10:32:45.233990Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=click)
2026-04-20T10:32:45.238569Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4838132251856752988, trigger=click)
2026-04-20T10:32:48.884987Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=visual_change)
2026-04-20T10:32:51.832116Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)
2026-04-20T10:32:51.860110Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)
2026-04-20T10:32:53.754008Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)
2026-04-20T10:32:53.796899Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)
2026-04-20T10:32:55.635715Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)
2026-04-20T10:32:55.675828Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)
2026-04-20T10:32:57.084341Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)
2026-04-20T10:32:57.128626Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)
2026-04-20T10:32:58.841455Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)
2026-04-20T10:32:58.882031Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)
2026-04-20T10:33:00.965217Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)
2026-04-20T10:33:01.040922Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)
2026-04-20T10:33:02.591751Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)
2026-04-20T10:33:02.633245Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)
2026-04-20T10:33:03.324241Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)
2026-04-20T10:33:03.353493Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)
2026-04-20T10:33:05.802391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)
2026-04-20T10:33:05.849275Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)
2026-04-20T10:33:06.911518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=visual_change)
2026-04-20T10:33:14.484135Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=click)
2026-04-20T10:33:14.530843Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4838132251856752988, trigger=click)
2026-04-20T10:33:34.189406Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4838132251856752988, trigger=click)
2026-04-20T10:33:34.205308Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=94 elapsed=3.603974333s
2026-04-20T10:33:34.205567Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 94 eligible frames
2026-04-20T10:33:34.240884Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=visual_change)
2026-04-20T10:33:35.686677Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4838132251856752988, trigger=click)
2026-04-20T10:33:35.780825Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=click)
2026-04-20T10:33:37.134576Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 38 frames, 8.0MB → 4.4MB (1.8x), 38 JPEGs deleted
2026-04-20T10:33:40.850354Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 54 frames, 7.9MB → 3.4MB (2.3x), 54 JPEGs deleted
2026-04-20T10:33:55.372436Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=visual_change)
2026-04-20T10:35:01.169212Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)
2026-04-20T10:35:01.245363Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)
2026-04-20T10:35:02.392419Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=visual_change)
2026-04-20T10:35:05.029174Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)
2026-04-20T10:35:05.073174Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)
2026-04-20T10:35:07.222477Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)
2026-04-20T10:35:07.329020Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)
2026-04-20T10:35:08.707660Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=visual_change)
2026-04-20T10:35:27.744689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)
2026-04-20T10:35:27.812062Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)
2026-04-20T10:36:18.265456Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)
2026-04-20T10:36:18.437457Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)
2026-04-20T10:36:23.437791Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)
2026-04-20T10:36:23.487637Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)
2026-04-20T10:36:24.299771Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=visual_change)
2026-04-20T10:36:25.135894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)
2026-04-20T10:36:25.257064Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)
2026-04-20T10:36:27.317393Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=visual_change)
2026-04-20T10:36:50.815358Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)
2026-04-20T10:38:04.728644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4435744464912499495, trigger=visual_change)
2026-04-20T10:38:07.749721Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4435744464912499495, trigger=visual_change)
2026-04-20T10:38:13.318000Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=visual_change)
2026-04-20T10:38:13.969769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=visual_change)
2026-04-20T10:38:14.800566Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)
2026-04-20T10:38:14.834512Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)
2026-04-20T10:38:17.252696Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)
2026-04-20T10:38:17.328544Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)
2026-04-20T10:38:24.892322Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)
2026-04-20T10:38:24.943640Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)
2026-04-20T10:38:35.256001Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)
2026-04-20T10:38:35.322251Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)
2026-04-20T10:38:40.980335Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 88 eligible frames
2026-04-20T10:38:43.345927Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 6.6MB → 2.6MB (2.5x), 39 JPEGs deleted
2026-04-20T10:38:46.544495Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 47 frames, 7.3MB → 2.8MB (2.6x), 47 JPEGs deleted
2026-04-20T10:39:26.663352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=visual_change)
2026-04-20T10:39:29.597544Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)
2026-04-20T10:39:29.637879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)
2026-04-20T10:40:07.495065Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=visual_change)
2026-04-20T10:40:11.064923Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=visual_change)
2026-04-20T10:40:11.431065Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)
2026-04-20T10:40:12.068565Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=click)
2026-04-20T10:40:12.110719Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)
2026-04-20T10:40:14.179306Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=click)
2026-04-20T10:40:14.239361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)
2026-04-20T10:41:20.489623Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=click)
2026-04-20T10:43:48.184341Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=82 elapsed=1.63218175s
2026-04-20T10:43:48.184571Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 82 eligible frames
2026-04-20T10:43:50.234957Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 2.2MB → 0.1MB (16.1x), 30 JPEGs deleted
2026-04-20T10:43:55.342383Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 50 frames, 7.9MB → 3.2MB (2.5x), 50 JPEGs deleted
2026-04-20T10:44:06.225390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4079037146782974603, trigger=click)
2026-04-20T10:44:14.808445Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Slack, signals=2)
2026-04-20T10:44:19.110273Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-539912533838677065, trigger=click)
2026-04-20T10:44:19.155111Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-539912533838677065, trigger=click)
2026-04-20T10:44:19.832463Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Slack, signals=2, browser=false)
2026-04-20T10:44:19.834928Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=3, app=Slack, title=None)
2026-04-20T10:44:27.766267Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5412550087722993493, trigger=visual_change)
2026-04-20T10:44:39.799864Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5412550087722993493, trigger=visual_change)
2026-04-20T10:44:57.832108Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5412550087722993493, trigger=visual_change)
2026-04-20T10:44:57.940548Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5412550087722993493, trigger=click)
2026-04-20T10:44:58.605782Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5412550087722993493, trigger=click)
2026-04-20T10:44:58.637243Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5412550087722993493, trigger=click)
2026-04-20T10:45:00.807501Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5412550087722993493, trigger=visual_change)
2026-04-20T10:45:16.166619Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8594311245071571574, trigger=visual_change)
2026-04-20T10:45:56.391618Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)
2026-04-20T10:45:56.468127Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=click)
2026-04-20T10:46:03.056730Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8594311245071571574, trigger=visual_change)
2026-04-20T10:46:12.195973Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8594311245071571574, trigger=visual_change)
2026-04-20T10:46:17.958643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=click)
2026-04-20T10:46:18.011452Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)
2026-04-20T10:47:02.211065Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5662459752758049610, trigger=click)
2026-04-20T10:47:02.257675Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5662459752758049610, trigger=click)
2026-04-20T10:47:05.697096Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5662459752758049610, trigger=click)
2026-04-20T10:47:06.566076Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5662459752758049610, trigger=click)
2026-04-20T10:47:07.827281Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping captur...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"Last login: Mon Apr 20 10:16:41 on ttys009\n\nPoetry could not find a pyproject.toml file in /Users/lukas or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-start \ndetected hardware tier: Mid\nwarning: parakeet is not supported on this platform, using whisper-tiny instead\n2026-04-20T10:17:08.672567Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store\nchecking permissions...\n screen recording: ok\n accessibility: ok\n2026-04-20T10:17:08.735636Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6\n2026-04-20T10:17:09.168849Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor\n2026-04-20T10:17:09.170474Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)\n2026-04-20T10:17:09.170918Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)\n2026-04-20T10:17:09.203704Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true\n2026-04-20T10:17:09.203780Z INFO screenpipe: meeting detector enabled — independent of transcription mode\n2026-04-20T10:17:09.203962Z INFO screenpipe: API server listening on 127.0.0.1:3030 (localhost only)\n2026-04-20T10:17:09.203976Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key\n2026-04-20T10:17:09.203934Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)\n2026-04-20T10:17:09.204030Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager\n2026-04-20T10:17:09.203954Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)\n2026-04-20T10:17:09.215020Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-20T10:17:09.220127Z INFO screenpipe_core::pipes: loaded pipe: day-recap\n2026-04-20T10:17:09.220306Z INFO screenpipe_core::pipes: loaded pipe: standup-update\n2026-04-20T10:17:09.220863Z INFO screenpipe_core::pipes: loaded pipe: ai-habits\n2026-04-20T10:17:09.221034Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown\n2026-04-20T10:17:09.221177Z INFO screenpipe_core::pipes: loaded pipe: video-export\n2026-04-20T10:17:09.221820Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary\n2026-04-20T10:17:09.221839Z INFO screenpipe_core::pipes: loaded 6 pipes from \"/Users/lukas/.screenpipe/pipes\"\n\n\n\n _ \n __________________ ___ ____ ____ (_____ ___ \n / ___/ ___/ ___/ _ \\/ _ \\/ __ \\ / __ \\/ / __ \\/ _ \\\n (__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/\n/____/\\___/_/ \\___/\\___/_/ /_/ / .___/_/ .___/\\___/ \n /_/ /_/ \n\n\n\npower AI by everything you've seen, said or heard\nopen source | runs locally | developer friendly\n\n\n┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ true │\n│ vision disabled │ false │\n│ pause on DRM content │ false │\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n2026-04-20T10:17:09.223448Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n│ ignored windows │ [\"Boosteroid\"] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n│ api auth │ enabled │\n2026-04-20T10:17:09.227535Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n│ encrypt secrets │ disabled │\n│ retention days │ 14 │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ id: 1 │\n│ │ id: 2 │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ disabled │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-20T10:17:09.240088Z INFO screenpipe: starting UI event capture\n2026-04-20T10:17:09.253668Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-20T10:17:09.267973Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-20T10:17:09.268072Z INFO screenpipe_engine::ui_recorder: UI recording session started: f196d677-2a10-4dec-93e7-9dd9048a1d8e\n2026-04-20T10:17:09.268173Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-19 07:17:09.268169 UTC to 2026-04-20 07:17:09.268169 UTC)\n2026-04-20T10:17:09.268665Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-20T10:17:09.275204Z INFO screenpipe_engine::server: Server listening on 127.0.0.1:3030\n2026-04-20T10:17:09.280547Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-20T10:17:09.284876Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-20T10:17:09.284906Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-20T10:17:09.284942Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-20T10:17:09.316523Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-20T10:17:09.316557Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-20T10:17:09.316583Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)\n2026-04-20T10:17:09.316603Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-20T10:17:09.975374Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 1 excluded)\n2026-04-20T10:17:10.050320Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 1 excluded)\n2026-04-20T10:17:10.109022Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=52481, dur=72ms\n2026-04-20T10:17:10.197530Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=52482, dur=98ms\n2026-04-20T10:17:10.926185Z WARN sqlx::query: summary=\"SELECT f.id, f.timestamp, f.offset_index, …\" db.statement=\"\\n\\nSELECT\\n f.id,\\n f.timestamp,\\n f.offset_index,\\n COALESCE(\\n SUBSTR(f.full_text, 1, 200),\\n SUBSTR(f.accessibility_text, 1, 200),\\n (\\n SELECT\\n SUBSTR(ot.text, 1, 200)\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as text,\\n COALESCE(\\n f.app_name,\\n (\\n SELECT\\n ot.app_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as app_name,\\n COALESCE(\\n f.window_name,\\n (\\n SELECT\\n ot.window_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as window_name,\\n COALESCE(vc.device_name, f.device_name) as screen_device,\\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\\n COALESCE(vc.fps, 0.033) as chunk_fps,\\n f.browser_url,\\n f.machine_id\\nFROM\\n frames f\\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\\nWHERE\\n f.timestamp >= ?1\\n AND f.timestamp <= ?2\\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\\nORDER BY\\n f.timestamp DESC,\\n f.offset_index DESC\\nLIMIT\\n 10000\\n\" rows_affected=0 rows_returned=974 elapsed=1.657379083s\n2026-04-20T10:17:10.928810Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 974 frame entries, coverage from 2026-04-19 07:17:09.268169 UTC\n2026-04-20T10:17:36.605708Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5556097941235749601, trigger=visual_change)\n2026-04-20T10:17:41.066595Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5621935701738529327, trigger=click)\n2026-04-20T10:17:41.100078Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5621935701738529327, trigger=click)\n2026-04-20T10:17:46.116429Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5621935701738529327, trigger=click)\n2026-04-20T10:17:46.148269Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5621935701738529327, trigger=click)\n2026-04-20T10:18:13.360099Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=145 elapsed=4.153777416s\n2026-04-20T10:18:13.360276Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 145 eligible frames\n2026-04-20T10:18:18.937138Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 90 frames, 15.2MB → 6.4MB (2.4x), 90 JPEGs deleted\n2026-04-20T10:18:22.014745Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 53 frames, 9.4MB → 2.0MB (4.6x), 53 JPEGs deleted\n2026-04-20T10:18:56.067965Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1399546062189663050, trigger=visual_change)\n2026-04-20T10:18:56.859644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1399546062189663050, trigger=click)\n2026-04-20T10:18:59.894779Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7926243118367575, trigger=click)\n2026-04-20T10:19:12.201247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5621935701738529327, trigger=visual_change)\n2026-04-20T10:21:22.063263Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1399546062189663050, trigger=visual_change)\n2026-04-20T10:21:35.657143Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5007800743451086391, trigger=visual_change)\n2026-04-20T10:21:35.899663Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5007800743451086391, trigger=visual_change)\n2026-04-20T10:21:38.094166Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5007800743451086391, trigger=click)\n2026-04-20T10:21:38.149655Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5007800743451086391, trigger=click)\n2026-04-20T10:21:38.947641Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5007800743451086391, trigger=click)\n2026-04-20T10:21:38.991934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5007800743451086391, trigger=click)\n2026-04-20T10:23:28.231526Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=2 elapsed=6.103025792s\n2026-04-20T10:23:28.232845Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-20T10:25:18.292352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=133505750984754566, trigger=click)\n2026-04-20T10:25:33.154631Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:25:33.227754Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:25:34.786990Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)\n2026-04-20T10:25:36.507114Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:25:36.556707Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:25:37.741060Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)\n2026-04-20T10:25:39.466175Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:25:39.547293Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:26:02.072902Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2625703622302799632, trigger=visual_change)\n2026-04-20T10:26:05.038754Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8395829747728977847, trigger=visual_change)\n2026-04-20T10:26:10.400901Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:26:10.459718Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:26:14.431146Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)\n2026-04-20T10:26:17.437868Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=visual_change)\n2026-04-20T10:26:35.296162Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:26:35.339241Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:26:37.233387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:26:37.326557Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:00.031681Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:00.067495Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:01.950749Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:02.027316Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:13.045805Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:13.116607Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:15.272022Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:15.311144Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:17.880859Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:17.952143Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:21.645455Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:21.706889Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:36.304603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:36.380537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:37.368951Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:37.459157Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:40.420505Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:40.469217Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:41.179717Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)\n2026-04-20T10:28:00.173884Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:00.251737Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:01.241028Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:01.288002Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:02.985445Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:03.078932Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:04.726087Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:04.770305Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:18.186992Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:18.272249Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:28.337807Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 14 eligible frames\n2026-04-20T10:28:29.608030Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 0.7MB → 0.5MB (1.4x), 8 JPEGs deleted\n2026-04-20T10:28:30.685845Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 6 frames, 1.2MB → 0.7MB (1.8x), 6 JPEGs deleted\n2026-04-20T10:28:49.943477Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:49.984595Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:50.611087Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:50.628530Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:54.853245Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:57.739309Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)\n2026-04-20T10:29:03.177558Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:03.231322Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:03.857989Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)\n2026-04-20T10:29:04.993121Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:05.032838Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:06.923393Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)\n2026-04-20T10:29:07.890421Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:07.960410Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:08.812301Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:26.656780Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:26.775833Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:27.602791Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:27.639583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:34.060332Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2389025338591748766, trigger=visual_change)\n2026-04-20T10:29:37.050675Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2389025338591748766, trigger=click)\n2026-04-20T10:29:37.085946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2389025338591748766, trigger=click)\n2026-04-20T10:29:40.501396Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2389025338591748766, trigger=visual_change)\n2026-04-20T10:29:43.751715Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)\n2026-04-20T10:29:43.843367Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:44.468329Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:46.931137Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:49.616400Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:49.692474Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:50.298335Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)\n2026-04-20T10:29:51.348506Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:51.436585Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:30:12.602958Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8200761366188343712, trigger=click)\n2026-04-20T10:31:17.535958Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5166044279428207369, trigger=click)\n2026-04-20T10:31:18.668547Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5166044279428207369, trigger=visual_change)\n2026-04-20T10:31:19.518515Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5166044279428207369, trigger=click)\n2026-04-20T10:31:19.681398Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5166044279428207369, trigger=click)\n2026-04-20T10:31:21.044436Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5166044279428207369, trigger=click)\n2026-04-20T10:31:21.086009Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5166044279428207369, trigger=click)\n2026-04-20T10:31:21.680970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5166044279428207369, trigger=visual_change)\n2026-04-20T10:32:05.428125Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=visual_change)\n2026-04-20T10:32:07.004460Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=click)\n2026-04-20T10:32:07.088172Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6999516640019587394, trigger=click)\n2026-04-20T10:32:08.380482Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=visual_change)\n2026-04-20T10:32:11.588306Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=click)\n2026-04-20T10:32:11.689288Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6999516640019587394, trigger=click)\n2026-04-20T10:32:12.318265Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6999516640019587394, trigger=click)\n2026-04-20T10:32:12.381069Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=click)\n2026-04-20T10:32:20.139124Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:32:20.175356Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:32:23.490851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=click)\n2026-04-20T10:32:27.111949Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=visual_change)\n2026-04-20T10:32:37.220458Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6999516640019587394, trigger=click)\n2026-04-20T10:32:37.303363Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=click)\n2026-04-20T10:32:38.554270Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=click)\n2026-04-20T10:32:38.619116Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6999516640019587394, trigger=click)\n2026-04-20T10:32:44.030894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=click)\n2026-04-20T10:32:44.098803Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4838132251856752988, trigger=click)\n2026-04-20T10:32:45.233990Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=click)\n2026-04-20T10:32:45.238569Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4838132251856752988, trigger=click)\n2026-04-20T10:32:48.884987Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=visual_change)\n2026-04-20T10:32:51.832116Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:32:51.860110Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:32:53.754008Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:32:53.796899Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:32:55.635715Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:32:55.675828Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:32:57.084341Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:32:57.128626Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:32:58.841455Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:32:58.882031Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:33:00.965217Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:33:01.040922Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:33:02.591751Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:33:02.633245Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:33:03.324241Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:33:03.353493Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:33:05.802391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:33:05.849275Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:33:06.911518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=visual_change)\n2026-04-20T10:33:14.484135Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=click)\n2026-04-20T10:33:14.530843Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4838132251856752988, trigger=click)\n2026-04-20T10:33:34.189406Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4838132251856752988, trigger=click)\n2026-04-20T10:33:34.205308Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=94 elapsed=3.603974333s\n2026-04-20T10:33:34.205567Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 94 eligible frames\n2026-04-20T10:33:34.240884Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=visual_change)\n2026-04-20T10:33:35.686677Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4838132251856752988, trigger=click)\n2026-04-20T10:33:35.780825Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=click)\n2026-04-20T10:33:37.134576Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 38 frames, 8.0MB → 4.4MB (1.8x), 38 JPEGs deleted\n2026-04-20T10:33:40.850354Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 54 frames, 7.9MB → 3.4MB (2.3x), 54 JPEGs deleted\n2026-04-20T10:33:55.372436Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=visual_change)\n2026-04-20T10:35:01.169212Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:35:01.245363Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:35:02.392419Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=visual_change)\n2026-04-20T10:35:05.029174Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:35:05.073174Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:35:07.222477Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:35:07.329020Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:35:08.707660Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=visual_change)\n2026-04-20T10:35:27.744689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:35:27.812062Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:36:18.265456Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:36:18.437457Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:36:23.437791Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:36:23.487637Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:36:24.299771Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=visual_change)\n2026-04-20T10:36:25.135894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:36:25.257064Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:36:27.317393Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=visual_change)\n2026-04-20T10:36:50.815358Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:38:04.728644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4435744464912499495, trigger=visual_change)\n2026-04-20T10:38:07.749721Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4435744464912499495, trigger=visual_change)\n2026-04-20T10:38:13.318000Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=visual_change)\n2026-04-20T10:38:13.969769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=visual_change)\n2026-04-20T10:38:14.800566Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:38:14.834512Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:38:17.252696Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:38:17.328544Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:38:24.892322Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:38:24.943640Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:38:35.256001Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:38:35.322251Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:38:40.980335Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 88 eligible frames\n2026-04-20T10:38:43.345927Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 6.6MB → 2.6MB (2.5x), 39 JPEGs deleted\n2026-04-20T10:38:46.544495Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 47 frames, 7.3MB → 2.8MB (2.6x), 47 JPEGs deleted\n2026-04-20T10:39:26.663352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=visual_change)\n2026-04-20T10:39:29.597544Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:39:29.637879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:40:07.495065Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=visual_change)\n2026-04-20T10:40:11.064923Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=visual_change)\n2026-04-20T10:40:11.431065Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)\n2026-04-20T10:40:12.068565Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=click)\n2026-04-20T10:40:12.110719Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)\n2026-04-20T10:40:14.179306Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=click)\n2026-04-20T10:40:14.239361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)\n2026-04-20T10:41:20.489623Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=click)\n2026-04-20T10:43:48.184341Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=82 elapsed=1.63218175s\n2026-04-20T10:43:48.184571Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 82 eligible frames\n2026-04-20T10:43:50.234957Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 2.2MB → 0.1MB (16.1x), 30 JPEGs deleted\n2026-04-20T10:43:55.342383Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 50 frames, 7.9MB → 3.2MB (2.5x), 50 JPEGs deleted\n2026-04-20T10:44:06.225390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4079037146782974603, trigger=click)\n2026-04-20T10:44:14.808445Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Slack, signals=2)\n2026-04-20T10:44:19.110273Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-539912533838677065, trigger=click)\n2026-04-20T10:44:19.155111Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-539912533838677065, trigger=click)\n2026-04-20T10:44:19.832463Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Slack, signals=2, browser=false)\n2026-04-20T10:44:19.834928Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=3, app=Slack, title=None)\n2026-04-20T10:44:27.766267Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5412550087722993493, trigger=visual_change)\n2026-04-20T10:44:39.799864Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5412550087722993493, trigger=visual_change)\n2026-04-20T10:44:57.832108Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5412550087722993493, trigger=visual_change)\n2026-04-20T10:44:57.940548Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5412550087722993493, trigger=click)\n2026-04-20T10:44:58.605782Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5412550087722993493, trigger=click)\n2026-04-20T10:44:58.637243Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5412550087722993493, trigger=click)\n2026-04-20T10:45:00.807501Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5412550087722993493, trigger=visual_change)\n2026-04-20T10:45:16.166619Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8594311245071571574, trigger=visual_change)\n2026-04-20T10:45:56.391618Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)\n2026-04-20T10:45:56.468127Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=click)\n2026-04-20T10:46:03.056730Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8594311245071571574, trigger=visual_change)\n2026-04-20T10:46:12.195973Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8594311245071571574, trigger=visual_change)\n2026-04-20T10:46:17.958643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=click)\n2026-04-20T10:46:18.011452Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)\n2026-04-20T10:47:02.211065Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5662459752758049610, trigger=click)\n2026-04-20T10:47:02.257675Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5662459752758049610, trigger=click)\n2026-04-20T10:47:05.697096Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5662459752758049610, trigger=click)\n2026-04-20T10:47:06.566076Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5662459752758049610, trigger=click)\n2026-04-20T10:47:07.827281Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5662459752758049610, trigger=click)\n2026-04-20T10:47:40.405629Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1571710488795535897, trigger=visual_change)\n2026-04-20T10:47:49.440068Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1557699132616565226, trigger=visual_change)\n2026-04-20T10:47:52.572612Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1557699132616565226, trigger=visual_change)\n2026-04-20T10:47:58.689857Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4346016681512348210, trigger=visual_change)\n2026-04-20T10:48:07.634676Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1557699132616565226, trigger=visual_change)\n2026-04-20T10:48:13.649498Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1557699132616565226, trigger=visual_change)\n2026-04-20T10:48:19.703789Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1557699132616565226, trigger=visual_change)\n2026-04-20T10:48:52.948919Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1420790294153145145, trigger=visual_change)\n2026-04-20T10:48:55.891318Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1420790294153145145, trigger=visual_change)\n2026-04-20T10:48:57.225561Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=44 elapsed=1.875780625s\n2026-04-20T10:48:57.225944Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 44 eligible frames\n2026-04-20T10:48:58.265979Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 1.2MB → 0.1MB (11.0x), 16 JPEGs deleted\n2026-04-20T10:49:00.653282Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.4MB → 2.7MB (1.6x), 26 JPEGs deleted\n2026-04-20T10:49:32.916674Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1420790294153145145, trigger=visual_change)\n2026-04-20T10:49:36.017852Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1420790294153145145, trigger=visual_change)\n2026-04-20T10:49:38.836425Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5221054553112749208, trigger=visual_change)\n2026-04-20T10:49:42.792319Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Slack, id=3, grace=30s)\n2026-04-20T10:49:59.717149Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8395829747728977847, trigger=visual_change)\n2026-04-20T10:50:05.893490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9218245258814534702, trigger=visual_change)\n2026-04-20T10:50:13.558613Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Idle (timeout=30s, app=Slack, id=3)\n2026-04-20T10:50:13.776444Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting ended (id=3)\n2026-04-20T10:50:30.296877Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8395829747728977847, trigger=visual_change)\n2026-04-20T10:50:31.009005Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8395829747728977847, trigger=visual_change)\n2026-04-20T10:50:35.710448Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2997155127408295500, trigger=click)\n2026-04-20T10:50:39.411258Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2997155127408295500, trigger=visual_change)\n2026-04-20T10:50:42.426737Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2997155127408295500, trigger=visual_change)\n2026-04-20T10:50:44.695606Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2997155127408295500, trigger=click)\n2026-04-20T10:51:10.075065Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4346016681512348210, trigger=click)\n2026-04-20T10:51:10.162124Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4346016681512348210, trigger=click)\n2026-04-20T10:51:29.550593Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4346016681512348210, trigger=click)\n2026-04-20T10:51:33.066966Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=click)\n2026-04-20T10:51:34.845466Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)\n2026-04-20T10:51:34.910786Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=click)\n2026-04-20T10:52:43.260524Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8163403335606540090, trigger=click)\n2026-04-20T10:52:43.340992Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8163403335606540090, trigger=click)\n2026-04-20T10:52:48.268094Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=159194235337566135, trigger=visual_change)\n2026-04-20T10:52:51.322127Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=159194235337566135, trigger=click)\n2026-04-20T10:52:51.391904Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=159194235337566135, trigger=click)\n2026-04-20T10:53:43.515437Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-813068054433851605, trigger=visual_change)\n2026-04-20T10:54:05.099685Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=48 elapsed=4.409245042s\n2026-04-20T10:54:05.099971Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 48 eligible frames\n2026-04-20T10:54:06.503270Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 1.6MB → 0.1MB (20.0x), 22 JPEGs deleted\n2026-04-20T10:54:08.444918Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.3MB → 2.1MB (2.0x), 24 JPEGs deleted\n2026-04-20T10:54:35.036274Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8163403335606540090, trigger=visual_change)\n2026-04-20T10:54:35.171848Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8163403335606540090, trigger=visual_change)\n2026-04-20T10:54:36.475203Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8163403335606540090, trigger=click)\n2026-04-20T10:54:36.541896Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8163403335606540090, trigger=click)\n2026-04-20T10:54:37.380023Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8163403335606540090, trigger=click)\n2026-04-20T10:54:37.445729Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8163403335606540090, trigger=click)\n2026-04-20T10:55:03.555125Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8163403335606540090, trigger=click)\n2026-04-20T10:55:03.640618Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8163403335606540090, trigger=click)\n2026-04-20T10:55:19.315053Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:30.302435Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:30.370524Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:33.629673Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:33.680190Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:34.225728Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=visual_change)\n2026-04-20T10:55:36.487309Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:36.553300Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:37.266499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=visual_change)\n2026-04-20T10:55:41.784038Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:41.805901Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:43.326649Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=visual_change)\n2026-04-20T10:55:45.080360Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:45.118718Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:46.357519Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=visual_change)\n2026-04-20T10:55:47.480883Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:47.537710Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:49.291790Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:49.326846Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:52.992748Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8138726509372139947, trigger=click)\n2026-04-20T10:55:54.240859Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:55.950255Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:55.991282Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:58.736523Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:58.802298Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:59.902655Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:59.944572Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:56:07.794877Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5942962546669254600, trigger=click)\n2026-04-20T10:56:07.851635Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5942962546669254600, trigger=click)\n2026-04-20T10:56:48.563398Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7990927160457220959, trigger=visual_change)\n2026-04-20T10:57:32.104953Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=9150043812320386523, trigger=click)\n2026-04-20T10:57:32.144287Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9150043812320386523, trigger=click)\n2026-04-20T10:58:28.399190Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260395566585322026, trigger=click)\n2026-04-20T10:58:28.442157Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260395566585322026, trigger=click)\n2026-04-20T10:59:08.570536Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 81 eligible frames\n2026-04-20T10:59:10.567201Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 33 frames, 2.4MB → 0.1MB (18.5x), 33 JPEGs deleted\n2026-04-20T10:59:14.364266Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 46 frames, 8.7MB → 4.7MB (1.9x), 46 JPEGs deleted\n2026-04-20T10:59:58.111173Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5381531899229729064, trigger=click)\n2026-04-20T10:59:58.142222Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5381531899229729064, trigger=click)\n2026-04-20T11:00:36.141673Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9207198899289182946, trigger=click)\n2026-04-20T11:00:36.183623Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9207198899289182946, trigger=click)\n2026-04-20T11:01:42.348670Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8842760806676108827, trigger=click)\n2026-04-20T11:01:46.579137Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3692713192977136429, trigger=visual_change)\n2026-04-20T11:02:24.402529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3769719286299940254, trigger=visual_change)\n2026-04-20T11:03:17.195875Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-838946827693869464, trigger=click)\n2026-04-20T11:04:18.906189Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=visual_change)\n2026-04-20T11:04:19.288145Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=154 elapsed=4.909861708s\n2026-04-20T11:04:19.288239Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 154 eligible frames\n2026-04-20T11:04:21.929712Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=visual_change)\n2026-04-20T11:04:23.364885Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 71 frames, 5.8MB → 0.9MB (6.6x), 71 JPEGs deleted\n2026-04-20T11:04:24.973084Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=visual_change)\n2026-04-20T11:04:27.204317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2406143553526754098, trigger=click)\n2026-04-20T11:04:27.256852Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T11:04:29.050253Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 81 frames, 12.7MB → 5.0MB (2.5x), 81 JPEGs deleted\n2026-04-20T11:04:33.163125Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2340404083908403127, trigger=click)\n2026-04-20T11:04:54.879253Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2453433494247683376, trigger=click)\n2026-04-20T11:05:12.089056Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4318090145782937453, trigger=visual_change)\n2026-04-20T11:05:13.095729Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4318090145782937453, trigger=click)\n2026-04-20T11:05:15.103808Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4318090145782937453, trigger=visual_change)\n2026-04-20T11:05:16.310357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4318090145782937453, trigger=click)\n2026-04-20T11:05:16.383203Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4318090145782937453, trigger=click)\n2026-04-20T11:05:18.172083Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4318090145782937453, trigger=visual_change)\n2026-04-20T11:05:18.982699Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4318090145782937453, trigger=click)\n2026-04-20T11:05:19.029420Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4318090145782937453, trigger=click)\n2026-04-20T11:05:21.205027Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4318090145782937453, trigger=visual_change)\n2026-04-20T11:05:30.714779Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4318090145782937453, trigger=visual_change)\n2026-04-20T11:05:33.817783Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4318090145782937453, trigger=visual_change)\n2026-04-20T11:05:36.802961Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4318090145782937453, trigger=visual_change)\n2026-04-20T11:05:39.813482Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4318090145782937453, trigger=visual_change)\n2026-04-20T11:09:00.185306Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=visual_change)\n2026-04-20T11:09:03.706142Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T11:09:03.822044Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2406143553526754098, trigger=click)\n2026-04-20T11:09:33.034069Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=96 elapsed=3.973269334s\n2026-04-20T11:09:33.034177Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 96 eligible frames\n2026-04-20T11:09:35.558135Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 42 frames, 3.2MB → 0.2MB (16.4x), 42 JPEGs deleted\n2026-04-20T11:09:39.031687Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 52 frames, 8.1MB → 3.6MB (2.2x), 52 JPEGs deleted\n2026-04-20T11:10:16.370525Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)\n2026-04-20T11:10:19.252001Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)\n2026-04-20T11:10:19.806142Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)\n2026-04-20T11:13:16.227087Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T11:13:20.596574Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T11:13:20.661227Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T11:13:23.902473Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5954939318163518708, trigger=click)\n2026-04-20T11:13:24.516393Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5954939318163518708, trigger=click)\n2026-04-20T11:13:24.587417Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5954939318163518708, trigger=click)\n2026-04-20T11:13:27.637011Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1070969666032687649, trigger=visual_change)\n2026-04-20T11:13:27.807847Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1070969666032687649, trigger=click)\n2026-04-20T11:13:30.623373Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1070969666032687649, trigger=visual_change)\n2026-04-20T11:13:56.362486Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=click)\n2026-04-20T11:14:22.232710Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2535035496832215689, trigger=click)\n2026-04-20T11:14:40.999263Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=128 elapsed=1.951355041s\n2026-04-20T11:14:40.999365Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 128 eligible frames\n2026-04-20T11:14:43.717104Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 47 frames, 3.5MB → 0.2MB (22.4x), 47 JPEGs deleted\n2026-04-20T11:14:49.191609Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 79 frames, 11.9MB → 6.7MB (1.8x), 79 JPEGs deleted\n2026-04-20T11:15:53.591341Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6836450022093940164, trigger=click)\n2026-04-20T11:15:54.531935Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6836450022093940164, trigger=visual_change)\n2026-04-20T11:16:23.234607Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7020057609110231149, trigger=click)\n2026-04-20T11:16:24.573477Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7020057609110231149, trigger=click)\n2026-04-20T11:16:24.645049Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7020057609110231149, trigger=click)\n2026-04-20T11:18:31.210018Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6218747896970871837, trigger=visual_change)\n2026-04-20T11:18:58.718719Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8395829747728977847, trigger=click)\n2026-04-20T11:18:58.773796Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8395829747728977847, trigger=click)\n2026-04-20T11:19:17.843843Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-546694883753369466, trigger=visual_change)\n2026-04-20T11:19:51.764181Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6984505730173949536, trigger=click)\n2026-04-20T11:19:51.846529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6984505730173949536, trigger=click)\n2026-04-20T11:19:52.311562Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6984505730173949536, trigger=visual_change)\n2026-04-20T11:19:55.528956Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=118 elapsed=6.325625375s\n2026-04-20T11:19:55.530818Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 118 eligible frames\n2026-04-20T11:19:59.068315Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 45 frames, 3.9MB → 0.7MB (5.6x), 45 JPEGs deleted\n2026-04-20T11:20:10.114363Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 71 frames, 10.3MB → 5.8MB (1.8x), 71 JPEGs deleted\n2026-04-20T11:22:03.257339Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2781687757078580755, trigger=visual_change)\n2026-04-20T11:22:06.280970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2781687757078580755, trigger=visual_change)\n2026-04-20T11:23:00.888485Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2781687757078580755, trigger=visual_change)\n2026-04-20T11:23:04.422725Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4258649287240007454, trigger=click)\n2026-04-20T11:23:06.787493Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4258649287240007454, trigger=visual_change)\n2026-04-20T11:23:26.757727Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-971663991893619042, trigger=click)\n2026-04-20T11:23:27.530382Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-971663991893619042, trigger=click)\n2026-04-20T11:23:27.629616Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-971663991893619042, trigger=click)\n2026-04-20T11:24:20.636646Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=142107347844094212, trigger=visual_change)\n2026-04-20T11:25:11.487497Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=85 elapsed=1.352837292s\n2026-04-20T11:25:11.487736Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 85 eligible frames\n2026-04-20T11:25:13.473260Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8313898756799688709, trigger=click)\n2026-04-20T11:25:13.930021Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8313898756799688709, trigger=click)\n2026-04-20T11:25:14.300911Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 5.7MB → 0.9MB (6.4x), 30 JPEGs deleted\n2026-04-20T11:25:22.765819Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 53 frames, 7.8MB → 3.6MB (2.1x), 53 JPEGs deleted\n2026-04-20T11:25:48.941557Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2643788392031168472, trigger=click)\n2026-04-20T11:25:52.682820Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2643788392031168472, trigger=visual_change)\n2026-04-20T11:27:06.674474Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:27:22.265798Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:27:34.544704Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8004693622225847515, trigger=visual_change)\n2026-04-20T11:27:35.112605Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:27:35.773265Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:27:53.132990Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8004693622225847515, trigger=visual_change)\n2026-04-20T11:27:53.439763Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:27:54.884154Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:27:54.911699Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:27:55.792546Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:27:55.856492Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:27:56.377118Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:27:56.421804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:27:57.385862Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:27:57.433093Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:28:15.099335Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:28:18.161712Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3897675075138840599, trigger=visual_change)\n2026-04-20T11:28:24.420260Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:29:09.322794Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6684718794164531158, trigger=visual_change)\n2026-04-20T11:29:12.232781Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6684718794164531158, trigger=visual_change)\n2026-04-20T11:29:13.714491Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6684718794164531158, trigger=click)\n2026-04-20T11:29:15.297078Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6684718794164531158, trigger=visual_change)\n2026-04-20T11:29:18.279439Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6684718794164531158, trigger=visual_change)\n2026-04-20T11:29:21.288709Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6684718794164531158, trigger=visual_change)\n2026-04-20T11:29:36.889190Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1183751968977138305, trigger=click)\n2026-04-20T11:29:36.935914Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1183751968977138305, trigger=click)\n2026-04-20T11:29:44.265375Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1744865349186139800, trigger=click)\n2026-04-20T11:29:45.438891Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1744865349186139800, trigger=visual_change)\n2026-04-20T11:29:48.445512Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1744865349186139800, trigger=visual_change)\n2026-04-20T11:30:00.582835Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=214677970165296243, trigger=click)\n2026-04-20T11:30:00.930875Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=214677970165296243, trigger=visual_change)\n2026-04-20T11:30:03.983533Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=214677970165296243, trigger=visual_change)\n2026-04-20T11:30:25.190331Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=144 elapsed=2.413845166s\n2026-04-20T11:30:25.191014Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 144 eligible frames\n2026-04-20T11:30:28.644851Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 59 frames, 8.9MB → 1.9MB (4.8x), 59 JPEGs deleted\n2026-04-20T11:30:34.292740Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 83 frames, 12.0MB → 6.2MB (1.9x), 83 JPEGs deleted\n2026-04-20T11:30:49.731059Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6771186432168714093, trigger=visual_change)\n2026-04-20T11:30:52.714807Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6771186432168714093, trigger=click)\n2026-04-20T11:30:52.764209Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6771186432168714093, trigger=click)\n2026-04-20T11:30:53.030418Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6771186432168714093, trigger=visual_change)\n2026-04-20T11:30:56.085725Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6771186432168714093, trigger=visual_change)\n2026-04-20T11:30:57.236790Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6771186432168714093, trigger=visual_change)\n2026-04-20T11:31:57.345054Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5799305003809379240, trigger=visual_change)\n2026-04-20T11:32:34.844223Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5799305003809379240, trigger=click)\n2026-04-20T11:33:01.295072Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2331312136567929026, trigger=visual_change)\n2026-04-20T11:33:02.667241Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2331312136567929026, trigger=visual_change)\n2026-04-20T11:33:40.313987Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Slack, signals=2)\n2026-04-20T11:33:40.621030Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6376510702070023487, trigger=visual_change)\n2026-04-20T11:33:45.357469Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Slack, signals=2, browser=false)\n2026-04-20T11:33:45.361133Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=4, app=Slack, title=None)\n2026-04-20T11:33:50.248270Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2305043043211837966, trigger=visual_change)\n2026-04-20T11:33:55.493928Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Slack, id=4, grace=30s)\n2026-04-20T11:34:26.223427Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Idle (timeout=30s, app=Slack, id=4)\n2026-04-20T11:34:26.415026Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting ended (id=4)\n2026-04-20T11:35:35.008400Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 86 eligible frames\n2026-04-20T11:35:37.449048Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 35 frames, 8.2MB → 2.2MB (3.8x), 35 JPEGs deleted\n2026-04-20T11:35:40.752978Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 5.9MB → 3.0MB (2.0x), 49 JPEGs deleted\n2026-04-20T11:35:57.468649Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Slack, signals=2)\n2026-04-20T11:36:02.566427Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Slack, signals=2, browser=false)\n2026-04-20T11:36:02.570096Z INFO screenpipe_engine::meeting_detector: meeting v2: reopened recent meeting (id=4, app=Slack)\n2026-04-20T11:36:11.034023Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7051916521891946593, trigger=click)\n2026-04-20T11:36:12.782467Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7051916521891946593, trigger=visual_change)\n2026-04-20T11:36:18.849412Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8299397926977483522, trigger=visual_change)\n2026-04-20T11:36:31.060551Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4229935992045172066, trigger=visual_change)\n2026-04-20T11:36:40.745263Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6895312360846969419, trigger=visual_change)\n2026-04-20T11:36:51.141301Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5575905127528149150, trigger=click)\n2026-04-20T11:37:10.853815Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1985697427151442712, trigger=click)\n2026-04-20T11:37:10.900023Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1985697427151442712, trigger=click)\n2026-04-20T11:37:23.414384Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9098743064037159085, trigger=visual_change)\n2026-04-20T11:37:27.259925Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7267777192673742381, trigger=click)\n2026-04-20T11:37:27.289716Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7267777192673742381, trigger=click)\n2026-04-20T11:37:29.306353Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7267777192673742381, trigger=click)\n2026-04-20T11:37:29.353781Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7267777192673742381, trigger=click)\n2026-04-20T11:37:29.703017Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7267777192673742381, trigger=visual_change)\n2026-04-20T11:37:48.167442Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6972880851711695642, trigger=visual_change)\n2026-04-20T11:37:51.131020Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7497803955284800173, trigger=visual_change)\n2026-04-20T11:37:51.606964Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7497803955284800173, trigger=click)\n2026-04-20T11:38:03.649693Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9147325036326340894, trigger=visual_change)\n2026-04-20T11:38:03.797616Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9147325036326340894, trigger=click)\n2026-04-20T11:38:15.258513Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7947348293642214978, trigger=click)\n2026-04-20T11:38:15.324902Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7947348293642214978, trigger=click)\n2026-04-20T11:38:21.259898Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=181147586093327944, trigger=click)\n2026-04-20T11:38:27.343543Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7497803955284800173, trigger=click)\n2026-04-20T11:38:27.389951Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7497803955284800173, trigger=click)\n2026-04-20T11:38:30.491260Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7497803955284800173, trigger=click)\n2026-04-20T11:38:30.546381Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7497803955284800173, trigger=click)\n2026-04-20T11:38:37.600021Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6921034694780173826, trigger=visual_change)\n2026-04-20T11:38:50.355690Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5480310180026203579, trigger=click)\n2026-04-20T11:38:50.404005Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5480310180026203579, trigger=click)\n2026-04-20T11:39:08.307526Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7497803955284800173, trigger=visual_change)\n2026-04-20T11:39:09.091514Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7497803955284800173, trigger=click)\n2026-04-20T11:39:09.161743Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7497803955284800173, trigger=click)\n2026-04-20T11:39:20.638047Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4229935992045172066, trigger=visual_change)\n2026-04-20T11:39:23.591141Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4229935992045172066, trigger=visual_change)\n2026-04-20T11:39:29.583292Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4229935992045172066, trigger=visual_change)\n2026-04-20T11:39:37.360066Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4229935992045172066, trigger=click)\n2026-04-20T11:39:44.814358Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6671609150327009848, trigger=visual_change)\n2026-04-20T11:39:45.924485Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6671609150327009848, trigger=click)\n2026-04-20T11:39:45.996345Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6671609150327009848, trigger=click)\n2026-04-20T11:40:20.394394Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1671671177896523754, trigger=click)\n2026-04-20T11:40:21.375675Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1671671177896523754, trigger=visual_change)\n2026-04-20T11:40:23.202671Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3155554097147706318, trigger=visual_change)\n2026-04-20T11:40:43.253092Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4229935992045172066, trigger=visual_change)\n2026-04-20T11:40:43.695721Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=131 elapsed=2.9322245s\n2026-04-20T11:40:43.695827Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 131 eligible frames\n2026-04-20T11:40:47.649371Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 61 frames, 7.4MB → 2.5MB (2.9x), 61 JPEGs deleted\n2026-04-20T11:40:47.781508Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6895312360846969419, trigger=click)\n2026-04-20T11:40:52.046914Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 68 frames, 9.2MB → 3.4MB (2.7x), 68 JPEGs deleted\n2026-04-20T11:40:59.460075Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-456029760066552990, trigger=visual_change)\n2026-04-20T11:41:02.495697Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-456029760066552990, trigger=visual_change)\n2026-04-20T11:41:05.496427Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-456029760066552990, trigger=visual_change)\n2026-04-20T11:41:08.546403Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-456029760066552990, trigger=visual_change)\n2026-04-20T11:42:34.401639Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-456029760066552990, trigger=visual_change)\n2026-04-20T11:42:43.277648Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3155554097147706318, trigger=click)\n2026-04-20T11:42:44.143615Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3155554097147706318, trigger=click)\n2026-04-20T11:42:44.214701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3155554097147706318, trigger=click)\n2026-04-20T11:42:47.032602Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3155554097147706318, trigger=click)\n2026-04-20T11:42:47.080822Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3155554097147706318, trigger=click)\n2026-04-20T11:43:06.469036Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3155554097147706318, trigger=click)\n2026-04-20T11:43:07.387591Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3155554097147706318, trigger=click)\n2026-04-20T11:43:08.580298Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2132333697539486641, trigger=click)\n2026-04-20T11:43:36.517926Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8547944451951971235, trigger=visual_change)\n2026-04-20T11:43:48.604378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=987107508425736725, trigger=visual_change)\n2026-04-20T11:43:57.614359Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8547944451951971235, trigger=visual_change)\n2026-04-20T11:44:18.824990Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8547944451951971235, trigger=visual_change)\n2026-04-20T11:44:24.907462Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8547944451951971235, trigger=visual_change)\n2026-04-20T11:45:14.820258Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8547944451951971235, trigger=visual_change)\n2026-04-20T11:45:17.865890Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8547944451951971235, trigger=visual_change)\n2026-04-20T11:45:45.016855Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:45:45.107955Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:45:51.754851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:45:51.856465Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:45:52.816897Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:45:52.891807Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:45:53.075541Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=139 elapsed=1.017660667s\n2026-04-20T11:45:53.075652Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 139 eligible frames\n2026-04-20T11:45:53.378781Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:45:58.733979Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 62 frames, 12.9MB → 3.2MB (4.0x), 62 JPEGs deleted\n2026-04-20T11:46:06.485751Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 75 frames, 11.9MB → 4.1MB (2.9x), 75 JPEGs deleted\n2026-04-20T11:46:39.095124Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=987107508425736725, trigger=visual_change)\n2026-04-20T11:46:42.057902Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=987107508425736725, trigger=visual_change)\n2026-04-20T11:48:11.765669Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=9195472439744667829, trigger=click)\n2026-04-20T11:48:15.524597Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Slack, id=4, grace=30s)\n2026-04-20T11:48:21.832650Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4229935992045172066, trigger=visual_change)\n2026-04-20T11:48:46.695881Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Idle (timeout=30s, app=Slack, id=4)\n2026-04-20T11:48:46.921237Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting ended (id=4)\n2026-04-20T11:48:50.943040Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:48:51.021231Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:49:10.755384Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4229935992045172066, trigger=visual_change)\n2026-04-20T11:49:17.161498Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7106754424718048973, trigger=click)\n2026-04-20T11:49:21.158818Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7106754424718048973, trigger=visual_change)\n2026-04-20T11:49:22.487278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7106754424718048973, trigger=click)\n2026-04-20T11:49:22.530338Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7106754424718048973, trigger=click)\n2026-04-20T11:49:23.006416Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7106754424718048973, trigger=click)\n2026-04-20T11:49:23.047268Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7106754424718048973, trigger=click)\n2026-04-20T11:49:37.147379Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7106754424718048973, trigger=click)\n2026-04-20T11:50:39.151894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:50:39.232274Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:50:43.572057Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:50:43.624058Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:50:48.638461Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:50:48.728784Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:50:51.101000Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:50:51.164752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:09.566936Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=192 elapsed=3.068271875s\n2026-04-20T11:51:09.567545Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 192 eligible frames\n2026-04-20T11:51:20.254226Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 99 frames, 13.0MB → 3.8MB (3.4x), 99 JPEGs deleted\n2026-04-20T11:51:21.236766Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 4 frames, 0.5MB → 0.2MB (3.1x), 4 JPEGs deleted\n2026-04-20T11:51:27.711099Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 87 frames, 18.0MB → 2.3MB (7.9x), 87 JPEGs deleted\n2026-04-20T11:51:31.197932Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:31.303759Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:32.213378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:32.274981Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:35.101541Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:35.200979Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:36.153649Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:36.189190Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:36.685206Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:37.415842Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:37.529712Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:48.634934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:48.699131Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:51.963953Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:51.997497Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:54.179984Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:54.228458Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:52:46.320080Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:52:49.012351Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:52:51.071555Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:52:51.123083Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:53:00.887309Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7089240009464300311, trigger=click)\n2026-04-20T11:53:00.940245Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7089240009464300311, trigger=click)\n2026-04-20T11:55:45.932772Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5694682761366780141, trigger=visual_change)\n2026-04-20T11:55:53.915956Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4530837260207295611, trigger=click)\n2026-04-20T11:55:54.002399Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4530837260207295611, trigger=click)\n2026-04-20T11:55:54.965125Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4530837260207295611, trigger=visual_change)\n2026-04-20T11:55:58.041145Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4530837260207295611, trigger=visual_change)\n2026-04-20T11:56:09.233089Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6479409851876233602, trigger=click)\n2026-04-20T11:56:09.295538Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6479409851876233602, trigger=click)\n2026-04-20T11:56:10.268022Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6479409851876233602, trigger=click)\n2026-04-20T11:56:10.343195Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6479409851876233602, trigger=click)\n2026-04-20T11:56:13.105773Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6479409851876233602, trigger=visual_change)\n2026-04-20T11:56:20.539351Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5840499593443530124, trigger=click)\n2026-04-20T11:56:28.576130Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 46 eligible frames\n2026-04-20T11:56:29.835734Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.3MB → 0.2MB (12.9x), 17 JPEGs deleted\n2026-04-20T11:56:33.611672Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.4MB → 2.5MB (1.8x), 26 JPEGs deleted\n2026-04-20T11:57:24.788972Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=visual_change)\n2026-04-20T11:57:36.481689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=click)\n2026-04-20T11:57:37.756625Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3030885276270352434, trigger=click)\n2026-04-20T11:57:37.834390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=click)\n2026-04-20T11:57:49.238635Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=visual_change)\n2026-04-20T11:57:52.246590Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=visual_change)\n2026-04-20T11:57:55.241832Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=visual_change)\n2026-04-20T11:57:58.301374Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=visual_change)\n2026-04-20T11:58:01.337222Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=visual_change)\n2026-04-20T11:58:26.816413Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=visual_change)\n2026-04-20T11:58:29.856452Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=visual_change)\n2026-04-20T11:58:30.666522Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=click)\n2026-04-20T11:58:30.701317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3030885276270352434, trigger=click)\n2026-04-20T11:58:35.989225Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=visual_change)\n2026-04-20T11:58:38.498940Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3030885276270352434, trigger=click)\n2026-04-20T11:58:40.794993Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=click)\n2026-04-20T11:58:42.377239Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=visual_change)\n2026-04-20T11:58:59.532131Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6813386454352183033, trigger=visual_change)\n2026-04-20T11:59:39.744543Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6813386454352183033, trigger=visual_change)\n2026-04-20T11:59:58.627407Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3151396900374529455, trigger=visual_change)\n2026-04-20T12:01:34.882479Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=87 elapsed=1.259418542s\n2026-04-20T12:01:34.882676Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 87 eligible frames\n2026-04-20T12:01:37.375070Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 35 frames, 10.6MB → 2.3MB (4.6x), 35 JPEGs deleted\n2026-04-20T12:01:45.894068Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 50 frames, 8.1MB → 4.1MB (2.0x), 50 JPEGs deleted\n2026-04-20T12:01:50.133673Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3134476686614698911, trigger=click)\n2026-04-20T12:01:50.211171Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3134476686614698911, trigger=click)\n2026-04-20T12:01:55.273763Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=467660169672458461, trigger=visual_change)\n2026-04-20T12:02:00.095574Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=467660169672458461, trigger=click)\n2026-04-20T12:02:15.114277Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=467660169672458461, trigger=click)\n2026-04-20T12:02:15.166674Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=467660169672458461, trigger=click)\n2026-04-20T12:02:16.372669Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=467660169672458461, trigger=click)\n2026-04-20T12:02:16.452496Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=467660169672458461, trigger=click)\n2026-04-20T12:02:17.931496Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=467660169672458461, trigger=click)\n2026-04-20T12:02:17.993032Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=467660169672458461, trigger=click)\n2026-04-20T12:02:20.527678Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=467660169672458461, trigger=click)\n2026-04-20T12:02:20.583726Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=467660169672458461, trigger=click)\n2026-04-20T12:02:24.944153Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-218291911025499455, trigger=click)\n2026-04-20T12:02:26.245682Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-218291911025499455, trigger=click)\n2026-04-20T12:02:27.227059Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-218291911025499455, trigger=click)\n2026-04-20T12:02:27.321541Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-218291911025499455, trigger=click)\n2026-04-20T12:02:59.757184Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8912532918897684009, trigger=click)\n2026-04-20T12:02:59.854055Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8912532918897684009, trigger=click)","depth":4,"value":"Last login: Mon Apr 20 10:16:41 on ttys009\n\nPoetry could not find a pyproject.toml file in /Users/lukas or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-start \ndetected hardware tier: Mid\nwarning: parakeet is not supported on this platform, using whisper-tiny instead\n2026-04-20T10:17:08.672567Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store\nchecking permissions...\n screen recording: ok\n accessibility: ok\n2026-04-20T10:17:08.735636Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6\n2026-04-20T10:17:09.168849Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor\n2026-04-20T10:17:09.170474Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)\n2026-04-20T10:17:09.170918Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)\n2026-04-20T10:17:09.203704Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true\n2026-04-20T10:17:09.203780Z INFO screenpipe: meeting detector enabled — independent of transcription mode\n2026-04-20T10:17:09.203962Z INFO screenpipe: API server listening on 127.0.0.1:3030 (localhost only)\n2026-04-20T10:17:09.203976Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key\n2026-04-20T10:17:09.203934Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)\n2026-04-20T10:17:09.204030Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager\n2026-04-20T10:17:09.203954Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)\n2026-04-20T10:17:09.215020Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-20T10:17:09.220127Z INFO screenpipe_core::pipes: loaded pipe: day-recap\n2026-04-20T10:17:09.220306Z INFO screenpipe_core::pipes: loaded pipe: standup-update\n2026-04-20T10:17:09.220863Z INFO screenpipe_core::pipes: loaded pipe: ai-habits\n2026-04-20T10:17:09.221034Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown\n2026-04-20T10:17:09.221177Z INFO screenpipe_core::pipes: loaded pipe: video-export\n2026-04-20T10:17:09.221820Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary\n2026-04-20T10:17:09.221839Z INFO screenpipe_core::pipes: loaded 6 pipes from \"/Users/lukas/.screenpipe/pipes\"\n\n\n\n _ \n __________________ ___ ____ ____ (_____ ___ \n / ___/ ___/ ___/ _ \\/ _ \\/ __ \\ / __ \\/ / __ \\/ _ \\\n (__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/\n/____/\\___/_/ \\___/\\___/_/ /_/ / .___/_/ .___/\\___/ \n /_/ /_/ \n\n\n\npower AI by everything you've seen, said or heard\nopen source | runs locally | developer friendly\n\n\n┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ true │\n│ vision disabled │ false │\n│ pause on DRM content │ false │\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n2026-04-20T10:17:09.223448Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n│ ignored windows │ [\"Boosteroid\"] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n│ api auth │ enabled │\n2026-04-20T10:17:09.227535Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n│ encrypt secrets │ disabled │\n│ retention days │ 14 │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ id: 1 │\n│ │ id: 2 │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ disabled │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-20T10:17:09.240088Z INFO screenpipe: starting UI event capture\n2026-04-20T10:17:09.253668Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-20T10:17:09.267973Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-20T10:17:09.268072Z INFO screenpipe_engine::ui_recorder: UI recording session started: f196d677-2a10-4dec-93e7-9dd9048a1d8e\n2026-04-20T10:17:09.268173Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-19 07:17:09.268169 UTC to 2026-04-20 07:17:09.268169 UTC)\n2026-04-20T10:17:09.268665Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-20T10:17:09.275204Z INFO screenpipe_engine::server: Server listening on 127.0.0.1:3030\n2026-04-20T10:17:09.280547Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-20T10:17:09.284876Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-20T10:17:09.284906Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-20T10:17:09.284942Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-20T10:17:09.316523Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-20T10:17:09.316557Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-20T10:17:09.316583Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)\n2026-04-20T10:17:09.316603Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-20T10:17:09.975374Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 1 excluded)\n2026-04-20T10:17:10.050320Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 1 excluded)\n2026-04-20T10:17:10.109022Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=52481, dur=72ms\n2026-04-20T10:17:10.197530Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=52482, dur=98ms\n2026-04-20T10:17:10.926185Z WARN sqlx::query: summary=\"SELECT f.id, f.timestamp, f.offset_index, …\" db.statement=\"\\n\\nSELECT\\n f.id,\\n f.timestamp,\\n f.offset_index,\\n COALESCE(\\n SUBSTR(f.full_text, 1, 200),\\n SUBSTR(f.accessibility_text, 1, 200),\\n (\\n SELECT\\n SUBSTR(ot.text, 1, 200)\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as text,\\n COALESCE(\\n f.app_name,\\n (\\n SELECT\\n ot.app_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as app_name,\\n COALESCE(\\n f.window_name,\\n (\\n SELECT\\n ot.window_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as window_name,\\n COALESCE(vc.device_name, f.device_name) as screen_device,\\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\\n COALESCE(vc.fps, 0.033) as chunk_fps,\\n f.browser_url,\\n f.machine_id\\nFROM\\n frames f\\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\\nWHERE\\n f.timestamp >= ?1\\n AND f.timestamp <= ?2\\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\\nORDER BY\\n f.timestamp DESC,\\n f.offset_index DESC\\nLIMIT\\n 10000\\n\" rows_affected=0 rows_returned=974 elapsed=1.657379083s\n2026-04-20T10:17:10.928810Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 974 frame entries, coverage from 2026-04-19 07:17:09.268169 UTC\n2026-04-20T10:17:36.605708Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5556097941235749601, trigger=visual_change)\n2026-04-20T10:17:41.066595Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5621935701738529327, trigger=click)\n2026-04-20T10:17:41.100078Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5621935701738529327, trigger=click)\n2026-04-20T10:17:46.116429Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5621935701738529327, trigger=click)\n2026-04-20T10:17:46.148269Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5621935701738529327, trigger=click)\n2026-04-20T10:18:13.360099Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=145 elapsed=4.153777416s\n2026-04-20T10:18:13.360276Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 145 eligible frames\n2026-04-20T10:18:18.937138Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 90 frames, 15.2MB → 6.4MB (2.4x), 90 JPEGs deleted\n2026-04-20T10:18:22.014745Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 53 frames, 9.4MB → 2.0MB (4.6x), 53 JPEGs deleted\n2026-04-20T10:18:56.067965Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1399546062189663050, trigger=visual_change)\n2026-04-20T10:18:56.859644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1399546062189663050, trigger=click)\n2026-04-20T10:18:59.894779Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7926243118367575, trigger=click)\n2026-04-20T10:19:12.201247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5621935701738529327, trigger=visual_change)\n2026-04-20T10:21:22.063263Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1399546062189663050, trigger=visual_change)\n2026-04-20T10:21:35.657143Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5007800743451086391, trigger=visual_change)\n2026-04-20T10:21:35.899663Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5007800743451086391, trigger=visual_change)\n2026-04-20T10:21:38.094166Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5007800743451086391, trigger=click)\n2026-04-20T10:21:38.149655Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5007800743451086391, trigger=click)\n2026-04-20T10:21:38.947641Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5007800743451086391, trigger=click)\n2026-04-20T10:21:38.991934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5007800743451086391, trigger=click)\n2026-04-20T10:23:28.231526Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=2 elapsed=6.103025792s\n2026-04-20T10:23:28.232845Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-20T10:25:18.292352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=133505750984754566, trigger=click)\n2026-04-20T10:25:33.154631Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:25:33.227754Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:25:34.786990Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)\n2026-04-20T10:25:36.507114Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:25:36.556707Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:25:37.741060Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)\n2026-04-20T10:25:39.466175Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:25:39.547293Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:26:02.072902Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2625703622302799632, trigger=visual_change)\n2026-04-20T10:26:05.038754Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8395829747728977847, trigger=visual_change)\n2026-04-20T10:26:10.400901Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:26:10.459718Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:26:14.431146Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)\n2026-04-20T10:26:17.437868Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=visual_change)\n2026-04-20T10:26:35.296162Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:26:35.339241Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:26:37.233387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:26:37.326557Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:00.031681Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:00.067495Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:01.950749Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:02.027316Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:13.045805Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:13.116607Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:15.272022Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:15.311144Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:17.880859Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:17.952143Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:21.645455Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:21.706889Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:36.304603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:36.380537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:37.368951Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:37.459157Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:40.420505Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:40.469217Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:41.179717Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)\n2026-04-20T10:28:00.173884Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:00.251737Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:01.241028Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:01.288002Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:02.985445Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:03.078932Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:04.726087Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:04.770305Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:18.186992Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:18.272249Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:28.337807Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 14 eligible frames\n2026-04-20T10:28:29.608030Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 0.7MB → 0.5MB (1.4x), 8 JPEGs deleted\n2026-04-20T10:28:30.685845Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 6 frames, 1.2MB → 0.7MB (1.8x), 6 JPEGs deleted\n2026-04-20T10:28:49.943477Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:49.984595Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:50.611087Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:50.628530Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:54.853245Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:57.739309Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)\n2026-04-20T10:29:03.177558Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:03.231322Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:03.857989Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)\n2026-04-20T10:29:04.993121Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:05.032838Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:06.923393Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)\n2026-04-20T10:29:07.890421Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:07.960410Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:08.812301Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:26.656780Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:26.775833Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:27.602791Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:27.639583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:34.060332Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2389025338591748766, trigger=visual_change)\n2026-04-20T10:29:37.050675Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2389025338591748766, trigger=click)\n2026-04-20T10:29:37.085946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2389025338591748766, trigger=click)\n2026-04-20T10:29:40.501396Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2389025338591748766, trigger=visual_change)\n2026-04-20T10:29:43.751715Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)\n2026-04-20T10:29:43.843367Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:44.468329Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:46.931137Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:49.616400Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:49.692474Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:50.298335Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)\n2026-04-20T10:29:51.348506Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:51.436585Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:30:12.602958Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8200761366188343712, trigger=click)\n2026-04-20T10:31:17.535958Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5166044279428207369, trigger=click)\n2026-04-20T10:31:18.668547Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5166044279428207369, trigger=visual_change)\n2026-04-20T10:31:19.518515Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5166044279428207369, trigger=click)\n2026-04-20T10:31:19.681398Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5166044279428207369, trigger=click)\n2026-04-20T10:31:21.044436Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5166044279428207369, trigger=click)\n2026-04-20T10:31:21.086009Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5166044279428207369, trigger=click)\n2026-04-20T10:31:21.680970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5166044279428207369, trigger=visual_change)\n2026-04-20T10:32:05.428125Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=visual_change)\n2026-04-20T10:32:07.004460Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=click)\n2026-04-20T10:32:07.088172Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6999516640019587394, trigger=click)\n2026-04-20T10:32:08.380482Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=visual_change)\n2026-04-20T10:32:11.588306Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=click)\n2026-04-20T10:32:11.689288Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6999516640019587394, trigger=click)\n2026-04-20T10:32:12.318265Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6999516640019587394, trigger=click)\n2026-04-20T10:32:12.381069Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=click)\n2026-04-20T10:32:20.139124Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:32:20.175356Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:32:23.490851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=click)\n2026-04-20T10:32:27.111949Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=visual_change)\n2026-04-20T10:32:37.220458Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6999516640019587394, trigger=click)\n2026-04-20T10:32:37.303363Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=click)\n2026-04-20T10:32:38.554270Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=click)\n2026-04-20T10:32:38.619116Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6999516640019587394, trigger=click)\n2026-04-20T10:32:44.030894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=click)\n2026-04-20T10:32:44.098803Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4838132251856752988, trigger=click)\n2026-04-20T10:32:45.233990Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=click)\n2026-04-20T10:32:45.238569Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4838132251856752988, trigger=click)\n2026-04-20T10:32:48.884987Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=visual_change)\n2026-04-20T10:32:51.832116Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:32:51.860110Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:32:53.754008Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:32:53.796899Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:32:55.635715Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:32:55.675828Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:32:57.084341Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:32:57.128626Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:32:58.841455Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:32:58.882031Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:33:00.965217Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:33:01.040922Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:33:02.591751Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:33:02.633245Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:33:03.324241Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:33:03.353493Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:33:05.802391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:33:05.849275Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:33:06.911518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=visual_change)\n2026-04-20T10:33:14.484135Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=click)\n2026-04-20T10:33:14.530843Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4838132251856752988, trigger=click)\n2026-04-20T10:33:34.189406Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4838132251856752988, trigger=click)\n2026-04-20T10:33:34.205308Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=94 elapsed=3.603974333s\n2026-04-20T10:33:34.205567Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 94 eligible frames\n2026-04-20T10:33:34.240884Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=visual_change)\n2026-04-20T10:33:35.686677Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4838132251856752988, trigger=click)\n2026-04-20T10:33:35.780825Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=click)\n2026-04-20T10:33:37.134576Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 38 frames, 8.0MB → 4.4MB (1.8x), 38 JPEGs deleted\n2026-04-20T10:33:40.850354Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 54 frames, 7.9MB → 3.4MB (2.3x), 54 JPEGs deleted\n2026-04-20T10:33:55.372436Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=visual_change)\n2026-04-20T10:35:01.169212Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:35:01.245363Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:35:02.392419Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=visual_change)\n2026-04-20T10:35:05.029174Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:35:05.073174Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:35:07.222477Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:35:07.329020Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:35:08.707660Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=visual_change)\n2026-04-20T10:35:27.744689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:35:27.812062Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:36:18.265456Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:36:18.437457Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:36:23.437791Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:36:23.487637Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:36:24.299771Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=visual_change)\n2026-04-20T10:36:25.135894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:36:25.257064Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:36:27.317393Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=visual_change)\n2026-04-20T10:36:50.815358Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:38:04.728644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4435744464912499495, trigger=visual_change)\n2026-04-20T10:38:07.749721Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4435744464912499495, trigger=visual_change)\n2026-04-20T10:38:13.318000Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=visual_change)\n2026-04-20T10:38:13.969769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=visual_change)\n2026-04-20T10:38:14.800566Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:38:14.834512Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:38:17.252696Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:38:17.328544Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:38:24.892322Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:38:24.943640Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:38:35.256001Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:38:35.322251Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:38:40.980335Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 88 eligible frames\n2026-04-20T10:38:43.345927Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 6.6MB → 2.6MB (2.5x), 39 JPEGs deleted\n2026-04-20T10:38:46.544495Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 47 frames, 7.3MB → 2.8MB (2.6x), 47 JPEGs deleted\n2026-04-20T10:39:26.663352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=visual_change)\n2026-04-20T10:39:29.597544Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:39:29.637879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:40:07.495065Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=visual_change)\n2026-04-20T10:40:11.064923Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=visual_change)\n2026-04-20T10:40:11.431065Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)\n2026-04-20T10:40:12.068565Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=click)\n2026-04-20T10:40:12.110719Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)\n2026-04-20T10:40:14.179306Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=click)\n2026-04-20T10:40:14.239361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)\n2026-04-20T10:41:20.489623Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=click)\n2026-04-20T10:43:48.184341Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=82 elapsed=1.63218175s\n2026-04-20T10:43:48.184571Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 82 eligible frames\n2026-04-20T10:43:50.234957Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 2.2MB → 0.1MB (16.1x), 30 JPEGs deleted\n2026-04-20T10:43:55.342383Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 50 frames, 7.9MB → 3.2MB (2.5x), 50 JPEGs deleted\n2026-04-20T10:44:06.225390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4079037146782974603, trigger=click)\n2026-04-20T10:44:14.808445Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Slack, signals=2)\n2026-04-20T10:44:19.110273Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-539912533838677065, trigger=click)\n2026-04-20T10:44:19.155111Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-539912533838677065, trigger=click)\n2026-04-20T10:44:19.832463Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Slack, signals=2, browser=false)\n2026-04-20T10:44:19.834928Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=3, app=Slack, title=None)\n2026-04-20T10:44:27.766267Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5412550087722993493, trigger=visual_change)\n2026-04-20T10:44:39.799864Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5412550087722993493, trigger=visual_change)\n2026-04-20T10:44:57.832108Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5412550087722993493, trigger=visual_change)\n2026-04-20T10:44:57.940548Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5412550087722993493, trigger=click)\n2026-04-20T10:44:58.605782Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5412550087722993493, trigger=click)\n2026-04-20T10:44:58.637243Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5412550087722993493, trigger=click)\n2026-04-20T10:45:00.807501Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5412550087722993493, trigger=visual_change)\n2026-04-20T10:45:16.166619Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8594311245071571574, trigger=visual_change)\n2026-04-20T10:45:56.391618Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)\n2026-04-20T10:45:56.468127Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=click)\n2026-04-20T10:46:03.056730Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8594311245071571574, trigger=visual_change)\n2026-04-20T10:46:12.195973Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8594311245071571574, trigger=visual_change)\n2026-04-20T10:46:17.958643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=click)\n2026-04-20T10:46:18.011452Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)\n2026-04-20T10:47:02.211065Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5662459752758049610, trigger=click)\n2026-04-20T10:47:02.257675Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5662459752758049610, trigger=click)\n2026-04-20T10:47:05.697096Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5662459752758049610, trigger=click)\n2026-04-20T10:47:06.566076Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5662459752758049610, trigger=click)\n2026-04-20T10:47:07.827281Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5662459752758049610, trigger=click)\n2026-04-20T10:47:40.405629Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1571710488795535897, trigger=visual_change)\n2026-04-20T10:47:49.440068Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1557699132616565226, trigger=visual_change)\n2026-04-20T10:47:52.572612Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1557699132616565226, trigger=visual_change)\n2026-04-20T10:47:58.689857Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4346016681512348210, trigger=visual_change)\n2026-04-20T10:48:07.634676Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1557699132616565226, trigger=visual_change)\n2026-04-20T10:48:13.649498Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1557699132616565226, trigger=visual_change)\n2026-04-20T10:48:19.703789Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1557699132616565226, trigger=visual_change)\n2026-04-20T10:48:52.948919Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1420790294153145145, trigger=visual_change)\n2026-04-20T10:48:55.891318Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1420790294153145145, trigger=visual_change)\n2026-04-20T10:48:57.225561Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=44 elapsed=1.875780625s\n2026-04-20T10:48:57.225944Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 44 eligible frames\n2026-04-20T10:48:58.265979Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 1.2MB → 0.1MB (11.0x), 16 JPEGs deleted\n2026-04-20T10:49:00.653282Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.4MB → 2.7MB (1.6x), 26 JPEGs deleted\n2026-04-20T10:49:32.916674Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1420790294153145145, trigger=visual_change)\n2026-04-20T10:49:36.017852Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1420790294153145145, trigger=visual_change)\n2026-04-20T10:49:38.836425Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5221054553112749208, trigger=visual_change)\n2026-04-20T10:49:42.792319Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Slack, id=3, grace=30s)\n2026-04-20T10:49:59.717149Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8395829747728977847, trigger=visual_change)\n2026-04-20T10:50:05.893490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9218245258814534702, trigger=visual_change)\n2026-04-20T10:50:13.558613Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Idle (timeout=30s, app=Slack, id=3)\n2026-04-20T10:50:13.776444Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting ended (id=3)\n2026-04-20T10:50:30.296877Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8395829747728977847, trigger=visual_change)\n2026-04-20T10:50:31.009005Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8395829747728977847, trigger=visual_change)\n2026-04-20T10:50:35.710448Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2997155127408295500, trigger=click)\n2026-04-20T10:50:39.411258Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2997155127408295500, trigger=visual_change)\n2026-04-20T10:50:42.426737Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2997155127408295500, trigger=visual_change)\n2026-04-20T10:50:44.695606Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2997155127408295500, trigger=click)\n2026-04-20T10:51:10.075065Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4346016681512348210, trigger=click)\n2026-04-20T10:51:10.162124Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4346016681512348210, trigger=click)\n2026-04-20T10:51:29.550593Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4346016681512348210, trigger=click)\n2026-04-20T10:51:33.066966Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=click)\n2026-04-20T10:51:34.845466Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)\n2026-04-20T10:51:34.910786Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=click)\n2026-04-20T10:52:43.260524Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8163403335606540090, trigger=click)\n2026-04-20T10:52:43.340992Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8163403335606540090, trigger=click)\n2026-04-20T10:52:48.268094Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=159194235337566135, trigger=visual_change)\n2026-04-20T10:52:51.322127Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=159194235337566135, trigger=click)\n2026-04-20T10:52:51.391904Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=159194235337566135, trigger=click)\n2026-04-20T10:53:43.515437Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-813068054433851605, trigger=visual_change)\n2026-04-20T10:54:05.099685Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=48 elapsed=4.409245042s\n2026-04-20T10:54:05.099971Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 48 eligible frames\n2026-04-20T10:54:06.503270Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 1.6MB → 0.1MB (20.0x), 22 JPEGs deleted\n2026-04-20T10:54:08.444918Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.3MB → 2.1MB (2.0x), 24 JPEGs deleted\n2026-04-20T10:54:35.036274Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8163403335606540090, trigger=visual_change)\n2026-04-20T10:54:35.171848Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8163403335606540090, trigger=visual_change)\n2026-04-20T10:54:36.475203Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8163403335606540090, trigger=click)\n2026-04-20T10:54:36.541896Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8163403335606540090, trigger=click)\n2026-04-20T10:54:37.380023Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8163403335606540090, trigger=click)\n2026-04-20T10:54:37.445729Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8163403335606540090, trigger=click)\n2026-04-20T10:55:03.555125Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8163403335606540090, trigger=click)\n2026-04-20T10:55:03.640618Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8163403335606540090, trigger=click)\n2026-04-20T10:55:19.315053Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:30.302435Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:30.370524Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:33.629673Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:33.680190Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:34.225728Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=visual_change)\n2026-04-20T10:55:36.487309Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:36.553300Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:37.266499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=visual_change)\n2026-04-20T10:55:41.784038Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:41.805901Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:43.326649Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=visual_change)\n2026-04-20T10:55:45.080360Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:45.118718Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:46.357519Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=visual_change)\n2026-04-20T10:55:47.480883Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:47.537710Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:49.291790Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:49.326846Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:52.992748Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8138726509372139947, trigger=click)\n2026-04-20T10:55:54.240859Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:55.950255Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:55.991282Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:58.736523Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:58.802298Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:59.902655Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:59.944572Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:56:07.794877Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5942962546669254600, trigger=click)\n2026-04-20T10:56:07.851635Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5942962546669254600, trigger=click)\n2026-04-20T10:56:48.563398Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7990927160457220959, trigger=visual_change)\n2026-04-20T10:57:32.104953Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=9150043812320386523, trigger=click)\n2026-04-20T10:57:32.144287Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9150043812320386523, trigger=click)\n2026-04-20T10:58:28.399190Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260395566585322026, trigger=click)\n2026-04-20T10:58:28.442157Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260395566585322026, trigger=click)\n2026-04-20T10:59:08.570536Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 81 eligible frames\n2026-04-20T10:59:10.567201Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 33 frames, 2.4MB → 0.1MB (18.5x), 33 JPEGs deleted\n2026-04-20T10:59:14.364266Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 46 frames, 8.7MB → 4.7MB (1.9x), 46 JPEGs deleted\n2026-04-20T10:59:58.111173Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5381531899229729064, trigger=click)\n2026-04-20T10:59:58.142222Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5381531899229729064, trigger=click)\n2026-04-20T11:00:36.141673Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9207198899289182946, trigger=click)\n2026-04-20T11:00:36.183623Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9207198899289182946, trigger=click)\n2026-04-20T11:01:42.348670Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8842760806676108827, trigger=click)\n2026-04-20T11:01:46.579137Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3692713192977136429, trigger=visual_change)\n2026-04-20T11:02:24.402529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3769719286299940254, trigger=visual_change)\n2026-04-20T11:03:17.195875Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-838946827693869464, trigger=click)\n2026-04-20T11:04:18.906189Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=visual_change)\n2026-04-20T11:04:19.288145Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=154 elapsed=4.909861708s\n2026-04-20T11:04:19.288239Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 154 eligible frames\n2026-04-20T11:04:21.929712Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=visual_change)\n2026-04-20T11:04:23.364885Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 71 frames, 5.8MB → 0.9MB (6.6x), 71 JPEGs deleted\n2026-04-20T11:04:24.973084Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=visual_change)\n2026-04-20T11:04:27.204317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2406143553526754098, trigger=click)\n2026-04-20T11:04:27.256852Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T11:04:29.050253Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 81 frames, 12.7MB → 5.0MB (2.5x), 81 JPEGs deleted\n2026-04-20T11:04:33.163125Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2340404083908403127, trigger=click)\n2026-04-20T11:04:54.879253Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2453433494247683376, trigger=click)\n2026-04-20T11:05:12.089056Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4318090145782937453, trigger=visual_change)\n2026-04-20T11:05:13.095729Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4318090145782937453, trigger=click)\n2026-04-20T11:05:15.103808Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4318090145782937453, trigger=visual_change)\n2026-04-20T11:05:16.310357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4318090145782937453, trigger=click)\n2026-04-20T11:05:16.383203Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4318090145782937453, trigger=click)\n2026-04-20T11:05:18.172083Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4318090145782937453, trigger=visual_change)\n2026-04-20T11:05:18.982699Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4318090145782937453, trigger=click)\n2026-04-20T11:05:19.029420Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4318090145782937453, trigger=click)\n2026-04-20T11:05:21.205027Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4318090145782937453, trigger=visual_change)\n2026-04-20T11:05:30.714779Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4318090145782937453, trigger=visual_change)\n2026-04-20T11:05:33.817783Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4318090145782937453, trigger=visual_change)\n2026-04-20T11:05:36.802961Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4318090145782937453, trigger=visual_change)\n2026-04-20T11:05:39.813482Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4318090145782937453, trigger=visual_change)\n2026-04-20T11:09:00.185306Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=visual_change)\n2026-04-20T11:09:03.706142Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T11:09:03.822044Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2406143553526754098, trigger=click)\n2026-04-20T11:09:33.034069Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=96 elapsed=3.973269334s\n2026-04-20T11:09:33.034177Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 96 eligible frames\n2026-04-20T11:09:35.558135Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 42 frames, 3.2MB → 0.2MB (16.4x), 42 JPEGs deleted\n2026-04-20T11:09:39.031687Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 52 frames, 8.1MB → 3.6MB (2.2x), 52 JPEGs deleted\n2026-04-20T11:10:16.370525Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)\n2026-04-20T11:10:19.252001Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)\n2026-04-20T11:10:19.806142Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)\n2026-04-20T11:13:16.227087Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T11:13:20.596574Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T11:13:20.661227Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T11:13:23.902473Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5954939318163518708, trigger=click)\n2026-04-20T11:13:24.516393Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5954939318163518708, trigger=click)\n2026-04-20T11:13:24.587417Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5954939318163518708, trigger=click)\n2026-04-20T11:13:27.637011Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1070969666032687649, trigger=visual_change)\n2026-04-20T11:13:27.807847Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1070969666032687649, trigger=click)\n2026-04-20T11:13:30.623373Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1070969666032687649, trigger=visual_change)\n2026-04-20T11:13:56.362486Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=click)\n2026-04-20T11:14:22.232710Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2535035496832215689, trigger=click)\n2026-04-20T11:14:40.999263Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=128 elapsed=1.951355041s\n2026-04-20T11:14:40.999365Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 128 eligible frames\n2026-04-20T11:14:43.717104Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 47 frames, 3.5MB → 0.2MB (22.4x), 47 JPEGs deleted\n2026-04-20T11:14:49.191609Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 79 frames, 11.9MB → 6.7MB (1.8x), 79 JPEGs deleted\n2026-04-20T11:15:53.591341Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6836450022093940164, trigger=click)\n2026-04-20T11:15:54.531935Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6836450022093940164, trigger=visual_change)\n2026-04-20T11:16:23.234607Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7020057609110231149, trigger=click)\n2026-04-20T11:16:24.573477Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7020057609110231149, trigger=click)\n2026-04-20T11:16:24.645049Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7020057609110231149, trigger=click)\n2026-04-20T11:18:31.210018Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6218747896970871837, trigger=visual_change)\n2026-04-20T11:18:58.718719Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8395829747728977847, trigger=click)\n2026-04-20T11:18:58.773796Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8395829747728977847, trigger=click)\n2026-04-20T11:19:17.843843Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-546694883753369466, trigger=visual_change)\n2026-04-20T11:19:51.764181Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6984505730173949536, trigger=click)\n2026-04-20T11:19:51.846529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6984505730173949536, trigger=click)\n2026-04-20T11:19:52.311562Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6984505730173949536, trigger=visual_change)\n2026-04-20T11:19:55.528956Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=118 elapsed=6.325625375s\n2026-04-20T11:19:55.530818Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 118 eligible frames\n2026-04-20T11:19:59.068315Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 45 frames, 3.9MB → 0.7MB (5.6x), 45 JPEGs deleted\n2026-04-20T11:20:10.114363Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 71 frames, 10.3MB → 5.8MB (1.8x), 71 JPEGs deleted\n2026-04-20T11:22:03.257339Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2781687757078580755, trigger=visual_change)\n2026-04-20T11:22:06.280970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2781687757078580755, trigger=visual_change)\n2026-04-20T11:23:00.888485Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2781687757078580755, trigger=visual_change)\n2026-04-20T11:23:04.422725Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4258649287240007454, trigger=click)\n2026-04-20T11:23:06.787493Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4258649287240007454, trigger=visual_change)\n2026-04-20T11:23:26.757727Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-971663991893619042, trigger=click)\n2026-04-20T11:23:27.530382Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-971663991893619042, trigger=click)\n2026-04-20T11:23:27.629616Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-971663991893619042, trigger=click)\n2026-04-20T11:24:20.636646Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=142107347844094212, trigger=visual_change)\n2026-04-20T11:25:11.487497Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=85 elapsed=1.352837292s\n2026-04-20T11:25:11.487736Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 85 eligible frames\n2026-04-20T11:25:13.473260Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8313898756799688709, trigger=click)\n2026-04-20T11:25:13.930021Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8313898756799688709, trigger=click)\n2026-04-20T11:25:14.300911Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 5.7MB → 0.9MB (6.4x), 30 JPEGs deleted\n2026-04-20T11:25:22.765819Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 53 frames, 7.8MB → 3.6MB (2.1x), 53 JPEGs deleted\n2026-04-20T11:25:48.941557Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2643788392031168472, trigger=click)\n2026-04-20T11:25:52.682820Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2643788392031168472, trigger=visual_change)\n2026-04-20T11:27:06.674474Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:27:22.265798Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:27:34.544704Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8004693622225847515, trigger=visual_change)\n2026-04-20T11:27:35.112605Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:27:35.773265Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:27:53.132990Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8004693622225847515, trigger=visual_change)\n2026-04-20T11:27:53.439763Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:27:54.884154Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:27:54.911699Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:27:55.792546Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:27:55.856492Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:27:56.377118Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:27:56.421804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:27:57.385862Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:27:57.433093Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:28:15.099335Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:28:18.161712Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3897675075138840599, trigger=visual_change)\n2026-04-20T11:28:24.420260Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:29:09.322794Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6684718794164531158, trigger=visual_change)\n2026-04-20T11:29:12.232781Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6684718794164531158, trigger=visual_change)\n2026-04-20T11:29:13.714491Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6684718794164531158, trigger=click)\n2026-04-20T11:29:15.297078Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6684718794164531158, trigger=visual_change)\n2026-04-20T11:29:18.279439Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6684718794164531158, trigger=visual_change)\n2026-04-20T11:29:21.288709Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6684718794164531158, trigger=visual_change)\n2026-04-20T11:29:36.889190Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1183751968977138305, trigger=click)\n2026-04-20T11:29:36.935914Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1183751968977138305, trigger=click)\n2026-04-20T11:29:44.265375Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1744865349186139800, trigger=click)\n2026-04-20T11:29:45.438891Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1744865349186139800, trigger=visual_change)\n2026-04-20T11:29:48.445512Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1744865349186139800, trigger=visual_change)\n2026-04-20T11:30:00.582835Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=214677970165296243, trigger=click)\n2026-04-20T11:30:00.930875Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=214677970165296243, trigger=visual_change)\n2026-04-20T11:30:03.983533Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=214677970165296243, trigger=visual_change)\n2026-04-20T11:30:25.190331Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=144 elapsed=2.413845166s\n2026-04-20T11:30:25.191014Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 144 eligible frames\n2026-04-20T11:30:28.644851Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 59 frames, 8.9MB → 1.9MB (4.8x), 59 JPEGs deleted\n2026-04-20T11:30:34.292740Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 83 frames, 12.0MB → 6.2MB (1.9x), 83 JPEGs deleted\n2026-04-20T11:30:49.731059Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6771186432168714093, trigger=visual_change)\n2026-04-20T11:30:52.714807Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6771186432168714093, trigger=click)\n2026-04-20T11:30:52.764209Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6771186432168714093, trigger=click)\n2026-04-20T11:30:53.030418Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6771186432168714093, trigger=visual_change)\n2026-04-20T11:30:56.085725Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6771186432168714093, trigger=visual_change)\n2026-04-20T11:30:57.236790Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6771186432168714093, trigger=visual_change)\n2026-04-20T11:31:57.345054Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5799305003809379240, trigger=visual_change)\n2026-04-20T11:32:34.844223Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5799305003809379240, trigger=click)\n2026-04-20T11:33:01.295072Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2331312136567929026, trigger=visual_change)\n2026-04-20T11:33:02.667241Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2331312136567929026, trigger=visual_change)\n2026-04-20T11:33:40.313987Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Slack, signals=2)\n2026-04-20T11:33:40.621030Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6376510702070023487, trigger=visual_change)\n2026-04-20T11:33:45.357469Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Slack, signals=2, browser=false)\n2026-04-20T11:33:45.361133Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=4, app=Slack, title=None)\n2026-04-20T11:33:50.248270Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2305043043211837966, trigger=visual_change)\n2026-04-20T11:33:55.493928Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Slack, id=4, grace=30s)\n2026-04-20T11:34:26.223427Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Idle (timeout=30s, app=Slack, id=4)\n2026-04-20T11:34:26.415026Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting ended (id=4)\n2026-04-20T11:35:35.008400Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 86 eligible frames\n2026-04-20T11:35:37.449048Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 35 frames, 8.2MB → 2.2MB (3.8x), 35 JPEGs deleted\n2026-04-20T11:35:40.752978Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 5.9MB → 3.0MB (2.0x), 49 JPEGs deleted\n2026-04-20T11:35:57.468649Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Slack, signals=2)\n2026-04-20T11:36:02.566427Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Slack, signals=2, browser=false)\n2026-04-20T11:36:02.570096Z INFO screenpipe_engine::meeting_detector: meeting v2: reopened recent meeting (id=4, app=Slack)\n2026-04-20T11:36:11.034023Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7051916521891946593, trigger=click)\n2026-04-20T11:36:12.782467Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7051916521891946593, trigger=visual_change)\n2026-04-20T11:36:18.849412Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8299397926977483522, trigger=visual_change)\n2026-04-20T11:36:31.060551Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4229935992045172066, trigger=visual_change)\n2026-04-20T11:36:40.745263Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6895312360846969419, trigger=visual_change)\n2026-04-20T11:36:51.141301Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5575905127528149150, trigger=click)\n2026-04-20T11:37:10.853815Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1985697427151442712, trigger=click)\n2026-04-20T11:37:10.900023Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1985697427151442712, trigger=click)\n2026-04-20T11:37:23.414384Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9098743064037159085, trigger=visual_change)\n2026-04-20T11:37:27.259925Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7267777192673742381, trigger=click)\n2026-04-20T11:37:27.289716Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7267777192673742381, trigger=click)\n2026-04-20T11:37:29.306353Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7267777192673742381, trigger=click)\n2026-04-20T11:37:29.353781Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7267777192673742381, trigger=click)\n2026-04-20T11:37:29.703017Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7267777192673742381, trigger=visual_change)\n2026-04-20T11:37:48.167442Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6972880851711695642, trigger=visual_change)\n2026-04-20T11:37:51.131020Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7497803955284800173, trigger=visual_change)\n2026-04-20T11:37:51.606964Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7497803955284800173, trigger=click)\n2026-04-20T11:38:03.649693Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9147325036326340894, trigger=visual_change)\n2026-04-20T11:38:03.797616Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9147325036326340894, trigger=click)\n2026-04-20T11:38:15.258513Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7947348293642214978, trigger=click)\n2026-04-20T11:38:15.324902Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7947348293642214978, trigger=click)\n2026-04-20T11:38:21.259898Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=181147586093327944, trigger=click)\n2026-04-20T11:38:27.343543Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7497803955284800173, trigger=click)\n2026-04-20T11:38:27.389951Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7497803955284800173, trigger=click)\n2026-04-20T11:38:30.491260Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7497803955284800173, trigger=click)\n2026-04-20T11:38:30.546381Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7497803955284800173, trigger=click)\n2026-04-20T11:38:37.600021Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6921034694780173826, trigger=visual_change)\n2026-04-20T11:38:50.355690Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5480310180026203579, trigger=click)\n2026-04-20T11:38:50.404005Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5480310180026203579, trigger=click)\n2026-04-20T11:39:08.307526Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7497803955284800173, trigger=visual_change)\n2026-04-20T11:39:09.091514Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7497803955284800173, trigger=click)\n2026-04-20T11:39:09.161743Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7497803955284800173, trigger=click)\n2026-04-20T11:39:20.638047Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4229935992045172066, trigger=visual_change)\n2026-04-20T11:39:23.591141Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4229935992045172066, trigger=visual_change)\n2026-04-20T11:39:29.583292Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4229935992045172066, trigger=visual_change)\n2026-04-20T11:39:37.360066Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4229935992045172066, trigger=click)\n2026-04-20T11:39:44.814358Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6671609150327009848, trigger=visual_change)\n2026-04-20T11:39:45.924485Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6671609150327009848, trigger=click)\n2026-04-20T11:39:45.996345Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6671609150327009848, trigger=click)\n2026-04-20T11:40:20.394394Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1671671177896523754, trigger=click)\n2026-04-20T11:40:21.375675Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1671671177896523754, trigger=visual_change)\n2026-04-20T11:40:23.202671Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3155554097147706318, trigger=visual_change)\n2026-04-20T11:40:43.253092Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4229935992045172066, trigger=visual_change)\n2026-04-20T11:40:43.695721Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=131 elapsed=2.9322245s\n2026-04-20T11:40:43.695827Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 131 eligible frames\n2026-04-20T11:40:47.649371Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 61 frames, 7.4MB → 2.5MB (2.9x), 61 JPEGs deleted\n2026-04-20T11:40:47.781508Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6895312360846969419, trigger=click)\n2026-04-20T11:40:52.046914Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 68 frames, 9.2MB → 3.4MB (2.7x), 68 JPEGs deleted\n2026-04-20T11:40:59.460075Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-456029760066552990, trigger=visual_change)\n2026-04-20T11:41:02.495697Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-456029760066552990, trigger=visual_change)\n2026-04-20T11:41:05.496427Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-456029760066552990, trigger=visual_change)\n2026-04-20T11:41:08.546403Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-456029760066552990, trigger=visual_change)\n2026-04-20T11:42:34.401639Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-456029760066552990, trigger=visual_change)\n2026-04-20T11:42:43.277648Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3155554097147706318, trigger=click)\n2026-04-20T11:42:44.143615Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3155554097147706318, trigger=click)\n2026-04-20T11:42:44.214701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3155554097147706318, trigger=click)\n2026-04-20T11:42:47.032602Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3155554097147706318, trigger=click)\n2026-04-20T11:42:47.080822Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3155554097147706318, trigger=click)\n2026-04-20T11:43:06.469036Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3155554097147706318, trigger=click)\n2026-04-20T11:43:07.387591Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3155554097147706318, trigger=click)\n2026-04-20T11:43:08.580298Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2132333697539486641, trigger=click)\n2026-04-20T11:43:36.517926Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8547944451951971235, trigger=visual_change)\n2026-04-20T11:43:48.604378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=987107508425736725, trigger=visual_change)\n2026-04-20T11:43:57.614359Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8547944451951971235, trigger=visual_change)\n2026-04-20T11:44:18.824990Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8547944451951971235, trigger=visual_change)\n2026-04-20T11:44:24.907462Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8547944451951971235, trigger=visual_change)\n2026-04-20T11:45:14.820258Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8547944451951971235, trigger=visual_change)\n2026-04-20T11:45:17.865890Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8547944451951971235, trigger=visual_change)\n2026-04-20T11:45:45.016855Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:45:45.107955Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:45:51.754851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:45:51.856465Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:45:52.816897Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:45:52.891807Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:45:53.075541Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=139 elapsed=1.017660667s\n2026-04-20T11:45:53.075652Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 139 eligible frames\n2026-04-20T11:45:53.378781Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:45:58.733979Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 62 frames, 12.9MB → 3.2MB (4.0x), 62 JPEGs deleted\n2026-04-20T11:46:06.485751Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 75 frames, 11.9MB → 4.1MB (2.9x), 75 JPEGs deleted\n2026-04-20T11:46:39.095124Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=987107508425736725, trigger=visual_change)\n2026-04-20T11:46:42.057902Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=987107508425736725, trigger=visual_change)\n2026-04-20T11:48:11.765669Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=9195472439744667829, trigger=click)\n2026-04-20T11:48:15.524597Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Slack, id=4, grace=30s)\n2026-04-20T11:48:21.832650Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4229935992045172066, trigger=visual_change)\n2026-04-20T11:48:46.695881Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Idle (timeout=30s, app=Slack, id=4)\n2026-04-20T11:48:46.921237Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting ended (id=4)\n2026-04-20T11:48:50.943040Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:48:51.021231Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:49:10.755384Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4229935992045172066, trigger=visual_change)\n2026-04-20T11:49:17.161498Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7106754424718048973, trigger=click)\n2026-04-20T11:49:21.158818Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7106754424718048973, trigger=visual_change)\n2026-04-20T11:49:22.487278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7106754424718048973, trigger=click)\n2026-04-20T11:49:22.530338Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7106754424718048973, trigger=click)\n2026-04-20T11:49:23.006416Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7106754424718048973, trigger=click)\n2026-04-20T11:49:23.047268Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7106754424718048973, trigger=click)\n2026-04-20T11:49:37.147379Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7106754424718048973, trigger=click)\n2026-04-20T11:50:39.151894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:50:39.232274Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:50:43.572057Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:50:43.624058Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:50:48.638461Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:50:48.728784Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:50:51.101000Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:50:51.164752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:09.566936Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=192 elapsed=3.068271875s\n2026-04-20T11:51:09.567545Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 192 eligible frames\n2026-04-20T11:51:20.254226Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 99 frames, 13.0MB → 3.8MB (3.4x), 99 JPEGs deleted\n2026-04-20T11:51:21.236766Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 4 frames, 0.5MB → 0.2MB (3.1x), 4 JPEGs deleted\n2026-04-20T11:51:27.711099Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 87 frames, 18.0MB → 2.3MB (7.9x), 87 JPEGs deleted\n2026-04-20T11:51:31.197932Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:31.303759Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:32.213378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:32.274981Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:35.101541Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:35.200979Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:36.153649Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:36.189190Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:36.685206Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:37.415842Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:37.529712Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:48.634934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:48.699131Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:51.963953Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:51.997497Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:54.179984Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:54.228458Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:52:46.320080Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:52:49.012351Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:52:51.071555Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:52:51.123083Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:53:00.887309Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7089240009464300311, trigger=click)\n2026-04-20T11:53:00.940245Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7089240009464300311, trigger=click)\n2026-04-20T11:55:45.932772Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5694682761366780141, trigger=visual_change)\n2026-04-20T11:55:53.915956Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4530837260207295611, trigger=click)\n2026-04-20T11:55:54.002399Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4530837260207295611, trigger=click)\n2026-04-20T11:55:54.965125Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4530837260207295611, trigger=visual_change)\n2026-04-20T11:55:58.041145Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4530837260207295611, trigger=visual_change)\n2026-04-20T11:56:09.233089Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6479409851876233602, trigger=click)\n2026-04-20T11:56:09.295538Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6479409851876233602, trigger=click)\n2026-04-20T11:56:10.268022Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6479409851876233602, trigger=click)\n2026-04-20T11:56:10.343195Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6479409851876233602, trigger=click)\n2026-04-20T11:56:13.105773Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6479409851876233602, trigger=visual_change)\n2026-04-20T11:56:20.539351Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5840499593443530124, trigger=click)\n2026-04-20T11:56:28.576130Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 46 eligible frames\n2026-04-20T11:56:29.835734Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.3MB → 0.2MB (12.9x), 17 JPEGs deleted\n2026-04-20T11:56:33.611672Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.4MB → 2.5MB (1.8x), 26 JPEGs deleted\n2026-04-20T11:57:24.788972Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=visual_change)\n2026-04-20T11:57:36.481689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=click)\n2026-04-20T11:57:37.756625Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3030885276270352434, trigger=click)\n2026-04-20T11:57:37.834390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=click)\n2026-04-20T11:57:49.238635Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=visual_change)\n2026-04-20T11:57:52.246590Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=visual_change)\n2026-04-20T11:57:55.241832Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=visual_change)\n2026-04-20T11:57:58.301374Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=visual_change)\n2026-04-20T11:58:01.337222Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=visual_change)\n2026-04-20T11:58:26.816413Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=visual_change)\n2026-04-20T11:58:29.856452Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=visual_change)\n2026-04-20T11:58:30.666522Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=click)\n2026-04-20T11:58:30.701317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3030885276270352434, trigger=click)\n2026-04-20T11:58:35.989225Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=visual_change)\n2026-04-20T11:58:38.498940Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3030885276270352434, trigger=click)\n2026-04-20T11:58:40.794993Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=click)\n2026-04-20T11:58:42.377239Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=visual_change)\n2026-04-20T11:58:59.532131Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6813386454352183033, trigger=visual_change)\n2026-04-20T11:59:39.744543Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6813386454352183033, trigger=visual_change)\n2026-04-20T11:59:58.627407Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3151396900374529455, trigger=visual_change)\n2026-04-20T12:01:34.882479Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=87 elapsed=1.259418542s\n2026-04-20T12:01:34.882676Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 87 eligible frames\n2026-04-20T12:01:37.375070Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 35 frames, 10.6MB → 2.3MB (4.6x), 35 JPEGs deleted\n2026-04-20T12:01:45.894068Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 50 frames, 8.1MB → 4.1MB (2.0x), 50 JPEGs deleted\n2026-04-20T12:01:50.133673Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3134476686614698911, trigger=click)\n2026-04-20T12:01:50.211171Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3134476686614698911, trigger=click)\n2026-04-20T12:01:55.273763Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=467660169672458461, trigger=visual_change)\n2026-04-20T12:02:00.095574Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=467660169672458461, trigger=click)\n2026-04-20T12:02:15.114277Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=467660169672458461, trigger=click)\n2026-04-20T12:02:15.166674Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=467660169672458461, trigger=click)\n2026-04-20T12:02:16.372669Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=467660169672458461, trigger=click)\n2026-04-20T12:02:16.452496Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=467660169672458461, trigger=click)\n2026-04-20T12:02:17.931496Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=467660169672458461, trigger=click)\n2026-04-20T12:02:17.993032Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=467660169672458461, trigger=click)\n2026-04-20T12:02:20.527678Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=467660169672458461, trigger=click)\n2026-04-20T12:02:20.583726Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=467660169672458461, trigger=click)\n2026-04-20T12:02:24.944153Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-218291911025499455, trigger=click)\n2026-04-20T12:02:26.245682Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-218291911025499455, trigger=click)\n2026-04-20T12:02:27.227059Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-218291911025499455, trigger=click)\n2026-04-20T12:02:27.321541Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-218291911025499455, trigger=click)\n2026-04-20T12:02:59.757184Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8912532918897684009, trigger=click)\n2026-04-20T12:02:59.854055Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8912532918897684009, trigger=click)","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.39444444,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3986111,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.59166664,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.59583336,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.7888889,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.79305553,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"screenpipe\"","depth":1,"bounds":{"left":0.4722222,"top":0.033333335,"width":0.058333334,"height":0.017777778},"role_description":"text"}]...
|
6376510702070023487
|
2716136870039889273
|
visual_change
|
accessibility
|
NULL
|
Last login: Mon Apr 20 10:16:41 on ttys009
Poetry Last login: Mon Apr 20 10:16:41 on ttys009
Poetry could not find a pyproject.toml file in /Users/lukas or its parents
Poetry could not find a pyproject.toml file in /Users/lukas or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-start
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-04-20T10:17:08.672567Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store
checking permissions...
screen recording: ok
accessibility: ok
2026-04-20T10:17:08.735636Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-04-20T10:17:09.168849Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-04-20T10:17:09.170474Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-04-20T10:17:09.170918Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-04-20T10:17:09.203704Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-04-20T10:17:09.203780Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-04-20T10:17:09.203962Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-04-20T10:17:09.203976Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-04-20T10:17:09.203934Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-04-20T10:17:09.204030Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-04-20T10:17:09.203954Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-04-20T10:17:09.215020Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))
2026-04-20T10:17:09.220127Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-04-20T10:17:09.220306Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-04-20T10:17:09.220863Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-04-20T10:17:09.221034Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-04-20T10:17:09.221177Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-04-20T10:17:09.221820Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary
2026-04-20T10:17:09.221839Z INFO screenpipe_core::pipes: loaded 6 pipes from "/Users/lukas/.screenpipe/pipes"
_
__________________ ___ ____ ____ (_____ ___
/ ___/ ___/ ___/ _ \/ _ \/ __ \ / __ \/ / __ \/ _ \
(__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/
/____/\___/_/ \___/\___/_/ /_/ / .___/_/ .___/\___/
/_/ /_/
power AI by everything you've seen, said or heard
open source | runs locally | developer friendly
┌────────────────────────┬────────────────────────────────────┐
│ setting │ value │
├────────────────────────┼────────────────────────────────────┤
│ audio chunk duration │ 30 seconds │
│ port │ 3030 │
│ audio disabled │ true │
│ vision disabled │ false │
│ pause on DRM content │ false │
│ audio engine │ Parakeet │
│ vad engine │ Silero │
│ data directory │ /Users/lukas/.screenpipe │
│ debug mode │ false │
│ telemetry │ true │
│ use pii removal │ true │
│ use all monitors │ true │
2026-04-20T10:17:09.223448Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)
│ ignored windows │ ["Boosteroid"] │
│ included windows │ [] │
│ cloud sync │ disabled │
│ auto-destruct pid │ 0 │
│ deepgram key │ not set │
│ api auth │ enabled │
2026-04-20T10:17:09.227535Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh
│ encrypt secrets │ disabled │
│ retention days │ 14 │
├────────────────────────┼────────────────────────────────────┤
│ languages │ │
│ │ all languages │
├────────────────────────┼────────────────────────────────────┤
│ monitors │ │
│ │ id: 1 │
│ │ id: 2 │
├────────────────────────┼────────────────────────────────────┤
│ audio devices │ │
│ │ disabled │
└────────────────────────┴────────────────────────────────────┘
you are using local processing. all your data stays on your computer.
warning: telemetry is enabled. only error-level data will be sent.
to disable, use the --disable-telemetry flag.
check latest changes here: https://github.com/screenpipe/screenpipe/releases
2026-04-20T10:17:09.240088Z INFO screenpipe: starting UI event capture
2026-04-20T10:17:09.253668Z INFO screenpipe_engine::ui_recorder: Starting UI event capture
2026-04-20T10:17:09.267973Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)
2026-04-20T10:17:09.268072Z INFO screenpipe_engine::ui_recorder: UI recording session started: f196d677-2a10-4dec-93e7-9dd9048a1d8e
2026-04-20T10:17:09.268173Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-19 07:17:09.268169 UTC to 2026-04-20 07:17:09.268169 UTC)
2026-04-20T10:17:09.268665Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)
2026-04-20T10:17:09.275204Z INFO screenpipe_engine::server: Server listening on [IP_ADDRESS]:3030
2026-04-20T10:17:09.280547Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030
2026-04-20T10:17:09.284876Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)
2026-04-20T10:17:09.284906Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)
2026-04-20T10:17:09.284942Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)
2026-04-20T10:17:09.316523Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-04-20T10:17:09.316557Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-04-20T10:17:09.316583Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)
2026-04-20T10:17:09.316603Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-04-20T10:17:09.975374Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 1 excluded)
2026-04-20T10:17:10.050320Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 1 excluded)
2026-04-20T10:17:10.109022Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=52481, dur=72ms
2026-04-20T10:17:10.197530Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=52482, dur=98ms
2026-04-20T10:17:10.926185Z WARN sqlx::query: summary="SELECT f.id, f.timestamp, f.offset_index, …" db.statement="\n\nSELECT\n f.id,\n f.timestamp,\n f.offset_index,\n COALESCE(\n SUBSTR(f.full_text, 1, 200),\n SUBSTR(f.accessibility_text, 1, 200),\n (\n SELECT\n SUBSTR(ot.text, 1, 200)\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as text,\n COALESCE(\n f.app_name,\n (\n SELECT\n ot.app_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as app_name,\n COALESCE(\n f.window_name,\n (\n SELECT\n ot.window_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as window_name,\n COALESCE(vc.device_name, f.device_name) as screen_device,\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\n COALESCE(vc.fps, 0.033) as chunk_fps,\n f.browser_url,\n f.machine_id\nFROM\n frames f\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\nWHERE\n f.timestamp >= ?1\n AND f.timestamp <= ?2\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\nORDER BY\n f.timestamp DESC,\n f.offset_index DESC\nLIMIT\n 10000\n" rows_affected=0 rows_returned=974 elapsed=1.657379083s
2026-04-20T10:17:10.928810Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 974 frame entries, coverage from 2026-04-19 07:17:09.268169 UTC
2026-04-20T10:17:36.605708Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5556097941235749601, trigger=visual_change)
2026-04-20T10:17:41.066595Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5621935701738529327, trigger=click)
2026-04-20T10:17:41.100078Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5621935701738529327, trigger=click)
2026-04-20T10:17:46.116429Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5621935701738529327, trigger=click)
2026-04-20T10:17:46.148269Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5621935701738529327, trigger=click)
2026-04-20T10:18:13.360099Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=145 elapsed=4.153777416s
2026-04-20T10:18:13.360276Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 145 eligible frames
2026-04-20T10:18:18.937138Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 90 frames, 15.2MB → 6.4MB (2.4x), 90 JPEGs deleted
2026-04-20T10:18:22.014745Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 53 frames, 9.4MB → 2.0MB (4.6x), 53 JPEGs deleted
2026-04-20T10:18:56.067965Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1399546062189663050, trigger=visual_change)
2026-04-20T10:18:56.859644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1399546062189663050, trigger=click)
2026-04-20T10:18:59.894779Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=[CREDIT_CARD], trigger=click)
2026-04-20T10:19:12.201247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5621935701738529327, trigger=visual_change)
2026-04-20T10:21:22.063263Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1399546062189663050, trigger=visual_change)
2026-04-20T10:21:35.657143Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5007800743451086391, trigger=visual_change)
2026-04-20T10:21:35.899663Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5007800743451086391, trigger=visual_change)
2026-04-20T10:21:38.094166Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5007800743451086391, trigger=click)
2026-04-20T10:21:38.149655Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5007800743451086391, trigger=click)
2026-04-20T10:21:38.947641Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5007800743451086391, trigger=click)
2026-04-20T10:21:38.991934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5007800743451086391, trigger=click)
2026-04-20T10:23:28.231526Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=2 elapsed=6.103025792s
2026-04-20T10:23:28.232845Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
2026-04-20T10:25:18.292352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=133505750984754566, trigger=click)
2026-04-20T10:25:33.154631Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:25:33.227754Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:25:34.786990Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)
2026-04-20T10:25:36.507114Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:25:36.556707Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:25:37.741060Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)
2026-04-20T10:25:39.466175Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:25:39.547293Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:26:02.072902Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2625703622302799632, trigger=visual_change)
2026-04-20T10:26:05.038754Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8395829747728977847, trigger=visual_change)
2026-04-20T10:26:10.400901Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:26:10.459718Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:26:14.431146Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)
2026-04-20T10:26:17.437868Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=visual_change)
2026-04-20T10:26:35.296162Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:26:35.339241Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:26:37.233387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:26:37.326557Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:00.031681Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:00.067495Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:01.950749Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:02.027316Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:13.045805Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:13.116607Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:15.272022Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:15.311144Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:17.880859Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:17.952143Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:21.645455Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:21.706889Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:36.304603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:36.380537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:37.368951Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:37.459157Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:40.420505Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:40.469217Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:41.179717Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)
2026-04-20T10:28:00.173884Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:00.251737Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:01.241028Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:01.288002Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:02.985445Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:03.078932Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:04.726087Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:04.770305Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:18.186992Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:18.272249Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:28.337807Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 14 eligible frames
2026-04-20T10:28:29.608030Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 0.7MB → 0.5MB (1.4x), 8 JPEGs deleted
2026-04-20T10:28:30.685845Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 6 frames, 1.2MB → 0.7MB (1.8x), 6 JPEGs deleted
2026-04-20T10:28:49.943477Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:49.984595Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:50.611087Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:50.628530Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:54.853245Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:57.739309Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)
2026-04-20T10:29:03.177558Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:03.231322Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:03.857989Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)
2026-04-20T10:29:04.993121Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:05.032838Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:06.923393Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)
2026-04-20T10:29:07.890421Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:07.960410Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:08.812301Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:26.656780Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:26.775833Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:27.602791Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:27.639583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:34.060332Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2389025338591748766, trigger=visual_change)
2026-04-20T10:29:37.050675Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2389025338591748766, trigger=click)
2026-04-20T10:29:37.085946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2389025338591748766, trigger=click)
2026-04-20T10:29:40.501396Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2389025338591748766, trigger=visual_change)
2026-04-20T10:29:43.751715Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)
2026-04-20T10:29:43.843367Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:44.468329Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:46.931137Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:49.616400Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:49.692474Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:50.298335Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)
2026-04-20T10:29:51.348506Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:51.436585Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:30:12.602958Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8200761366188343712, trigger=click)
2026-04-20T10:31:17.535958Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5166044279428207369, trigger=click)
2026-04-20T10:31:18.668547Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5166044279428207369, trigger=visual_change)
2026-04-20T10:31:19.518515Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5166044279428207369, trigger=click)
2026-04-20T10:31:19.681398Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5166044279428207369, trigger=click)
2026-04-20T10:31:21.044436Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5166044279428207369, trigger=click)
2026-04-20T10:31:21.086009Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5166044279428207369, trigger=click)
2026-04-20T10:31:21.680970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5166044279428207369, trigger=visual_change)
2026-04-20T10:32:05.428125Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=visual_change)
2026-04-20T10:32:07.004460Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=click)
2026-04-20T10:32:07.088172Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6999516640019587394, trigger=click)
2026-04-20T10:32:08.380482Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=visual_change)
2026-04-20T10:32:11.588306Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=click)
2026-04-20T10:32:11.689288Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6999516640019587394, trigger=click)
2026-04-20T10:32:12.318265Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6999516640019587394, trigger=click)
2026-04-20T10:32:12.381069Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=click)
2026-04-20T10:32:20.139124Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)
2026-04-20T10:32:20.175356Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)
2026-04-20T10:32:23.490851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=click)
2026-04-20T10:32:27.111949Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=visual_change)
2026-04-20T10:32:37.220458Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6999516640019587394, trigger=click)
2026-04-20T10:32:37.303363Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=click)
2026-04-20T10:32:38.554270Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=click)
2026-04-20T10:32:38.619116Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6999516640019587394, trigger=click)
2026-04-20T10:32:44.030894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=click)
2026-04-20T10:32:44.098803Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4838132251856752988, trigger=click)
2026-04-20T10:32:45.233990Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=click)
2026-04-20T10:32:45.238569Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4838132251856752988, trigger=click)
2026-04-20T10:32:48.884987Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=visual_change)
2026-04-20T10:32:51.832116Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)
2026-04-20T10:32:51.860110Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)
2026-04-20T10:32:53.754008Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)
2026-04-20T10:32:53.796899Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)
2026-04-20T10:32:55.635715Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)
2026-04-20T10:32:55.675828Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)
2026-04-20T10:32:57.084341Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)
2026-04-20T10:32:57.128626Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)
2026-04-20T10:32:58.841455Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)
2026-04-20T10:32:58.882031Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)
2026-04-20T10:33:00.965217Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)
2026-04-20T10:33:01.040922Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)
2026-04-20T10:33:02.591751Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)
2026-04-20T10:33:02.633245Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)
2026-04-20T10:33:03.324241Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)
2026-04-20T10:33:03.353493Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)
2026-04-20T10:33:05.802391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)
2026-04-20T10:33:05.849275Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)
2026-04-20T10:33:06.911518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=visual_change)
2026-04-20T10:33:14.484135Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=click)
2026-04-20T10:33:14.530843Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4838132251856752988, trigger=click)
2026-04-20T10:33:34.189406Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4838132251856752988, trigger=click)
2026-04-20T10:33:34.205308Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=94 elapsed=3.603974333s
2026-04-20T10:33:34.205567Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 94 eligible frames
2026-04-20T10:33:34.240884Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=visual_change)
2026-04-20T10:33:35.686677Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4838132251856752988, trigger=click)
2026-04-20T10:33:35.780825Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=click)
2026-04-20T10:33:37.134576Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 38 frames, 8.0MB → 4.4MB (1.8x), 38 JPEGs deleted
2026-04-20T10:33:40.850354Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 54 frames, 7.9MB → 3.4MB (2.3x), 54 JPEGs deleted
2026-04-20T10:33:55.372436Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=visual_change)
2026-04-20T10:35:01.169212Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)
2026-04-20T10:35:01.245363Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)
2026-04-20T10:35:02.392419Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=visual_change)
2026-04-20T10:35:05.029174Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)
2026-04-20T10:35:05.073174Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)
2026-04-20T10:35:07.222477Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)
2026-04-20T10:35:07.329020Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)
2026-04-20T10:35:08.707660Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=visual_change)
2026-04-20T10:35:27.744689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)
2026-04-20T10:35:27.812062Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)
2026-04-20T10:36:18.265456Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)
2026-04-20T10:36:18.437457Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)
2026-04-20T10:36:23.437791Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)
2026-04-20T10:36:23.487637Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)
2026-04-20T10:36:24.299771Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=visual_change)
2026-04-20T10:36:25.135894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)
2026-04-20T10:36:25.257064Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)
2026-04-20T10:36:27.317393Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=visual_change)
2026-04-20T10:36:50.815358Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)
2026-04-20T10:38:04.728644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4435744464912499495, trigger=visual_change)
2026-04-20T10:38:07.749721Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4435744464912499495, trigger=visual_change)
2026-04-20T10:38:13.318000Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=visual_change)
2026-04-20T10:38:13.969769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=visual_change)
2026-04-20T10:38:14.800566Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)
2026-04-20T10:38:14.834512Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)
2026-04-20T10:38:17.252696Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)
2026-04-20T10:38:17.328544Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)
2026-04-20T10:38:24.892322Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)
2026-04-20T10:38:24.943640Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)
2026-04-20T10:38:35.256001Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)
2026-04-20T10:38:35.322251Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)
2026-04-20T10:38:40.980335Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 88 eligible frames
2026-04-20T10:38:43.345927Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 6.6MB → 2.6MB (2.5x), 39 JPEGs deleted
2026-04-20T10:38:46.544495Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 47 frames, 7.3MB → 2.8MB (2.6x), 47 JPEGs deleted
2026-04-20T10:39:26.663352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=visual_change)
2026-04-20T10:39:29.597544Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)
2026-04-20T10:39:29.637879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)
2026-04-20T10:40:07.495065Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=visual_change)
2026-04-20T10:40:11.064923Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=visual_change)
2026-04-20T10:40:11.431065Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)
2026-04-20T10:40:12.068565Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=click)
2026-04-20T10:40:12.110719Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)
2026-04-20T10:40:14.179306Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=click)
2026-04-20T10:40:14.239361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)
2026-04-20T10:41:20.489623Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=click)
2026-04-20T10:43:48.184341Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=82 elapsed=1.63218175s
2026-04-20T10:43:48.184571Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 82 eligible frames
2026-04-20T10:43:50.234957Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 2.2MB → 0.1MB (16.1x), 30 JPEGs deleted
2026-04-20T10:43:55.342383Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 50 frames, 7.9MB → 3.2MB (2.5x), 50 JPEGs deleted
2026-04-20T10:44:06.225390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4079037146782974603, trigger=click)
2026-04-20T10:44:14.808445Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Slack, signals=2)
2026-04-20T10:44:19.110273Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-539912533838677065, trigger=click)
2026-04-20T10:44:19.155111Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-539912533838677065, trigger=click)
2026-04-20T10:44:19.832463Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Slack, signals=2, browser=false)
2026-04-20T10:44:19.834928Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=3, app=Slack, title=None)
2026-04-20T10:44:27.766267Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5412550087722993493, trigger=visual_change)
2026-04-20T10:44:39.799864Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5412550087722993493, trigger=visual_change)
2026-04-20T10:44:57.832108Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5412550087722993493, trigger=visual_change)
2026-04-20T10:44:57.940548Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5412550087722993493, trigger=click)
2026-04-20T10:44:58.605782Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5412550087722993493, trigger=click)
2026-04-20T10:44:58.637243Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5412550087722993493, trigger=click)
2026-04-20T10:45:00.807501Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5412550087722993493, trigger=visual_change)
2026-04-20T10:45:16.166619Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8594311245071571574, trigger=visual_change)
2026-04-20T10:45:56.391618Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)
2026-04-20T10:45:56.468127Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=click)
2026-04-20T10:46:03.056730Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8594311245071571574, trigger=visual_change)
2026-04-20T10:46:12.195973Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8594311245071571574, trigger=visual_change)
2026-04-20T10:46:17.958643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=click)
2026-04-20T10:46:18.011452Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)
2026-04-20T10:47:02.211065Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5662459752758049610, trigger=click)
2026-04-20T10:47:02.257675Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5662459752758049610, trigger=click)
2026-04-20T10:47:05.697096Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5662459752758049610, trigger=click)
2026-04-20T10:47:06.566076Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5662459752758049610, trigger=click)
2026-04-20T10:47:07.827281Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping captur...
|
NULL
|
|
54530
|
1178
|
15
|
2026-04-20T09:03:02.700788+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776675782700_m2.jpg...
|
iTerm2
|
screenpipe"
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Firefox FileEdit•.•D+→ xVIewHistory Bookmarks Prof Firefox FileEdit•.•D+→ xVIewHistory Bookmarks Profiles Tools Window Help• - app.dev.jiminny.com/ondemand100% C4a & Mon 20 Apr 12:03:02.( JY-20553 | Improve crm-sync dela1N (SRD-6793) Les Mills activity type:@ JY-20698 handle failed field syncJY-20692 change confirmation par# (UY-20543] AJ Reports > TrackingJY-189091 [Part21 Automated rerAsk Jiminny Reports by nikolay-yarNew Tabu Product Growth Platform I Useroildu Userpilot | Logged-activityfix(securitv): composer depender© Pipelines - jiminny/appall Feed - jiminny - Sentry)fix(security): composer dependen• Jiminny7 Jiminny8 Jiminny— New TabWaiting for app.dev.liminnv.com...
|
NULL
|
8589022357581445090
|
NULL
|
click
|
ocr
|
NULL
|
Firefox FileEdit•.•D+→ xVIewHistory Bookmarks Prof Firefox FileEdit•.•D+→ xVIewHistory Bookmarks Profiles Tools Window Help• - app.dev.jiminny.com/ondemand100% C4a & Mon 20 Apr 12:03:02.( JY-20553 | Improve crm-sync dela1N (SRD-6793) Les Mills activity type:@ JY-20698 handle failed field syncJY-20692 change confirmation par# (UY-20543] AJ Reports > TrackingJY-189091 [Part21 Automated rerAsk Jiminny Reports by nikolay-yarNew Tabu Product Growth Platform I Useroildu Userpilot | Logged-activityfix(securitv): composer depender© Pipelines - jiminny/appall Feed - jiminny - Sentry)fix(security): composer dependen• Jiminny7 Jiminny8 Jiminny— New TabWaiting for app.dev.liminnv.com...
|
54528
|
|
54529
|
1177
|
10
|
2026-04-20T09:03:02.714363+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776675782714_m1.jpg...
|
iTerm2
|
screenpipe"
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Activity MonitorFileEditViewWindowHelpDOCKER2026-0 Activity MonitorFileEditViewWindowHelpDOCKER2026-04-20T11:57:24.788972Z2026-04-20T11:57:36.481689Z2026-04-20T11:57:37.756625Z2026-04-20T11:57:37.834390Z2026-04-20T11:57:49.238635Z2026-04-20T11:57:52.246590Z2026-04-20T11:57:55.241832Z2026-04-20T11:57:58.301374Z2026-04-20T11:58:01.337222Z2026-04-20T11:58:26.816413Z2026-04-20111:58:29.856452Z2026-04-20T11:58:30.666522Z2026-04-20T11:58:30.701317Z2026-04-20T11:58:35.989225Z2026-04-20T11:58:38.498940Z2026-04-20T11:58:40.794993Z2026-04-20T11:58:42.377239Z2026-04-20T11:58:59.532131Z2026-04-20T11:59:39.744543Z2026-04-20T11:59:58.627407Z2026-04-20112:01:34.8824792ROM\nframes \nWHERE\n418542s2026-04-20T12:01:34.882676Z2026-04-20T12:01:37.375070Z2026-04-20T12:01:45.894068Z2026-04-20T12:01:50.133673Z2026-04-20T12:01:50.211171Z2026-04-20T12:01:55.273763Z2026-04-20T12:02:00.095574Z2026-04-20112:02:15.11427722026-04-20T12:02:15.166674Z2026-04-20T12:02:16.372669Z2026-04-20T12:02:16.45249622026-04-20T12:02:17.931496Z2026-04-20T12:02:17.993032Z2026-04-20T12:02:20.527678Z2026-04-20T12:02:20.583726Z2026-04-20T12:02:24.944153Z2026-04-20T12:02:26.245682Z2026-04-20112:02:27.227059Z2026-04-20T12:02:27.321541Z2026-04-20T12:02:59.757184Z2026-04-20T12:02:59.854055ZSClDEV (docker)₴82APP (-INFOscreenpipe_engine::event_driven_capture: contentdeduINFOscreenpipe_engine::event_driven_capture: contentdeduINFOscreenpipe_engine::event_driven_capture: contentdeduINFOscreenpipe_engine::event_driven_capture: contentdeduINFOscreenpipe_engine::event_driven_capture: contentdeduINFOscreenpipe_engine::event_driven_capture: contentdeduINFOscreenpipe_engine:: event_driven_capture: contentdeduINFOscreenpipe_engine::event_driven_capture: contentdeduINFOscreenpipe_engine::event_driven_capture: contentdeduINFOscreenpipe_engine::event_driVen_capture: content deduINFOscreenpipe_engine::event_driven_capture: content deduINFOscreenpipe_engine::event_driven_capture: contentdeduINFOscreenpipe_engine::event_driven_capture: contentdeduINFOscreenpipe_engine::event_driven_capture: contentdeduINFOscreenpipe_engine::event_driven_capture: content deduINFOscreenpipe_engine::event_driven_capture: content deduINFOscreenpipe_engine:: event_driven_capture: content deduINFOscreenpipe_engine::event_driven_capture: content deduINFOscreenpipe_engine::event_driven_capture: content deduINFOscreenpipe_engine::event_driven_capture: content deduWARNsqlx::query:summary="SELECT id, snapshot_path,devicsnapshot_path IS NOT NULL\nAND timestamp < ?1\nORDER BY\ndeINFOscreenpipe_engine::snapshot_compaction: snapshotcompINFOscreenpipe_engine::snapshot_compaction: snapshotcompINFOscreenpipe_engine::snapshot_compaction: snapshotcompINFOscreenpipe_engine::event_driven_capture: content deduINFOscreenpipe_engine::event_driven_capture: content deduINFOscreenpipe_engine::event_driven_capture: contentdeduINFOscreenpipe_engine::event_driven_capture: content deduINFOscreenpipe_engine::event_driven_capture: content deduINFOscreenpipe_engine::event_driven_capture: contentdeduINFOscreenpipe_engine::event_driven_capture: contentdeduINFOscreenpipe_engine::event_driven_capture: content deduINFOscreenpipe_engine::event_driven_capture: content deduINFOscreenpipe_engine::event_driven_capture: contentdeduINFOscreenpipe_engine::event_driven_capture: contentdeduINFOscreenpipe_engine::event_driven_capture: contentdeduINFOscreenpipe_engine::event_driven_capture: contentdeduINFOscreenpipe_engine::event_driven_capture: contentdedulINFOscreenpipe_engine::event_driven_capture: content deduINFOscreenpipe_engine::event_driven_capture: content deduINFOscreenpipe_engine::event_driven_capture: content deduINFOscreenpipe_engine::event_driven_capture: content deduActivity MonitorAll ProcessesProcess NamePhpStormkernel_taskscreenpipeWindowServerVirtual Machine Service for Dockercef_server Helper (GPU)cef_server Helper (Renderer)FirefoxFirefoxCP Isolated Web Contentdeletedcef_servermds_storeslanguage_server_macos_armclouddClaudeFirefox GPU HelperScreenTimeAgentmdsActivity MonitortccdtccdiTerm2fairplaydlaunchservicesdSlackFirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentContextStoreAgentSystem:User:Idle:% CPU239,0204,840,937,325,021,714,214,013,412,311,69,69,08,57,26,85,74,54,53,73,33,02,72,72,52,42,32,3CPU LOAD100% <78Mon 20 Apr 12:03:02CPUMemoryEnergyDiskNetworkCPU TimeThreadsIdie Wake-Ups2:57:54,4157:07,2220:12,8132:00,1855:12,791:49,362:04,309:42,821:36,566,111:10,593:02,855:21,091,712:05,8510:51,200,821:10,032:14,741:20,4320,864:03 680,442:32,992:48,181:28,105:03,3223, Kind51,53%48,00%0,47%Threads:Processes:3 752426...
|
NULL
|
-4572451989788210310
|
NULL
|
click
|
ocr
|
NULL
|
Activity MonitorFileEditViewWindowHelpDOCKER2026-0 Activity MonitorFileEditViewWindowHelpDOCKER2026-04-20T11:57:24.788972Z2026-04-20T11:57:36.481689Z2026-04-20T11:57:37.756625Z2026-04-20T11:57:37.834390Z2026-04-20T11:57:49.238635Z2026-04-20T11:57:52.246590Z2026-04-20T11:57:55.241832Z2026-04-20T11:57:58.301374Z2026-04-20T11:58:01.337222Z2026-04-20T11:58:26.816413Z2026-04-20111:58:29.856452Z2026-04-20T11:58:30.666522Z2026-04-20T11:58:30.701317Z2026-04-20T11:58:35.989225Z2026-04-20T11:58:38.498940Z2026-04-20T11:58:40.794993Z2026-04-20T11:58:42.377239Z2026-04-20T11:58:59.532131Z2026-04-20T11:59:39.744543Z2026-04-20T11:59:58.627407Z2026-04-20112:01:34.8824792ROM\nframes \nWHERE\n418542s2026-04-20T12:01:34.882676Z2026-04-20T12:01:37.375070Z2026-04-20T12:01:45.894068Z2026-04-20T12:01:50.133673Z2026-04-20T12:01:50.211171Z2026-04-20T12:01:55.273763Z2026-04-20T12:02:00.095574Z2026-04-20112:02:15.11427722026-04-20T12:02:15.166674Z2026-04-20T12:02:16.372669Z2026-04-20T12:02:16.45249622026-04-20T12:02:17.931496Z2026-04-20T12:02:17.993032Z2026-04-20T12:02:20.527678Z2026-04-20T12:02:20.583726Z2026-04-20T12:02:24.944153Z2026-04-20T12:02:26.245682Z2026-04-20112:02:27.227059Z2026-04-20T12:02:27.321541Z2026-04-20T12:02:59.757184Z2026-04-20T12:02:59.854055ZSClDEV (docker)₴82APP (-INFOscreenpipe_engine::event_driven_capture: contentdeduINFOscreenpipe_engine::event_driven_capture: contentdeduINFOscreenpipe_engine::event_driven_capture: contentdeduINFOscreenpipe_engine::event_driven_capture: contentdeduINFOscreenpipe_engine::event_driven_capture: contentdeduINFOscreenpipe_engine::event_driven_capture: contentdeduINFOscreenpipe_engine:: event_driven_capture: contentdeduINFOscreenpipe_engine::event_driven_capture: contentdeduINFOscreenpipe_engine::event_driven_capture: contentdeduINFOscreenpipe_engine::event_driVen_capture: content deduINFOscreenpipe_engine::event_driven_capture: content deduINFOscreenpipe_engine::event_driven_capture: contentdeduINFOscreenpipe_engine::event_driven_capture: contentdeduINFOscreenpipe_engine::event_driven_capture: contentdeduINFOscreenpipe_engine::event_driven_capture: content deduINFOscreenpipe_engine::event_driven_capture: content deduINFOscreenpipe_engine:: event_driven_capture: content deduINFOscreenpipe_engine::event_driven_capture: content deduINFOscreenpipe_engine::event_driven_capture: content deduINFOscreenpipe_engine::event_driven_capture: content deduWARNsqlx::query:summary="SELECT id, snapshot_path,devicsnapshot_path IS NOT NULL\nAND timestamp < ?1\nORDER BY\ndeINFOscreenpipe_engine::snapshot_compaction: snapshotcompINFOscreenpipe_engine::snapshot_compaction: snapshotcompINFOscreenpipe_engine::snapshot_compaction: snapshotcompINFOscreenpipe_engine::event_driven_capture: content deduINFOscreenpipe_engine::event_driven_capture: content deduINFOscreenpipe_engine::event_driven_capture: contentdeduINFOscreenpipe_engine::event_driven_capture: content deduINFOscreenpipe_engine::event_driven_capture: content deduINFOscreenpipe_engine::event_driven_capture: contentdeduINFOscreenpipe_engine::event_driven_capture: contentdeduINFOscreenpipe_engine::event_driven_capture: content deduINFOscreenpipe_engine::event_driven_capture: content deduINFOscreenpipe_engine::event_driven_capture: contentdeduINFOscreenpipe_engine::event_driven_capture: contentdeduINFOscreenpipe_engine::event_driven_capture: contentdeduINFOscreenpipe_engine::event_driven_capture: contentdeduINFOscreenpipe_engine::event_driven_capture: contentdedulINFOscreenpipe_engine::event_driven_capture: content deduINFOscreenpipe_engine::event_driven_capture: content deduINFOscreenpipe_engine::event_driven_capture: content deduINFOscreenpipe_engine::event_driven_capture: content deduActivity MonitorAll ProcessesProcess NamePhpStormkernel_taskscreenpipeWindowServerVirtual Machine Service for Dockercef_server Helper (GPU)cef_server Helper (Renderer)FirefoxFirefoxCP Isolated Web Contentdeletedcef_servermds_storeslanguage_server_macos_armclouddClaudeFirefox GPU HelperScreenTimeAgentmdsActivity MonitortccdtccdiTerm2fairplaydlaunchservicesdSlackFirefoxCP Isolated Web ContentFirefoxCP Isolated Web ContentContextStoreAgentSystem:User:Idle:% CPU239,0204,840,937,325,021,714,214,013,412,311,69,69,08,57,26,85,74,54,53,73,33,02,72,72,52,42,32,3CPU LOAD100% <78Mon 20 Apr 12:03:02CPUMemoryEnergyDiskNetworkCPU TimeThreadsIdie Wake-Ups2:57:54,4157:07,2220:12,8132:00,1855:12,791:49,362:04,309:42,821:36,566,111:10,593:02,855:21,091,712:05,8510:51,200,821:10,032:14,741:20,4320,864:03 680,442:32,992:48,181:28,105:03,3223, Kind51,53%48,00%0,47%Threads:Processes:3 752426...
|
54527
|
|
54470
|
1176
|
57
|
2026-04-20T09:00:23.044580+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776675623044_m2.jpg...
|
iTerm2
|
screenpipe"
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Last login: Mon Apr 20 10:16:41 on ttys009
Poetry Last login: Mon Apr 20 10:16:41 on ttys009
Poetry could not find a pyproject.toml file in /Users/lukas or its parents
Poetry could not find a pyproject.toml file in /Users/lukas or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-start
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-04-20T10:17:08.672567Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store
checking permissions...
screen recording: ok
accessibility: ok
2026-04-20T10:17:08.735636Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-04-20T10:17:09.168849Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-04-20T10:17:09.170474Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-04-20T10:17:09.170918Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-04-20T10:17:09.203704Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-04-20T10:17:09.203780Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-04-20T10:17:09.203962Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-04-20T10:17:09.203976Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-04-20T10:17:09.203934Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-04-20T10:17:09.204030Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-04-20T10:17:09.203954Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-04-20T10:17:09.215020Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))
2026-04-20T10:17:09.220127Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-04-20T10:17:09.220306Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-04-20T10:17:09.220863Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-04-20T10:17:09.221034Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-04-20T10:17:09.221177Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-04-20T10:17:09.221820Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary
2026-04-20T10:17:09.221839Z INFO screenpipe_core::pipes: loaded 6 pipes from "/Users/lukas/.screenpipe/pipes"
_
__________________ ___ ____ ____ (_____ ___
/ ___/ ___/ ___/ _ \/ _ \/ __ \ / __ \/ / __ \/ _ \
(__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/
/____/\___/_/ \___/\___/_/ /_/ / .___/_/ .___/\___/
/_/ /_/
power AI by everything you've seen, said or heard
open source | runs locally | developer friendly
┌────────────────────────┬────────────────────────────────────┐
│ setting │ value │
├────────────────────────┼────────────────────────────────────┤
│ audio chunk duration │ 30 seconds │
│ port │ 3030 │
│ audio disabled │ true │
│ vision disabled │ false │
│ pause on DRM content │ false │
│ audio engine │ Parakeet │
│ vad engine │ Silero │
│ data directory │ /Users/lukas/.screenpipe │
│ debug mode │ false │
│ telemetry │ true │
│ use pii removal │ true │
│ use all monitors │ true │
2026-04-20T10:17:09.223448Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)
│ ignored windows │ ["Boosteroid"] │
│ included windows │ [] │
│ cloud sync │ disabled │
│ auto-destruct pid │ 0 │
│ deepgram key │ not set │
│ api auth │ enabled │
2026-04-20T10:17:09.227535Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh
│ encrypt secrets │ disabled │
│ retention days │ 14 │
├────────────────────────┼────────────────────────────────────┤
│ languages │ │
│ │ all languages │
├────────────────────────┼────────────────────────────────────┤
│ monitors │ │
│ │ id: 1 │
│ │ id: 2 │
├────────────────────────┼────────────────────────────────────┤
│ audio devices │ │
│ │ disabled │
└────────────────────────┴────────────────────────────────────┘
you are using local processing. all your data stays on your computer.
warning: telemetry is enabled. only error-level data will be sent.
to disable, use the --disable-telemetry flag.
check latest changes here: https://github.com/screenpipe/screenpipe/releases
2026-04-20T10:17:09.240088Z INFO screenpipe: starting UI event capture
2026-04-20T10:17:09.253668Z INFO screenpipe_engine::ui_recorder: Starting UI event capture
2026-04-20T10:17:09.267973Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)
2026-04-20T10:17:09.268072Z INFO screenpipe_engine::ui_recorder: UI recording session started: f196d677-2a10-4dec-93e7-9dd9048a1d8e
2026-04-20T10:17:09.268173Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-19 07:17:09.268169 UTC to 2026-04-20 07:17:09.268169 UTC)
2026-04-20T10:17:09.268665Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)
2026-04-20T10:17:09.275204Z INFO screenpipe_engine::server: Server listening on [IP_ADDRESS]:3030
2026-04-20T10:17:09.280547Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030
2026-04-20T10:17:09.284876Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)
2026-04-20T10:17:09.284906Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)
2026-04-20T10:17:09.284942Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)
2026-04-20T10:17:09.316523Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-04-20T10:17:09.316557Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-04-20T10:17:09.316583Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)
2026-04-20T10:17:09.316603Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-04-20T10:17:09.975374Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 1 excluded)
2026-04-20T10:17:10.050320Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 1 excluded)
2026-04-20T10:17:10.109022Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=52481, dur=72ms
2026-04-20T10:17:10.197530Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=52482, dur=98ms
2026-04-20T10:17:10.926185Z WARN sqlx::query: summary="SELECT f.id, f.timestamp, f.offset_index, …" db.statement="\n\nSELECT\n f.id,\n f.timestamp,\n f.offset_index,\n COALESCE(\n SUBSTR(f.full_text, 1, 200),\n SUBSTR(f.accessibility_text, 1, 200),\n (\n SELECT\n SUBSTR(ot.text, 1, 200)\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as text,\n COALESCE(\n f.app_name,\n (\n SELECT\n ot.app_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as app_name,\n COALESCE(\n f.window_name,\n (\n SELECT\n ot.window_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as window_name,\n COALESCE(vc.device_name, f.device_name) as screen_device,\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\n COALESCE(vc.fps, 0.033) as chunk_fps,\n f.browser_url,\n f.machine_id\nFROM\n frames f\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\nWHERE\n f.timestamp >= ?1\n AND f.timestamp <= ?2\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\nORDER BY\n f.timestamp DESC,\n f.offset_index DESC\nLIMIT\n 10000\n" rows_affected=0 rows_returned=974 elapsed=1.657379083s
2026-04-20T10:17:10.928810Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 974 frame entries, coverage from 2026-04-19 07:17:09.268169 UTC
2026-04-20T10:17:36.605708Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5556097941235749601, trigger=visual_change)
2026-04-20T10:17:41.066595Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5621935701738529327, trigger=click)
2026-04-20T10:17:41.100078Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5621935701738529327, trigger=click)
2026-04-20T10:17:46.116429Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5621935701738529327, trigger=click)
2026-04-20T10:17:46.148269Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5621935701738529327, trigger=click)
2026-04-20T10:18:13.360099Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=145 elapsed=4.153777416s
2026-04-20T10:18:13.360276Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 145 eligible frames
2026-04-20T10:18:18.937138Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 90 frames, 15.2MB → 6.4MB (2.4x), 90 JPEGs deleted
2026-04-20T10:18:22.014745Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 53 frames, 9.4MB → 2.0MB (4.6x), 53 JPEGs deleted
2026-04-20T10:18:56.067965Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1399546062189663050, trigger=visual_change)
2026-04-20T10:18:56.859644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1399546062189663050, trigger=click)
2026-04-20T10:18:59.894779Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=[CREDIT_CARD], trigger=click)
2026-04-20T10:19:12.201247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5621935701738529327, trigger=visual_change)
2026-04-20T10:21:22.063263Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1399546062189663050, trigger=visual_change)
2026-04-20T10:21:35.657143Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5007800743451086391, trigger=visual_change)
2026-04-20T10:21:35.899663Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5007800743451086391, trigger=visual_change)
2026-04-20T10:21:38.094166Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5007800743451086391, trigger=click)
2026-04-20T10:21:38.149655Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5007800743451086391, trigger=click)
2026-04-20T10:21:38.947641Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5007800743451086391, trigger=click)
2026-04-20T10:21:38.991934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5007800743451086391, trigger=click)
2026-04-20T10:23:28.231526Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=2 elapsed=6.103025792s
2026-04-20T10:23:28.232845Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
2026-04-20T10:25:18.292352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=133505750984754566, trigger=click)
2026-04-20T10:25:33.154631Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:25:33.227754Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:25:34.786990Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)
2026-04-20T10:25:36.507114Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:25:36.556707Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:25:37.741060Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)
2026-04-20T10:25:39.466175Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:25:39.547293Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:26:02.072902Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2625703622302799632, trigger=visual_change)
2026-04-20T10:26:05.038754Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8395829747728977847, trigger=visual_change)
2026-04-20T10:26:10.400901Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:26:10.459718Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:26:14.431146Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)
2026-04-20T10:26:17.437868Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=visual_change)
2026-04-20T10:26:35.296162Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:26:35.339241Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:26:37.233387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:26:37.326557Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:00.031681Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:00.067495Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:01.950749Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:02.027316Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:13.045805Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:13.116607Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:15.272022Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:15.311144Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:17.880859Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:17.952143Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:21.645455Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:21.706889Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:36.304603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:36.380537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:37.368951Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:37.459157Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:40.420505Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:40.469217Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:41.179717Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)
2026-04-20T10:28:00.173884Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:00.251737Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:01.241028Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:01.288002Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:02.985445Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:03.078932Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:04.726087Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:04.770305Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:18.186992Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:18.272249Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:28.337807Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 14 eligible frames
2026-04-20T10:28:29.608030Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 0.7MB → 0.5MB (1.4x), 8 JPEGs deleted
2026-04-20T10:28:30.685845Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 6 frames, 1.2MB → 0.7MB (1.8x), 6 JPEGs deleted
2026-04-20T10:28:49.943477Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:49.984595Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:50.611087Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:50.628530Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:54.853245Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:57.739309Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)
2026-04-20T10:29:03.177558Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:03.231322Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:03.857989Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)
2026-04-20T10:29:04.993121Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:05.032838Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:06.923393Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)
2026-04-20T10:29:07.890421Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:07.960410Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:08.812301Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:26.656780Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:26.775833Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:27.602791Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:27.639583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:34.060332Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2389025338591748766, trigger=visual_change)
2026-04-20T10:29:37.050675Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2389025338591748766, trigger=click)
2026-04-20T10:29:37.085946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2389025338591748766, trigger=click)
2026-04-20T10:29:40.501396Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2389025338591748766, trigger=visual_change)
2026-04-20T10:29:43.751715Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)
2026-04-20T10:29:43.843367Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:44.468329Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:46.931137Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:49.616400Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:49.692474Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:50.298335Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)
2026-04-20T10:29:51.348506Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:51.436585Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:30:12.602958Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8200761366188343712, trigger=click)
2026-04-20T10:31:17.535958Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5166044279428207369, trigger=click)
2026-04-20T10:31:18.668547Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5166044279428207369, trigger=visual_change)
2026-04-20T10:31:19.518515Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5166044279428207369, trigger=click)
2026-04-20T10:31:19.681398Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5166044279428207369, trigger=click)
2026-04-20T10:31:21.044436Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5166044279428207369, trigger=click)
2026-04-20T10:31:21.086009Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5166044279428207369, trigger=click)
2026-04-20T10:31:21.680970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5166044279428207369, trigger=visual_change)
2026-04-20T10:32:05.428125Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=visual_change)
2026-04-20T10:32:07.004460Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=click)
2026-04-20T10:32:07.088172Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6999516640019587394, trigger=click)
2026-04-20T10:32:08.380482Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=visual_change)
2026-04-20T10:32:11.588306Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=click)
2026-04-20T10:32:11.689288Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6999516640019587394, trigger=click)
2026-04-20T10:32:12.318265Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6999516640019587394, trigger=click)
2026-04-20T10:32:12.381069Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=click)
2026-04-20T10:32:20.139124Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)
2026-04-20T10:32:20.175356Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)
2026-04-20T10:32:23.490851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=click)
2026-04-20T10:32:27.111949Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=visual_change)
2026-04-20T10:32:37.220458Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6999516640019587394, trigger=click)
2026-04-20T10:32:37.303363Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=click)
2026-04-20T10:32:38.554270Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=click)
2026-04-20T10:32:38.619116Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6999516640019587394, trigger=click)
2026-04-20T10:32:44.030894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=click)
2026-04-20T10:32:44.098803Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4838132251856752988, trigger=click)
2026-04-20T10:32:45.233990Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=click)
2026-04-20T10:32:45.238569Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4838132251856752988, trigger=click)
2026-04-20T10:32:48.884987Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=visual_change)
2026-04-20T10:32:51.832116Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)
2026-04-20T10:32:51.860110Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)
2026-04-20T10:32:53.754008Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)
2026-04-20T10:32:53.796899Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)
2026-04-20T10:32:55.635715Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)
2026-04-20T10:32:55.675828Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)
2026-04-20T10:32:57.084341Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)
2026-04-20T10:32:57.128626Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)
2026-04-20T10:32:58.841455Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)
2026-04-20T10:32:58.882031Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)
2026-04-20T10:33:00.965217Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)
2026-04-20T10:33:01.040922Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)
2026-04-20T10:33:02.591751Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)
2026-04-20T10:33:02.633245Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)
2026-04-20T10:33:03.324241Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)
2026-04-20T10:33:03.353493Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)
2026-04-20T10:33:05.802391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)
2026-04-20T10:33:05.849275Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)
2026-04-20T10:33:06.911518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=visual_change)
2026-04-20T10:33:14.484135Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=click)
2026-04-20T10:33:14.530843Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4838132251856752988, trigger=click)
2026-04-20T10:33:34.189406Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4838132251856752988, trigger=click)
2026-04-20T10:33:34.205308Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=94 elapsed=3.603974333s
2026-04-20T10:33:34.205567Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 94 eligible frames
2026-04-20T10:33:34.240884Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=visual_change)
2026-04-20T10:33:35.686677Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4838132251856752988, trigger=click)
2026-04-20T10:33:35.780825Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=click)
2026-04-20T10:33:37.134576Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 38 frames, 8.0MB → 4.4MB (1.8x), 38 JPEGs deleted
2026-04-20T10:33:40.850354Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 54 frames, 7.9MB → 3.4MB (2.3x), 54 JPEGs deleted
2026-04-20T10:33:55.372436Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=visual_change)
2026-04-20T10:35:01.169212Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)
2026-04-20T10:35:01.245363Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)
2026-04-20T10:35:02.392419Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=visual_change)
2026-04-20T10:35:05.029174Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)
2026-04-20T10:35:05.073174Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)
2026-04-20T10:35:07.222477Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)
2026-04-20T10:35:07.329020Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)
2026-04-20T10:35:08.707660Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=visual_change)
2026-04-20T10:35:27.744689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)
2026-04-20T10:35:27.812062Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)
2026-04-20T10:36:18.265456Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)
2026-04-20T10:36:18.437457Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)
2026-04-20T10:36:23.437791Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)
2026-04-20T10:36:23.487637Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)
2026-04-20T10:36:24.299771Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=visual_change)
2026-04-20T10:36:25.135894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)
2026-04-20T10:36:25.257064Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)
2026-04-20T10:36:27.317393Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=visual_change)
2026-04-20T10:36:50.815358Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)
2026-04-20T10:38:04.728644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4435744464912499495, trigger=visual_change)
2026-04-20T10:38:07.749721Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4435744464912499495, trigger=visual_change)
2026-04-20T10:38:13.318000Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=visual_change)
2026-04-20T10:38:13.969769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=visual_change)
2026-04-20T10:38:14.800566Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)
2026-04-20T10:38:14.834512Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)
2026-04-20T10:38:17.252696Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)
2026-04-20T10:38:17.328544Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)
2026-04-20T10:38:24.892322Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)
2026-04-20T10:38:24.943640Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)
2026-04-20T10:38:35.256001Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)
2026-04-20T10:38:35.322251Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)
2026-04-20T10:38:40.980335Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 88 eligible frames
2026-04-20T10:38:43.345927Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 6.6MB → 2.6MB (2.5x), 39 JPEGs deleted
2026-04-20T10:38:46.544495Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 47 frames, 7.3MB → 2.8MB (2.6x), 47 JPEGs deleted
2026-04-20T10:39:26.663352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=visual_change)
2026-04-20T10:39:29.597544Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)
2026-04-20T10:39:29.637879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)
2026-04-20T10:40:07.495065Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=visual_change)
2026-04-20T10:40:11.064923Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=visual_change)
2026-04-20T10:40:11.431065Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)
2026-04-20T10:40:12.068565Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=click)
2026-04-20T10:40:12.110719Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)
2026-04-20T10:40:14.179306Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=click)
2026-04-20T10:40:14.239361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)
2026-04-20T10:41:20.489623Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=click)
2026-04-20T10:43:48.184341Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=82 elapsed=1.63218175s
2026-04-20T10:43:48.184571Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 82 eligible frames
2026-04-20T10:43:50.234957Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 2.2MB → 0.1MB (16.1x), 30 JPEGs deleted
2026-04-20T10:43:55.342383Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 50 frames, 7.9MB → 3.2MB (2.5x), 50 JPEGs deleted
2026-04-20T10:44:06.225390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4079037146782974603, trigger=click)
2026-04-20T10:44:14.808445Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Slack, signals=2)
2026-04-20T10:44:19.110273Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-539912533838677065, trigger=click)
2026-04-20T10:44:19.155111Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-539912533838677065, trigger=click)
2026-04-20T10:44:19.832463Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Slack, signals=2, browser=false)
2026-04-20T10:44:19.834928Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=3, app=Slack, title=None)
2026-04-20T10:44:27.766267Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5412550087722993493, trigger=visual_change)
2026-04-20T10:44:39.799864Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5412550087722993493, trigger=visual_change)
2026-04-20T10:44:57.832108Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5412550087722993493, trigger=visual_change)
2026-04-20T10:44:57.940548Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5412550087722993493, trigger=click)
2026-04-20T10:44:58.605782Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5412550087722993493, trigger=click)
2026-04-20T10:44:58.637243Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5412550087722993493, trigger=click)
2026-04-20T10:45:00.807501Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5412550087722993493, trigger=visual_change)
2026-04-20T10:45:16.166619Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8594311245071571574, trigger=visual_change)
2026-04-20T10:45:56.391618Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)
2026-04-20T10:45:56.468127Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=click)
2026-04-20T10:46:03.056730Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8594311245071571574, trigger=visual_change)
2026-04-20T10:46:12.195973Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8594311245071571574, trigger=visual_change)
2026-04-20T10:46:17.958643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=click)
2026-04-20T10:46:18.011452Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)
2026-04-20T10:47:02.211065Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5662459752758049610, trigger=click)
2026-04-20T10:47:02.257675Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5662459752758049610, trigger=click)
2026-04-20T10:47:05.697096Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5662459752758049610, trigger=click)
2026-04-20T10:47:06.566076Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5662459752758049610, trigger=click)
2026-04-20T10:47:07.827281Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping captur...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"Last login: Mon Apr 20 10:16:41 on ttys009\n\nPoetry could not find a pyproject.toml file in /Users/lukas or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-start \ndetected hardware tier: Mid\nwarning: parakeet is not supported on this platform, using whisper-tiny instead\n2026-04-20T10:17:08.672567Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store\nchecking permissions...\n screen recording: ok\n accessibility: ok\n2026-04-20T10:17:08.735636Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6\n2026-04-20T10:17:09.168849Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor\n2026-04-20T10:17:09.170474Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)\n2026-04-20T10:17:09.170918Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)\n2026-04-20T10:17:09.203704Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true\n2026-04-20T10:17:09.203780Z INFO screenpipe: meeting detector enabled — independent of transcription mode\n2026-04-20T10:17:09.203962Z INFO screenpipe: API server listening on 127.0.0.1:3030 (localhost only)\n2026-04-20T10:17:09.203976Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key\n2026-04-20T10:17:09.203934Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)\n2026-04-20T10:17:09.204030Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager\n2026-04-20T10:17:09.203954Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)\n2026-04-20T10:17:09.215020Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-20T10:17:09.220127Z INFO screenpipe_core::pipes: loaded pipe: day-recap\n2026-04-20T10:17:09.220306Z INFO screenpipe_core::pipes: loaded pipe: standup-update\n2026-04-20T10:17:09.220863Z INFO screenpipe_core::pipes: loaded pipe: ai-habits\n2026-04-20T10:17:09.221034Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown\n2026-04-20T10:17:09.221177Z INFO screenpipe_core::pipes: loaded pipe: video-export\n2026-04-20T10:17:09.221820Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary\n2026-04-20T10:17:09.221839Z INFO screenpipe_core::pipes: loaded 6 pipes from \"/Users/lukas/.screenpipe/pipes\"\n\n\n\n _ \n __________________ ___ ____ ____ (_____ ___ \n / ___/ ___/ ___/ _ \\/ _ \\/ __ \\ / __ \\/ / __ \\/ _ \\\n (__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/\n/____/\\___/_/ \\___/\\___/_/ /_/ / .___/_/ .___/\\___/ \n /_/ /_/ \n\n\n\npower AI by everything you've seen, said or heard\nopen source | runs locally | developer friendly\n\n\n┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ true │\n│ vision disabled │ false │\n│ pause on DRM content │ false │\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n2026-04-20T10:17:09.223448Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n│ ignored windows │ [\"Boosteroid\"] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n│ api auth │ enabled │\n2026-04-20T10:17:09.227535Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n│ encrypt secrets │ disabled │\n│ retention days │ 14 │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ id: 1 │\n│ │ id: 2 │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ disabled │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-20T10:17:09.240088Z INFO screenpipe: starting UI event capture\n2026-04-20T10:17:09.253668Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-20T10:17:09.267973Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-20T10:17:09.268072Z INFO screenpipe_engine::ui_recorder: UI recording session started: f196d677-2a10-4dec-93e7-9dd9048a1d8e\n2026-04-20T10:17:09.268173Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-19 07:17:09.268169 UTC to 2026-04-20 07:17:09.268169 UTC)\n2026-04-20T10:17:09.268665Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-20T10:17:09.275204Z INFO screenpipe_engine::server: Server listening on 127.0.0.1:3030\n2026-04-20T10:17:09.280547Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-20T10:17:09.284876Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-20T10:17:09.284906Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-20T10:17:09.284942Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-20T10:17:09.316523Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-20T10:17:09.316557Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-20T10:17:09.316583Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)\n2026-04-20T10:17:09.316603Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-20T10:17:09.975374Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 1 excluded)\n2026-04-20T10:17:10.050320Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 1 excluded)\n2026-04-20T10:17:10.109022Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=52481, dur=72ms\n2026-04-20T10:17:10.197530Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=52482, dur=98ms\n2026-04-20T10:17:10.926185Z WARN sqlx::query: summary=\"SELECT f.id, f.timestamp, f.offset_index, …\" db.statement=\"\\n\\nSELECT\\n f.id,\\n f.timestamp,\\n f.offset_index,\\n COALESCE(\\n SUBSTR(f.full_text, 1, 200),\\n SUBSTR(f.accessibility_text, 1, 200),\\n (\\n SELECT\\n SUBSTR(ot.text, 1, 200)\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as text,\\n COALESCE(\\n f.app_name,\\n (\\n SELECT\\n ot.app_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as app_name,\\n COALESCE(\\n f.window_name,\\n (\\n SELECT\\n ot.window_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as window_name,\\n COALESCE(vc.device_name, f.device_name) as screen_device,\\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\\n COALESCE(vc.fps, 0.033) as chunk_fps,\\n f.browser_url,\\n f.machine_id\\nFROM\\n frames f\\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\\nWHERE\\n f.timestamp >= ?1\\n AND f.timestamp <= ?2\\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\\nORDER BY\\n f.timestamp DESC,\\n f.offset_index DESC\\nLIMIT\\n 10000\\n\" rows_affected=0 rows_returned=974 elapsed=1.657379083s\n2026-04-20T10:17:10.928810Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 974 frame entries, coverage from 2026-04-19 07:17:09.268169 UTC\n2026-04-20T10:17:36.605708Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5556097941235749601, trigger=visual_change)\n2026-04-20T10:17:41.066595Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5621935701738529327, trigger=click)\n2026-04-20T10:17:41.100078Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5621935701738529327, trigger=click)\n2026-04-20T10:17:46.116429Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5621935701738529327, trigger=click)\n2026-04-20T10:17:46.148269Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5621935701738529327, trigger=click)\n2026-04-20T10:18:13.360099Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=145 elapsed=4.153777416s\n2026-04-20T10:18:13.360276Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 145 eligible frames\n2026-04-20T10:18:18.937138Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 90 frames, 15.2MB → 6.4MB (2.4x), 90 JPEGs deleted\n2026-04-20T10:18:22.014745Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 53 frames, 9.4MB → 2.0MB (4.6x), 53 JPEGs deleted\n2026-04-20T10:18:56.067965Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1399546062189663050, trigger=visual_change)\n2026-04-20T10:18:56.859644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1399546062189663050, trigger=click)\n2026-04-20T10:18:59.894779Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7926243118367575, trigger=click)\n2026-04-20T10:19:12.201247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5621935701738529327, trigger=visual_change)\n2026-04-20T10:21:22.063263Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1399546062189663050, trigger=visual_change)\n2026-04-20T10:21:35.657143Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5007800743451086391, trigger=visual_change)\n2026-04-20T10:21:35.899663Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5007800743451086391, trigger=visual_change)\n2026-04-20T10:21:38.094166Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5007800743451086391, trigger=click)\n2026-04-20T10:21:38.149655Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5007800743451086391, trigger=click)\n2026-04-20T10:21:38.947641Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5007800743451086391, trigger=click)\n2026-04-20T10:21:38.991934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5007800743451086391, trigger=click)\n2026-04-20T10:23:28.231526Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=2 elapsed=6.103025792s\n2026-04-20T10:23:28.232845Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-20T10:25:18.292352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=133505750984754566, trigger=click)\n2026-04-20T10:25:33.154631Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:25:33.227754Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:25:34.786990Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)\n2026-04-20T10:25:36.507114Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:25:36.556707Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:25:37.741060Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)\n2026-04-20T10:25:39.466175Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:25:39.547293Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:26:02.072902Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2625703622302799632, trigger=visual_change)\n2026-04-20T10:26:05.038754Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8395829747728977847, trigger=visual_change)\n2026-04-20T10:26:10.400901Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:26:10.459718Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:26:14.431146Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)\n2026-04-20T10:26:17.437868Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=visual_change)\n2026-04-20T10:26:35.296162Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:26:35.339241Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:26:37.233387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:26:37.326557Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:00.031681Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:00.067495Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:01.950749Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:02.027316Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:13.045805Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:13.116607Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:15.272022Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:15.311144Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:17.880859Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:17.952143Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:21.645455Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:21.706889Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:36.304603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:36.380537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:37.368951Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:37.459157Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:40.420505Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:40.469217Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:41.179717Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)\n2026-04-20T10:28:00.173884Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:00.251737Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:01.241028Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:01.288002Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:02.985445Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:03.078932Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:04.726087Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:04.770305Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:18.186992Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:18.272249Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:28.337807Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 14 eligible frames\n2026-04-20T10:28:29.608030Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 0.7MB → 0.5MB (1.4x), 8 JPEGs deleted\n2026-04-20T10:28:30.685845Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 6 frames, 1.2MB → 0.7MB (1.8x), 6 JPEGs deleted\n2026-04-20T10:28:49.943477Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:49.984595Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:50.611087Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:50.628530Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:54.853245Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:57.739309Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)\n2026-04-20T10:29:03.177558Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:03.231322Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:03.857989Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)\n2026-04-20T10:29:04.993121Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:05.032838Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:06.923393Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)\n2026-04-20T10:29:07.890421Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:07.960410Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:08.812301Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:26.656780Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:26.775833Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:27.602791Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:27.639583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:34.060332Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2389025338591748766, trigger=visual_change)\n2026-04-20T10:29:37.050675Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2389025338591748766, trigger=click)\n2026-04-20T10:29:37.085946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2389025338591748766, trigger=click)\n2026-04-20T10:29:40.501396Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2389025338591748766, trigger=visual_change)\n2026-04-20T10:29:43.751715Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)\n2026-04-20T10:29:43.843367Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:44.468329Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:46.931137Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:49.616400Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:49.692474Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:50.298335Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)\n2026-04-20T10:29:51.348506Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:51.436585Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:30:12.602958Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8200761366188343712, trigger=click)\n2026-04-20T10:31:17.535958Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5166044279428207369, trigger=click)\n2026-04-20T10:31:18.668547Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5166044279428207369, trigger=visual_change)\n2026-04-20T10:31:19.518515Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5166044279428207369, trigger=click)\n2026-04-20T10:31:19.681398Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5166044279428207369, trigger=click)\n2026-04-20T10:31:21.044436Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5166044279428207369, trigger=click)\n2026-04-20T10:31:21.086009Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5166044279428207369, trigger=click)\n2026-04-20T10:31:21.680970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5166044279428207369, trigger=visual_change)\n2026-04-20T10:32:05.428125Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=visual_change)\n2026-04-20T10:32:07.004460Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=click)\n2026-04-20T10:32:07.088172Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6999516640019587394, trigger=click)\n2026-04-20T10:32:08.380482Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=visual_change)\n2026-04-20T10:32:11.588306Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=click)\n2026-04-20T10:32:11.689288Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6999516640019587394, trigger=click)\n2026-04-20T10:32:12.318265Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6999516640019587394, trigger=click)\n2026-04-20T10:32:12.381069Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=click)\n2026-04-20T10:32:20.139124Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:32:20.175356Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:32:23.490851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=click)\n2026-04-20T10:32:27.111949Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=visual_change)\n2026-04-20T10:32:37.220458Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6999516640019587394, trigger=click)\n2026-04-20T10:32:37.303363Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=click)\n2026-04-20T10:32:38.554270Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=click)\n2026-04-20T10:32:38.619116Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6999516640019587394, trigger=click)\n2026-04-20T10:32:44.030894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=click)\n2026-04-20T10:32:44.098803Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4838132251856752988, trigger=click)\n2026-04-20T10:32:45.233990Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=click)\n2026-04-20T10:32:45.238569Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4838132251856752988, trigger=click)\n2026-04-20T10:32:48.884987Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=visual_change)\n2026-04-20T10:32:51.832116Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:32:51.860110Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:32:53.754008Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:32:53.796899Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:32:55.635715Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:32:55.675828Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:32:57.084341Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:32:57.128626Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:32:58.841455Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:32:58.882031Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:33:00.965217Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:33:01.040922Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:33:02.591751Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:33:02.633245Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:33:03.324241Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:33:03.353493Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:33:05.802391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:33:05.849275Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:33:06.911518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=visual_change)\n2026-04-20T10:33:14.484135Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=click)\n2026-04-20T10:33:14.530843Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4838132251856752988, trigger=click)\n2026-04-20T10:33:34.189406Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4838132251856752988, trigger=click)\n2026-04-20T10:33:34.205308Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=94 elapsed=3.603974333s\n2026-04-20T10:33:34.205567Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 94 eligible frames\n2026-04-20T10:33:34.240884Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=visual_change)\n2026-04-20T10:33:35.686677Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4838132251856752988, trigger=click)\n2026-04-20T10:33:35.780825Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=click)\n2026-04-20T10:33:37.134576Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 38 frames, 8.0MB → 4.4MB (1.8x), 38 JPEGs deleted\n2026-04-20T10:33:40.850354Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 54 frames, 7.9MB → 3.4MB (2.3x), 54 JPEGs deleted\n2026-04-20T10:33:55.372436Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=visual_change)\n2026-04-20T10:35:01.169212Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:35:01.245363Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:35:02.392419Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=visual_change)\n2026-04-20T10:35:05.029174Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:35:05.073174Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:35:07.222477Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:35:07.329020Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:35:08.707660Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=visual_change)\n2026-04-20T10:35:27.744689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:35:27.812062Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:36:18.265456Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:36:18.437457Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:36:23.437791Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:36:23.487637Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:36:24.299771Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=visual_change)\n2026-04-20T10:36:25.135894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:36:25.257064Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:36:27.317393Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=visual_change)\n2026-04-20T10:36:50.815358Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:38:04.728644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4435744464912499495, trigger=visual_change)\n2026-04-20T10:38:07.749721Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4435744464912499495, trigger=visual_change)\n2026-04-20T10:38:13.318000Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=visual_change)\n2026-04-20T10:38:13.969769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=visual_change)\n2026-04-20T10:38:14.800566Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:38:14.834512Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:38:17.252696Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:38:17.328544Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:38:24.892322Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:38:24.943640Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:38:35.256001Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:38:35.322251Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:38:40.980335Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 88 eligible frames\n2026-04-20T10:38:43.345927Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 6.6MB → 2.6MB (2.5x), 39 JPEGs deleted\n2026-04-20T10:38:46.544495Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 47 frames, 7.3MB → 2.8MB (2.6x), 47 JPEGs deleted\n2026-04-20T10:39:26.663352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=visual_change)\n2026-04-20T10:39:29.597544Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:39:29.637879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:40:07.495065Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=visual_change)\n2026-04-20T10:40:11.064923Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=visual_change)\n2026-04-20T10:40:11.431065Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)\n2026-04-20T10:40:12.068565Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=click)\n2026-04-20T10:40:12.110719Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)\n2026-04-20T10:40:14.179306Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=click)\n2026-04-20T10:40:14.239361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)\n2026-04-20T10:41:20.489623Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=click)\n2026-04-20T10:43:48.184341Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=82 elapsed=1.63218175s\n2026-04-20T10:43:48.184571Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 82 eligible frames\n2026-04-20T10:43:50.234957Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 2.2MB → 0.1MB (16.1x), 30 JPEGs deleted\n2026-04-20T10:43:55.342383Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 50 frames, 7.9MB → 3.2MB (2.5x), 50 JPEGs deleted\n2026-04-20T10:44:06.225390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4079037146782974603, trigger=click)\n2026-04-20T10:44:14.808445Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Slack, signals=2)\n2026-04-20T10:44:19.110273Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-539912533838677065, trigger=click)\n2026-04-20T10:44:19.155111Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-539912533838677065, trigger=click)\n2026-04-20T10:44:19.832463Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Slack, signals=2, browser=false)\n2026-04-20T10:44:19.834928Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=3, app=Slack, title=None)\n2026-04-20T10:44:27.766267Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5412550087722993493, trigger=visual_change)\n2026-04-20T10:44:39.799864Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5412550087722993493, trigger=visual_change)\n2026-04-20T10:44:57.832108Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5412550087722993493, trigger=visual_change)\n2026-04-20T10:44:57.940548Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5412550087722993493, trigger=click)\n2026-04-20T10:44:58.605782Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5412550087722993493, trigger=click)\n2026-04-20T10:44:58.637243Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5412550087722993493, trigger=click)\n2026-04-20T10:45:00.807501Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5412550087722993493, trigger=visual_change)\n2026-04-20T10:45:16.166619Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8594311245071571574, trigger=visual_change)\n2026-04-20T10:45:56.391618Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)\n2026-04-20T10:45:56.468127Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=click)\n2026-04-20T10:46:03.056730Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8594311245071571574, trigger=visual_change)\n2026-04-20T10:46:12.195973Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8594311245071571574, trigger=visual_change)\n2026-04-20T10:46:17.958643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=click)\n2026-04-20T10:46:18.011452Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)\n2026-04-20T10:47:02.211065Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5662459752758049610, trigger=click)\n2026-04-20T10:47:02.257675Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5662459752758049610, trigger=click)\n2026-04-20T10:47:05.697096Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5662459752758049610, trigger=click)\n2026-04-20T10:47:06.566076Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5662459752758049610, trigger=click)\n2026-04-20T10:47:07.827281Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5662459752758049610, trigger=click)\n2026-04-20T10:47:40.405629Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1571710488795535897, trigger=visual_change)\n2026-04-20T10:47:49.440068Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1557699132616565226, trigger=visual_change)\n2026-04-20T10:47:52.572612Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1557699132616565226, trigger=visual_change)\n2026-04-20T10:47:58.689857Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4346016681512348210, trigger=visual_change)\n2026-04-20T10:48:07.634676Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1557699132616565226, trigger=visual_change)\n2026-04-20T10:48:13.649498Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1557699132616565226, trigger=visual_change)\n2026-04-20T10:48:19.703789Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1557699132616565226, trigger=visual_change)\n2026-04-20T10:48:52.948919Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1420790294153145145, trigger=visual_change)\n2026-04-20T10:48:55.891318Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1420790294153145145, trigger=visual_change)\n2026-04-20T10:48:57.225561Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=44 elapsed=1.875780625s\n2026-04-20T10:48:57.225944Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 44 eligible frames\n2026-04-20T10:48:58.265979Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 1.2MB → 0.1MB (11.0x), 16 JPEGs deleted\n2026-04-20T10:49:00.653282Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.4MB → 2.7MB (1.6x), 26 JPEGs deleted\n2026-04-20T10:49:32.916674Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1420790294153145145, trigger=visual_change)\n2026-04-20T10:49:36.017852Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1420790294153145145, trigger=visual_change)\n2026-04-20T10:49:38.836425Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5221054553112749208, trigger=visual_change)\n2026-04-20T10:49:42.792319Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Slack, id=3, grace=30s)\n2026-04-20T10:49:59.717149Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8395829747728977847, trigger=visual_change)\n2026-04-20T10:50:05.893490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9218245258814534702, trigger=visual_change)\n2026-04-20T10:50:13.558613Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Idle (timeout=30s, app=Slack, id=3)\n2026-04-20T10:50:13.776444Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting ended (id=3)\n2026-04-20T10:50:30.296877Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8395829747728977847, trigger=visual_change)\n2026-04-20T10:50:31.009005Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8395829747728977847, trigger=visual_change)\n2026-04-20T10:50:35.710448Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2997155127408295500, trigger=click)\n2026-04-20T10:50:39.411258Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2997155127408295500, trigger=visual_change)\n2026-04-20T10:50:42.426737Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2997155127408295500, trigger=visual_change)\n2026-04-20T10:50:44.695606Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2997155127408295500, trigger=click)\n2026-04-20T10:51:10.075065Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4346016681512348210, trigger=click)\n2026-04-20T10:51:10.162124Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4346016681512348210, trigger=click)\n2026-04-20T10:51:29.550593Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4346016681512348210, trigger=click)\n2026-04-20T10:51:33.066966Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=click)\n2026-04-20T10:51:34.845466Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)\n2026-04-20T10:51:34.910786Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=click)\n2026-04-20T10:52:43.260524Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8163403335606540090, trigger=click)\n2026-04-20T10:52:43.340992Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8163403335606540090, trigger=click)\n2026-04-20T10:52:48.268094Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=159194235337566135, trigger=visual_change)\n2026-04-20T10:52:51.322127Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=159194235337566135, trigger=click)\n2026-04-20T10:52:51.391904Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=159194235337566135, trigger=click)\n2026-04-20T10:53:43.515437Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-813068054433851605, trigger=visual_change)\n2026-04-20T10:54:05.099685Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=48 elapsed=4.409245042s\n2026-04-20T10:54:05.099971Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 48 eligible frames\n2026-04-20T10:54:06.503270Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 1.6MB → 0.1MB (20.0x), 22 JPEGs deleted\n2026-04-20T10:54:08.444918Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.3MB → 2.1MB (2.0x), 24 JPEGs deleted\n2026-04-20T10:54:35.036274Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8163403335606540090, trigger=visual_change)\n2026-04-20T10:54:35.171848Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8163403335606540090, trigger=visual_change)\n2026-04-20T10:54:36.475203Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8163403335606540090, trigger=click)\n2026-04-20T10:54:36.541896Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8163403335606540090, trigger=click)\n2026-04-20T10:54:37.380023Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8163403335606540090, trigger=click)\n2026-04-20T10:54:37.445729Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8163403335606540090, trigger=click)\n2026-04-20T10:55:03.555125Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8163403335606540090, trigger=click)\n2026-04-20T10:55:03.640618Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8163403335606540090, trigger=click)\n2026-04-20T10:55:19.315053Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:30.302435Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:30.370524Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:33.629673Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:33.680190Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:34.225728Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=visual_change)\n2026-04-20T10:55:36.487309Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:36.553300Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:37.266499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=visual_change)\n2026-04-20T10:55:41.784038Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:41.805901Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:43.326649Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=visual_change)\n2026-04-20T10:55:45.080360Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:45.118718Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:46.357519Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=visual_change)\n2026-04-20T10:55:47.480883Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:47.537710Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:49.291790Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:49.326846Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:52.992748Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8138726509372139947, trigger=click)\n2026-04-20T10:55:54.240859Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:55.950255Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:55.991282Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:58.736523Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:58.802298Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:59.902655Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:59.944572Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:56:07.794877Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5942962546669254600, trigger=click)\n2026-04-20T10:56:07.851635Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5942962546669254600, trigger=click)\n2026-04-20T10:56:48.563398Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7990927160457220959, trigger=visual_change)\n2026-04-20T10:57:32.104953Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=9150043812320386523, trigger=click)\n2026-04-20T10:57:32.144287Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9150043812320386523, trigger=click)\n2026-04-20T10:58:28.399190Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260395566585322026, trigger=click)\n2026-04-20T10:58:28.442157Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260395566585322026, trigger=click)\n2026-04-20T10:59:08.570536Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 81 eligible frames\n2026-04-20T10:59:10.567201Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 33 frames, 2.4MB → 0.1MB (18.5x), 33 JPEGs deleted\n2026-04-20T10:59:14.364266Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 46 frames, 8.7MB → 4.7MB (1.9x), 46 JPEGs deleted\n2026-04-20T10:59:58.111173Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5381531899229729064, trigger=click)\n2026-04-20T10:59:58.142222Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5381531899229729064, trigger=click)\n2026-04-20T11:00:36.141673Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9207198899289182946, trigger=click)\n2026-04-20T11:00:36.183623Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9207198899289182946, trigger=click)\n2026-04-20T11:01:42.348670Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8842760806676108827, trigger=click)\n2026-04-20T11:01:46.579137Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3692713192977136429, trigger=visual_change)\n2026-04-20T11:02:24.402529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3769719286299940254, trigger=visual_change)\n2026-04-20T11:03:17.195875Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-838946827693869464, trigger=click)\n2026-04-20T11:04:18.906189Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=visual_change)\n2026-04-20T11:04:19.288145Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=154 elapsed=4.909861708s\n2026-04-20T11:04:19.288239Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 154 eligible frames\n2026-04-20T11:04:21.929712Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=visual_change)\n2026-04-20T11:04:23.364885Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 71 frames, 5.8MB → 0.9MB (6.6x), 71 JPEGs deleted\n2026-04-20T11:04:24.973084Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=visual_change)\n2026-04-20T11:04:27.204317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2406143553526754098, trigger=click)\n2026-04-20T11:04:27.256852Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T11:04:29.050253Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 81 frames, 12.7MB → 5.0MB (2.5x), 81 JPEGs deleted\n2026-04-20T11:04:33.163125Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2340404083908403127, trigger=click)\n2026-04-20T11:04:54.879253Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2453433494247683376, trigger=click)\n2026-04-20T11:05:12.089056Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4318090145782937453, trigger=visual_change)\n2026-04-20T11:05:13.095729Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4318090145782937453, trigger=click)\n2026-04-20T11:05:15.103808Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4318090145782937453, trigger=visual_change)\n2026-04-20T11:05:16.310357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4318090145782937453, trigger=click)\n2026-04-20T11:05:16.383203Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4318090145782937453, trigger=click)\n2026-04-20T11:05:18.172083Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4318090145782937453, trigger=visual_change)\n2026-04-20T11:05:18.982699Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4318090145782937453, trigger=click)\n2026-04-20T11:05:19.029420Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4318090145782937453, trigger=click)\n2026-04-20T11:05:21.205027Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4318090145782937453, trigger=visual_change)\n2026-04-20T11:05:30.714779Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4318090145782937453, trigger=visual_change)\n2026-04-20T11:05:33.817783Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4318090145782937453, trigger=visual_change)\n2026-04-20T11:05:36.802961Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4318090145782937453, trigger=visual_change)\n2026-04-20T11:05:39.813482Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4318090145782937453, trigger=visual_change)\n2026-04-20T11:09:00.185306Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=visual_change)\n2026-04-20T11:09:03.706142Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T11:09:03.822044Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2406143553526754098, trigger=click)\n2026-04-20T11:09:33.034069Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=96 elapsed=3.973269334s\n2026-04-20T11:09:33.034177Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 96 eligible frames\n2026-04-20T11:09:35.558135Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 42 frames, 3.2MB → 0.2MB (16.4x), 42 JPEGs deleted\n2026-04-20T11:09:39.031687Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 52 frames, 8.1MB → 3.6MB (2.2x), 52 JPEGs deleted\n2026-04-20T11:10:16.370525Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)\n2026-04-20T11:10:19.252001Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)\n2026-04-20T11:10:19.806142Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)\n2026-04-20T11:13:16.227087Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T11:13:20.596574Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T11:13:20.661227Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T11:13:23.902473Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5954939318163518708, trigger=click)\n2026-04-20T11:13:24.516393Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5954939318163518708, trigger=click)\n2026-04-20T11:13:24.587417Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5954939318163518708, trigger=click)\n2026-04-20T11:13:27.637011Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1070969666032687649, trigger=visual_change)\n2026-04-20T11:13:27.807847Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1070969666032687649, trigger=click)\n2026-04-20T11:13:30.623373Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1070969666032687649, trigger=visual_change)\n2026-04-20T11:13:56.362486Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=click)\n2026-04-20T11:14:22.232710Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2535035496832215689, trigger=click)\n2026-04-20T11:14:40.999263Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=128 elapsed=1.951355041s\n2026-04-20T11:14:40.999365Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 128 eligible frames\n2026-04-20T11:14:43.717104Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 47 frames, 3.5MB → 0.2MB (22.4x), 47 JPEGs deleted\n2026-04-20T11:14:49.191609Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 79 frames, 11.9MB → 6.7MB (1.8x), 79 JPEGs deleted\n2026-04-20T11:15:53.591341Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6836450022093940164, trigger=click)\n2026-04-20T11:15:54.531935Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6836450022093940164, trigger=visual_change)\n2026-04-20T11:16:23.234607Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7020057609110231149, trigger=click)\n2026-04-20T11:16:24.573477Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7020057609110231149, trigger=click)\n2026-04-20T11:16:24.645049Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7020057609110231149, trigger=click)\n2026-04-20T11:18:31.210018Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6218747896970871837, trigger=visual_change)\n2026-04-20T11:18:58.718719Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8395829747728977847, trigger=click)\n2026-04-20T11:18:58.773796Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8395829747728977847, trigger=click)\n2026-04-20T11:19:17.843843Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-546694883753369466, trigger=visual_change)\n2026-04-20T11:19:51.764181Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6984505730173949536, trigger=click)\n2026-04-20T11:19:51.846529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6984505730173949536, trigger=click)\n2026-04-20T11:19:52.311562Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6984505730173949536, trigger=visual_change)\n2026-04-20T11:19:55.528956Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=118 elapsed=6.325625375s\n2026-04-20T11:19:55.530818Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 118 eligible frames\n2026-04-20T11:19:59.068315Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 45 frames, 3.9MB → 0.7MB (5.6x), 45 JPEGs deleted\n2026-04-20T11:20:10.114363Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 71 frames, 10.3MB → 5.8MB (1.8x), 71 JPEGs deleted\n2026-04-20T11:22:03.257339Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2781687757078580755, trigger=visual_change)\n2026-04-20T11:22:06.280970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2781687757078580755, trigger=visual_change)\n2026-04-20T11:23:00.888485Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2781687757078580755, trigger=visual_change)\n2026-04-20T11:23:04.422725Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4258649287240007454, trigger=click)\n2026-04-20T11:23:06.787493Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4258649287240007454, trigger=visual_change)\n2026-04-20T11:23:26.757727Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-971663991893619042, trigger=click)\n2026-04-20T11:23:27.530382Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-971663991893619042, trigger=click)\n2026-04-20T11:23:27.629616Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-971663991893619042, trigger=click)\n2026-04-20T11:24:20.636646Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=142107347844094212, trigger=visual_change)\n2026-04-20T11:25:11.487497Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=85 elapsed=1.352837292s\n2026-04-20T11:25:11.487736Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 85 eligible frames\n2026-04-20T11:25:13.473260Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8313898756799688709, trigger=click)\n2026-04-20T11:25:13.930021Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8313898756799688709, trigger=click)\n2026-04-20T11:25:14.300911Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 5.7MB → 0.9MB (6.4x), 30 JPEGs deleted\n2026-04-20T11:25:22.765819Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 53 frames, 7.8MB → 3.6MB (2.1x), 53 JPEGs deleted\n2026-04-20T11:25:48.941557Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2643788392031168472, trigger=click)\n2026-04-20T11:25:52.682820Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2643788392031168472, trigger=visual_change)\n2026-04-20T11:27:06.674474Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:27:22.265798Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:27:34.544704Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8004693622225847515, trigger=visual_change)\n2026-04-20T11:27:35.112605Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:27:35.773265Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:27:53.132990Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8004693622225847515, trigger=visual_change)\n2026-04-20T11:27:53.439763Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:27:54.884154Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:27:54.911699Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:27:55.792546Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:27:55.856492Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:27:56.377118Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:27:56.421804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:27:57.385862Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:27:57.433093Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:28:15.099335Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:28:18.161712Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3897675075138840599, trigger=visual_change)\n2026-04-20T11:28:24.420260Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:29:09.322794Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6684718794164531158, trigger=visual_change)\n2026-04-20T11:29:12.232781Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6684718794164531158, trigger=visual_change)\n2026-04-20T11:29:13.714491Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6684718794164531158, trigger=click)\n2026-04-20T11:29:15.297078Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6684718794164531158, trigger=visual_change)\n2026-04-20T11:29:18.279439Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6684718794164531158, trigger=visual_change)\n2026-04-20T11:29:21.288709Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6684718794164531158, trigger=visual_change)\n2026-04-20T11:29:36.889190Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1183751968977138305, trigger=click)\n2026-04-20T11:29:36.935914Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1183751968977138305, trigger=click)\n2026-04-20T11:29:44.265375Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1744865349186139800, trigger=click)\n2026-04-20T11:29:45.438891Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1744865349186139800, trigger=visual_change)\n2026-04-20T11:29:48.445512Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1744865349186139800, trigger=visual_change)\n2026-04-20T11:30:00.582835Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=214677970165296243, trigger=click)\n2026-04-20T11:30:00.930875Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=214677970165296243, trigger=visual_change)\n2026-04-20T11:30:03.983533Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=214677970165296243, trigger=visual_change)\n2026-04-20T11:30:25.190331Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=144 elapsed=2.413845166s\n2026-04-20T11:30:25.191014Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 144 eligible frames\n2026-04-20T11:30:28.644851Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 59 frames, 8.9MB → 1.9MB (4.8x), 59 JPEGs deleted\n2026-04-20T11:30:34.292740Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 83 frames, 12.0MB → 6.2MB (1.9x), 83 JPEGs deleted\n2026-04-20T11:30:49.731059Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6771186432168714093, trigger=visual_change)\n2026-04-20T11:30:52.714807Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6771186432168714093, trigger=click)\n2026-04-20T11:30:52.764209Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6771186432168714093, trigger=click)\n2026-04-20T11:30:53.030418Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6771186432168714093, trigger=visual_change)\n2026-04-20T11:30:56.085725Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6771186432168714093, trigger=visual_change)\n2026-04-20T11:30:57.236790Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6771186432168714093, trigger=visual_change)\n2026-04-20T11:31:57.345054Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5799305003809379240, trigger=visual_change)\n2026-04-20T11:32:34.844223Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5799305003809379240, trigger=click)\n2026-04-20T11:33:01.295072Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2331312136567929026, trigger=visual_change)\n2026-04-20T11:33:02.667241Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2331312136567929026, trigger=visual_change)\n2026-04-20T11:33:40.313987Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Slack, signals=2)\n2026-04-20T11:33:40.621030Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6376510702070023487, trigger=visual_change)\n2026-04-20T11:33:45.357469Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Slack, signals=2, browser=false)\n2026-04-20T11:33:45.361133Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=4, app=Slack, title=None)\n2026-04-20T11:33:50.248270Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2305043043211837966, trigger=visual_change)\n2026-04-20T11:33:55.493928Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Slack, id=4, grace=30s)\n2026-04-20T11:34:26.223427Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Idle (timeout=30s, app=Slack, id=4)\n2026-04-20T11:34:26.415026Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting ended (id=4)\n2026-04-20T11:35:35.008400Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 86 eligible frames\n2026-04-20T11:35:37.449048Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 35 frames, 8.2MB → 2.2MB (3.8x), 35 JPEGs deleted\n2026-04-20T11:35:40.752978Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 5.9MB → 3.0MB (2.0x), 49 JPEGs deleted\n2026-04-20T11:35:57.468649Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Slack, signals=2)\n2026-04-20T11:36:02.566427Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Slack, signals=2, browser=false)\n2026-04-20T11:36:02.570096Z INFO screenpipe_engine::meeting_detector: meeting v2: reopened recent meeting (id=4, app=Slack)\n2026-04-20T11:36:11.034023Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7051916521891946593, trigger=click)\n2026-04-20T11:36:12.782467Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7051916521891946593, trigger=visual_change)\n2026-04-20T11:36:18.849412Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8299397926977483522, trigger=visual_change)\n2026-04-20T11:36:31.060551Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4229935992045172066, trigger=visual_change)\n2026-04-20T11:36:40.745263Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6895312360846969419, trigger=visual_change)\n2026-04-20T11:36:51.141301Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5575905127528149150, trigger=click)\n2026-04-20T11:37:10.853815Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1985697427151442712, trigger=click)\n2026-04-20T11:37:10.900023Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1985697427151442712, trigger=click)\n2026-04-20T11:37:23.414384Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9098743064037159085, trigger=visual_change)\n2026-04-20T11:37:27.259925Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7267777192673742381, trigger=click)\n2026-04-20T11:37:27.289716Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7267777192673742381, trigger=click)\n2026-04-20T11:37:29.306353Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7267777192673742381, trigger=click)\n2026-04-20T11:37:29.353781Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7267777192673742381, trigger=click)\n2026-04-20T11:37:29.703017Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7267777192673742381, trigger=visual_change)\n2026-04-20T11:37:48.167442Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6972880851711695642, trigger=visual_change)\n2026-04-20T11:37:51.131020Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7497803955284800173, trigger=visual_change)\n2026-04-20T11:37:51.606964Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7497803955284800173, trigger=click)\n2026-04-20T11:38:03.649693Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9147325036326340894, trigger=visual_change)\n2026-04-20T11:38:03.797616Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9147325036326340894, trigger=click)\n2026-04-20T11:38:15.258513Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7947348293642214978, trigger=click)\n2026-04-20T11:38:15.324902Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7947348293642214978, trigger=click)\n2026-04-20T11:38:21.259898Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=181147586093327944, trigger=click)\n2026-04-20T11:38:27.343543Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7497803955284800173, trigger=click)\n2026-04-20T11:38:27.389951Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7497803955284800173, trigger=click)\n2026-04-20T11:38:30.491260Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7497803955284800173, trigger=click)\n2026-04-20T11:38:30.546381Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7497803955284800173, trigger=click)\n2026-04-20T11:38:37.600021Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6921034694780173826, trigger=visual_change)\n2026-04-20T11:38:50.355690Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5480310180026203579, trigger=click)\n2026-04-20T11:38:50.404005Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5480310180026203579, trigger=click)\n2026-04-20T11:39:08.307526Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7497803955284800173, trigger=visual_change)\n2026-04-20T11:39:09.091514Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7497803955284800173, trigger=click)\n2026-04-20T11:39:09.161743Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7497803955284800173, trigger=click)\n2026-04-20T11:39:20.638047Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4229935992045172066, trigger=visual_change)\n2026-04-20T11:39:23.591141Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4229935992045172066, trigger=visual_change)\n2026-04-20T11:39:29.583292Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4229935992045172066, trigger=visual_change)\n2026-04-20T11:39:37.360066Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4229935992045172066, trigger=click)\n2026-04-20T11:39:44.814358Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6671609150327009848, trigger=visual_change)\n2026-04-20T11:39:45.924485Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6671609150327009848, trigger=click)\n2026-04-20T11:39:45.996345Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6671609150327009848, trigger=click)\n2026-04-20T11:40:20.394394Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1671671177896523754, trigger=click)\n2026-04-20T11:40:21.375675Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1671671177896523754, trigger=visual_change)\n2026-04-20T11:40:23.202671Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3155554097147706318, trigger=visual_change)\n2026-04-20T11:40:43.253092Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4229935992045172066, trigger=visual_change)\n2026-04-20T11:40:43.695721Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=131 elapsed=2.9322245s\n2026-04-20T11:40:43.695827Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 131 eligible frames\n2026-04-20T11:40:47.649371Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 61 frames, 7.4MB → 2.5MB (2.9x), 61 JPEGs deleted\n2026-04-20T11:40:47.781508Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6895312360846969419, trigger=click)\n2026-04-20T11:40:52.046914Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 68 frames, 9.2MB → 3.4MB (2.7x), 68 JPEGs deleted\n2026-04-20T11:40:59.460075Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-456029760066552990, trigger=visual_change)\n2026-04-20T11:41:02.495697Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-456029760066552990, trigger=visual_change)\n2026-04-20T11:41:05.496427Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-456029760066552990, trigger=visual_change)\n2026-04-20T11:41:08.546403Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-456029760066552990, trigger=visual_change)\n2026-04-20T11:42:34.401639Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-456029760066552990, trigger=visual_change)\n2026-04-20T11:42:43.277648Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3155554097147706318, trigger=click)\n2026-04-20T11:42:44.143615Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3155554097147706318, trigger=click)\n2026-04-20T11:42:44.214701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3155554097147706318, trigger=click)\n2026-04-20T11:42:47.032602Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3155554097147706318, trigger=click)\n2026-04-20T11:42:47.080822Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3155554097147706318, trigger=click)\n2026-04-20T11:43:06.469036Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3155554097147706318, trigger=click)\n2026-04-20T11:43:07.387591Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3155554097147706318, trigger=click)\n2026-04-20T11:43:08.580298Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2132333697539486641, trigger=click)\n2026-04-20T11:43:36.517926Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8547944451951971235, trigger=visual_change)\n2026-04-20T11:43:48.604378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=987107508425736725, trigger=visual_change)\n2026-04-20T11:43:57.614359Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8547944451951971235, trigger=visual_change)\n2026-04-20T11:44:18.824990Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8547944451951971235, trigger=visual_change)\n2026-04-20T11:44:24.907462Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8547944451951971235, trigger=visual_change)\n2026-04-20T11:45:14.820258Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8547944451951971235, trigger=visual_change)\n2026-04-20T11:45:17.865890Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8547944451951971235, trigger=visual_change)\n2026-04-20T11:45:45.016855Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:45:45.107955Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:45:51.754851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:45:51.856465Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:45:52.816897Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:45:52.891807Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:45:53.075541Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=139 elapsed=1.017660667s\n2026-04-20T11:45:53.075652Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 139 eligible frames\n2026-04-20T11:45:53.378781Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:45:58.733979Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 62 frames, 12.9MB → 3.2MB (4.0x), 62 JPEGs deleted\n2026-04-20T11:46:06.485751Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 75 frames, 11.9MB → 4.1MB (2.9x), 75 JPEGs deleted\n2026-04-20T11:46:39.095124Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=987107508425736725, trigger=visual_change)\n2026-04-20T11:46:42.057902Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=987107508425736725, trigger=visual_change)\n2026-04-20T11:48:11.765669Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=9195472439744667829, trigger=click)\n2026-04-20T11:48:15.524597Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Slack, id=4, grace=30s)\n2026-04-20T11:48:21.832650Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4229935992045172066, trigger=visual_change)\n2026-04-20T11:48:46.695881Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Idle (timeout=30s, app=Slack, id=4)\n2026-04-20T11:48:46.921237Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting ended (id=4)\n2026-04-20T11:48:50.943040Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:48:51.021231Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:49:10.755384Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4229935992045172066, trigger=visual_change)\n2026-04-20T11:49:17.161498Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7106754424718048973, trigger=click)\n2026-04-20T11:49:21.158818Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7106754424718048973, trigger=visual_change)\n2026-04-20T11:49:22.487278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7106754424718048973, trigger=click)\n2026-04-20T11:49:22.530338Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7106754424718048973, trigger=click)\n2026-04-20T11:49:23.006416Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7106754424718048973, trigger=click)\n2026-04-20T11:49:23.047268Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7106754424718048973, trigger=click)\n2026-04-20T11:49:37.147379Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7106754424718048973, trigger=click)\n2026-04-20T11:50:39.151894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:50:39.232274Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:50:43.572057Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:50:43.624058Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:50:48.638461Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:50:48.728784Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:50:51.101000Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:50:51.164752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:09.566936Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=192 elapsed=3.068271875s\n2026-04-20T11:51:09.567545Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 192 eligible frames\n2026-04-20T11:51:20.254226Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 99 frames, 13.0MB → 3.8MB (3.4x), 99 JPEGs deleted\n2026-04-20T11:51:21.236766Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 4 frames, 0.5MB → 0.2MB (3.1x), 4 JPEGs deleted\n2026-04-20T11:51:27.711099Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 87 frames, 18.0MB → 2.3MB (7.9x), 87 JPEGs deleted\n2026-04-20T11:51:31.197932Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:31.303759Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:32.213378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:32.274981Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:35.101541Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:35.200979Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:36.153649Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:36.189190Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:36.685206Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:37.415842Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:37.529712Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:48.634934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:48.699131Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:51.963953Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:51.997497Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:54.179984Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:54.228458Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:52:46.320080Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:52:49.012351Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:52:51.071555Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:52:51.123083Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:53:00.887309Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7089240009464300311, trigger=click)\n2026-04-20T11:53:00.940245Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7089240009464300311, trigger=click)\n2026-04-20T11:55:45.932772Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5694682761366780141, trigger=visual_change)\n2026-04-20T11:55:53.915956Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4530837260207295611, trigger=click)\n2026-04-20T11:55:54.002399Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4530837260207295611, trigger=click)\n2026-04-20T11:55:54.965125Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4530837260207295611, trigger=visual_change)\n2026-04-20T11:55:58.041145Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4530837260207295611, trigger=visual_change)\n2026-04-20T11:56:09.233089Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6479409851876233602, trigger=click)\n2026-04-20T11:56:09.295538Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6479409851876233602, trigger=click)\n2026-04-20T11:56:10.268022Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6479409851876233602, trigger=click)\n2026-04-20T11:56:10.343195Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6479409851876233602, trigger=click)\n2026-04-20T11:56:13.105773Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6479409851876233602, trigger=visual_change)\n2026-04-20T11:56:20.539351Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5840499593443530124, trigger=click)\n2026-04-20T11:56:28.576130Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 46 eligible frames\n2026-04-20T11:56:29.835734Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.3MB → 0.2MB (12.9x), 17 JPEGs deleted\n2026-04-20T11:56:33.611672Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.4MB → 2.5MB (1.8x), 26 JPEGs deleted\n2026-04-20T11:57:24.788972Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=visual_change)\n2026-04-20T11:57:36.481689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=click)\n2026-04-20T11:57:37.756625Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3030885276270352434, trigger=click)\n2026-04-20T11:57:37.834390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=click)\n2026-04-20T11:57:49.238635Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=visual_change)\n2026-04-20T11:57:52.246590Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=visual_change)\n2026-04-20T11:57:55.241832Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=visual_change)\n2026-04-20T11:57:58.301374Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=visual_change)\n2026-04-20T11:58:01.337222Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=visual_change)\n2026-04-20T11:58:26.816413Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=visual_change)\n2026-04-20T11:58:29.856452Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=visual_change)\n2026-04-20T11:58:30.666522Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=click)\n2026-04-20T11:58:30.701317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3030885276270352434, trigger=click)\n2026-04-20T11:58:35.989225Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=visual_change)\n2026-04-20T11:58:38.498940Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3030885276270352434, trigger=click)\n2026-04-20T11:58:40.794993Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=click)\n2026-04-20T11:58:42.377239Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=visual_change)\n2026-04-20T11:58:59.532131Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6813386454352183033, trigger=visual_change)\n2026-04-20T11:59:39.744543Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6813386454352183033, trigger=visual_change)\n2026-04-20T11:59:58.627407Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3151396900374529455, trigger=visual_change)","depth":4,"value":"Last login: Mon Apr 20 10:16:41 on ttys009\n\nPoetry could not find a pyproject.toml file in /Users/lukas or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-start \ndetected hardware tier: Mid\nwarning: parakeet is not supported on this platform, using whisper-tiny instead\n2026-04-20T10:17:08.672567Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store\nchecking permissions...\n screen recording: ok\n accessibility: ok\n2026-04-20T10:17:08.735636Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6\n2026-04-20T10:17:09.168849Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor\n2026-04-20T10:17:09.170474Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)\n2026-04-20T10:17:09.170918Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)\n2026-04-20T10:17:09.203704Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true\n2026-04-20T10:17:09.203780Z INFO screenpipe: meeting detector enabled — independent of transcription mode\n2026-04-20T10:17:09.203962Z INFO screenpipe: API server listening on 127.0.0.1:3030 (localhost only)\n2026-04-20T10:17:09.203976Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key\n2026-04-20T10:17:09.203934Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)\n2026-04-20T10:17:09.204030Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager\n2026-04-20T10:17:09.203954Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)\n2026-04-20T10:17:09.215020Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-20T10:17:09.220127Z INFO screenpipe_core::pipes: loaded pipe: day-recap\n2026-04-20T10:17:09.220306Z INFO screenpipe_core::pipes: loaded pipe: standup-update\n2026-04-20T10:17:09.220863Z INFO screenpipe_core::pipes: loaded pipe: ai-habits\n2026-04-20T10:17:09.221034Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown\n2026-04-20T10:17:09.221177Z INFO screenpipe_core::pipes: loaded pipe: video-export\n2026-04-20T10:17:09.221820Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary\n2026-04-20T10:17:09.221839Z INFO screenpipe_core::pipes: loaded 6 pipes from \"/Users/lukas/.screenpipe/pipes\"\n\n\n\n _ \n __________________ ___ ____ ____ (_____ ___ \n / ___/ ___/ ___/ _ \\/ _ \\/ __ \\ / __ \\/ / __ \\/ _ \\\n (__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/\n/____/\\___/_/ \\___/\\___/_/ /_/ / .___/_/ .___/\\___/ \n /_/ /_/ \n\n\n\npower AI by everything you've seen, said or heard\nopen source | runs locally | developer friendly\n\n\n┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ true │\n│ vision disabled │ false │\n│ pause on DRM content │ false │\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n2026-04-20T10:17:09.223448Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n│ ignored windows │ [\"Boosteroid\"] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n│ api auth │ enabled │\n2026-04-20T10:17:09.227535Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n│ encrypt secrets │ disabled │\n│ retention days │ 14 │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ id: 1 │\n│ │ id: 2 │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ disabled │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-20T10:17:09.240088Z INFO screenpipe: starting UI event capture\n2026-04-20T10:17:09.253668Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-20T10:17:09.267973Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-20T10:17:09.268072Z INFO screenpipe_engine::ui_recorder: UI recording session started: f196d677-2a10-4dec-93e7-9dd9048a1d8e\n2026-04-20T10:17:09.268173Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-19 07:17:09.268169 UTC to 2026-04-20 07:17:09.268169 UTC)\n2026-04-20T10:17:09.268665Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-20T10:17:09.275204Z INFO screenpipe_engine::server: Server listening on 127.0.0.1:3030\n2026-04-20T10:17:09.280547Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-20T10:17:09.284876Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-20T10:17:09.284906Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-20T10:17:09.284942Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-20T10:17:09.316523Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)\n2026-04-20T10:17:09.316557Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)\n2026-04-20T10:17:09.316583Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)\n2026-04-20T10:17:09.316603Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)\n2026-04-20T10:17:09.975374Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 1 excluded)\n2026-04-20T10:17:10.050320Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 1 excluded)\n2026-04-20T10:17:10.109022Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=52481, dur=72ms\n2026-04-20T10:17:10.197530Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=52482, dur=98ms\n2026-04-20T10:17:10.926185Z WARN sqlx::query: summary=\"SELECT f.id, f.timestamp, f.offset_index, …\" db.statement=\"\\n\\nSELECT\\n f.id,\\n f.timestamp,\\n f.offset_index,\\n COALESCE(\\n SUBSTR(f.full_text, 1, 200),\\n SUBSTR(f.accessibility_text, 1, 200),\\n (\\n SELECT\\n SUBSTR(ot.text, 1, 200)\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as text,\\n COALESCE(\\n f.app_name,\\n (\\n SELECT\\n ot.app_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as app_name,\\n COALESCE(\\n f.window_name,\\n (\\n SELECT\\n ot.window_name\\n FROM\\n ocr_text ot\\n WHERE\\n ot.frame_id = f.id\\n LIMIT\\n 1\\n )\\n ) as window_name,\\n COALESCE(vc.device_name, f.device_name) as screen_device,\\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\\n COALESCE(vc.fps, 0.033) as chunk_fps,\\n f.browser_url,\\n f.machine_id\\nFROM\\n frames f\\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\\nWHERE\\n f.timestamp >= ?1\\n AND f.timestamp <= ?2\\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\\nORDER BY\\n f.timestamp DESC,\\n f.offset_index DESC\\nLIMIT\\n 10000\\n\" rows_affected=0 rows_returned=974 elapsed=1.657379083s\n2026-04-20T10:17:10.928810Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 974 frame entries, coverage from 2026-04-19 07:17:09.268169 UTC\n2026-04-20T10:17:36.605708Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5556097941235749601, trigger=visual_change)\n2026-04-20T10:17:41.066595Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5621935701738529327, trigger=click)\n2026-04-20T10:17:41.100078Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5621935701738529327, trigger=click)\n2026-04-20T10:17:46.116429Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5621935701738529327, trigger=click)\n2026-04-20T10:17:46.148269Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5621935701738529327, trigger=click)\n2026-04-20T10:18:13.360099Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=145 elapsed=4.153777416s\n2026-04-20T10:18:13.360276Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 145 eligible frames\n2026-04-20T10:18:18.937138Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 90 frames, 15.2MB → 6.4MB (2.4x), 90 JPEGs deleted\n2026-04-20T10:18:22.014745Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 53 frames, 9.4MB → 2.0MB (4.6x), 53 JPEGs deleted\n2026-04-20T10:18:56.067965Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1399546062189663050, trigger=visual_change)\n2026-04-20T10:18:56.859644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1399546062189663050, trigger=click)\n2026-04-20T10:18:59.894779Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7926243118367575, trigger=click)\n2026-04-20T10:19:12.201247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5621935701738529327, trigger=visual_change)\n2026-04-20T10:21:22.063263Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1399546062189663050, trigger=visual_change)\n2026-04-20T10:21:35.657143Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5007800743451086391, trigger=visual_change)\n2026-04-20T10:21:35.899663Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5007800743451086391, trigger=visual_change)\n2026-04-20T10:21:38.094166Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5007800743451086391, trigger=click)\n2026-04-20T10:21:38.149655Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5007800743451086391, trigger=click)\n2026-04-20T10:21:38.947641Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5007800743451086391, trigger=click)\n2026-04-20T10:21:38.991934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5007800743451086391, trigger=click)\n2026-04-20T10:23:28.231526Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=2 elapsed=6.103025792s\n2026-04-20T10:23:28.232845Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames\n2026-04-20T10:25:18.292352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=133505750984754566, trigger=click)\n2026-04-20T10:25:33.154631Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:25:33.227754Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:25:34.786990Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)\n2026-04-20T10:25:36.507114Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:25:36.556707Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:25:37.741060Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)\n2026-04-20T10:25:39.466175Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:25:39.547293Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:26:02.072902Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2625703622302799632, trigger=visual_change)\n2026-04-20T10:26:05.038754Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8395829747728977847, trigger=visual_change)\n2026-04-20T10:26:10.400901Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:26:10.459718Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:26:14.431146Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)\n2026-04-20T10:26:17.437868Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=visual_change)\n2026-04-20T10:26:35.296162Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:26:35.339241Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:26:37.233387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:26:37.326557Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:00.031681Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:00.067495Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:01.950749Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:02.027316Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:13.045805Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:13.116607Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:15.272022Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:15.311144Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:17.880859Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:17.952143Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:21.645455Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:21.706889Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:36.304603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:36.380537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:37.368951Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:37.459157Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:40.420505Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:40.469217Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:27:41.179717Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)\n2026-04-20T10:28:00.173884Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:00.251737Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:01.241028Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:01.288002Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:02.985445Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:03.078932Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:04.726087Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:04.770305Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:18.186992Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:18.272249Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:28.337807Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 14 eligible frames\n2026-04-20T10:28:29.608030Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 0.7MB → 0.5MB (1.4x), 8 JPEGs deleted\n2026-04-20T10:28:30.685845Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 6 frames, 1.2MB → 0.7MB (1.8x), 6 JPEGs deleted\n2026-04-20T10:28:49.943477Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:49.984595Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:50.611087Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:50.628530Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:54.853245Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:28:57.739309Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)\n2026-04-20T10:29:03.177558Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:03.231322Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:03.857989Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)\n2026-04-20T10:29:04.993121Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:05.032838Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:06.923393Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)\n2026-04-20T10:29:07.890421Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:07.960410Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:08.812301Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:26.656780Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:26.775833Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:27.602791Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:27.639583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:34.060332Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2389025338591748766, trigger=visual_change)\n2026-04-20T10:29:37.050675Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2389025338591748766, trigger=click)\n2026-04-20T10:29:37.085946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2389025338591748766, trigger=click)\n2026-04-20T10:29:40.501396Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2389025338591748766, trigger=visual_change)\n2026-04-20T10:29:43.751715Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)\n2026-04-20T10:29:43.843367Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:44.468329Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:46.931137Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:49.616400Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:49.692474Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:50.298335Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)\n2026-04-20T10:29:51.348506Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)\n2026-04-20T10:29:51.436585Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)\n2026-04-20T10:30:12.602958Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8200761366188343712, trigger=click)\n2026-04-20T10:31:17.535958Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5166044279428207369, trigger=click)\n2026-04-20T10:31:18.668547Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5166044279428207369, trigger=visual_change)\n2026-04-20T10:31:19.518515Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5166044279428207369, trigger=click)\n2026-04-20T10:31:19.681398Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5166044279428207369, trigger=click)\n2026-04-20T10:31:21.044436Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5166044279428207369, trigger=click)\n2026-04-20T10:31:21.086009Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5166044279428207369, trigger=click)\n2026-04-20T10:31:21.680970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5166044279428207369, trigger=visual_change)\n2026-04-20T10:32:05.428125Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=visual_change)\n2026-04-20T10:32:07.004460Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=click)\n2026-04-20T10:32:07.088172Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6999516640019587394, trigger=click)\n2026-04-20T10:32:08.380482Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=visual_change)\n2026-04-20T10:32:11.588306Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=click)\n2026-04-20T10:32:11.689288Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6999516640019587394, trigger=click)\n2026-04-20T10:32:12.318265Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6999516640019587394, trigger=click)\n2026-04-20T10:32:12.381069Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=click)\n2026-04-20T10:32:20.139124Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:32:20.175356Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:32:23.490851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=click)\n2026-04-20T10:32:27.111949Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=visual_change)\n2026-04-20T10:32:37.220458Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6999516640019587394, trigger=click)\n2026-04-20T10:32:37.303363Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=click)\n2026-04-20T10:32:38.554270Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=click)\n2026-04-20T10:32:38.619116Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6999516640019587394, trigger=click)\n2026-04-20T10:32:44.030894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=click)\n2026-04-20T10:32:44.098803Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4838132251856752988, trigger=click)\n2026-04-20T10:32:45.233990Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=click)\n2026-04-20T10:32:45.238569Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4838132251856752988, trigger=click)\n2026-04-20T10:32:48.884987Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=visual_change)\n2026-04-20T10:32:51.832116Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:32:51.860110Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:32:53.754008Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:32:53.796899Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:32:55.635715Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:32:55.675828Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:32:57.084341Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:32:57.128626Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:32:58.841455Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:32:58.882031Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:33:00.965217Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:33:01.040922Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:33:02.591751Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:33:02.633245Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:33:03.324241Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:33:03.353493Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:33:05.802391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:33:05.849275Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)\n2026-04-20T10:33:06.911518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=visual_change)\n2026-04-20T10:33:14.484135Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=click)\n2026-04-20T10:33:14.530843Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4838132251856752988, trigger=click)\n2026-04-20T10:33:34.189406Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4838132251856752988, trigger=click)\n2026-04-20T10:33:34.205308Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=94 elapsed=3.603974333s\n2026-04-20T10:33:34.205567Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 94 eligible frames\n2026-04-20T10:33:34.240884Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=visual_change)\n2026-04-20T10:33:35.686677Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4838132251856752988, trigger=click)\n2026-04-20T10:33:35.780825Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=click)\n2026-04-20T10:33:37.134576Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 38 frames, 8.0MB → 4.4MB (1.8x), 38 JPEGs deleted\n2026-04-20T10:33:40.850354Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 54 frames, 7.9MB → 3.4MB (2.3x), 54 JPEGs deleted\n2026-04-20T10:33:55.372436Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=visual_change)\n2026-04-20T10:35:01.169212Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:35:01.245363Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:35:02.392419Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=visual_change)\n2026-04-20T10:35:05.029174Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:35:05.073174Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:35:07.222477Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:35:07.329020Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:35:08.707660Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=visual_change)\n2026-04-20T10:35:27.744689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:35:27.812062Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:36:18.265456Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:36:18.437457Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:36:23.437791Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:36:23.487637Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:36:24.299771Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=visual_change)\n2026-04-20T10:36:25.135894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:36:25.257064Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:36:27.317393Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=visual_change)\n2026-04-20T10:36:50.815358Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:38:04.728644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4435744464912499495, trigger=visual_change)\n2026-04-20T10:38:07.749721Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4435744464912499495, trigger=visual_change)\n2026-04-20T10:38:13.318000Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=visual_change)\n2026-04-20T10:38:13.969769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=visual_change)\n2026-04-20T10:38:14.800566Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:38:14.834512Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:38:17.252696Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:38:17.328544Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:38:24.892322Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:38:24.943640Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:38:35.256001Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:38:35.322251Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:38:40.980335Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 88 eligible frames\n2026-04-20T10:38:43.345927Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 6.6MB → 2.6MB (2.5x), 39 JPEGs deleted\n2026-04-20T10:38:46.544495Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 47 frames, 7.3MB → 2.8MB (2.6x), 47 JPEGs deleted\n2026-04-20T10:39:26.663352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=visual_change)\n2026-04-20T10:39:29.597544Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:39:29.637879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T10:40:07.495065Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=visual_change)\n2026-04-20T10:40:11.064923Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=visual_change)\n2026-04-20T10:40:11.431065Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)\n2026-04-20T10:40:12.068565Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=click)\n2026-04-20T10:40:12.110719Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)\n2026-04-20T10:40:14.179306Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=click)\n2026-04-20T10:40:14.239361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)\n2026-04-20T10:41:20.489623Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=click)\n2026-04-20T10:43:48.184341Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=82 elapsed=1.63218175s\n2026-04-20T10:43:48.184571Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 82 eligible frames\n2026-04-20T10:43:50.234957Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 2.2MB → 0.1MB (16.1x), 30 JPEGs deleted\n2026-04-20T10:43:55.342383Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 50 frames, 7.9MB → 3.2MB (2.5x), 50 JPEGs deleted\n2026-04-20T10:44:06.225390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4079037146782974603, trigger=click)\n2026-04-20T10:44:14.808445Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Slack, signals=2)\n2026-04-20T10:44:19.110273Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-539912533838677065, trigger=click)\n2026-04-20T10:44:19.155111Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-539912533838677065, trigger=click)\n2026-04-20T10:44:19.832463Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Slack, signals=2, browser=false)\n2026-04-20T10:44:19.834928Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=3, app=Slack, title=None)\n2026-04-20T10:44:27.766267Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5412550087722993493, trigger=visual_change)\n2026-04-20T10:44:39.799864Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5412550087722993493, trigger=visual_change)\n2026-04-20T10:44:57.832108Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5412550087722993493, trigger=visual_change)\n2026-04-20T10:44:57.940548Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5412550087722993493, trigger=click)\n2026-04-20T10:44:58.605782Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5412550087722993493, trigger=click)\n2026-04-20T10:44:58.637243Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5412550087722993493, trigger=click)\n2026-04-20T10:45:00.807501Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5412550087722993493, trigger=visual_change)\n2026-04-20T10:45:16.166619Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8594311245071571574, trigger=visual_change)\n2026-04-20T10:45:56.391618Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)\n2026-04-20T10:45:56.468127Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=click)\n2026-04-20T10:46:03.056730Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8594311245071571574, trigger=visual_change)\n2026-04-20T10:46:12.195973Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8594311245071571574, trigger=visual_change)\n2026-04-20T10:46:17.958643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=click)\n2026-04-20T10:46:18.011452Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)\n2026-04-20T10:47:02.211065Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5662459752758049610, trigger=click)\n2026-04-20T10:47:02.257675Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5662459752758049610, trigger=click)\n2026-04-20T10:47:05.697096Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5662459752758049610, trigger=click)\n2026-04-20T10:47:06.566076Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5662459752758049610, trigger=click)\n2026-04-20T10:47:07.827281Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5662459752758049610, trigger=click)\n2026-04-20T10:47:40.405629Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1571710488795535897, trigger=visual_change)\n2026-04-20T10:47:49.440068Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1557699132616565226, trigger=visual_change)\n2026-04-20T10:47:52.572612Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1557699132616565226, trigger=visual_change)\n2026-04-20T10:47:58.689857Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4346016681512348210, trigger=visual_change)\n2026-04-20T10:48:07.634676Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1557699132616565226, trigger=visual_change)\n2026-04-20T10:48:13.649498Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1557699132616565226, trigger=visual_change)\n2026-04-20T10:48:19.703789Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1557699132616565226, trigger=visual_change)\n2026-04-20T10:48:52.948919Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1420790294153145145, trigger=visual_change)\n2026-04-20T10:48:55.891318Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1420790294153145145, trigger=visual_change)\n2026-04-20T10:48:57.225561Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=44 elapsed=1.875780625s\n2026-04-20T10:48:57.225944Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 44 eligible frames\n2026-04-20T10:48:58.265979Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 1.2MB → 0.1MB (11.0x), 16 JPEGs deleted\n2026-04-20T10:49:00.653282Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.4MB → 2.7MB (1.6x), 26 JPEGs deleted\n2026-04-20T10:49:32.916674Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1420790294153145145, trigger=visual_change)\n2026-04-20T10:49:36.017852Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1420790294153145145, trigger=visual_change)\n2026-04-20T10:49:38.836425Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5221054553112749208, trigger=visual_change)\n2026-04-20T10:49:42.792319Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Slack, id=3, grace=30s)\n2026-04-20T10:49:59.717149Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8395829747728977847, trigger=visual_change)\n2026-04-20T10:50:05.893490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9218245258814534702, trigger=visual_change)\n2026-04-20T10:50:13.558613Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Idle (timeout=30s, app=Slack, id=3)\n2026-04-20T10:50:13.776444Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting ended (id=3)\n2026-04-20T10:50:30.296877Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8395829747728977847, trigger=visual_change)\n2026-04-20T10:50:31.009005Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8395829747728977847, trigger=visual_change)\n2026-04-20T10:50:35.710448Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2997155127408295500, trigger=click)\n2026-04-20T10:50:39.411258Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2997155127408295500, trigger=visual_change)\n2026-04-20T10:50:42.426737Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2997155127408295500, trigger=visual_change)\n2026-04-20T10:50:44.695606Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2997155127408295500, trigger=click)\n2026-04-20T10:51:10.075065Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4346016681512348210, trigger=click)\n2026-04-20T10:51:10.162124Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4346016681512348210, trigger=click)\n2026-04-20T10:51:29.550593Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4346016681512348210, trigger=click)\n2026-04-20T10:51:33.066966Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=click)\n2026-04-20T10:51:34.845466Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)\n2026-04-20T10:51:34.910786Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=click)\n2026-04-20T10:52:43.260524Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8163403335606540090, trigger=click)\n2026-04-20T10:52:43.340992Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8163403335606540090, trigger=click)\n2026-04-20T10:52:48.268094Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=159194235337566135, trigger=visual_change)\n2026-04-20T10:52:51.322127Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=159194235337566135, trigger=click)\n2026-04-20T10:52:51.391904Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=159194235337566135, trigger=click)\n2026-04-20T10:53:43.515437Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-813068054433851605, trigger=visual_change)\n2026-04-20T10:54:05.099685Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=48 elapsed=4.409245042s\n2026-04-20T10:54:05.099971Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 48 eligible frames\n2026-04-20T10:54:06.503270Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 1.6MB → 0.1MB (20.0x), 22 JPEGs deleted\n2026-04-20T10:54:08.444918Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.3MB → 2.1MB (2.0x), 24 JPEGs deleted\n2026-04-20T10:54:35.036274Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8163403335606540090, trigger=visual_change)\n2026-04-20T10:54:35.171848Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8163403335606540090, trigger=visual_change)\n2026-04-20T10:54:36.475203Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8163403335606540090, trigger=click)\n2026-04-20T10:54:36.541896Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8163403335606540090, trigger=click)\n2026-04-20T10:54:37.380023Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8163403335606540090, trigger=click)\n2026-04-20T10:54:37.445729Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8163403335606540090, trigger=click)\n2026-04-20T10:55:03.555125Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8163403335606540090, trigger=click)\n2026-04-20T10:55:03.640618Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8163403335606540090, trigger=click)\n2026-04-20T10:55:19.315053Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:30.302435Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:30.370524Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:33.629673Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:33.680190Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:34.225728Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=visual_change)\n2026-04-20T10:55:36.487309Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:36.553300Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:37.266499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=visual_change)\n2026-04-20T10:55:41.784038Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:41.805901Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:43.326649Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=visual_change)\n2026-04-20T10:55:45.080360Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:45.118718Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:46.357519Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=visual_change)\n2026-04-20T10:55:47.480883Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:47.537710Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:49.291790Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:49.326846Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:52.992748Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8138726509372139947, trigger=click)\n2026-04-20T10:55:54.240859Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:55.950255Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:55.991282Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:58.736523Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:58.802298Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:59.902655Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:55:59.944572Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2406143553526754098, trigger=click)\n2026-04-20T10:56:07.794877Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5942962546669254600, trigger=click)\n2026-04-20T10:56:07.851635Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5942962546669254600, trigger=click)\n2026-04-20T10:56:48.563398Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7990927160457220959, trigger=visual_change)\n2026-04-20T10:57:32.104953Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=9150043812320386523, trigger=click)\n2026-04-20T10:57:32.144287Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9150043812320386523, trigger=click)\n2026-04-20T10:58:28.399190Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2260395566585322026, trigger=click)\n2026-04-20T10:58:28.442157Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2260395566585322026, trigger=click)\n2026-04-20T10:59:08.570536Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 81 eligible frames\n2026-04-20T10:59:10.567201Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 33 frames, 2.4MB → 0.1MB (18.5x), 33 JPEGs deleted\n2026-04-20T10:59:14.364266Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 46 frames, 8.7MB → 4.7MB (1.9x), 46 JPEGs deleted\n2026-04-20T10:59:58.111173Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5381531899229729064, trigger=click)\n2026-04-20T10:59:58.142222Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5381531899229729064, trigger=click)\n2026-04-20T11:00:36.141673Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9207198899289182946, trigger=click)\n2026-04-20T11:00:36.183623Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9207198899289182946, trigger=click)\n2026-04-20T11:01:42.348670Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8842760806676108827, trigger=click)\n2026-04-20T11:01:46.579137Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3692713192977136429, trigger=visual_change)\n2026-04-20T11:02:24.402529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3769719286299940254, trigger=visual_change)\n2026-04-20T11:03:17.195875Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-838946827693869464, trigger=click)\n2026-04-20T11:04:18.906189Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=visual_change)\n2026-04-20T11:04:19.288145Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=154 elapsed=4.909861708s\n2026-04-20T11:04:19.288239Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 154 eligible frames\n2026-04-20T11:04:21.929712Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=visual_change)\n2026-04-20T11:04:23.364885Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 71 frames, 5.8MB → 0.9MB (6.6x), 71 JPEGs deleted\n2026-04-20T11:04:24.973084Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=visual_change)\n2026-04-20T11:04:27.204317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2406143553526754098, trigger=click)\n2026-04-20T11:04:27.256852Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T11:04:29.050253Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 81 frames, 12.7MB → 5.0MB (2.5x), 81 JPEGs deleted\n2026-04-20T11:04:33.163125Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2340404083908403127, trigger=click)\n2026-04-20T11:04:54.879253Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2453433494247683376, trigger=click)\n2026-04-20T11:05:12.089056Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4318090145782937453, trigger=visual_change)\n2026-04-20T11:05:13.095729Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4318090145782937453, trigger=click)\n2026-04-20T11:05:15.103808Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4318090145782937453, trigger=visual_change)\n2026-04-20T11:05:16.310357Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4318090145782937453, trigger=click)\n2026-04-20T11:05:16.383203Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4318090145782937453, trigger=click)\n2026-04-20T11:05:18.172083Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4318090145782937453, trigger=visual_change)\n2026-04-20T11:05:18.982699Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4318090145782937453, trigger=click)\n2026-04-20T11:05:19.029420Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4318090145782937453, trigger=click)\n2026-04-20T11:05:21.205027Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4318090145782937453, trigger=visual_change)\n2026-04-20T11:05:30.714779Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4318090145782937453, trigger=visual_change)\n2026-04-20T11:05:33.817783Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4318090145782937453, trigger=visual_change)\n2026-04-20T11:05:36.802961Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4318090145782937453, trigger=visual_change)\n2026-04-20T11:05:39.813482Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4318090145782937453, trigger=visual_change)\n2026-04-20T11:09:00.185306Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=visual_change)\n2026-04-20T11:09:03.706142Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2406143553526754098, trigger=click)\n2026-04-20T11:09:03.822044Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2406143553526754098, trigger=click)\n2026-04-20T11:09:33.034069Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=96 elapsed=3.973269334s\n2026-04-20T11:09:33.034177Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 96 eligible frames\n2026-04-20T11:09:35.558135Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 42 frames, 3.2MB → 0.2MB (16.4x), 42 JPEGs deleted\n2026-04-20T11:09:39.031687Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 52 frames, 8.1MB → 3.6MB (2.2x), 52 JPEGs deleted\n2026-04-20T11:10:16.370525Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)\n2026-04-20T11:10:19.252001Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)\n2026-04-20T11:10:19.806142Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)\n2026-04-20T11:13:16.227087Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T11:13:20.596574Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)\n2026-04-20T11:13:20.661227Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)\n2026-04-20T11:13:23.902473Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5954939318163518708, trigger=click)\n2026-04-20T11:13:24.516393Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5954939318163518708, trigger=click)\n2026-04-20T11:13:24.587417Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5954939318163518708, trigger=click)\n2026-04-20T11:13:27.637011Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1070969666032687649, trigger=visual_change)\n2026-04-20T11:13:27.807847Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1070969666032687649, trigger=click)\n2026-04-20T11:13:30.623373Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1070969666032687649, trigger=visual_change)\n2026-04-20T11:13:56.362486Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=click)\n2026-04-20T11:14:22.232710Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2535035496832215689, trigger=click)\n2026-04-20T11:14:40.999263Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=128 elapsed=1.951355041s\n2026-04-20T11:14:40.999365Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 128 eligible frames\n2026-04-20T11:14:43.717104Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 47 frames, 3.5MB → 0.2MB (22.4x), 47 JPEGs deleted\n2026-04-20T11:14:49.191609Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 79 frames, 11.9MB → 6.7MB (1.8x), 79 JPEGs deleted\n2026-04-20T11:15:53.591341Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6836450022093940164, trigger=click)\n2026-04-20T11:15:54.531935Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6836450022093940164, trigger=visual_change)\n2026-04-20T11:16:23.234607Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7020057609110231149, trigger=click)\n2026-04-20T11:16:24.573477Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7020057609110231149, trigger=click)\n2026-04-20T11:16:24.645049Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7020057609110231149, trigger=click)\n2026-04-20T11:18:31.210018Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6218747896970871837, trigger=visual_change)\n2026-04-20T11:18:58.718719Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8395829747728977847, trigger=click)\n2026-04-20T11:18:58.773796Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8395829747728977847, trigger=click)\n2026-04-20T11:19:17.843843Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-546694883753369466, trigger=visual_change)\n2026-04-20T11:19:51.764181Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6984505730173949536, trigger=click)\n2026-04-20T11:19:51.846529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6984505730173949536, trigger=click)\n2026-04-20T11:19:52.311562Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6984505730173949536, trigger=visual_change)\n2026-04-20T11:19:55.528956Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=118 elapsed=6.325625375s\n2026-04-20T11:19:55.530818Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 118 eligible frames\n2026-04-20T11:19:59.068315Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 45 frames, 3.9MB → 0.7MB (5.6x), 45 JPEGs deleted\n2026-04-20T11:20:10.114363Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 71 frames, 10.3MB → 5.8MB (1.8x), 71 JPEGs deleted\n2026-04-20T11:22:03.257339Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2781687757078580755, trigger=visual_change)\n2026-04-20T11:22:06.280970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2781687757078580755, trigger=visual_change)\n2026-04-20T11:23:00.888485Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2781687757078580755, trigger=visual_change)\n2026-04-20T11:23:04.422725Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4258649287240007454, trigger=click)\n2026-04-20T11:23:06.787493Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4258649287240007454, trigger=visual_change)\n2026-04-20T11:23:26.757727Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-971663991893619042, trigger=click)\n2026-04-20T11:23:27.530382Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-971663991893619042, trigger=click)\n2026-04-20T11:23:27.629616Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-971663991893619042, trigger=click)\n2026-04-20T11:24:20.636646Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=142107347844094212, trigger=visual_change)\n2026-04-20T11:25:11.487497Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=85 elapsed=1.352837292s\n2026-04-20T11:25:11.487736Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 85 eligible frames\n2026-04-20T11:25:13.473260Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8313898756799688709, trigger=click)\n2026-04-20T11:25:13.930021Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8313898756799688709, trigger=click)\n2026-04-20T11:25:14.300911Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 5.7MB → 0.9MB (6.4x), 30 JPEGs deleted\n2026-04-20T11:25:22.765819Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 53 frames, 7.8MB → 3.6MB (2.1x), 53 JPEGs deleted\n2026-04-20T11:25:48.941557Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2643788392031168472, trigger=click)\n2026-04-20T11:25:52.682820Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2643788392031168472, trigger=visual_change)\n2026-04-20T11:27:06.674474Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:27:22.265798Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:27:34.544704Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8004693622225847515, trigger=visual_change)\n2026-04-20T11:27:35.112605Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:27:35.773265Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:27:53.132990Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8004693622225847515, trigger=visual_change)\n2026-04-20T11:27:53.439763Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:27:54.884154Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:27:54.911699Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:27:55.792546Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:27:55.856492Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:27:56.377118Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:27:56.421804Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:27:57.385862Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:27:57.433093Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:28:15.099335Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:28:18.161712Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3897675075138840599, trigger=visual_change)\n2026-04-20T11:28:24.420260Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8004693622225847515, trigger=click)\n2026-04-20T11:29:09.322794Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6684718794164531158, trigger=visual_change)\n2026-04-20T11:29:12.232781Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6684718794164531158, trigger=visual_change)\n2026-04-20T11:29:13.714491Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6684718794164531158, trigger=click)\n2026-04-20T11:29:15.297078Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6684718794164531158, trigger=visual_change)\n2026-04-20T11:29:18.279439Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6684718794164531158, trigger=visual_change)\n2026-04-20T11:29:21.288709Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6684718794164531158, trigger=visual_change)\n2026-04-20T11:29:36.889190Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1183751968977138305, trigger=click)\n2026-04-20T11:29:36.935914Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1183751968977138305, trigger=click)\n2026-04-20T11:29:44.265375Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1744865349186139800, trigger=click)\n2026-04-20T11:29:45.438891Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1744865349186139800, trigger=visual_change)\n2026-04-20T11:29:48.445512Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1744865349186139800, trigger=visual_change)\n2026-04-20T11:30:00.582835Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=214677970165296243, trigger=click)\n2026-04-20T11:30:00.930875Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=214677970165296243, trigger=visual_change)\n2026-04-20T11:30:03.983533Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=214677970165296243, trigger=visual_change)\n2026-04-20T11:30:25.190331Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=144 elapsed=2.413845166s\n2026-04-20T11:30:25.191014Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 144 eligible frames\n2026-04-20T11:30:28.644851Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 59 frames, 8.9MB → 1.9MB (4.8x), 59 JPEGs deleted\n2026-04-20T11:30:34.292740Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 83 frames, 12.0MB → 6.2MB (1.9x), 83 JPEGs deleted\n2026-04-20T11:30:49.731059Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6771186432168714093, trigger=visual_change)\n2026-04-20T11:30:52.714807Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6771186432168714093, trigger=click)\n2026-04-20T11:30:52.764209Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6771186432168714093, trigger=click)\n2026-04-20T11:30:53.030418Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6771186432168714093, trigger=visual_change)\n2026-04-20T11:30:56.085725Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6771186432168714093, trigger=visual_change)\n2026-04-20T11:30:57.236790Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6771186432168714093, trigger=visual_change)\n2026-04-20T11:31:57.345054Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5799305003809379240, trigger=visual_change)\n2026-04-20T11:32:34.844223Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5799305003809379240, trigger=click)\n2026-04-20T11:33:01.295072Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2331312136567929026, trigger=visual_change)\n2026-04-20T11:33:02.667241Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2331312136567929026, trigger=visual_change)\n2026-04-20T11:33:40.313987Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Slack, signals=2)\n2026-04-20T11:33:40.621030Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6376510702070023487, trigger=visual_change)\n2026-04-20T11:33:45.357469Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Slack, signals=2, browser=false)\n2026-04-20T11:33:45.361133Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=4, app=Slack, title=None)\n2026-04-20T11:33:50.248270Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2305043043211837966, trigger=visual_change)\n2026-04-20T11:33:55.493928Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Slack, id=4, grace=30s)\n2026-04-20T11:34:26.223427Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Idle (timeout=30s, app=Slack, id=4)\n2026-04-20T11:34:26.415026Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting ended (id=4)\n2026-04-20T11:35:35.008400Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 86 eligible frames\n2026-04-20T11:35:37.449048Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 35 frames, 8.2MB → 2.2MB (3.8x), 35 JPEGs deleted\n2026-04-20T11:35:40.752978Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 49 frames, 5.9MB → 3.0MB (2.0x), 49 JPEGs deleted\n2026-04-20T11:35:57.468649Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Slack, signals=2)\n2026-04-20T11:36:02.566427Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Slack, signals=2, browser=false)\n2026-04-20T11:36:02.570096Z INFO screenpipe_engine::meeting_detector: meeting v2: reopened recent meeting (id=4, app=Slack)\n2026-04-20T11:36:11.034023Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7051916521891946593, trigger=click)\n2026-04-20T11:36:12.782467Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7051916521891946593, trigger=visual_change)\n2026-04-20T11:36:18.849412Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8299397926977483522, trigger=visual_change)\n2026-04-20T11:36:31.060551Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4229935992045172066, trigger=visual_change)\n2026-04-20T11:36:40.745263Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6895312360846969419, trigger=visual_change)\n2026-04-20T11:36:51.141301Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5575905127528149150, trigger=click)\n2026-04-20T11:37:10.853815Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1985697427151442712, trigger=click)\n2026-04-20T11:37:10.900023Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1985697427151442712, trigger=click)\n2026-04-20T11:37:23.414384Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9098743064037159085, trigger=visual_change)\n2026-04-20T11:37:27.259925Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7267777192673742381, trigger=click)\n2026-04-20T11:37:27.289716Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7267777192673742381, trigger=click)\n2026-04-20T11:37:29.306353Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7267777192673742381, trigger=click)\n2026-04-20T11:37:29.353781Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7267777192673742381, trigger=click)\n2026-04-20T11:37:29.703017Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7267777192673742381, trigger=visual_change)\n2026-04-20T11:37:48.167442Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6972880851711695642, trigger=visual_change)\n2026-04-20T11:37:51.131020Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7497803955284800173, trigger=visual_change)\n2026-04-20T11:37:51.606964Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7497803955284800173, trigger=click)\n2026-04-20T11:38:03.649693Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9147325036326340894, trigger=visual_change)\n2026-04-20T11:38:03.797616Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9147325036326340894, trigger=click)\n2026-04-20T11:38:15.258513Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7947348293642214978, trigger=click)\n2026-04-20T11:38:15.324902Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7947348293642214978, trigger=click)\n2026-04-20T11:38:21.259898Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=181147586093327944, trigger=click)\n2026-04-20T11:38:27.343543Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7497803955284800173, trigger=click)\n2026-04-20T11:38:27.389951Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7497803955284800173, trigger=click)\n2026-04-20T11:38:30.491260Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7497803955284800173, trigger=click)\n2026-04-20T11:38:30.546381Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7497803955284800173, trigger=click)\n2026-04-20T11:38:37.600021Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6921034694780173826, trigger=visual_change)\n2026-04-20T11:38:50.355690Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5480310180026203579, trigger=click)\n2026-04-20T11:38:50.404005Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5480310180026203579, trigger=click)\n2026-04-20T11:39:08.307526Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7497803955284800173, trigger=visual_change)\n2026-04-20T11:39:09.091514Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7497803955284800173, trigger=click)\n2026-04-20T11:39:09.161743Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7497803955284800173, trigger=click)\n2026-04-20T11:39:20.638047Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4229935992045172066, trigger=visual_change)\n2026-04-20T11:39:23.591141Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4229935992045172066, trigger=visual_change)\n2026-04-20T11:39:29.583292Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4229935992045172066, trigger=visual_change)\n2026-04-20T11:39:37.360066Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4229935992045172066, trigger=click)\n2026-04-20T11:39:44.814358Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6671609150327009848, trigger=visual_change)\n2026-04-20T11:39:45.924485Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6671609150327009848, trigger=click)\n2026-04-20T11:39:45.996345Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6671609150327009848, trigger=click)\n2026-04-20T11:40:20.394394Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1671671177896523754, trigger=click)\n2026-04-20T11:40:21.375675Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1671671177896523754, trigger=visual_change)\n2026-04-20T11:40:23.202671Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3155554097147706318, trigger=visual_change)\n2026-04-20T11:40:43.253092Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4229935992045172066, trigger=visual_change)\n2026-04-20T11:40:43.695721Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=131 elapsed=2.9322245s\n2026-04-20T11:40:43.695827Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 131 eligible frames\n2026-04-20T11:40:47.649371Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 61 frames, 7.4MB → 2.5MB (2.9x), 61 JPEGs deleted\n2026-04-20T11:40:47.781508Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6895312360846969419, trigger=click)\n2026-04-20T11:40:52.046914Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 68 frames, 9.2MB → 3.4MB (2.7x), 68 JPEGs deleted\n2026-04-20T11:40:59.460075Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-456029760066552990, trigger=visual_change)\n2026-04-20T11:41:02.495697Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-456029760066552990, trigger=visual_change)\n2026-04-20T11:41:05.496427Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-456029760066552990, trigger=visual_change)\n2026-04-20T11:41:08.546403Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-456029760066552990, trigger=visual_change)\n2026-04-20T11:42:34.401639Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-456029760066552990, trigger=visual_change)\n2026-04-20T11:42:43.277648Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3155554097147706318, trigger=click)\n2026-04-20T11:42:44.143615Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3155554097147706318, trigger=click)\n2026-04-20T11:42:44.214701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3155554097147706318, trigger=click)\n2026-04-20T11:42:47.032602Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3155554097147706318, trigger=click)\n2026-04-20T11:42:47.080822Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3155554097147706318, trigger=click)\n2026-04-20T11:43:06.469036Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3155554097147706318, trigger=click)\n2026-04-20T11:43:07.387591Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3155554097147706318, trigger=click)\n2026-04-20T11:43:08.580298Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2132333697539486641, trigger=click)\n2026-04-20T11:43:36.517926Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8547944451951971235, trigger=visual_change)\n2026-04-20T11:43:48.604378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=987107508425736725, trigger=visual_change)\n2026-04-20T11:43:57.614359Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8547944451951971235, trigger=visual_change)\n2026-04-20T11:44:18.824990Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8547944451951971235, trigger=visual_change)\n2026-04-20T11:44:24.907462Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8547944451951971235, trigger=visual_change)\n2026-04-20T11:45:14.820258Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8547944451951971235, trigger=visual_change)\n2026-04-20T11:45:17.865890Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8547944451951971235, trigger=visual_change)\n2026-04-20T11:45:45.016855Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:45:45.107955Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:45:51.754851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:45:51.856465Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:45:52.816897Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:45:52.891807Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:45:53.075541Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=139 elapsed=1.017660667s\n2026-04-20T11:45:53.075652Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 139 eligible frames\n2026-04-20T11:45:53.378781Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:45:58.733979Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 62 frames, 12.9MB → 3.2MB (4.0x), 62 JPEGs deleted\n2026-04-20T11:46:06.485751Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 75 frames, 11.9MB → 4.1MB (2.9x), 75 JPEGs deleted\n2026-04-20T11:46:39.095124Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=987107508425736725, trigger=visual_change)\n2026-04-20T11:46:42.057902Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=987107508425736725, trigger=visual_change)\n2026-04-20T11:48:11.765669Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=9195472439744667829, trigger=click)\n2026-04-20T11:48:15.524597Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Slack, id=4, grace=30s)\n2026-04-20T11:48:21.832650Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4229935992045172066, trigger=visual_change)\n2026-04-20T11:48:46.695881Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Idle (timeout=30s, app=Slack, id=4)\n2026-04-20T11:48:46.921237Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting ended (id=4)\n2026-04-20T11:48:50.943040Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:48:51.021231Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:49:10.755384Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4229935992045172066, trigger=visual_change)\n2026-04-20T11:49:17.161498Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7106754424718048973, trigger=click)\n2026-04-20T11:49:21.158818Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7106754424718048973, trigger=visual_change)\n2026-04-20T11:49:22.487278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7106754424718048973, trigger=click)\n2026-04-20T11:49:22.530338Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7106754424718048973, trigger=click)\n2026-04-20T11:49:23.006416Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7106754424718048973, trigger=click)\n2026-04-20T11:49:23.047268Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7106754424718048973, trigger=click)\n2026-04-20T11:49:37.147379Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7106754424718048973, trigger=click)\n2026-04-20T11:50:39.151894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:50:39.232274Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:50:43.572057Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:50:43.624058Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:50:48.638461Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:50:48.728784Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:50:51.101000Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:50:51.164752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:09.566936Z WARN sqlx::query: summary=\"SELECT id, snapshot_path, device_name, …\" db.statement=\"\\n\\nSELECT\\n id,\\n snapshot_path,\\n device_name,\\n timestamp\\nFROM\\n frames\\nWHERE\\n snapshot_path IS NOT NULL\\n AND timestamp < ?1\\nORDER BY\\n device_name,\\n timestamp ASC\\nLIMIT\\n 5000\\n\" rows_affected=0 rows_returned=192 elapsed=3.068271875s\n2026-04-20T11:51:09.567545Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 192 eligible frames\n2026-04-20T11:51:20.254226Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 99 frames, 13.0MB → 3.8MB (3.4x), 99 JPEGs deleted\n2026-04-20T11:51:21.236766Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 4 frames, 0.5MB → 0.2MB (3.1x), 4 JPEGs deleted\n2026-04-20T11:51:27.711099Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 87 frames, 18.0MB → 2.3MB (7.9x), 87 JPEGs deleted\n2026-04-20T11:51:31.197932Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:31.303759Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:32.213378Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:32.274981Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:35.101541Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:35.200979Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:36.153649Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:36.189190Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:36.685206Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:37.415842Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:37.529712Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:48.634934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:48.699131Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:51.963953Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:51.997497Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:54.179984Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:51:54.228458Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:52:46.320080Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:52:49.012351Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:52:51.071555Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:52:51.123083Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7246725341180660992, trigger=click)\n2026-04-20T11:53:00.887309Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7089240009464300311, trigger=click)\n2026-04-20T11:53:00.940245Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7089240009464300311, trigger=click)\n2026-04-20T11:55:45.932772Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5694682761366780141, trigger=visual_change)\n2026-04-20T11:55:53.915956Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4530837260207295611, trigger=click)\n2026-04-20T11:55:54.002399Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4530837260207295611, trigger=click)\n2026-04-20T11:55:54.965125Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4530837260207295611, trigger=visual_change)\n2026-04-20T11:55:58.041145Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4530837260207295611, trigger=visual_change)\n2026-04-20T11:56:09.233089Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6479409851876233602, trigger=click)\n2026-04-20T11:56:09.295538Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6479409851876233602, trigger=click)\n2026-04-20T11:56:10.268022Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6479409851876233602, trigger=click)\n2026-04-20T11:56:10.343195Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6479409851876233602, trigger=click)\n2026-04-20T11:56:13.105773Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6479409851876233602, trigger=visual_change)\n2026-04-20T11:56:20.539351Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5840499593443530124, trigger=click)\n2026-04-20T11:56:28.576130Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 46 eligible frames\n2026-04-20T11:56:29.835734Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.3MB → 0.2MB (12.9x), 17 JPEGs deleted\n2026-04-20T11:56:33.611672Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.4MB → 2.5MB (1.8x), 26 JPEGs deleted\n2026-04-20T11:57:24.788972Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=visual_change)\n2026-04-20T11:57:36.481689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=click)\n2026-04-20T11:57:37.756625Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3030885276270352434, trigger=click)\n2026-04-20T11:57:37.834390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=click)\n2026-04-20T11:57:49.238635Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=visual_change)\n2026-04-20T11:57:52.246590Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=visual_change)\n2026-04-20T11:57:55.241832Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=visual_change)\n2026-04-20T11:57:58.301374Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=visual_change)\n2026-04-20T11:58:01.337222Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=visual_change)\n2026-04-20T11:58:26.816413Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=visual_change)\n2026-04-20T11:58:29.856452Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=visual_change)\n2026-04-20T11:58:30.666522Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=click)\n2026-04-20T11:58:30.701317Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3030885276270352434, trigger=click)\n2026-04-20T11:58:35.989225Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=visual_change)\n2026-04-20T11:58:38.498940Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3030885276270352434, trigger=click)\n2026-04-20T11:58:40.794993Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=click)\n2026-04-20T11:58:42.377239Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3030885276270352434, trigger=visual_change)\n2026-04-20T11:58:59.532131Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6813386454352183033, trigger=visual_change)\n2026-04-20T11:59:39.744543Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6813386454352183033, trigger=visual_change)\n2026-04-20T11:59:58.627407Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3151396900374529455, trigger=visual_change)","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.36469415,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.36668882,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.45910904,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.46110374,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.55352396,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5555186,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.64793885,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6499335,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7287234,"top":1.0,"width":0.01861702,"height":-0.023144484},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"screenpipe\"","depth":1,"bounds":{"left":0.49634308,"top":1.0,"width":0.027925532,"height":-0.02394259},"role_description":"text"}]...
|
6376510702070023487
|
2716136870039889273
|
visual_change
|
accessibility
|
NULL
|
Last login: Mon Apr 20 10:16:41 on ttys009
Poetry Last login: Mon Apr 20 10:16:41 on ttys009
Poetry could not find a pyproject.toml file in /Users/lukas or its parents
Poetry could not find a pyproject.toml file in /Users/lukas or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-start
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-04-20T10:17:08.672567Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store
checking permissions...
screen recording: ok
accessibility: ok
2026-04-20T10:17:08.735636Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-04-20T10:17:09.168849Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-04-20T10:17:09.170474Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-04-20T10:17:09.170918Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-04-20T10:17:09.203704Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-04-20T10:17:09.203780Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-04-20T10:17:09.203962Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-04-20T10:17:09.203976Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-04-20T10:17:09.203934Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-04-20T10:17:09.204030Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-04-20T10:17:09.203954Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-04-20T10:17:09.215020Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))
2026-04-20T10:17:09.220127Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-04-20T10:17:09.220306Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-04-20T10:17:09.220863Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-04-20T10:17:09.221034Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-04-20T10:17:09.221177Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-04-20T10:17:09.221820Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary
2026-04-20T10:17:09.221839Z INFO screenpipe_core::pipes: loaded 6 pipes from "/Users/lukas/.screenpipe/pipes"
_
__________________ ___ ____ ____ (_____ ___
/ ___/ ___/ ___/ _ \/ _ \/ __ \ / __ \/ / __ \/ _ \
(__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/
/____/\___/_/ \___/\___/_/ /_/ / .___/_/ .___/\___/
/_/ /_/
power AI by everything you've seen, said or heard
open source | runs locally | developer friendly
┌────────────────────────┬────────────────────────────────────┐
│ setting │ value │
├────────────────────────┼────────────────────────────────────┤
│ audio chunk duration │ 30 seconds │
│ port │ 3030 │
│ audio disabled │ true │
│ vision disabled │ false │
│ pause on DRM content │ false │
│ audio engine │ Parakeet │
│ vad engine │ Silero │
│ data directory │ /Users/lukas/.screenpipe │
│ debug mode │ false │
│ telemetry │ true │
│ use pii removal │ true │
│ use all monitors │ true │
2026-04-20T10:17:09.223448Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)
│ ignored windows │ ["Boosteroid"] │
│ included windows │ [] │
│ cloud sync │ disabled │
│ auto-destruct pid │ 0 │
│ deepgram key │ not set │
│ api auth │ enabled │
2026-04-20T10:17:09.227535Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh
│ encrypt secrets │ disabled │
│ retention days │ 14 │
├────────────────────────┼────────────────────────────────────┤
│ languages │ │
│ │ all languages │
├────────────────────────┼────────────────────────────────────┤
│ monitors │ │
│ │ id: 1 │
│ │ id: 2 │
├────────────────────────┼────────────────────────────────────┤
│ audio devices │ │
│ │ disabled │
└────────────────────────┴────────────────────────────────────┘
you are using local processing. all your data stays on your computer.
warning: telemetry is enabled. only error-level data will be sent.
to disable, use the --disable-telemetry flag.
check latest changes here: https://github.com/screenpipe/screenpipe/releases
2026-04-20T10:17:09.240088Z INFO screenpipe: starting UI event capture
2026-04-20T10:17:09.253668Z INFO screenpipe_engine::ui_recorder: Starting UI event capture
2026-04-20T10:17:09.267973Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)
2026-04-20T10:17:09.268072Z INFO screenpipe_engine::ui_recorder: UI recording session started: f196d677-2a10-4dec-93e7-9dd9048a1d8e
2026-04-20T10:17:09.268173Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-19 07:17:09.268169 UTC to 2026-04-20 07:17:09.268169 UTC)
2026-04-20T10:17:09.268665Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)
2026-04-20T10:17:09.275204Z INFO screenpipe_engine::server: Server listening on [IP_ADDRESS]:3030
2026-04-20T10:17:09.280547Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030
2026-04-20T10:17:09.284876Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)
2026-04-20T10:17:09.284906Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)
2026-04-20T10:17:09.284942Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)
2026-04-20T10:17:09.316523Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-04-20T10:17:09.316557Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-04-20T10:17:09.316583Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)
2026-04-20T10:17:09.316603Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-04-20T10:17:09.975374Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 1 excluded)
2026-04-20T10:17:10.050320Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 1 excluded)
2026-04-20T10:17:10.109022Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=52481, dur=72ms
2026-04-20T10:17:10.197530Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=52482, dur=98ms
2026-04-20T10:17:10.926185Z WARN sqlx::query: summary="SELECT f.id, f.timestamp, f.offset_index, …" db.statement="\n\nSELECT\n f.id,\n f.timestamp,\n f.offset_index,\n COALESCE(\n SUBSTR(f.full_text, 1, 200),\n SUBSTR(f.accessibility_text, 1, 200),\n (\n SELECT\n SUBSTR(ot.text, 1, 200)\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as text,\n COALESCE(\n f.app_name,\n (\n SELECT\n ot.app_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as app_name,\n COALESCE(\n f.window_name,\n (\n SELECT\n ot.window_name\n FROM\n ocr_text ot\n WHERE\n ot.frame_id = f.id\n LIMIT\n 1\n )\n ) as window_name,\n COALESCE(vc.device_name, f.device_name) as screen_device,\n COALESCE(vc.file_path, f.snapshot_path) as video_path,\n COALESCE(vc.fps, 0.033) as chunk_fps,\n f.browser_url,\n f.machine_id\nFROM\n frames f\n LEFT JOIN video_chunks vc ON f.video_chunk_id = vc.id\nWHERE\n f.timestamp >= ?1\n AND f.timestamp <= ?2\n AND COALESCE(vc.file_path, f.snapshot_path, '') NOT LIKE 'cloud://%'\nORDER BY\n f.timestamp DESC,\n f.offset_index DESC\nLIMIT\n 10000\n" rows_affected=0 rows_returned=974 elapsed=1.657379083s
2026-04-20T10:17:10.928810Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 974 frame entries, coverage from 2026-04-19 07:17:09.268169 UTC
2026-04-20T10:17:36.605708Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5556097941235749601, trigger=visual_change)
2026-04-20T10:17:41.066595Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5621935701738529327, trigger=click)
2026-04-20T10:17:41.100078Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5621935701738529327, trigger=click)
2026-04-20T10:17:46.116429Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5621935701738529327, trigger=click)
2026-04-20T10:17:46.148269Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5621935701738529327, trigger=click)
2026-04-20T10:18:13.360099Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=145 elapsed=4.153777416s
2026-04-20T10:18:13.360276Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 145 eligible frames
2026-04-20T10:18:18.937138Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 90 frames, 15.2MB → 6.4MB (2.4x), 90 JPEGs deleted
2026-04-20T10:18:22.014745Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 53 frames, 9.4MB → 2.0MB (4.6x), 53 JPEGs deleted
2026-04-20T10:18:56.067965Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1399546062189663050, trigger=visual_change)
2026-04-20T10:18:56.859644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1399546062189663050, trigger=click)
2026-04-20T10:18:59.894779Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=[CREDIT_CARD], trigger=click)
2026-04-20T10:19:12.201247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5621935701738529327, trigger=visual_change)
2026-04-20T10:21:22.063263Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1399546062189663050, trigger=visual_change)
2026-04-20T10:21:35.657143Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5007800743451086391, trigger=visual_change)
2026-04-20T10:21:35.899663Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5007800743451086391, trigger=visual_change)
2026-04-20T10:21:38.094166Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5007800743451086391, trigger=click)
2026-04-20T10:21:38.149655Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5007800743451086391, trigger=click)
2026-04-20T10:21:38.947641Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5007800743451086391, trigger=click)
2026-04-20T10:21:38.991934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5007800743451086391, trigger=click)
2026-04-20T10:23:28.231526Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=2 elapsed=6.103025792s
2026-04-20T10:23:28.232845Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
2026-04-20T10:25:18.292352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=133505750984754566, trigger=click)
2026-04-20T10:25:33.154631Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:25:33.227754Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:25:34.786990Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)
2026-04-20T10:25:36.507114Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:25:36.556707Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:25:37.741060Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)
2026-04-20T10:25:39.466175Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:25:39.547293Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:26:02.072902Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2625703622302799632, trigger=visual_change)
2026-04-20T10:26:05.038754Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8395829747728977847, trigger=visual_change)
2026-04-20T10:26:10.400901Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:26:10.459718Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:26:14.431146Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)
2026-04-20T10:26:17.437868Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=visual_change)
2026-04-20T10:26:35.296162Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:26:35.339241Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:26:37.233387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:26:37.326557Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:00.031681Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:00.067495Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:01.950749Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:02.027316Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:13.045805Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:13.116607Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:15.272022Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:15.311144Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:17.880859Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:17.952143Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:21.645455Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:21.706889Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:36.304603Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:36.380537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:37.368951Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:37.459157Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:40.420505Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:40.469217Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:27:41.179717Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)
2026-04-20T10:28:00.173884Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:00.251737Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:01.241028Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:01.288002Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:02.985445Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:03.078932Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:04.726087Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:04.770305Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:18.186992Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:18.272249Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:28.337807Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 14 eligible frames
2026-04-20T10:28:29.608030Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 0.7MB → 0.5MB (1.4x), 8 JPEGs deleted
2026-04-20T10:28:30.685845Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 6 frames, 1.2MB → 0.7MB (1.8x), 6 JPEGs deleted
2026-04-20T10:28:49.943477Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:49.984595Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:50.611087Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:50.628530Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:54.853245Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:28:57.739309Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)
2026-04-20T10:29:03.177558Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:03.231322Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:03.857989Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)
2026-04-20T10:29:04.993121Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:05.032838Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:06.923393Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)
2026-04-20T10:29:07.890421Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:07.960410Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:08.812301Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:26.656780Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:26.775833Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:27.602791Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:27.639583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:34.060332Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2389025338591748766, trigger=visual_change)
2026-04-20T10:29:37.050675Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2389025338591748766, trigger=click)
2026-04-20T10:29:37.085946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2389025338591748766, trigger=click)
2026-04-20T10:29:40.501396Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2389025338591748766, trigger=visual_change)
2026-04-20T10:29:43.751715Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)
2026-04-20T10:29:43.843367Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:44.468329Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:46.931137Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:49.616400Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:49.692474Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:50.298335Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=visual_change)
2026-04-20T10:29:51.348506Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=588687738866170495, trigger=click)
2026-04-20T10:29:51.436585Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=588687738866170495, trigger=click)
2026-04-20T10:30:12.602958Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8200761366188343712, trigger=click)
2026-04-20T10:31:17.535958Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5166044279428207369, trigger=click)
2026-04-20T10:31:18.668547Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5166044279428207369, trigger=visual_change)
2026-04-20T10:31:19.518515Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5166044279428207369, trigger=click)
2026-04-20T10:31:19.681398Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5166044279428207369, trigger=click)
2026-04-20T10:31:21.044436Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5166044279428207369, trigger=click)
2026-04-20T10:31:21.086009Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5166044279428207369, trigger=click)
2026-04-20T10:31:21.680970Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5166044279428207369, trigger=visual_change)
2026-04-20T10:32:05.428125Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=visual_change)
2026-04-20T10:32:07.004460Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=click)
2026-04-20T10:32:07.088172Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6999516640019587394, trigger=click)
2026-04-20T10:32:08.380482Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=visual_change)
2026-04-20T10:32:11.588306Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=click)
2026-04-20T10:32:11.689288Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6999516640019587394, trigger=click)
2026-04-20T10:32:12.318265Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6999516640019587394, trigger=click)
2026-04-20T10:32:12.381069Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=click)
2026-04-20T10:32:20.139124Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)
2026-04-20T10:32:20.175356Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)
2026-04-20T10:32:23.490851Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=click)
2026-04-20T10:32:27.111949Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=visual_change)
2026-04-20T10:32:37.220458Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6999516640019587394, trigger=click)
2026-04-20T10:32:37.303363Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=click)
2026-04-20T10:32:38.554270Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6999516640019587394, trigger=click)
2026-04-20T10:32:38.619116Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6999516640019587394, trigger=click)
2026-04-20T10:32:44.030894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=click)
2026-04-20T10:32:44.098803Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4838132251856752988, trigger=click)
2026-04-20T10:32:45.233990Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=click)
2026-04-20T10:32:45.238569Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4838132251856752988, trigger=click)
2026-04-20T10:32:48.884987Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=visual_change)
2026-04-20T10:32:51.832116Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)
2026-04-20T10:32:51.860110Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)
2026-04-20T10:32:53.754008Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)
2026-04-20T10:32:53.796899Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)
2026-04-20T10:32:55.635715Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)
2026-04-20T10:32:55.675828Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)
2026-04-20T10:32:57.084341Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)
2026-04-20T10:32:57.128626Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)
2026-04-20T10:32:58.841455Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)
2026-04-20T10:32:58.882031Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)
2026-04-20T10:33:00.965217Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)
2026-04-20T10:33:01.040922Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)
2026-04-20T10:33:02.591751Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)
2026-04-20T10:33:02.633245Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)
2026-04-20T10:33:03.324241Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)
2026-04-20T10:33:03.353493Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)
2026-04-20T10:33:05.802391Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=click)
2026-04-20T10:33:05.849275Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3564605891676988236, trigger=click)
2026-04-20T10:33:06.911518Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3564605891676988236, trigger=visual_change)
2026-04-20T10:33:14.484135Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=click)
2026-04-20T10:33:14.530843Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4838132251856752988, trigger=click)
2026-04-20T10:33:34.189406Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4838132251856752988, trigger=click)
2026-04-20T10:33:34.205308Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=94 elapsed=3.603974333s
2026-04-20T10:33:34.205567Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 94 eligible frames
2026-04-20T10:33:34.240884Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=visual_change)
2026-04-20T10:33:35.686677Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4838132251856752988, trigger=click)
2026-04-20T10:33:35.780825Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=click)
2026-04-20T10:33:37.134576Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 38 frames, 8.0MB → 4.4MB (1.8x), 38 JPEGs deleted
2026-04-20T10:33:40.850354Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 54 frames, 7.9MB → 3.4MB (2.3x), 54 JPEGs deleted
2026-04-20T10:33:55.372436Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4838132251856752988, trigger=visual_change)
2026-04-20T10:35:01.169212Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)
2026-04-20T10:35:01.245363Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)
2026-04-20T10:35:02.392419Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=visual_change)
2026-04-20T10:35:05.029174Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)
2026-04-20T10:35:05.073174Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)
2026-04-20T10:35:07.222477Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)
2026-04-20T10:35:07.329020Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)
2026-04-20T10:35:08.707660Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=visual_change)
2026-04-20T10:35:27.744689Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)
2026-04-20T10:35:27.812062Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)
2026-04-20T10:36:18.265456Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)
2026-04-20T10:36:18.437457Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)
2026-04-20T10:36:23.437791Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)
2026-04-20T10:36:23.487637Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)
2026-04-20T10:36:24.299771Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=visual_change)
2026-04-20T10:36:25.135894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)
2026-04-20T10:36:25.257064Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)
2026-04-20T10:36:27.317393Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=visual_change)
2026-04-20T10:36:50.815358Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)
2026-04-20T10:38:04.728644Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4435744464912499495, trigger=visual_change)
2026-04-20T10:38:07.749721Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4435744464912499495, trigger=visual_change)
2026-04-20T10:38:13.318000Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=visual_change)
2026-04-20T10:38:13.969769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=visual_change)
2026-04-20T10:38:14.800566Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)
2026-04-20T10:38:14.834512Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)
2026-04-20T10:38:17.252696Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)
2026-04-20T10:38:17.328544Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)
2026-04-20T10:38:24.892322Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)
2026-04-20T10:38:24.943640Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)
2026-04-20T10:38:35.256001Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)
2026-04-20T10:38:35.322251Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)
2026-04-20T10:38:40.980335Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 88 eligible frames
2026-04-20T10:38:43.345927Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 6.6MB → 2.6MB (2.5x), 39 JPEGs deleted
2026-04-20T10:38:46.544495Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 47 frames, 7.3MB → 2.8MB (2.6x), 47 JPEGs deleted
2026-04-20T10:39:26.663352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=visual_change)
2026-04-20T10:39:29.597544Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=click)
2026-04-20T10:39:29.637879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7711588205739105973, trigger=click)
2026-04-20T10:40:07.495065Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7711588205739105973, trigger=visual_change)
2026-04-20T10:40:11.064923Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=visual_change)
2026-04-20T10:40:11.431065Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)
2026-04-20T10:40:12.068565Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=click)
2026-04-20T10:40:12.110719Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)
2026-04-20T10:40:14.179306Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=click)
2026-04-20T10:40:14.239361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)
2026-04-20T10:41:20.489623Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=click)
2026-04-20T10:43:48.184341Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=0 rows_returned=82 elapsed=1.63218175s
2026-04-20T10:43:48.184571Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 82 eligible frames
2026-04-20T10:43:50.234957Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 30 frames, 2.2MB → 0.1MB (16.1x), 30 JPEGs deleted
2026-04-20T10:43:55.342383Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 50 frames, 7.9MB → 3.2MB (2.5x), 50 JPEGs deleted
2026-04-20T10:44:06.225390Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4079037146782974603, trigger=click)
2026-04-20T10:44:14.808445Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Slack, signals=2)
2026-04-20T10:44:19.110273Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-539912533838677065, trigger=click)
2026-04-20T10:44:19.155111Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-539912533838677065, trigger=click)
2026-04-20T10:44:19.832463Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Slack, signals=2, browser=false)
2026-04-20T10:44:19.834928Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=3, app=Slack, title=None)
2026-04-20T10:44:27.766267Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5412550087722993493, trigger=visual_change)
2026-04-20T10:44:39.799864Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5412550087722993493, trigger=visual_change)
2026-04-20T10:44:57.832108Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5412550087722993493, trigger=visual_change)
2026-04-20T10:44:57.940548Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5412550087722993493, trigger=click)
2026-04-20T10:44:58.605782Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5412550087722993493, trigger=click)
2026-04-20T10:44:58.637243Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5412550087722993493, trigger=click)
2026-04-20T10:45:00.807501Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5412550087722993493, trigger=visual_change)
2026-04-20T10:45:16.166619Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8594311245071571574, trigger=visual_change)
2026-04-20T10:45:56.391618Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)
2026-04-20T10:45:56.468127Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=click)
2026-04-20T10:46:03.056730Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8594311245071571574, trigger=visual_change)
2026-04-20T10:46:12.195973Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8594311245071571574, trigger=visual_change)
2026-04-20T10:46:17.958643Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3919322128440588956, trigger=click)
2026-04-20T10:46:18.011452Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3919322128440588956, trigger=click)
2026-04-20T10:47:02.211065Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5662459752758049610, trigger=click)
2026-04-20T10:47:02.257675Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5662459752758049610, trigger=click)
2026-04-20T10:47:05.697096Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5662459752758049610, trigger=click)
2026-04-20T10:47:06.566076Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5662459752758049610, trigger=click)
2026-04-20T10:47:07.827281Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping captur...
|
NULL
|